Loading src/service/service/service_handlers/l3nm_openconfig/ConfigRules.py +99 −143 Original line number Diff line number Diff line Loading @@ -29,109 +29,109 @@ def setup_config_rules( network_interface_desc = '{:s}-NetIf'.format(service_uuid) network_subinterface_desc = '{:s}-NetSubIf'.format(service_uuid) mtu = json_settings.get('mtu', 1450 ) # 1512 mtu = 3000 # 1512 #address_families = json_settings.get('address_families', [] ) # ['IPV4'] bgp_as = json_settings.get('bgp_as', 0 ) # 65000 bgp_route_target = json_settings.get('bgp_route_target', '0:0') # 65000:333 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' 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' 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_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_set( '/network_instance[{:s}]'.format(network_instance_name), { 'name': network_instance_name, 'description': network_interface_desc, 'type': 'L3VRF', 'name': network_instance_name, 'description': network_interface_desc, 'type': 'L3VRF', 'route_distinguisher': route_distinguisher, #'router_id': router_id, 'address_families': address_families, }), json_config_rule_set( '/interface[{:s}]'.format(endpoint_uuid), { 'name': endpoint_uuid, 'description': network_interface_desc, 'mtu': mtu, }), json_config_rule_set( '/interface[{:s}]/subinterface[{:d}]'.format(endpoint_uuid, sub_interface_index), { 'name': endpoint_uuid, 'index': sub_interface_index, 'description': network_subinterface_desc, 'vlan_id': vlan_id, 'address_ip': address_ip, 'address_prefix': address_prefix, }), json_config_rule_set( '/network_instance[{:s}]/interface[{:s}]'.format(network_instance_name, if_subif_name), { 'name': network_instance_name, 'id': if_subif_name, 'interface': endpoint_uuid, 'subinterface': sub_interface_index, }), json_config_rule_set( '/network_instance[{:s}]/protocols[BGP]'.format(network_instance_name), { 'name': network_instance_name, 'identifier': 'BGP', 'protocol_name': 'BGP', 'as': bgp_as, 'name': network_instance_name, 'protocol_name': 'BGP', 'identifier': 'BGP', 'as': bgp_as, 'router_id': router_id, }), json_config_rule_set( '/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', #'default_import_policy': 'REJECT_ROUTE', '/network_instance[{:s}]/protocols[DIRECTLY_CONNECTED]'.format(network_instance_name), { 'name': network_instance_name, 'identifier': 'DIRECTLY_CONNECTED', 'protocol_name': 'DIRECTLY_CONNECTED', }), json_config_rule_set( '/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', #'default_import_policy': 'REJECT_ROUTE', '/interface[{:s}]/subinterface[0]'.format(if_subif_name), { 'name': if_subif_name, 'type':'l3ipvlan', 'mtu': mtu, 'index': 0, 'description': network_subinterface_desc, 'vlan_id': vlan_id, 'address_ip': address_ip, 'address_prefix': address_prefix, }), json_config_rule_set( '/routing_policy/bgp_defined_set[{:s}_rt_import]'.format(network_instance_name), { 'ext_community_set_name': '{:s}_rt_import'.format(network_instance_name), '/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, }), json_config_rule_set( '/routing_policy/bgp_defined_set[{:s}_rt_import][route-target:{:s}]'.format( '/routing_policy/bgp_defined_set[{:s}_rt_import][{:s}]'.format( network_instance_name, bgp_route_target), { 'ext_community_set_name': '{:s}_rt_import'.format(network_instance_name), 'ext_community_member' : 'route-target:{:s}'.format(bgp_route_target), }), json_config_rule_set( '/routing_policy/policy_definition[{:s}_import]'.format(network_instance_name), { 'policy_name': '{:s}_import'.format(network_instance_name), }), json_config_rule_set( '/routing_policy/policy_definition[{:s}_import]/statement[{:s}]'.format( network_instance_name, '3'), { 'policy_name': '{:s}_import'.format(network_instance_name), 'statement_name': '3', '/routing_policy/policy_definition[{:s}_import]/statement[3]'.format( network_instance_name), { 'policy_name': policy_import, 'statement_name': '3', 'ext_community_set_name': '{:s}_rt_import'.format(network_instance_name), 'match_set_options': 'ANY', 'policy_result': 'ACCEPT_ROUTE', 'policy_result': 'ACCEPT_ROUTE', }), json_config_rule_set( # pylint: disable=duplicate-string-formatting-argument '/network_instance[{:s}]/inter_instance_policies[{:s}_import]'.format( network_instance_name, network_instance_name), { 'name': network_instance_name, 'import_policy': '{:s}_import'.format(network_instance_name), }), json_config_rule_set( '/routing_policy/bgp_defined_set[{:s}_rt_export]'.format(network_instance_name), { 'ext_community_set_name': '{:s}_rt_export'.format(network_instance_name), network_instance_name, policy_import), { 'name': network_instance_name, 'import_policy': policy_import, }), json_config_rule_set( '/routing_policy/bgp_defined_set[{:s}_rt_export][route-target:{:s}]'.format( '/routing_policy/bgp_defined_set[{:s}_rt_export][{:s}]'.format( network_instance_name, bgp_route_target), { 'ext_community_set_name': '{:s}_rt_export'.format(network_instance_name), 'ext_community_member' : 'route-target:{:s}'.format(bgp_route_target), }), json_config_rule_set( '/routing_policy/policy_definition[{:s}_export]'.format(network_instance_name), { 'policy_name': '{:s}_export'.format(network_instance_name), }), json_config_rule_set( '/routing_policy/policy_definition[{:s}_export]/statement[{:s}]'.format( network_instance_name, '3'), { 'policy_name': '{:s}_export'.format(network_instance_name), 'statement_name': '3', '/routing_policy/policy_definition[{:s}_export]/statement[3]'.format( network_instance_name), { 'policy_name': policy_export, 'statement_name': '3', 'ext_community_set_name': '{:s}_rt_export'.format(network_instance_name), 'match_set_options': 'ANY', 'policy_result': 'ACCEPT_ROUTE', 'policy_result': 'ACCEPT_ROUTE', }), json_config_rule_set( # pylint: disable=duplicate-string-formatting-argument '/network_instance[{:s}]/inter_instance_policies[{:s}_export]'.format( network_instance_name, network_instance_name), { 'name': network_instance_name, 'export_policy': '{:s}_export'.format(network_instance_name), network_instance_name, policy_export), { 'name': network_instance_name, 'export_policy': policy_export, }), json_config_rule_set( '/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', 'default_import_policy': 'ACCEPT_ROUTE', }), ] Loading @@ -145,101 +145,57 @@ def teardown_config_rules( json_settings : Dict = {} if service_settings is None else service_settings.value json_endpoint_settings : Dict = {} if endpoint_settings is None else endpoint_settings.value #mtu = json_settings.get('mtu', 1450 ) # 1512 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) #mtu = json_settings.get('mtu', 3000 ) # 1512 #address_families = json_settings.get('address_families', [] ) # ['IPV4'] #bgp_as = json_settings.get('bgp_as', 0 ) # 65000 bgp_route_target = json_settings.get('bgp_route_target', '0:0') # 65000:333 #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' 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_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) 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) 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, }), json_config_rule_delete( '/interface[{:s}]/subinterface[{:d}]'.format(endpoint_uuid, sub_interface_index), { 'name': endpoint_uuid, 'index': sub_interface_index, }), json_config_rule_delete( '/interface[{:s}]'.format(endpoint_uuid), { 'name': endpoint_uuid, }), 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', }), json_config_rule_delete( '/network_instance[{:s}]/protocols[BGP]'.format(network_instance_name), { 'name': network_instance_name, 'identifier': 'BGP', 'protocol_name': 'BGP', }), json_config_rule_delete( # pylint: disable=duplicate-string-formatting-argument '/network_instance[{:s}]/inter_instance_policies[{:s}_import]'.format( network_instance_name, network_instance_name), { 'name': network_instance_name, 'src_protocol': 'DIRECTLY_CONNECTED', 'dst_protocol': 'BGP', 'address_family': 'IPV4', }), json_config_rule_delete( '/routing_policy/policy_definition[{:s}_import]/statement[{:s}]'.format( network_instance_name, '3'), { 'policy_name': '{:s}_import'.format(network_instance_name), 'statement_name': '3', }), json_config_rule_delete( '/routing_policy/policy_definition[{:s}_import]'.format(network_instance_name), { 'policy_name': '{:s}_import'.format(network_instance_name), json_config_rule_delete('/routing_policy/policy_definition[{:s}_import]/statement[3]'.format( network_instance_name),{ 'policy_name' : policy_import, }), json_config_rule_delete( '/routing_policy/bgp_defined_set[{:s}_rt_import][route-target:{:s}]'.format( json_config_rule_delete('/routing_policy/bgp_defined_set[{:s}_rt_import][{:s}]'.format( network_instance_name,bgp_route_target),{ 'ext_community_set_name': '{:s}_rt_import'.format(network_instance_name), 'ext_community_member' : 'route-target:{:s}'.format(bgp_route_target), }), json_config_rule_delete( '/routing_policy/bgp_defined_set[{:s}_rt_import]'.format(network_instance_name), { 'ext_community_set_name': '{:s}_rt_import'.format(network_instance_name), }), json_config_rule_delete( # pylint: disable=duplicate-string-formatting-argument '/network_instance[{:s}]/inter_instance_policies[{:s}_export]'.format( network_instance_name, network_instance_name), { 'name': network_instance_name, }), json_config_rule_delete( '/routing_policy/policy_definition[{:s}_export]/statement[{:s}]'.format( network_instance_name, '3'), { 'policy_name': '{:s}_export'.format(network_instance_name), 'statement_name': '3', }), json_config_rule_delete( '/routing_policy/policy_definition[{:s}_export]'.format(network_instance_name), { 'policy_name': '{:s}_export'.format(network_instance_name), json_config_rule_delete('/routing_policy/policy_definition[{:s}_export]/statement[3]'.format( network_instance_name),{ 'policy_name' : policy_export, }), json_config_rule_delete( '/routing_policy/bgp_defined_set[{:s}_rt_export][route-target:{:s}]'.format( json_config_rule_delete('/routing_policy/bgp_defined_set[{:s}_rt_import][{:s}]'.format( network_instance_name,bgp_route_target),{ 'ext_community_set_name': '{:s}_rt_export'.format(network_instance_name), 'ext_community_member' : 'route-target:{:s}'.format(bgp_route_target), }), json_config_rule_delete( '/routing_policy/bgp_defined_set[{:s}_rt_export]'.format(network_instance_name), { 'ext_community_set_name': '{:s}_rt_export'.format(network_instance_name), '/interface[{:s}]'.format(if_subif_name), { 'name': if_subif_name, }), json_config_rule_delete( '/network_instance[{:s}]'.format(network_instance_name), { Loading src/tests/tools/load_gen/RequestGenerator.py +31 −11 Original line number Diff line number Diff line Loading @@ -31,6 +31,11 @@ from .Parameters import Parameters LOGGER = logging.getLogger(__name__) ROUTER_ID = { 'R149': '5.5.5.5', 'R155': '5.5.5.1', } class RequestGenerator: def __init__(self, parameters : Parameters) -> None: self._parameters = parameters Loading Loading @@ -205,8 +210,10 @@ class RequestGenerator: ] vlan_id = num_request % 1000 circuit_id = '{:03d}'.format(vlan_id) src_router_id = '10.0.0.{:d}'.format(int(src_device_uuid.replace('R', ''))) dst_router_id = '10.0.0.{:d}'.format(int(src_device_uuid.replace('R', ''))) src_router_id = ROUTER_ID.get(src_device_uuid) if src_router_id is None: src_router_id = '10.0.0.{:d}'.format(int(src_device_uuid.replace('R', ''))) dst_router_id = ROUTER_ID.get(dst_device_uuid) if dst_router_id is None: dst_router_id = '10.0.0.{:d}'.format(int(dst_device_uuid.replace('R', ''))) config_rules = [ json_config_rule_set('/settings', { 'mtu': 1512 Loading Loading @@ -234,35 +241,48 @@ class RequestGenerator: json_constraint_custom('bandwidth[gbps]', '10.0'), json_constraint_custom('latency[ms]', '20.0'), ] vlan_id = num_request % 1000 bgp_as = 60000 + (num_request % 10000) bgp_as = 65000 + (num_request % 10000) 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, 333) route_distinguisher = '{:5d}:{:03d}'.format(bgp_as, vlan_id) src_router_id = '10.0.0.{:d}'.format(int(src_device_uuid.replace('R', ''))) dst_router_id = '10.0.0.{:d}'.format(int(src_device_uuid.replace('R', ''))) src_address_ip = '.'.join([src_device_uuid.replace('R', ''), '0'] + src_endpoint_uuid.split('/')) dst_address_ip = '.'.join([dst_device_uuid.replace('R', ''), '0'] + dst_endpoint_uuid.split('/')) src_router_id = ROUTER_ID.get(src_device_uuid) if src_router_id is None: src_router_id = '10.0.0.{:d}'.format(int(src_device_uuid.replace('R', ''))) dst_router_id = ROUTER_ID.get(dst_device_uuid) if dst_router_id is None: dst_router_id = '10.0.0.{:d}'.format(int(dst_device_uuid.replace('R', ''))) 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 = '7' policy_R2 = '2' config_rules = [ json_config_rule_set('/settings', { 'mtu' : 1512, 'bgp_as' : bgp_as, 'bgp_route_target': bgp_route_target, }), 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, 'sub_interface_index': vlan_id, 'vlan_id' : vlan_id, 'address_ip' : src_address_ip, 'address_prefix' : 16, 'policy_1' : policy_R1, 'policy_2' : policy_R2, }), 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, 'sub_interface_index': vlan_id, 'vlan_id' : vlan_id, 'address_ip' : dst_address_ip, 'address_prefix' : 16, 'policy_1' : policy_R2, 'policy_2' : policy_R1, }), ] return json_service_l3nm_planned( Loading src/tests/tools/load_gen/__main__.py +4 −4 Original line number Diff line number Diff line Loading @@ -24,13 +24,13 @@ LOGGER = logging.getLogger(__name__) def main(): LOGGER.info('Starting...') parameters = Parameters( num_requests = 100, num_requests = 1, request_types = [ RequestType.SERVICE_L2NM, #RequestType.SERVICE_L2NM, RequestType.SERVICE_L3NM, #RequestType.SERVICE_TAPI, RequestType.SLICE_L2NM, RequestType.SLICE_L3NM, #RequestType.SLICE_L2NM, #RequestType.SLICE_L3NM, ], offered_load = 50, holding_time = 10, Loading Loading
src/service/service/service_handlers/l3nm_openconfig/ConfigRules.py +99 −143 Original line number Diff line number Diff line Loading @@ -29,109 +29,109 @@ def setup_config_rules( network_interface_desc = '{:s}-NetIf'.format(service_uuid) network_subinterface_desc = '{:s}-NetSubIf'.format(service_uuid) mtu = json_settings.get('mtu', 1450 ) # 1512 mtu = 3000 # 1512 #address_families = json_settings.get('address_families', [] ) # ['IPV4'] bgp_as = json_settings.get('bgp_as', 0 ) # 65000 bgp_route_target = json_settings.get('bgp_route_target', '0:0') # 65000:333 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' 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' 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_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_set( '/network_instance[{:s}]'.format(network_instance_name), { 'name': network_instance_name, 'description': network_interface_desc, 'type': 'L3VRF', 'name': network_instance_name, 'description': network_interface_desc, 'type': 'L3VRF', 'route_distinguisher': route_distinguisher, #'router_id': router_id, 'address_families': address_families, }), json_config_rule_set( '/interface[{:s}]'.format(endpoint_uuid), { 'name': endpoint_uuid, 'description': network_interface_desc, 'mtu': mtu, }), json_config_rule_set( '/interface[{:s}]/subinterface[{:d}]'.format(endpoint_uuid, sub_interface_index), { 'name': endpoint_uuid, 'index': sub_interface_index, 'description': network_subinterface_desc, 'vlan_id': vlan_id, 'address_ip': address_ip, 'address_prefix': address_prefix, }), json_config_rule_set( '/network_instance[{:s}]/interface[{:s}]'.format(network_instance_name, if_subif_name), { 'name': network_instance_name, 'id': if_subif_name, 'interface': endpoint_uuid, 'subinterface': sub_interface_index, }), json_config_rule_set( '/network_instance[{:s}]/protocols[BGP]'.format(network_instance_name), { 'name': network_instance_name, 'identifier': 'BGP', 'protocol_name': 'BGP', 'as': bgp_as, 'name': network_instance_name, 'protocol_name': 'BGP', 'identifier': 'BGP', 'as': bgp_as, 'router_id': router_id, }), json_config_rule_set( '/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', #'default_import_policy': 'REJECT_ROUTE', '/network_instance[{:s}]/protocols[DIRECTLY_CONNECTED]'.format(network_instance_name), { 'name': network_instance_name, 'identifier': 'DIRECTLY_CONNECTED', 'protocol_name': 'DIRECTLY_CONNECTED', }), json_config_rule_set( '/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', #'default_import_policy': 'REJECT_ROUTE', '/interface[{:s}]/subinterface[0]'.format(if_subif_name), { 'name': if_subif_name, 'type':'l3ipvlan', 'mtu': mtu, 'index': 0, 'description': network_subinterface_desc, 'vlan_id': vlan_id, 'address_ip': address_ip, 'address_prefix': address_prefix, }), json_config_rule_set( '/routing_policy/bgp_defined_set[{:s}_rt_import]'.format(network_instance_name), { 'ext_community_set_name': '{:s}_rt_import'.format(network_instance_name), '/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, }), json_config_rule_set( '/routing_policy/bgp_defined_set[{:s}_rt_import][route-target:{:s}]'.format( '/routing_policy/bgp_defined_set[{:s}_rt_import][{:s}]'.format( network_instance_name, bgp_route_target), { 'ext_community_set_name': '{:s}_rt_import'.format(network_instance_name), 'ext_community_member' : 'route-target:{:s}'.format(bgp_route_target), }), json_config_rule_set( '/routing_policy/policy_definition[{:s}_import]'.format(network_instance_name), { 'policy_name': '{:s}_import'.format(network_instance_name), }), json_config_rule_set( '/routing_policy/policy_definition[{:s}_import]/statement[{:s}]'.format( network_instance_name, '3'), { 'policy_name': '{:s}_import'.format(network_instance_name), 'statement_name': '3', '/routing_policy/policy_definition[{:s}_import]/statement[3]'.format( network_instance_name), { 'policy_name': policy_import, 'statement_name': '3', 'ext_community_set_name': '{:s}_rt_import'.format(network_instance_name), 'match_set_options': 'ANY', 'policy_result': 'ACCEPT_ROUTE', 'policy_result': 'ACCEPT_ROUTE', }), json_config_rule_set( # pylint: disable=duplicate-string-formatting-argument '/network_instance[{:s}]/inter_instance_policies[{:s}_import]'.format( network_instance_name, network_instance_name), { 'name': network_instance_name, 'import_policy': '{:s}_import'.format(network_instance_name), }), json_config_rule_set( '/routing_policy/bgp_defined_set[{:s}_rt_export]'.format(network_instance_name), { 'ext_community_set_name': '{:s}_rt_export'.format(network_instance_name), network_instance_name, policy_import), { 'name': network_instance_name, 'import_policy': policy_import, }), json_config_rule_set( '/routing_policy/bgp_defined_set[{:s}_rt_export][route-target:{:s}]'.format( '/routing_policy/bgp_defined_set[{:s}_rt_export][{:s}]'.format( network_instance_name, bgp_route_target), { 'ext_community_set_name': '{:s}_rt_export'.format(network_instance_name), 'ext_community_member' : 'route-target:{:s}'.format(bgp_route_target), }), json_config_rule_set( '/routing_policy/policy_definition[{:s}_export]'.format(network_instance_name), { 'policy_name': '{:s}_export'.format(network_instance_name), }), json_config_rule_set( '/routing_policy/policy_definition[{:s}_export]/statement[{:s}]'.format( network_instance_name, '3'), { 'policy_name': '{:s}_export'.format(network_instance_name), 'statement_name': '3', '/routing_policy/policy_definition[{:s}_export]/statement[3]'.format( network_instance_name), { 'policy_name': policy_export, 'statement_name': '3', 'ext_community_set_name': '{:s}_rt_export'.format(network_instance_name), 'match_set_options': 'ANY', 'policy_result': 'ACCEPT_ROUTE', 'policy_result': 'ACCEPT_ROUTE', }), json_config_rule_set( # pylint: disable=duplicate-string-formatting-argument '/network_instance[{:s}]/inter_instance_policies[{:s}_export]'.format( network_instance_name, network_instance_name), { 'name': network_instance_name, 'export_policy': '{:s}_export'.format(network_instance_name), network_instance_name, policy_export), { 'name': network_instance_name, 'export_policy': policy_export, }), json_config_rule_set( '/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', 'default_import_policy': 'ACCEPT_ROUTE', }), ] Loading @@ -145,101 +145,57 @@ def teardown_config_rules( json_settings : Dict = {} if service_settings is None else service_settings.value json_endpoint_settings : Dict = {} if endpoint_settings is None else endpoint_settings.value #mtu = json_settings.get('mtu', 1450 ) # 1512 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) #mtu = json_settings.get('mtu', 3000 ) # 1512 #address_families = json_settings.get('address_families', [] ) # ['IPV4'] #bgp_as = json_settings.get('bgp_as', 0 ) # 65000 bgp_route_target = json_settings.get('bgp_route_target', '0:0') # 65000:333 #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' 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_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) 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) 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, }), json_config_rule_delete( '/interface[{:s}]/subinterface[{:d}]'.format(endpoint_uuid, sub_interface_index), { 'name': endpoint_uuid, 'index': sub_interface_index, }), json_config_rule_delete( '/interface[{:s}]'.format(endpoint_uuid), { 'name': endpoint_uuid, }), 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', }), json_config_rule_delete( '/network_instance[{:s}]/protocols[BGP]'.format(network_instance_name), { 'name': network_instance_name, 'identifier': 'BGP', 'protocol_name': 'BGP', }), json_config_rule_delete( # pylint: disable=duplicate-string-formatting-argument '/network_instance[{:s}]/inter_instance_policies[{:s}_import]'.format( network_instance_name, network_instance_name), { 'name': network_instance_name, 'src_protocol': 'DIRECTLY_CONNECTED', 'dst_protocol': 'BGP', 'address_family': 'IPV4', }), json_config_rule_delete( '/routing_policy/policy_definition[{:s}_import]/statement[{:s}]'.format( network_instance_name, '3'), { 'policy_name': '{:s}_import'.format(network_instance_name), 'statement_name': '3', }), json_config_rule_delete( '/routing_policy/policy_definition[{:s}_import]'.format(network_instance_name), { 'policy_name': '{:s}_import'.format(network_instance_name), json_config_rule_delete('/routing_policy/policy_definition[{:s}_import]/statement[3]'.format( network_instance_name),{ 'policy_name' : policy_import, }), json_config_rule_delete( '/routing_policy/bgp_defined_set[{:s}_rt_import][route-target:{:s}]'.format( json_config_rule_delete('/routing_policy/bgp_defined_set[{:s}_rt_import][{:s}]'.format( network_instance_name,bgp_route_target),{ 'ext_community_set_name': '{:s}_rt_import'.format(network_instance_name), 'ext_community_member' : 'route-target:{:s}'.format(bgp_route_target), }), json_config_rule_delete( '/routing_policy/bgp_defined_set[{:s}_rt_import]'.format(network_instance_name), { 'ext_community_set_name': '{:s}_rt_import'.format(network_instance_name), }), json_config_rule_delete( # pylint: disable=duplicate-string-formatting-argument '/network_instance[{:s}]/inter_instance_policies[{:s}_export]'.format( network_instance_name, network_instance_name), { 'name': network_instance_name, }), json_config_rule_delete( '/routing_policy/policy_definition[{:s}_export]/statement[{:s}]'.format( network_instance_name, '3'), { 'policy_name': '{:s}_export'.format(network_instance_name), 'statement_name': '3', }), json_config_rule_delete( '/routing_policy/policy_definition[{:s}_export]'.format(network_instance_name), { 'policy_name': '{:s}_export'.format(network_instance_name), json_config_rule_delete('/routing_policy/policy_definition[{:s}_export]/statement[3]'.format( network_instance_name),{ 'policy_name' : policy_export, }), json_config_rule_delete( '/routing_policy/bgp_defined_set[{:s}_rt_export][route-target:{:s}]'.format( json_config_rule_delete('/routing_policy/bgp_defined_set[{:s}_rt_import][{:s}]'.format( network_instance_name,bgp_route_target),{ 'ext_community_set_name': '{:s}_rt_export'.format(network_instance_name), 'ext_community_member' : 'route-target:{:s}'.format(bgp_route_target), }), json_config_rule_delete( '/routing_policy/bgp_defined_set[{:s}_rt_export]'.format(network_instance_name), { 'ext_community_set_name': '{:s}_rt_export'.format(network_instance_name), '/interface[{:s}]'.format(if_subif_name), { 'name': if_subif_name, }), json_config_rule_delete( '/network_instance[{:s}]'.format(network_instance_name), { Loading
src/tests/tools/load_gen/RequestGenerator.py +31 −11 Original line number Diff line number Diff line Loading @@ -31,6 +31,11 @@ from .Parameters import Parameters LOGGER = logging.getLogger(__name__) ROUTER_ID = { 'R149': '5.5.5.5', 'R155': '5.5.5.1', } class RequestGenerator: def __init__(self, parameters : Parameters) -> None: self._parameters = parameters Loading Loading @@ -205,8 +210,10 @@ class RequestGenerator: ] vlan_id = num_request % 1000 circuit_id = '{:03d}'.format(vlan_id) src_router_id = '10.0.0.{:d}'.format(int(src_device_uuid.replace('R', ''))) dst_router_id = '10.0.0.{:d}'.format(int(src_device_uuid.replace('R', ''))) src_router_id = ROUTER_ID.get(src_device_uuid) if src_router_id is None: src_router_id = '10.0.0.{:d}'.format(int(src_device_uuid.replace('R', ''))) dst_router_id = ROUTER_ID.get(dst_device_uuid) if dst_router_id is None: dst_router_id = '10.0.0.{:d}'.format(int(dst_device_uuid.replace('R', ''))) config_rules = [ json_config_rule_set('/settings', { 'mtu': 1512 Loading Loading @@ -234,35 +241,48 @@ class RequestGenerator: json_constraint_custom('bandwidth[gbps]', '10.0'), json_constraint_custom('latency[ms]', '20.0'), ] vlan_id = num_request % 1000 bgp_as = 60000 + (num_request % 10000) bgp_as = 65000 + (num_request % 10000) 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, 333) route_distinguisher = '{:5d}:{:03d}'.format(bgp_as, vlan_id) src_router_id = '10.0.0.{:d}'.format(int(src_device_uuid.replace('R', ''))) dst_router_id = '10.0.0.{:d}'.format(int(src_device_uuid.replace('R', ''))) src_address_ip = '.'.join([src_device_uuid.replace('R', ''), '0'] + src_endpoint_uuid.split('/')) dst_address_ip = '.'.join([dst_device_uuid.replace('R', ''), '0'] + dst_endpoint_uuid.split('/')) src_router_id = ROUTER_ID.get(src_device_uuid) if src_router_id is None: src_router_id = '10.0.0.{:d}'.format(int(src_device_uuid.replace('R', ''))) dst_router_id = ROUTER_ID.get(dst_device_uuid) if dst_router_id is None: dst_router_id = '10.0.0.{:d}'.format(int(dst_device_uuid.replace('R', ''))) 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 = '7' policy_R2 = '2' config_rules = [ json_config_rule_set('/settings', { 'mtu' : 1512, 'bgp_as' : bgp_as, 'bgp_route_target': bgp_route_target, }), 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, 'sub_interface_index': vlan_id, 'vlan_id' : vlan_id, 'address_ip' : src_address_ip, 'address_prefix' : 16, 'policy_1' : policy_R1, 'policy_2' : policy_R2, }), 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, 'sub_interface_index': vlan_id, 'vlan_id' : vlan_id, 'address_ip' : dst_address_ip, 'address_prefix' : 16, 'policy_1' : policy_R2, 'policy_2' : policy_R1, }), ] return json_service_l3nm_planned( Loading
src/tests/tools/load_gen/__main__.py +4 −4 Original line number Diff line number Diff line Loading @@ -24,13 +24,13 @@ LOGGER = logging.getLogger(__name__) def main(): LOGGER.info('Starting...') parameters = Parameters( num_requests = 100, num_requests = 1, request_types = [ RequestType.SERVICE_L2NM, #RequestType.SERVICE_L2NM, RequestType.SERVICE_L3NM, #RequestType.SERVICE_TAPI, RequestType.SLICE_L2NM, RequestType.SLICE_L3NM, #RequestType.SLICE_L2NM, #RequestType.SLICE_L3NM, ], offered_load = 50, holding_time = 10, Loading