Commit 8842d9b7 authored by Lluis Gifre Renom's avatar Lluis Gifre Renom
Browse files

Service component - L3NM OpenConfig:

- Rolling back malformed config rules, left backup for future integration
parent a3abb6d4
Loading
Loading
Loading
Loading
+20 −68
Original line number Diff line number Diff line
@@ -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)
@@ -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)
@@ -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,
        }),

@@ -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
@@ -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), {
@@ -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, 
@@ -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',
        }),
@@ -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',
        }),
@@ -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(
@@ -216,7 +196,6 @@ def setup_config_rules(
                'dst_protocol'         : 'BGP',
                'address_family'       : 'IPV4',
                'default_import_policy': 'ACCEPT_ROUTE',
                'as'                   : bgp_as,
        }),

    ]
@@ -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 = ''
@@ -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',
        }),
@@ -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',
        }),
@@ -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
+337 −0

File added.

Preview size limit exceeded, changes collapsed.