Loading src/service/service/service_handlers/p4_fabric_tna_acl/p4_fabric_tna_acl_service_handler.py +5 −46 Original line number Diff line number Diff line Loading @@ -335,56 +335,15 @@ class P4FabricACLServiceHandler(_ServiceHandler): self.__settings = self.__settings_handler.get('/settings') LOGGER.info("{} with settings: {}".format(self.__service_label, self.__settings)) except Exception as ex: self.__settings = {} LOGGER.error("Failed to parse service settings: {}".format(ex)) def _default_settings(self): acl = [ { PORT_ID: 1, TRN_PORT_DST: 8080, ACTION: ACTION_DROP } ] switch_info = { "p4-sw1": { ARCH: TARGET_ARCH_V1MODEL, DPID: 1, ACL: acl } } self.__settings = { SWITCH_INFO: switch_info } # port_map = { # "p4-sw1": { # "port-1": { # PORT_ID: 1, # ACL: [ # { # IPV4_SRC: "10.158.72.11", # IPV4_PREFIX_LEN: 32, # ACTION: ACTION_DROP # }, # { # TRN_PORT_DST: 8080, # ACTION: ACTION_DROP # } # ] # } # } # } LOGGER.error("Failed to retrieve service settings: {}".format(ex)) raise Exception(ex) def _parse_settings(self): #TODO: Pass settings in a correct way try: self.__switch_info = self.__settings[SWITCH_INFO] self.__switch_info = self.__settings.value[SWITCH_INFO] except Exception as ex: LOGGER.error("Failed to parse settings: {}".format(ex)) self._default_settings() #TODO: Remove when bug is fixed self.__switch_info = self.__settings[SWITCH_INFO] LOGGER.error("Failed to parse service settings: {}".format(ex)) raise Exception(ex) assert isinstance(self.__switch_info, dict), "Switch info object must be a map with switch names as keys" for switch_name, switch_info in self.__switch_info.items(): Loading src/service/service/service_handlers/p4_fabric_tna_int/p4_fabric_tna_int_service_handler.py +6 −34 Original line number Diff line number Diff line Loading @@ -305,43 +305,15 @@ class P4FabricINTServiceHandler(_ServiceHandler): self.__settings = self.__settings_handler.get('/settings') LOGGER.info("{} with settings: {}".format(self.__service_label, self.__settings)) except Exception as ex: self.__settings = {} LOGGER.error("Failed to parse service settings: {}".format(ex)) def _default_settings(self): switch_info = { "p4-sw1": { ARCH: TARGET_ARCH_V1MODEL, DPID: 1, MAC: "fa:16:3e:93:8c:c0", IP: "10.10.10.120", PORT_INT: { PORT_ID: 3, PORT_TYPE: "host" }, RECIRCULATION_PORT_LIST: RECIRCULATION_PORTS_V1MODEL, INT_REPORT_MIRROR_ID_LIST: INT_REPORT_MIRROR_ID_LIST_V1MODEL } } int_collector_info = { MAC: "fa:16:3e:fb:cf:96", IP: "10.10.10.41", PORT: 32766, VLAN_ID: 4094 } self.__settings = { SWITCH_INFO: switch_info, INT_COLLECTOR_INFO: int_collector_info } LOGGER.error("Failed to retrieve service settings: {}".format(ex)) raise Exception(ex) def _parse_settings(self): #TODO: Pass settings in a correct way try: self.__switch_info = self.__settings[SWITCH_INFO] self.__switch_info = self.__settings.value[SWITCH_INFO] except Exception as ex: LOGGER.error("Failed to parse settings: {}".format(ex)) self._default_settings() #TODO: Remove when bug is fixed self.__switch_info = self.__settings[SWITCH_INFO] LOGGER.error("Failed to parse service settings: {}".format(ex)) raise Exception(ex) assert isinstance(self.__switch_info, dict), "Switch info object must be a map with switch names as keys" for switch_name, switch_info in self.__switch_info.items(): Loading @@ -364,7 +336,7 @@ class P4FabricINTServiceHandler(_ServiceHandler): switch_info[INT_REPORT_MIRROR_ID_LIST] = INT_REPORT_MIRROR_ID_LIST_V1MODEL assert isinstance(switch_info[RECIRCULATION_PORT_LIST], list), "Switch {} - Recirculation ports must be described as a list".format(switch_name) self.__int_collector_info = self.__settings[INT_COLLECTOR_INFO] self.__int_collector_info = self.__settings.value[INT_COLLECTOR_INFO] assert isinstance(self.__int_collector_info, dict), "INT collector info object must be a map with mac, ip, port, and vlan_id keys)" self.__int_collector_mac = self.__int_collector_info[MAC] Loading src/service/service/service_handlers/p4_fabric_tna_l2_simple/p4_fabric_tna_l2_simple_service_handler.py +5 −59 Original line number Diff line number Diff line Loading @@ -318,69 +318,15 @@ class P4FabricL2SimpleServiceHandler(_ServiceHandler): self.__settings = self.__settings_handler.get('/settings') LOGGER.info("{} with settings: {}".format(self.__service_label, self.__settings)) except Exception as ex: self.__settings = {} LOGGER.error("Failed to parse service settings: {}".format(ex)) def _default_settings(self): port_list = [ { PORT_ID: 1, PORT_TYPE: "host", VLAN_ID: 4094 }, { PORT_ID: 2, PORT_TYPE: "host", VLAN_ID: 4094 }, ] fwd_list = [ { PORT_ID: 1, HOST_MAC: "fa:16:3e:75:9c:e5" }, { PORT_ID: 2, HOST_MAC: "fa:16:3e:e2:af:28" } ] switch_info = { "p4-sw1": { ARCH: TARGET_ARCH_V1MODEL, DPID: 1, PORT_LIST: port_list, FORWARDING_LIST: fwd_list } } self.__settings = { SWITCH_INFO: switch_info } # port_map = { # "p4-sw1": { # "port-1": { # PORT_ID: 1, # PORT_TYPE: PORT_TYPE_HOST, # VLAN_ID: 4094, # FORWARDING_LIST: ["fa:16:3e:75:9c:e5"] # }, # "port-2": { # PORT_ID: 2, # PORT_TYPE: PORT_TYPE_HOST, # VLAN_ID: 4094, # FORWARDING_LIST: ["fa:16:3e:e2:af:28"] # } # } # } LOGGER.error("Failed to retrieve service settings: {}".format(ex)) raise Exception(ex) def _parse_settings(self): #TODO: Pass settings in a correct way try: self.__switch_info = self.__settings[SWITCH_INFO] self.__switch_info = self.__settings.value[SWITCH_INFO] except Exception as ex: LOGGER.error("Failed to parse settings: {}".format(ex)) self._default_settings() #TODO: Remove when bug is fixed self.__switch_info = self.__settings[SWITCH_INFO] LOGGER.error("Failed to parse service settings: {}".format(ex)) raise Exception(ex) assert isinstance(self.__switch_info, dict), "Switch info object must be a map with switch names as keys" for switch_name, switch_info in self.__switch_info.items(): Loading src/service/service/service_handlers/p4_fabric_tna_l3/p4_fabric_tna_l3_service_handler.py +5 −75 Original line number Diff line number Diff line Loading @@ -316,85 +316,15 @@ class P4FabricL3ServiceHandler(_ServiceHandler): self.__settings = self.__settings_handler.get('/settings') LOGGER.info("{} with settings: {}".format(self.__service_label, self.__settings)) except Exception as ex: self.__settings = {} LOGGER.error("Failed to parse service settings: {}".format(ex)) def _default_settings(self): port_list = [ { PORT_ID: 1, PORT_TYPE: "host" }, { PORT_ID: 2, PORT_TYPE: "host" }, ] routing_list = [ { PORT_ID: 1, IPV4_DST: "10.158.72.11", IPV4_PREFIX_LEN: 32, MAC_SRC: "fa:16:3e:e2:af:28", MAC_DST: "fa:16:3e:75:9c:e5" }, { PORT_ID: 2, IPV4_DST: "172.16.10.9", IPV4_PREFIX_LEN: 32, MAC_SRC: "fa:16:3e:75:9c:e5", MAC_DST: "fa:16:3e:e2:af:28" } ] switch_info = { "p4-sw1": { ARCH: TARGET_ARCH_V1MODEL, DPID: 1, PORT_LIST: port_list, ROUTING_LIST: routing_list } } self.__settings = { SWITCH_INFO: switch_info } # port_map = { # "p4-sw1": { # "port-1": { # PORT_ID: 1, # PORT_TYPE: PORT_TYPE_HOST, # ROUTING_LIST: [ # { # IPV4_DST: "10.158.72.11", # IPV4_PREFIX_LEN: 32, # MAC_SRC: "fa:16:3e:e2:af:28", # MAC_DST: "fa:16:3e:75:9c:e5" # } # ] # }, # "port-2": { # PORT_ID: 2, # PORT_TYPE: PORT_TYPE_HOST, # ROUTING_LIST: [ # { # IPV4_DST: "172.16.10.9", # IPV4_PREFIX_LEN: 32, # MAC_SRC: "fa:16:3e:75:9c:e5", # MAC_DST: "fa:16:3e:e2:af:28" # } # ] # } # } # } LOGGER.error("Failed to retrieve service settings: {}".format(ex)) raise Exception(ex) def _parse_settings(self): #TODO: Pass settings in a correct way try: self.__switch_info = self.__settings[SWITCH_INFO] self.__switch_info = self.__settings.value[SWITCH_INFO] except Exception as ex: LOGGER.error("Failed to parse settings: {}".format(ex)) self._default_settings() #TODO: Remove when bug is fixed self.__switch_info = self.__settings[SWITCH_INFO] LOGGER.error("Failed to parse service settings: {}".format(ex)) raise Exception(ex) assert isinstance(self.__switch_info, dict), "Switch info object must be a map with switch names as keys" for switch_name, switch_info in self.__switch_info.items(): Loading src/tests/p4-fabric-tna/descriptors/service-create-acl.json +3 −3 Original line number Diff line number Diff line Loading @@ -9,11 +9,11 @@ "service_status": {"service_status": "SERVICESTATUS_PLANNED"}, "service_endpoint_ids": [ { "device_id": {"device_uuid": {"uuid": "p4-sw1"}}, "device_id": {"device_uuid": {"uuid": "sw1"}}, "endpoint_uuid": {"uuid": "1"} }, { "device_id": {"device_uuid": {"uuid": "p4-sw1"}}, "device_id": {"device_uuid": {"uuid": "sw1"}}, "endpoint_uuid": {"uuid": "2"} } ], Loading @@ -25,7 +25,7 @@ "resource_key": "/settings", "resource_value": { "switch_info": { "p4-sw1": { "sw1": { "arch": "v1model", "dpid": 1, "acl": [ Loading Loading
src/service/service/service_handlers/p4_fabric_tna_acl/p4_fabric_tna_acl_service_handler.py +5 −46 Original line number Diff line number Diff line Loading @@ -335,56 +335,15 @@ class P4FabricACLServiceHandler(_ServiceHandler): self.__settings = self.__settings_handler.get('/settings') LOGGER.info("{} with settings: {}".format(self.__service_label, self.__settings)) except Exception as ex: self.__settings = {} LOGGER.error("Failed to parse service settings: {}".format(ex)) def _default_settings(self): acl = [ { PORT_ID: 1, TRN_PORT_DST: 8080, ACTION: ACTION_DROP } ] switch_info = { "p4-sw1": { ARCH: TARGET_ARCH_V1MODEL, DPID: 1, ACL: acl } } self.__settings = { SWITCH_INFO: switch_info } # port_map = { # "p4-sw1": { # "port-1": { # PORT_ID: 1, # ACL: [ # { # IPV4_SRC: "10.158.72.11", # IPV4_PREFIX_LEN: 32, # ACTION: ACTION_DROP # }, # { # TRN_PORT_DST: 8080, # ACTION: ACTION_DROP # } # ] # } # } # } LOGGER.error("Failed to retrieve service settings: {}".format(ex)) raise Exception(ex) def _parse_settings(self): #TODO: Pass settings in a correct way try: self.__switch_info = self.__settings[SWITCH_INFO] self.__switch_info = self.__settings.value[SWITCH_INFO] except Exception as ex: LOGGER.error("Failed to parse settings: {}".format(ex)) self._default_settings() #TODO: Remove when bug is fixed self.__switch_info = self.__settings[SWITCH_INFO] LOGGER.error("Failed to parse service settings: {}".format(ex)) raise Exception(ex) assert isinstance(self.__switch_info, dict), "Switch info object must be a map with switch names as keys" for switch_name, switch_info in self.__switch_info.items(): Loading
src/service/service/service_handlers/p4_fabric_tna_int/p4_fabric_tna_int_service_handler.py +6 −34 Original line number Diff line number Diff line Loading @@ -305,43 +305,15 @@ class P4FabricINTServiceHandler(_ServiceHandler): self.__settings = self.__settings_handler.get('/settings') LOGGER.info("{} with settings: {}".format(self.__service_label, self.__settings)) except Exception as ex: self.__settings = {} LOGGER.error("Failed to parse service settings: {}".format(ex)) def _default_settings(self): switch_info = { "p4-sw1": { ARCH: TARGET_ARCH_V1MODEL, DPID: 1, MAC: "fa:16:3e:93:8c:c0", IP: "10.10.10.120", PORT_INT: { PORT_ID: 3, PORT_TYPE: "host" }, RECIRCULATION_PORT_LIST: RECIRCULATION_PORTS_V1MODEL, INT_REPORT_MIRROR_ID_LIST: INT_REPORT_MIRROR_ID_LIST_V1MODEL } } int_collector_info = { MAC: "fa:16:3e:fb:cf:96", IP: "10.10.10.41", PORT: 32766, VLAN_ID: 4094 } self.__settings = { SWITCH_INFO: switch_info, INT_COLLECTOR_INFO: int_collector_info } LOGGER.error("Failed to retrieve service settings: {}".format(ex)) raise Exception(ex) def _parse_settings(self): #TODO: Pass settings in a correct way try: self.__switch_info = self.__settings[SWITCH_INFO] self.__switch_info = self.__settings.value[SWITCH_INFO] except Exception as ex: LOGGER.error("Failed to parse settings: {}".format(ex)) self._default_settings() #TODO: Remove when bug is fixed self.__switch_info = self.__settings[SWITCH_INFO] LOGGER.error("Failed to parse service settings: {}".format(ex)) raise Exception(ex) assert isinstance(self.__switch_info, dict), "Switch info object must be a map with switch names as keys" for switch_name, switch_info in self.__switch_info.items(): Loading @@ -364,7 +336,7 @@ class P4FabricINTServiceHandler(_ServiceHandler): switch_info[INT_REPORT_MIRROR_ID_LIST] = INT_REPORT_MIRROR_ID_LIST_V1MODEL assert isinstance(switch_info[RECIRCULATION_PORT_LIST], list), "Switch {} - Recirculation ports must be described as a list".format(switch_name) self.__int_collector_info = self.__settings[INT_COLLECTOR_INFO] self.__int_collector_info = self.__settings.value[INT_COLLECTOR_INFO] assert isinstance(self.__int_collector_info, dict), "INT collector info object must be a map with mac, ip, port, and vlan_id keys)" self.__int_collector_mac = self.__int_collector_info[MAC] Loading
src/service/service/service_handlers/p4_fabric_tna_l2_simple/p4_fabric_tna_l2_simple_service_handler.py +5 −59 Original line number Diff line number Diff line Loading @@ -318,69 +318,15 @@ class P4FabricL2SimpleServiceHandler(_ServiceHandler): self.__settings = self.__settings_handler.get('/settings') LOGGER.info("{} with settings: {}".format(self.__service_label, self.__settings)) except Exception as ex: self.__settings = {} LOGGER.error("Failed to parse service settings: {}".format(ex)) def _default_settings(self): port_list = [ { PORT_ID: 1, PORT_TYPE: "host", VLAN_ID: 4094 }, { PORT_ID: 2, PORT_TYPE: "host", VLAN_ID: 4094 }, ] fwd_list = [ { PORT_ID: 1, HOST_MAC: "fa:16:3e:75:9c:e5" }, { PORT_ID: 2, HOST_MAC: "fa:16:3e:e2:af:28" } ] switch_info = { "p4-sw1": { ARCH: TARGET_ARCH_V1MODEL, DPID: 1, PORT_LIST: port_list, FORWARDING_LIST: fwd_list } } self.__settings = { SWITCH_INFO: switch_info } # port_map = { # "p4-sw1": { # "port-1": { # PORT_ID: 1, # PORT_TYPE: PORT_TYPE_HOST, # VLAN_ID: 4094, # FORWARDING_LIST: ["fa:16:3e:75:9c:e5"] # }, # "port-2": { # PORT_ID: 2, # PORT_TYPE: PORT_TYPE_HOST, # VLAN_ID: 4094, # FORWARDING_LIST: ["fa:16:3e:e2:af:28"] # } # } # } LOGGER.error("Failed to retrieve service settings: {}".format(ex)) raise Exception(ex) def _parse_settings(self): #TODO: Pass settings in a correct way try: self.__switch_info = self.__settings[SWITCH_INFO] self.__switch_info = self.__settings.value[SWITCH_INFO] except Exception as ex: LOGGER.error("Failed to parse settings: {}".format(ex)) self._default_settings() #TODO: Remove when bug is fixed self.__switch_info = self.__settings[SWITCH_INFO] LOGGER.error("Failed to parse service settings: {}".format(ex)) raise Exception(ex) assert isinstance(self.__switch_info, dict), "Switch info object must be a map with switch names as keys" for switch_name, switch_info in self.__switch_info.items(): Loading
src/service/service/service_handlers/p4_fabric_tna_l3/p4_fabric_tna_l3_service_handler.py +5 −75 Original line number Diff line number Diff line Loading @@ -316,85 +316,15 @@ class P4FabricL3ServiceHandler(_ServiceHandler): self.__settings = self.__settings_handler.get('/settings') LOGGER.info("{} with settings: {}".format(self.__service_label, self.__settings)) except Exception as ex: self.__settings = {} LOGGER.error("Failed to parse service settings: {}".format(ex)) def _default_settings(self): port_list = [ { PORT_ID: 1, PORT_TYPE: "host" }, { PORT_ID: 2, PORT_TYPE: "host" }, ] routing_list = [ { PORT_ID: 1, IPV4_DST: "10.158.72.11", IPV4_PREFIX_LEN: 32, MAC_SRC: "fa:16:3e:e2:af:28", MAC_DST: "fa:16:3e:75:9c:e5" }, { PORT_ID: 2, IPV4_DST: "172.16.10.9", IPV4_PREFIX_LEN: 32, MAC_SRC: "fa:16:3e:75:9c:e5", MAC_DST: "fa:16:3e:e2:af:28" } ] switch_info = { "p4-sw1": { ARCH: TARGET_ARCH_V1MODEL, DPID: 1, PORT_LIST: port_list, ROUTING_LIST: routing_list } } self.__settings = { SWITCH_INFO: switch_info } # port_map = { # "p4-sw1": { # "port-1": { # PORT_ID: 1, # PORT_TYPE: PORT_TYPE_HOST, # ROUTING_LIST: [ # { # IPV4_DST: "10.158.72.11", # IPV4_PREFIX_LEN: 32, # MAC_SRC: "fa:16:3e:e2:af:28", # MAC_DST: "fa:16:3e:75:9c:e5" # } # ] # }, # "port-2": { # PORT_ID: 2, # PORT_TYPE: PORT_TYPE_HOST, # ROUTING_LIST: [ # { # IPV4_DST: "172.16.10.9", # IPV4_PREFIX_LEN: 32, # MAC_SRC: "fa:16:3e:75:9c:e5", # MAC_DST: "fa:16:3e:e2:af:28" # } # ] # } # } # } LOGGER.error("Failed to retrieve service settings: {}".format(ex)) raise Exception(ex) def _parse_settings(self): #TODO: Pass settings in a correct way try: self.__switch_info = self.__settings[SWITCH_INFO] self.__switch_info = self.__settings.value[SWITCH_INFO] except Exception as ex: LOGGER.error("Failed to parse settings: {}".format(ex)) self._default_settings() #TODO: Remove when bug is fixed self.__switch_info = self.__settings[SWITCH_INFO] LOGGER.error("Failed to parse service settings: {}".format(ex)) raise Exception(ex) assert isinstance(self.__switch_info, dict), "Switch info object must be a map with switch names as keys" for switch_name, switch_info in self.__switch_info.items(): Loading
src/tests/p4-fabric-tna/descriptors/service-create-acl.json +3 −3 Original line number Diff line number Diff line Loading @@ -9,11 +9,11 @@ "service_status": {"service_status": "SERVICESTATUS_PLANNED"}, "service_endpoint_ids": [ { "device_id": {"device_uuid": {"uuid": "p4-sw1"}}, "device_id": {"device_uuid": {"uuid": "sw1"}}, "endpoint_uuid": {"uuid": "1"} }, { "device_id": {"device_uuid": {"uuid": "p4-sw1"}}, "device_id": {"device_uuid": {"uuid": "sw1"}}, "endpoint_uuid": {"uuid": "2"} } ], Loading @@ -25,7 +25,7 @@ "resource_key": "/settings", "resource_value": { "switch_info": { "p4-sw1": { "sw1": { "arch": "v1model", "dpid": 1, "acl": [ Loading