Loading src/service/service/service_handlers/l3nm_openconfig/ConfigRules.py +20 −68 Original line number Diff line number Diff line Loading @@ -31,17 +31,17 @@ def setup_config_rules( mtu = json_settings.get('mtu', 1450 ) # 1512 #address_families = json_settings.get('address_families', [] ) # ['IPV4'] bgp_as = json_device_settings.get('bgp_as', 65000 ) # 65000 bgp_as = json_settings.get('bgp_as', 65000 ) # 65000 router_id = json_device_settings.get('router_id', '0.0.0.0') # '10.95.0.10' route_distinguisher = json_device_settings.get('route_distinguisher', '65000:101' ) # '60001:801' router_id = json_endpoint_settings.get('router_id', '0.0.0.0') # '10.95.0.10' route_distinguisher = json_settings.get('route_distinguisher', '65000:101' ) # '60001:801' sub_interface_index = json_endpoint_settings.get('sub_interface_index', 0 ) # 1 vlan_id = json_endpoint_settings.get('vlan_id', 1 ) # 400 address_ip = json_endpoint_settings.get('address_ip', '0.0.0.0') # '2.2.2.1' address_prefix = json_endpoint_settings.get('address_prefix', 24 ) # 30 policy_import = json_device_settings.get('policy_AZ', '2' ) # 2 policy_export = json_device_settings.get('policy_ZA', '7' ) # 30 policy_import = json_endpoint_settings.get('policy_AZ', '2' ) # 2 policy_export = json_endpoint_settings.get('policy_ZA', '7' ) # 30 #network_interface_desc = '{:s}-NetIf'.format(service_uuid) network_interface_desc = json_endpoint_settings.get('ni_description','') #network_subinterface_desc = '{:s}-NetSubIf'.format(service_uuid) Loading @@ -50,14 +50,7 @@ def setup_config_rules( #network_instance_name = '{:s}-NetInst'.format(service_short_uuid) network_instance_name = json_endpoint_settings.get('ni_name', service_uuid.split('-')[-1]) #ELAN-AC:1 self_bgp_if_name = json_device_settings.get('self_bgp_interface_name', '') self_bgp_address_ip = json_device_settings.get('self_bgp_interface_address_ip', '') bgp_address_prefix = json_device_settings.get('bgp_interface_address_prefix', '') bgp_sub_interface_index = json_device_settings.get('self_bgp_sub_interface_index', 0) neighbor_bgp_if_address_ip= json_device_settings.get('neighbor_bgp_interface_address_ip', '0.0.0.0') # '2.2.2.1' # if_subif_name = '{:s}.{:d}'.format(endpoint_name, 0) if_subif_name = '{:s}'.format(endpoint_name[5:]) if_subif_name = '{:s}.{:d}'.format(endpoint_name, vlan_id) json_config_rules = [ # Configure Interface (not used) Loading @@ -75,7 +68,7 @@ def setup_config_rules( 'description': network_interface_desc, 'type': 'L3VRF', 'route_distinguisher': route_distinguisher, 'router_id': router_id, #'router_id': router_id, #'address_families': address_families, }), Loading @@ -83,12 +76,11 @@ def setup_config_rules( json_config_rule_set( '/network_instance[{:s}]/protocols[BGP]'.format(network_instance_name), { 'name': network_instance_name, 'protocol_name': bgp_as, 'protocol_name': 'BGP', 'identifier': 'BGP', 'type': 'L3VRF', 'as': bgp_as, 'router_id': router_id, 'neighbors': [{'ip_address': neighbor_bgp_if_address_ip, 'remote_as': bgp_as}] }), #Add DIRECTLY CONNECTED protocol to network instance Loading @@ -107,17 +99,6 @@ def setup_config_rules( 'protocol_name': 'STATIC', }), #Create interface with subinterface (without IP address) json_config_rule_set( '/interface[{:s}]/subinterface[{:d}]'.format(if_subif_name, sub_interface_index), { 'name' : if_subif_name, 'type' :'ethernetCsmacd', 'mtu' : mtu, 'index' : sub_interface_index, 'description': network_subinterface_desc, 'vlan_id' : vlan_id, }), #Associate interface to network instance json_config_rule_set( '/network_instance[{:s}]/interface[{:s}]'.format(network_instance_name, if_subif_name), { Loading @@ -130,11 +111,11 @@ def setup_config_rules( 'address_prefix': address_prefix, }), #Create interface with subinterface (with IP address) #Create interface with subinterface json_config_rule_set( '/interface[{:s}]/subinterface[{:d}]'.format(if_subif_name, sub_interface_index), { 'name' : if_subif_name, 'type' :'ethernetCsmacd', 'type' :'l3ipvlan', 'mtu' : mtu, 'index' : sub_interface_index, 'description' : network_subinterface_desc, Loading Loading @@ -164,7 +145,7 @@ def setup_config_rules( # pylint: disable=duplicate-string-formatting-argument '/routing_policy/policy_definition[{:s}_import]/statement[{:s}]'.format(policy_import, policy_import), { 'policy_name' : policy_import, 'statement_name' : 'stm_{:s}'.format(policy_import), # OCNOS: '10', 'statement_name' : 'stm_{:s}'.format(policy_import), 'ext_community_set_name': 'set_{:s}'.format(policy_import), 'policy_result' : 'ACCEPT_ROUTE', }), Loading @@ -186,7 +167,7 @@ def setup_config_rules( # pylint: disable=duplicate-string-formatting-argument '/routing_policy/policy_definition[{:s}_export]/statement[{:s}]'.format(policy_export, policy_export), { 'policy_name' : policy_export, 'statement_name' : 'stm_{:s}'.format(policy_export), # OCNOS: '10', 'statement_name' : 'stm_{:s}'.format(policy_export), 'ext_community_set_name': 'set_{:s}'.format(policy_export), 'policy_result' : 'ACCEPT_ROUTE', }), Loading @@ -206,7 +187,6 @@ def setup_config_rules( 'dst_protocol' : 'BGP', 'address_family' : 'IPV4', 'default_import_policy': 'ACCEPT_ROUTE', 'as' : bgp_as, }), json_config_rule_set( Loading @@ -216,7 +196,6 @@ def setup_config_rules( 'dst_protocol' : 'BGP', 'address_family' : 'IPV4', 'default_import_policy': 'ACCEPT_ROUTE', 'as' : bgp_as, }), ] Loading @@ -241,8 +220,7 @@ def teardown_config_rules( json_device_settings : Dict = device_settings.value service_short_uuid = service_uuid.split('-')[-1] # network_instance_name = '{:s}-NetInst'.format(service_short_uuid) network_instance_name = json_endpoint_settings.get('ni_name', service_short_uuid) #ELAN-AC:1 network_instance_name = '{:s}-NetInst'.format(service_short_uuid) #network_interface_desc = '{:s}-NetIf'.format(service_uuid) # network_subinterface_desc = '{:s}-NetSubIf'.format(service_uuid) network_subinterface_desc = '' Loading @@ -259,21 +237,13 @@ def teardown_config_rules( policy_import = json_device_settings.get('policy_AZ', '2' ) # 2 policy_export = json_device_settings.get('policy_ZA', '7' ) # 30 self_bgp_if_name = json_device_settings.get('self_bgp_interface_name', '') self_bgp_address_ip = json_device_settings.get('self_bgp_interface_address_ip', '') bgp_address_prefix = json_device_settings.get('bgp_interface_address_prefix', '') bgp_sub_interface_index = json_device_settings.get('self_bgp_sub_interface_index', 0) # if_subif_name = '{:s}.{:d}'.format(endpoint_name, vlan_id) if_subif_name = '{:s}'.format(endpoint_name[5:]) json_config_rules = [ #Delete export routing policy json_config_rule_delete( # pylint: disable=duplicate-string-formatting-argument '/routing_policy/policy_definition[{:s}_export]/statement[{:s}]'.format(policy_export, policy_export), { 'policy_name' : policy_export, 'statement_name' : 'stm_{:s}'.format(policy_export), # OCNOS: '10', 'statement_name' : 'stm_{:s}'.format(policy_export), 'ext_community_set_name': 'set_{:s}'.format(policy_export), 'policy_result' : 'ACCEPT_ROUTE', }), Loading @@ -284,11 +254,12 @@ def teardown_config_rules( }), #Delete import routing policy json_config_rule_delete( # pylint: disable=duplicate-string-formatting-argument '/routing_policy/policy_definition[{:s}_import]/statement[{:s}]'.format(policy_import, policy_import), { 'policy_name' : policy_import, 'statement_name' : 'stm_{:s}'.format(policy_import), # OCNOS: '10', 'statement_name' : 'stm_{:s}'.format(policy_import), 'ext_community_set_name': 'set_{:s}'.format(policy_import), 'policy_result' : 'ACCEPT_ROUTE', }), Loading @@ -300,35 +271,16 @@ def teardown_config_rules( #Delete interface; automatically deletes: # - /interface[]/subinterface[] # json_config_rule_delete('/interface[{:s}]/subinterface[0]'.format(if_subif_name), # { # 'name': if_subif_name, # }), json_config_rule_delete('/interface[{:s}]/subinterface[0]'.format(if_subif_name), { 'name': if_subif_name, }), #Delete network instance; automatically deletes: # - /network_instance[]/interface[] # - /network_instance[]/protocols[] # - /network_instance[]/inter_instance_policies[] #Associate interface to network instance json_config_rule_set( '/network_instance[{:s}]/interface[{:s}]'.format('default', if_subif_name), { 'name' : 'default', 'id' : if_subif_name, 'interface' : if_subif_name, 'subinterface': sub_interface_index, 'address_ip' : address_ip, 'address_prefix': address_prefix, }), json_config_rule_set( '/network_instance[{:s}]/interface[{:s}]'.format('default', self_bgp_if_name), { 'name' : 'default', 'id' : self_bgp_if_name, 'interface' : self_bgp_if_name, 'subinterface': bgp_sub_interface_index, 'address_ip' : self_bgp_address_ip, 'address_prefix': bgp_address_prefix, }), json_config_rule_delete('/network_instance[{:s}]'.format(network_instance_name), { 'name': network_instance_name Loading src/service/service/service_handlers/l3nm_openconfig/ConfigRules_test_ocnos.py 0 → 100644 +337 −0 File added.Preview size limit exceeded, changes collapsed. Show changes Loading
src/service/service/service_handlers/l3nm_openconfig/ConfigRules.py +20 −68 Original line number Diff line number Diff line Loading @@ -31,17 +31,17 @@ def setup_config_rules( mtu = json_settings.get('mtu', 1450 ) # 1512 #address_families = json_settings.get('address_families', [] ) # ['IPV4'] bgp_as = json_device_settings.get('bgp_as', 65000 ) # 65000 bgp_as = json_settings.get('bgp_as', 65000 ) # 65000 router_id = json_device_settings.get('router_id', '0.0.0.0') # '10.95.0.10' route_distinguisher = json_device_settings.get('route_distinguisher', '65000:101' ) # '60001:801' router_id = json_endpoint_settings.get('router_id', '0.0.0.0') # '10.95.0.10' route_distinguisher = json_settings.get('route_distinguisher', '65000:101' ) # '60001:801' sub_interface_index = json_endpoint_settings.get('sub_interface_index', 0 ) # 1 vlan_id = json_endpoint_settings.get('vlan_id', 1 ) # 400 address_ip = json_endpoint_settings.get('address_ip', '0.0.0.0') # '2.2.2.1' address_prefix = json_endpoint_settings.get('address_prefix', 24 ) # 30 policy_import = json_device_settings.get('policy_AZ', '2' ) # 2 policy_export = json_device_settings.get('policy_ZA', '7' ) # 30 policy_import = json_endpoint_settings.get('policy_AZ', '2' ) # 2 policy_export = json_endpoint_settings.get('policy_ZA', '7' ) # 30 #network_interface_desc = '{:s}-NetIf'.format(service_uuid) network_interface_desc = json_endpoint_settings.get('ni_description','') #network_subinterface_desc = '{:s}-NetSubIf'.format(service_uuid) Loading @@ -50,14 +50,7 @@ def setup_config_rules( #network_instance_name = '{:s}-NetInst'.format(service_short_uuid) network_instance_name = json_endpoint_settings.get('ni_name', service_uuid.split('-')[-1]) #ELAN-AC:1 self_bgp_if_name = json_device_settings.get('self_bgp_interface_name', '') self_bgp_address_ip = json_device_settings.get('self_bgp_interface_address_ip', '') bgp_address_prefix = json_device_settings.get('bgp_interface_address_prefix', '') bgp_sub_interface_index = json_device_settings.get('self_bgp_sub_interface_index', 0) neighbor_bgp_if_address_ip= json_device_settings.get('neighbor_bgp_interface_address_ip', '0.0.0.0') # '2.2.2.1' # if_subif_name = '{:s}.{:d}'.format(endpoint_name, 0) if_subif_name = '{:s}'.format(endpoint_name[5:]) if_subif_name = '{:s}.{:d}'.format(endpoint_name, vlan_id) json_config_rules = [ # Configure Interface (not used) Loading @@ -75,7 +68,7 @@ def setup_config_rules( 'description': network_interface_desc, 'type': 'L3VRF', 'route_distinguisher': route_distinguisher, 'router_id': router_id, #'router_id': router_id, #'address_families': address_families, }), Loading @@ -83,12 +76,11 @@ def setup_config_rules( json_config_rule_set( '/network_instance[{:s}]/protocols[BGP]'.format(network_instance_name), { 'name': network_instance_name, 'protocol_name': bgp_as, 'protocol_name': 'BGP', 'identifier': 'BGP', 'type': 'L3VRF', 'as': bgp_as, 'router_id': router_id, 'neighbors': [{'ip_address': neighbor_bgp_if_address_ip, 'remote_as': bgp_as}] }), #Add DIRECTLY CONNECTED protocol to network instance Loading @@ -107,17 +99,6 @@ def setup_config_rules( 'protocol_name': 'STATIC', }), #Create interface with subinterface (without IP address) json_config_rule_set( '/interface[{:s}]/subinterface[{:d}]'.format(if_subif_name, sub_interface_index), { 'name' : if_subif_name, 'type' :'ethernetCsmacd', 'mtu' : mtu, 'index' : sub_interface_index, 'description': network_subinterface_desc, 'vlan_id' : vlan_id, }), #Associate interface to network instance json_config_rule_set( '/network_instance[{:s}]/interface[{:s}]'.format(network_instance_name, if_subif_name), { Loading @@ -130,11 +111,11 @@ def setup_config_rules( 'address_prefix': address_prefix, }), #Create interface with subinterface (with IP address) #Create interface with subinterface json_config_rule_set( '/interface[{:s}]/subinterface[{:d}]'.format(if_subif_name, sub_interface_index), { 'name' : if_subif_name, 'type' :'ethernetCsmacd', 'type' :'l3ipvlan', 'mtu' : mtu, 'index' : sub_interface_index, 'description' : network_subinterface_desc, Loading Loading @@ -164,7 +145,7 @@ def setup_config_rules( # pylint: disable=duplicate-string-formatting-argument '/routing_policy/policy_definition[{:s}_import]/statement[{:s}]'.format(policy_import, policy_import), { 'policy_name' : policy_import, 'statement_name' : 'stm_{:s}'.format(policy_import), # OCNOS: '10', 'statement_name' : 'stm_{:s}'.format(policy_import), 'ext_community_set_name': 'set_{:s}'.format(policy_import), 'policy_result' : 'ACCEPT_ROUTE', }), Loading @@ -186,7 +167,7 @@ def setup_config_rules( # pylint: disable=duplicate-string-formatting-argument '/routing_policy/policy_definition[{:s}_export]/statement[{:s}]'.format(policy_export, policy_export), { 'policy_name' : policy_export, 'statement_name' : 'stm_{:s}'.format(policy_export), # OCNOS: '10', 'statement_name' : 'stm_{:s}'.format(policy_export), 'ext_community_set_name': 'set_{:s}'.format(policy_export), 'policy_result' : 'ACCEPT_ROUTE', }), Loading @@ -206,7 +187,6 @@ def setup_config_rules( 'dst_protocol' : 'BGP', 'address_family' : 'IPV4', 'default_import_policy': 'ACCEPT_ROUTE', 'as' : bgp_as, }), json_config_rule_set( Loading @@ -216,7 +196,6 @@ def setup_config_rules( 'dst_protocol' : 'BGP', 'address_family' : 'IPV4', 'default_import_policy': 'ACCEPT_ROUTE', 'as' : bgp_as, }), ] Loading @@ -241,8 +220,7 @@ def teardown_config_rules( json_device_settings : Dict = device_settings.value service_short_uuid = service_uuid.split('-')[-1] # network_instance_name = '{:s}-NetInst'.format(service_short_uuid) network_instance_name = json_endpoint_settings.get('ni_name', service_short_uuid) #ELAN-AC:1 network_instance_name = '{:s}-NetInst'.format(service_short_uuid) #network_interface_desc = '{:s}-NetIf'.format(service_uuid) # network_subinterface_desc = '{:s}-NetSubIf'.format(service_uuid) network_subinterface_desc = '' Loading @@ -259,21 +237,13 @@ def teardown_config_rules( policy_import = json_device_settings.get('policy_AZ', '2' ) # 2 policy_export = json_device_settings.get('policy_ZA', '7' ) # 30 self_bgp_if_name = json_device_settings.get('self_bgp_interface_name', '') self_bgp_address_ip = json_device_settings.get('self_bgp_interface_address_ip', '') bgp_address_prefix = json_device_settings.get('bgp_interface_address_prefix', '') bgp_sub_interface_index = json_device_settings.get('self_bgp_sub_interface_index', 0) # if_subif_name = '{:s}.{:d}'.format(endpoint_name, vlan_id) if_subif_name = '{:s}'.format(endpoint_name[5:]) json_config_rules = [ #Delete export routing policy json_config_rule_delete( # pylint: disable=duplicate-string-formatting-argument '/routing_policy/policy_definition[{:s}_export]/statement[{:s}]'.format(policy_export, policy_export), { 'policy_name' : policy_export, 'statement_name' : 'stm_{:s}'.format(policy_export), # OCNOS: '10', 'statement_name' : 'stm_{:s}'.format(policy_export), 'ext_community_set_name': 'set_{:s}'.format(policy_export), 'policy_result' : 'ACCEPT_ROUTE', }), Loading @@ -284,11 +254,12 @@ def teardown_config_rules( }), #Delete import routing policy json_config_rule_delete( # pylint: disable=duplicate-string-formatting-argument '/routing_policy/policy_definition[{:s}_import]/statement[{:s}]'.format(policy_import, policy_import), { 'policy_name' : policy_import, 'statement_name' : 'stm_{:s}'.format(policy_import), # OCNOS: '10', 'statement_name' : 'stm_{:s}'.format(policy_import), 'ext_community_set_name': 'set_{:s}'.format(policy_import), 'policy_result' : 'ACCEPT_ROUTE', }), Loading @@ -300,35 +271,16 @@ def teardown_config_rules( #Delete interface; automatically deletes: # - /interface[]/subinterface[] # json_config_rule_delete('/interface[{:s}]/subinterface[0]'.format(if_subif_name), # { # 'name': if_subif_name, # }), json_config_rule_delete('/interface[{:s}]/subinterface[0]'.format(if_subif_name), { 'name': if_subif_name, }), #Delete network instance; automatically deletes: # - /network_instance[]/interface[] # - /network_instance[]/protocols[] # - /network_instance[]/inter_instance_policies[] #Associate interface to network instance json_config_rule_set( '/network_instance[{:s}]/interface[{:s}]'.format('default', if_subif_name), { 'name' : 'default', 'id' : if_subif_name, 'interface' : if_subif_name, 'subinterface': sub_interface_index, 'address_ip' : address_ip, 'address_prefix': address_prefix, }), json_config_rule_set( '/network_instance[{:s}]/interface[{:s}]'.format('default', self_bgp_if_name), { 'name' : 'default', 'id' : self_bgp_if_name, 'interface' : self_bgp_if_name, 'subinterface': bgp_sub_interface_index, 'address_ip' : self_bgp_address_ip, 'address_prefix': bgp_address_prefix, }), json_config_rule_delete('/network_instance[{:s}]'.format(network_instance_name), { 'name': network_instance_name Loading
src/service/service/service_handlers/l3nm_openconfig/ConfigRules_test_ocnos.py 0 → 100644 +337 −0 File added.Preview size limit exceeded, changes collapsed. Show changes