diff --git a/src/service/service/service_handlers/l3nm_openconfig/ConfigRules.py b/src/service/service/service_handlers/l3nm_openconfig/ConfigRules.py index 724f38298dd5ad7072b6aed766d40ee21f81eb3d..504a3ff6aac0f7187f4b7abfffb4c682e6c78d38 100644 --- a/src/service/service/service_handlers/l3nm_openconfig/ConfigRules.py +++ b/src/service/service/service_handlers/l3nm_openconfig/ConfigRules.py @@ -222,51 +222,58 @@ def teardown_config_rules( service_short_uuid = service_uuid.split('-')[-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 = '' + #network_subinterface_desc = '{:s}-NetSubIf'.format(service_uuid) - 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 + #mtu = json_settings.get('mtu', 1450 ) # 1512 + #address_families = json_settings.get('address_families', [] ) # ['IPV4'] + #bgp_as = json_settings.get('bgp_as', 65000 ) # 65000 route_distinguisher = json_device_settings.get('route_distinguisher', '0:0' ) # '60001:801' - sub_interface_index = json_endpoint_settings.get('sub_interface_index', 0 ) # 1 - #router_id = json_device_settings.get('router_id', '0.0.0.0') # '10.95.0.10' - 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 + #sub_interface_index = json_endpoint_settings.get('sub_interface_index', 0 ) # 1 + #router_id = json_endpoint_settings.get('router_id', '0.0.0.0') # '10.95.0.10' + #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 json_config_rules = [ + #Delete table connections + json_config_rule_delete( + '/network_instance[{:s}]/table_connections[DIRECTLY_CONNECTED][BGP][IPV4]'.format(network_instance_name),{ + 'name' : network_instance_name, + 'src_protocol' : 'DIRECTLY_CONNECTED', + 'dst_protocol' : 'BGP', + 'address_family': 'IPV4', + }), + + + json_config_rule_delete( + '/network_instance[{:s}]/table_connections[STATIC][BGP][IPV4]'.format(network_instance_name), { + 'name' : network_instance_name, + 'src_protocol' : 'STATIC', + 'dst_protocol' : 'BGP', + 'address_family': 'IPV4', + }), + #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), - 'ext_community_set_name': 'set_{:s}'.format(policy_export), - 'policy_result' : 'ACCEPT_ROUTE', + '/routing_policy/policy_definition[{:s}_export]'.format(network_instance_name), { + 'policy_name': '{:s}_export'.format(network_instance_name), }), json_config_rule_delete( '/routing_policy/bgp_defined_set[{:s}_rt_export][{:s}]'.format(policy_export, route_distinguisher), { 'ext_community_set_name': 'set_{:s}'.format(policy_export), - 'ext_community_member' : route_distinguisher, }), #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), - 'ext_community_set_name': 'set_{:s}'.format(policy_import), - 'policy_result' : 'ACCEPT_ROUTE', + '/routing_policy/policy_definition[{:s}_import]'.format(network_instance_name), { + 'policy_name': '{:s}_import'.format(network_instance_name), }), json_config_rule_delete( '/routing_policy/bgp_defined_set[{:s}_rt_import][{:s}]'.format(policy_import, route_distinguisher), { 'ext_community_set_name': 'set_{:s}'.format(policy_import), - 'ext_community_member' : route_distinguisher, }), #Delete interface; automatically deletes: @@ -280,7 +287,6 @@ def teardown_config_rules( # - /network_instance[]/interface[] # - /network_instance[]/protocols[] # - /network_instance[]/inter_instance_policies[] - json_config_rule_delete('/network_instance[{:s}]'.format(network_instance_name), { 'name': network_instance_name