Loading src/service/service/service_handlers/l3nm_openconfig/ConfigRules.py +93 −30 Original line number Diff line number Diff line Loading @@ -35,10 +35,8 @@ def setup_config_rules( mtu = 3000 # 1512 #address_families = json_settings.get('address_families', [] ) # ['IPV4'] bgp_as = json_settings.get('bgp_as', 65000 ) # 65000 bgp_route_target = json_settings.get('bgp_route_target', '65000:123') # 65000:333 route_distinguisher = json_settings.get('route_distinguisher', '0:0' ) # '60001:801' router_id = json_endpoint_settings.get('router_id', '0.0.0.0') # '10.95.0.10' route_distinguisher = json_endpoint_settings.get('route_distinguisher', '0:0' ) # '60001:801' 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 Loading @@ -48,6 +46,7 @@ def setup_config_rules( if_subif_name = '{:s}.{:d}'.format(endpoint_uuid, vlan_id) json_config_rules = [ #Create network instance json_config_rule_set( '/network_instance[{:s}]'.format(network_instance_name), { 'name': network_instance_name, Loading @@ -55,6 +54,7 @@ def setup_config_rules( 'type': 'L3VRF', 'route_distinguisher': route_distinguisher, }), #Add BGP protocol to network instance json_config_rule_set( '/network_instance[{:s}]/protocols[BGP]'.format(network_instance_name), { 'name': network_instance_name, Loading @@ -63,12 +63,14 @@ def setup_config_rules( 'as': bgp_as, 'router_id': router_id, }), #Add DIRECTLY CONNECTED protocol to network instance json_config_rule_set( '/network_instance[{:s}]/protocols[DIRECTLY_CONNECTED]'.format(network_instance_name), { 'name': network_instance_name, 'identifier': 'DIRECTLY_CONNECTED', 'protocol_name': 'DIRECTLY_CONNECTED', }), #Create interface with subinterface json_config_rule_set( '/interface[{:s}]/subinterface[0]'.format(if_subif_name), { 'name': if_subif_name, Loading @@ -80,6 +82,7 @@ def setup_config_rules( 'address_ip': address_ip, 'address_prefix': address_prefix, }), #Associate interface to network instance json_config_rule_set( '/network_instance[{:s}]/interface[{:s}]'.format(network_instance_name, if_subif_name), { 'name': network_instance_name, Loading @@ -87,6 +90,49 @@ def setup_config_rules( 'interface': if_subif_name, 'subinterface': 0, }), #Create routing policy json_config_rule_set('/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, }), json_config_rule_set( '/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', }), #Associate routing policy to network instance json_config_rule_set( '/network_instance[{:s}]/inter_instance_policies[{:s}]'.format( network_instance_name, policy_import),{ 'name' : network_instance_name, 'import_policy': policy_import, }), #Create routing policy json_config_rule_set('/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, }), json_config_rule_set( '/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', }), #Associate routing policy to network instance json_config_rule_set( '/network_instance[{:s}]/inter_instance_policies[{:s}]'.format( network_instance_name, policy_export),{ 'name' : network_instance_name, 'export_policy': policy_export, }), #Create table connections json_config_rule_set( '/network_instance[{:s}]/table_connections[DIRECTLY_CONNECTED][BGP][IPV4]'.format( network_instance_name), { Loading @@ -110,41 +156,58 @@ def teardown_config_rules( service_short_uuid = service_uuid.split('-')[-1] network_instance_name = '{:s}-NetInst'.format(service_short_uuid) route_distinguisher = json_settings.get('route_distinguisher', '0:0' ) # '60001:801' vlan_id = json_endpoint_settings.get('vlan_id', 1 ) # 400 policy_import = json_endpoint_settings.get('policy_1', '2' ) # 2 policy_export = json_endpoint_settings.get('policy_2', '7' ) # 30 if_subif_name = '{:s}.{:d}'.format(endpoint_uuid, vlan_id) #network_interface_desc = '{:s}-NetIf'.format(service_uuid) #network_subinterface_desc = '{:s}-NetSubIf'.format(service_uuid) #mtu = json_settings.get('mtu', 3000 ) # 1512 #mtu = 3000 # 1512 #address_families = json_settings.get('address_families', [] ) # ['IPV4'] #bgp_as = json_settings.get('bgp_as', 65000 ) # 65000 bgp_route_target = json_settings.get('bgp_route_target', '65000:123') # 65000:333 #router_id = json_endpoint_settings.get('router_id', '0.0.0.0') # '10.95.0.10' #route_distinguisher = json_endpoint_settings.get('route_distinguisher', '0:0' ) # '60001:801' 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_endpoint_settings.get('policy_1', '2' ) # 2 policy_export = json_endpoint_settings.get('policy_2', '7' ) # 30 if_subif_name = '{:s}.{:d}'.format(endpoint_uuid, vlan_id) json_config_rules = [ # json_config_rule_delete( # '/network_instance[{:s}]/interface[{:s}]'.format(network_instance_name, if_subif_name), { # 'name': network_instance_name, # 'id': if_subif_name, # 'interface': if_subif_name, # 'subinterface': 0, # }), #Delete table connections json_config_rule_delete( '/interface[{:s}]'.format(if_subif_name), { '/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', }), #Delete routing policy json_config_rule_delete( '/routing_policy/policy_definition[{:s}_export]/statement[{:s}]'.format( policy_export, policy_export),{ 'policy_name' : policy_export, }), 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), }), #Delete routing policy json_config_rule_delete( '/routing_policy/policy_definition[{:s}_import]/statement[{:s}]'.format( policy_import, policy_import),{ 'policy_name' : policy_import, }), 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), }), #Delete interface json_config_rule_delete('/interface[{:s}]'.format(if_subif_name), { 'name': if_subif_name, }), # json_config_rule_delete( # '/network_instance[{:s}]'.format(network_instance_name), { # 'name': network_instance_name # }), #Delete network instance json_config_rule_delete('/network_instance[{:s}]'.format(network_instance_name), { 'name': network_instance_name }), ] return json_config_rules src/tests/tools/load_gen/RequestGenerator.py +4 −6 Original line number Diff line number Diff line Loading @@ -268,7 +268,6 @@ class RequestGenerator: vlan_id = num_request % 100 +100 x= num_request % 255 y= num_request % 25 * num_request % 10 bgp_route_target = '{:5d}:{:03d}'.format(bgp_as, vlan_id) route_distinguisher = '{:5d}:{:03d}'.format(bgp_as, vlan_id) src_router_id = ROUTER_ID.get(src_device_uuid) src_router_num = int(src_device_uuid.replace('R', '')) Loading @@ -278,17 +277,17 @@ class RequestGenerator: if dst_router_id is None: dst_router_id = '10.0.0.{:d}'.format(dst_router_num) src_address_ip = '10.{:d}.{:d}.{:d}'.format(x,y,int(src_device_uuid.replace('R', ''))) dst_address_ip = '10.{:d}.{:d}.{:d}'.format(y,x,int(dst_device_uuid.replace('R', ''))) policy_R1 = vlan_id = num_request % 100 policy_R2 = vlan_id = num_request % 100 +1 policy_R1 = 'srv_{:d}_a'.format(vlan_id) policy_R2 = 'srv_{:d}_b'.format(vlan_id) config_rules = [ json_config_rule_set('/settings', { 'bgp_as' : bgp_as, 'bgp_route_target': bgp_route_target, 'route_distinguisher': route_distinguisher, }), json_config_rule_set('/device[{:s}]/endpoint[{:s}]/settings'.format(src_device_uuid, src_endpoint_uuid), { 'router_id' : src_router_id, 'route_distinguisher': route_distinguisher, 'vlan_id' : vlan_id, 'address_ip' : src_address_ip, 'address_prefix' : 16, Loading @@ -298,7 +297,6 @@ class RequestGenerator: }), json_config_rule_set('/device[{:s}]/endpoint[{:s}]/settings'.format(dst_device_uuid, dst_endpoint_uuid), { 'router_id' : dst_router_id, 'route_distinguisher': route_distinguisher, 'vlan_id' : vlan_id, 'address_ip' : dst_address_ip, 'address_prefix' : 16, Loading Loading
src/service/service/service_handlers/l3nm_openconfig/ConfigRules.py +93 −30 Original line number Diff line number Diff line Loading @@ -35,10 +35,8 @@ def setup_config_rules( mtu = 3000 # 1512 #address_families = json_settings.get('address_families', [] ) # ['IPV4'] bgp_as = json_settings.get('bgp_as', 65000 ) # 65000 bgp_route_target = json_settings.get('bgp_route_target', '65000:123') # 65000:333 route_distinguisher = json_settings.get('route_distinguisher', '0:0' ) # '60001:801' router_id = json_endpoint_settings.get('router_id', '0.0.0.0') # '10.95.0.10' route_distinguisher = json_endpoint_settings.get('route_distinguisher', '0:0' ) # '60001:801' 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 Loading @@ -48,6 +46,7 @@ def setup_config_rules( if_subif_name = '{:s}.{:d}'.format(endpoint_uuid, vlan_id) json_config_rules = [ #Create network instance json_config_rule_set( '/network_instance[{:s}]'.format(network_instance_name), { 'name': network_instance_name, Loading @@ -55,6 +54,7 @@ def setup_config_rules( 'type': 'L3VRF', 'route_distinguisher': route_distinguisher, }), #Add BGP protocol to network instance json_config_rule_set( '/network_instance[{:s}]/protocols[BGP]'.format(network_instance_name), { 'name': network_instance_name, Loading @@ -63,12 +63,14 @@ def setup_config_rules( 'as': bgp_as, 'router_id': router_id, }), #Add DIRECTLY CONNECTED protocol to network instance json_config_rule_set( '/network_instance[{:s}]/protocols[DIRECTLY_CONNECTED]'.format(network_instance_name), { 'name': network_instance_name, 'identifier': 'DIRECTLY_CONNECTED', 'protocol_name': 'DIRECTLY_CONNECTED', }), #Create interface with subinterface json_config_rule_set( '/interface[{:s}]/subinterface[0]'.format(if_subif_name), { 'name': if_subif_name, Loading @@ -80,6 +82,7 @@ def setup_config_rules( 'address_ip': address_ip, 'address_prefix': address_prefix, }), #Associate interface to network instance json_config_rule_set( '/network_instance[{:s}]/interface[{:s}]'.format(network_instance_name, if_subif_name), { 'name': network_instance_name, Loading @@ -87,6 +90,49 @@ def setup_config_rules( 'interface': if_subif_name, 'subinterface': 0, }), #Create routing policy json_config_rule_set('/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, }), json_config_rule_set( '/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', }), #Associate routing policy to network instance json_config_rule_set( '/network_instance[{:s}]/inter_instance_policies[{:s}]'.format( network_instance_name, policy_import),{ 'name' : network_instance_name, 'import_policy': policy_import, }), #Create routing policy json_config_rule_set('/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, }), json_config_rule_set( '/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', }), #Associate routing policy to network instance json_config_rule_set( '/network_instance[{:s}]/inter_instance_policies[{:s}]'.format( network_instance_name, policy_export),{ 'name' : network_instance_name, 'export_policy': policy_export, }), #Create table connections json_config_rule_set( '/network_instance[{:s}]/table_connections[DIRECTLY_CONNECTED][BGP][IPV4]'.format( network_instance_name), { Loading @@ -110,41 +156,58 @@ def teardown_config_rules( service_short_uuid = service_uuid.split('-')[-1] network_instance_name = '{:s}-NetInst'.format(service_short_uuid) route_distinguisher = json_settings.get('route_distinguisher', '0:0' ) # '60001:801' vlan_id = json_endpoint_settings.get('vlan_id', 1 ) # 400 policy_import = json_endpoint_settings.get('policy_1', '2' ) # 2 policy_export = json_endpoint_settings.get('policy_2', '7' ) # 30 if_subif_name = '{:s}.{:d}'.format(endpoint_uuid, vlan_id) #network_interface_desc = '{:s}-NetIf'.format(service_uuid) #network_subinterface_desc = '{:s}-NetSubIf'.format(service_uuid) #mtu = json_settings.get('mtu', 3000 ) # 1512 #mtu = 3000 # 1512 #address_families = json_settings.get('address_families', [] ) # ['IPV4'] #bgp_as = json_settings.get('bgp_as', 65000 ) # 65000 bgp_route_target = json_settings.get('bgp_route_target', '65000:123') # 65000:333 #router_id = json_endpoint_settings.get('router_id', '0.0.0.0') # '10.95.0.10' #route_distinguisher = json_endpoint_settings.get('route_distinguisher', '0:0' ) # '60001:801' 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_endpoint_settings.get('policy_1', '2' ) # 2 policy_export = json_endpoint_settings.get('policy_2', '7' ) # 30 if_subif_name = '{:s}.{:d}'.format(endpoint_uuid, vlan_id) json_config_rules = [ # json_config_rule_delete( # '/network_instance[{:s}]/interface[{:s}]'.format(network_instance_name, if_subif_name), { # 'name': network_instance_name, # 'id': if_subif_name, # 'interface': if_subif_name, # 'subinterface': 0, # }), #Delete table connections json_config_rule_delete( '/interface[{:s}]'.format(if_subif_name), { '/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', }), #Delete routing policy json_config_rule_delete( '/routing_policy/policy_definition[{:s}_export]/statement[{:s}]'.format( policy_export, policy_export),{ 'policy_name' : policy_export, }), 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), }), #Delete routing policy json_config_rule_delete( '/routing_policy/policy_definition[{:s}_import]/statement[{:s}]'.format( policy_import, policy_import),{ 'policy_name' : policy_import, }), 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), }), #Delete interface json_config_rule_delete('/interface[{:s}]'.format(if_subif_name), { 'name': if_subif_name, }), # json_config_rule_delete( # '/network_instance[{:s}]'.format(network_instance_name), { # 'name': network_instance_name # }), #Delete network instance json_config_rule_delete('/network_instance[{:s}]'.format(network_instance_name), { 'name': network_instance_name }), ] return json_config_rules
src/tests/tools/load_gen/RequestGenerator.py +4 −6 Original line number Diff line number Diff line Loading @@ -268,7 +268,6 @@ class RequestGenerator: vlan_id = num_request % 100 +100 x= num_request % 255 y= num_request % 25 * num_request % 10 bgp_route_target = '{:5d}:{:03d}'.format(bgp_as, vlan_id) route_distinguisher = '{:5d}:{:03d}'.format(bgp_as, vlan_id) src_router_id = ROUTER_ID.get(src_device_uuid) src_router_num = int(src_device_uuid.replace('R', '')) Loading @@ -278,17 +277,17 @@ class RequestGenerator: if dst_router_id is None: dst_router_id = '10.0.0.{:d}'.format(dst_router_num) src_address_ip = '10.{:d}.{:d}.{:d}'.format(x,y,int(src_device_uuid.replace('R', ''))) dst_address_ip = '10.{:d}.{:d}.{:d}'.format(y,x,int(dst_device_uuid.replace('R', ''))) policy_R1 = vlan_id = num_request % 100 policy_R2 = vlan_id = num_request % 100 +1 policy_R1 = 'srv_{:d}_a'.format(vlan_id) policy_R2 = 'srv_{:d}_b'.format(vlan_id) config_rules = [ json_config_rule_set('/settings', { 'bgp_as' : bgp_as, 'bgp_route_target': bgp_route_target, 'route_distinguisher': route_distinguisher, }), json_config_rule_set('/device[{:s}]/endpoint[{:s}]/settings'.format(src_device_uuid, src_endpoint_uuid), { 'router_id' : src_router_id, 'route_distinguisher': route_distinguisher, 'vlan_id' : vlan_id, 'address_ip' : src_address_ip, 'address_prefix' : 16, Loading @@ -298,7 +297,6 @@ class RequestGenerator: }), json_config_rule_set('/device[{:s}]/endpoint[{:s}]/settings'.format(dst_device_uuid, dst_endpoint_uuid), { 'router_id' : dst_router_id, 'route_distinguisher': route_distinguisher, 'vlan_id' : vlan_id, 'address_ip' : dst_address_ip, 'address_prefix' : 16, Loading