Loading src/realizer/e2e/service_types/l3ipowdm_slice.py +20 −53 Original line number Diff line number Diff line Loading @@ -87,65 +87,32 @@ def l3ipowdm_slice(rules): logging.debug(f"Sending Media Channel Service to Orchestrator: {tfs_request}") tfs_requests.append(tfs_request) elif rule["type"] == "ACTIVATE_TRANSCEIVER": params = { "router_id": rule["content"]["node-uuid"], "router_tp": rule["content"]["termination-point-uuid"], "frequency": rule["content"]["frequency-ghz"], "power": rule["content"]["tx-power-dbm"] } transceiver_params.append(params) elif rule["type"] == "CONFIG_VPNL3": src_router_id = rule["content"]["src-node-uuid"] elif rule["type"] == "XR_AGENT_ACTIVATE_TRANSCEIVER": transceiver_params = rule["content"]["components"] if src_router_id == transceiver_params[0]["router_id"]: src_power = transceiver_params[0]["power"] src_frequency = transceiver_params[0]["frequency"] dst_power = transceiver_params[1]["power"] dst_frequency = transceiver_params[1]["frequency"] else: src_power = transceiver_params[1]["power"] src_frequency = transceiver_params[1]["frequency"] dst_power = transceiver_params[0]["power"] dst_frequency = transceiver_params[0]["frequency"] src_router_id = rule["content"]["src-node-uuid"] src_ip_address = rule["content"]["src-ip-address"] src_ip_mask = rule["content"]["src-ip-mask"] src_vlan_id = rule["content"]["src-vlan-id"] elif rule["type"] == "CONFIG_VPNL3": service_uuid = rule["content"]["tunnel-uuid"] dst_router_id = rule["content"]["dest-node-uuid"] dst_ip_address = rule["content"]["dest-ip-address"] dst_ip_mask = rule["content"]["dest-ip-mask"] dst_vlan_id = rule["content"]["dest-vlan-id"] src = [rule["content"]["src-node-uuid"]] service_uuid = rule["content"]["tunnel-uuid"] dst = [] i = 1 while f"dest{i}-node-uuid" in rule["content"]: dst.append(rule["content"][f"dest{i}-node-uuid"]) i += 1 tfs_request = load_template(os.path.join(TEMPLATES_PATH, "IPoWDM_orchestrator.json")) tfs_request["services"][0]["service_id"]["service_uuid"]["uuid"] = service_uuid config_rules = tfs_request["services"][0]["service_config"]["config_rules"][0] src = config_rules["ipowdm"]["rule_set"]["src"] src.append({ 'uuid': src_router_id, 'ip_address': src_ip_address, 'ip_mask': src_ip_mask, 'vlan_id': src_vlan_id, 'power': src_power, 'frequency': src_frequency }) dst = config_rules["ipowdm"]["rule_set"]["dst"] dst.append({ 'uuid': dst_router_id, 'ip_address': dst_ip_address, 'ip_mask': dst_ip_mask, 'vlan_id': dst_vlan_id, 'power': dst_power, 'frequency': dst_frequency }) config_rules["ipowdm"]["rule_set"]["bw"] = bandwidth config_rules["ipowdm"]["rule_set"]["uuid"] = service_uuid config_rules["action"] = 1 config_rules["ipowdm"]["name"] = service_uuid config_rules["ipowdm"]["rule_set"]["src"] = src config_rules["ipowdm"]["rule_set"]["dst"] = dst config_rules["ipowdm"]["rule_set"]["transceiver"] = { "components": transceiver_params } config_rules["ipowdm"]["rule_set"]["l3vpn"] = rule["content"] logging.debug(f"Sending IPoWDM Service to Orchestrator: {tfs_request}") tfs_requests.append(tfs_request) Loading src/realizer/send_controller.py +1 −1 Original line number Diff line number Diff line Loading @@ -60,7 +60,7 @@ def send_controller(controller_type, requests): response = ixia_connect(requests, current_app.config["IXIA_IP"]) logging.info("Requests sent to Ixia") elif controller_type == "E2E": response = e2e_connect(requests, current_app.config["TFS_E2E"]) response = e2e_connect(requests, current_app.config["TFS_E2E_IP"]) logging.info("Requests sent to Teraflow E2E") elif controller_type == "RESTCONF": response = restconf_connect(requests, current_app.config["RESTCONF_IP"]) Loading src/utils/build_response.py +3 −1 Original line number Diff line number Diff line Loading @@ -55,7 +55,9 @@ def build_response(intent, response, controller_type = None): qos_requirements = [] # Populate response with QoS requirements and VLAN from intent slo_policy = safe_get(intent, ["ietf-network-slice-service:network-slice-services","slo-sle-templates","slo-sle-template",0,"slo-policy"]) slo_policy = safe_get(intent, ["ietf-network-slice-service:network-slice-services", "slice-service", 0, "service-slo-sle-policy", "slo-policy"]) if not slo_policy: slo_policy = safe_get(intent, ["ietf-network-slice-service:network-slice-services","slo-sle-templates","slo-sle-template",0,"slo-policy"]) or {} # Process metrics for metric in slo_policy.get("metric-bound", []): Loading Loading
src/realizer/e2e/service_types/l3ipowdm_slice.py +20 −53 Original line number Diff line number Diff line Loading @@ -87,65 +87,32 @@ def l3ipowdm_slice(rules): logging.debug(f"Sending Media Channel Service to Orchestrator: {tfs_request}") tfs_requests.append(tfs_request) elif rule["type"] == "ACTIVATE_TRANSCEIVER": params = { "router_id": rule["content"]["node-uuid"], "router_tp": rule["content"]["termination-point-uuid"], "frequency": rule["content"]["frequency-ghz"], "power": rule["content"]["tx-power-dbm"] } transceiver_params.append(params) elif rule["type"] == "CONFIG_VPNL3": src_router_id = rule["content"]["src-node-uuid"] elif rule["type"] == "XR_AGENT_ACTIVATE_TRANSCEIVER": transceiver_params = rule["content"]["components"] if src_router_id == transceiver_params[0]["router_id"]: src_power = transceiver_params[0]["power"] src_frequency = transceiver_params[0]["frequency"] dst_power = transceiver_params[1]["power"] dst_frequency = transceiver_params[1]["frequency"] else: src_power = transceiver_params[1]["power"] src_frequency = transceiver_params[1]["frequency"] dst_power = transceiver_params[0]["power"] dst_frequency = transceiver_params[0]["frequency"] src_router_id = rule["content"]["src-node-uuid"] src_ip_address = rule["content"]["src-ip-address"] src_ip_mask = rule["content"]["src-ip-mask"] src_vlan_id = rule["content"]["src-vlan-id"] elif rule["type"] == "CONFIG_VPNL3": service_uuid = rule["content"]["tunnel-uuid"] dst_router_id = rule["content"]["dest-node-uuid"] dst_ip_address = rule["content"]["dest-ip-address"] dst_ip_mask = rule["content"]["dest-ip-mask"] dst_vlan_id = rule["content"]["dest-vlan-id"] src = [rule["content"]["src-node-uuid"]] service_uuid = rule["content"]["tunnel-uuid"] dst = [] i = 1 while f"dest{i}-node-uuid" in rule["content"]: dst.append(rule["content"][f"dest{i}-node-uuid"]) i += 1 tfs_request = load_template(os.path.join(TEMPLATES_PATH, "IPoWDM_orchestrator.json")) tfs_request["services"][0]["service_id"]["service_uuid"]["uuid"] = service_uuid config_rules = tfs_request["services"][0]["service_config"]["config_rules"][0] src = config_rules["ipowdm"]["rule_set"]["src"] src.append({ 'uuid': src_router_id, 'ip_address': src_ip_address, 'ip_mask': src_ip_mask, 'vlan_id': src_vlan_id, 'power': src_power, 'frequency': src_frequency }) dst = config_rules["ipowdm"]["rule_set"]["dst"] dst.append({ 'uuid': dst_router_id, 'ip_address': dst_ip_address, 'ip_mask': dst_ip_mask, 'vlan_id': dst_vlan_id, 'power': dst_power, 'frequency': dst_frequency }) config_rules["ipowdm"]["rule_set"]["bw"] = bandwidth config_rules["ipowdm"]["rule_set"]["uuid"] = service_uuid config_rules["action"] = 1 config_rules["ipowdm"]["name"] = service_uuid config_rules["ipowdm"]["rule_set"]["src"] = src config_rules["ipowdm"]["rule_set"]["dst"] = dst config_rules["ipowdm"]["rule_set"]["transceiver"] = { "components": transceiver_params } config_rules["ipowdm"]["rule_set"]["l3vpn"] = rule["content"] logging.debug(f"Sending IPoWDM Service to Orchestrator: {tfs_request}") tfs_requests.append(tfs_request) Loading
src/realizer/send_controller.py +1 −1 Original line number Diff line number Diff line Loading @@ -60,7 +60,7 @@ def send_controller(controller_type, requests): response = ixia_connect(requests, current_app.config["IXIA_IP"]) logging.info("Requests sent to Ixia") elif controller_type == "E2E": response = e2e_connect(requests, current_app.config["TFS_E2E"]) response = e2e_connect(requests, current_app.config["TFS_E2E_IP"]) logging.info("Requests sent to Teraflow E2E") elif controller_type == "RESTCONF": response = restconf_connect(requests, current_app.config["RESTCONF_IP"]) Loading
src/utils/build_response.py +3 −1 Original line number Diff line number Diff line Loading @@ -55,7 +55,9 @@ def build_response(intent, response, controller_type = None): qos_requirements = [] # Populate response with QoS requirements and VLAN from intent slo_policy = safe_get(intent, ["ietf-network-slice-service:network-slice-services","slo-sle-templates","slo-sle-template",0,"slo-policy"]) slo_policy = safe_get(intent, ["ietf-network-slice-service:network-slice-services", "slice-service", 0, "service-slo-sle-policy", "slo-policy"]) if not slo_policy: slo_policy = safe_get(intent, ["ietf-network-slice-service:network-slice-services","slo-sle-templates","slo-sle-template",0,"slo-policy"]) or {} # Process metrics for metric in slo_policy.get("metric-bound", []): Loading