Skip to content

6.3.2 LSP to writers

rod edited this page Aug 15, 2019 · 1 revision

python

All MPLS data sent by PCEP Listener service to Rabbitmq, is consumend by the LSP to writers service. Messages are parsed for relevant values and translated into neo4j cypher query-like messages. Instead of directly updating the database with these queries, query messages are once again sent to Rabbitmq and there will be services strictly in charge of doing so.

Example of MPLS data received (sent by PCEP Listener):

{
   "bandwidth":1996.75,
   "lsp":{
      "extended_tunnel_id":168430140,
      "flags":{
         "administrative":true,
         "delegate":false,
         "operational":true,
         "remove":false,
         "sync":false
      },
      "ipv4_tunnel_endpoint_address":"10.10.10.31",
      "ipv4_tunnel_sender_address":"10.10.10.60",
      "lsp_id":8934,
      "pcc":"10.40.0.0",
      "plsp_id":227,
      "symbolic_path_name":"SERVICE-TYPE-CUSTOM-84771-ARGBUELVL1R1-BRASAOTEL1R1/SERVICE-TYPE-CUSTOM-84771-ARGBUELVL1R1-BRASAOTEL1R1-PRIMARY",
      "tunnel_id":41131
   },
   "rro":[
      {
         "address":"10.10.20.114",
         "local_protection_available":false,
         "local_protection_in_use":false,
         "prefix_length":32
      },
      {
         "address":"10.10.20.66",
         "local_protection_available":false,
         "local_protection_in_use":false,
         "prefix_length":32
      }
   ]
}

Example of query-like message sent after processing:

MERGE (a:Node {IPv4_Router_Identifier:'10.10.10.60', topology_id:'mpls'})
   ON CREATE SET
	 a.topology_id='mpls',
	 a.IPv4_Router_Identifier='10.10.10.60',
	 a.First_Seen = timestamp()
MERGE (z:Node {IPv4_Router_Identifier:'10.10.10.31', topology_id:'mpls'})
  ON CREATE SET
	z.topology_id='mpls',
	z.IPv4_Router_Identifier='10.10.10.31',
	z.First_Seen = timestamp()
MERGE (a)-[lsp:LSP {Symbolic_Path_Name:'SERVICE-TYPE-CUSTOM-84771-ARGBUELVL1R1-BRASAOTEL1R1/SERVICE-TYPE-CUSTOM-84771-ARGBUELVL1R1-BRASAOTEL1R1-PRIMARY'}]->(z)
  ON CREATE SET
	lsp.First_Seen = timestamp(),
	lsp.Last_Event = timestamp(),
	lsp.Reserved_Bandwidth = 1996.75,
	lsp.Symbolic_Path_Name = 'SERVICE-TYPE-CUSTOM-84771-ARGBUELVL1R1-BRASAOTEL1R1/SERVICE-TYPE-CUSTOM-84771-ARGBUELVL1R1-BRASAOTEL1R1-PRIMARY',
	lsp.IPv4_Tunnel_Sender_Address = '10.10.10.60',
	lsp.IPv4_Tunnel_Endpoint_Address = '10.10.10.31',
	lsp.LSP_Identifier = '8934',
	lsp.Tunnel_Identifier = '41131',
	lsp.Extended_Tunnel_Identifier = '168430140',
	lsp.Operational = True,
	lsp.Administrative = True,
	lsp.Delegate = False,
	lsp.Remove = False,
	lsp.Sync = False,
	lsp.Record_Route_Object = ['10.10.20.114', '10.10.20.66'],
	lsp.PCC = '10.40.0.0'
  ON MATCH SET
	lsp.Last_Event = timestamp(),
	lsp.Reserved_Bandwidth = 1996.75,
	lsp.Record_Route_Object = ['10.10.20.114', '10.10.20.66'],
	lsp.LSP_Identifier = '8934',
	lsp.Tunnel_Identifier = '41131',
	lsp.Extended_Tunnel_Identifier = '168430140',
	lsp.Operational = True,
	lsp.Administrative = True,
	lsp.Delegate = False,
	lsp.Remove = False,
	lsp.Sync = False,
	lsp.PCC = '10.40.0.0'
Clone this wiki locally