Loading TODO.mddeleted 100644 → 0 +0 −27 Original line number Diff line number Diff line # Composition of rules is wrong: # Extraction of path_endpoints_data is wrong (only hosts have IP addresses, not switch endpoints) [2026-01-16 11:10:32,567] DEBUG:service.service.service_handlers.l3nm_ryu.L3NMRyuServiceHandler:path_endpoints_data = [ EndpointData(device_uuid='a2f2519b-3c76-5f1e-99c7-cc2bbf815eec', device_name='0000000000000002', endpoint_uuid='31de35db-effb-5d6b-bdfd-bac0d92a2b10', endpoint_name='s2-eth3', ipv4_address=None), EndpointData(device_uuid='a2f2519b-3c76-5f1e-99c7-cc2bbf815eec', device_name='0000000000000002', endpoint_uuid='20b5dd4c-7f8b-5e2e-8cec-bca59a02dc91', endpoint_name='s2-eth1', ipv4_address=None), EndpointData(device_uuid='995a62fc-2b2f-5d35-a0bb-c5a7dd22e892', device_name='0000000000000001', endpoint_uuid='64e20c15-6e1f-52a7-8781-40f3011035e3', endpoint_name='s1-eth1', ipv4_address=None), EndpointData(device_uuid='995a62fc-2b2f-5d35-a0bb-c5a7dd22e892', device_name='0000000000000001', endpoint_uuid='19e1437c-dd53-52a9-b343-bff16aecf144', endpoint_name='s1-eth2', ipv4_address=None), EndpointData(device_uuid='b52aaf41-0c5a-55f2-a66e-eb42c1153a96', device_name='0000000000000005', endpoint_uuid='9087d978-e931-5443-b383-8585d17a1142', endpoint_name='s5-eth2', ipv4_address=None), EndpointData(device_uuid='b52aaf41-0c5a-55f2-a66e-eb42c1153a96', device_name='0000000000000005', endpoint_uuid='e66f7077-8edf-54e6-b300-ac1daf2ca769', endpoint_name='s5-eth3', ipv4_address=None) ] [2026-01-16 11:10:32,568] DEBUG:service.service.service_handlers.l3nm_ryu.L3NMRyuServiceHandler:Ctrl: RYU [2026-01-16 11:10:32,568] DEBUG:service.service.service_handlers.l3nm_ryu.L3NMRyuServiceHandler:Forward Config Rule: { "action": "CONFIGACTION_SET", "custom": { "resource_key": "/device[s2]/flow[0000000000000002-0000000000000005]", "resource_value": { "dpid": "0000000000000002", "dst-ip-addr": null, "in-port": "s2-eth3", "out-port": "s5-eth3", "src-ip-addr": null }}} [2026-01-16 11:10:32,569] DEBUG:service.service.service_handlers.l3nm_ryu.L3NMRyuServiceHandler:Reverse Config Rule: { "action": "CONFIGACTION_SET", "custom": {"resource_key": "/device[s2]/flow[0000000000000005-0000000000000002]", "resource_value": { "dpid": "0000000000000002", "dst-ip-addr": null, "in-port": "s5-eth3", "out-port": "s2-eth3", "src-ip-addr": null }}} - flow_rule_name should be based on host names, e.g., hX-hY, not DPID[i]-DPID[i+1] - src/dst-ip-addr not extracted for settings - in/out-port should be per hop, not end-to-end src/service/service/service_handlers/l3nm_ryu/L3NMRyuServiceHandler.py +1 −1 Original line number Diff line number Diff line Loading @@ -111,7 +111,7 @@ class ServiceData: def get_ip_addresses(self, reverse : bool = False) -> Tuple[str, str]: ipv4_addresses = [self.src_ipv4_address, self.dst_ipv4_address] if reverse: ipv4_addresses = list(reversed(ipv4_addresses)) return '-'.join(ipv4_addresses) return ipv4_addresses def compose_flow_rule( Loading Loading
TODO.mddeleted 100644 → 0 +0 −27 Original line number Diff line number Diff line # Composition of rules is wrong: # Extraction of path_endpoints_data is wrong (only hosts have IP addresses, not switch endpoints) [2026-01-16 11:10:32,567] DEBUG:service.service.service_handlers.l3nm_ryu.L3NMRyuServiceHandler:path_endpoints_data = [ EndpointData(device_uuid='a2f2519b-3c76-5f1e-99c7-cc2bbf815eec', device_name='0000000000000002', endpoint_uuid='31de35db-effb-5d6b-bdfd-bac0d92a2b10', endpoint_name='s2-eth3', ipv4_address=None), EndpointData(device_uuid='a2f2519b-3c76-5f1e-99c7-cc2bbf815eec', device_name='0000000000000002', endpoint_uuid='20b5dd4c-7f8b-5e2e-8cec-bca59a02dc91', endpoint_name='s2-eth1', ipv4_address=None), EndpointData(device_uuid='995a62fc-2b2f-5d35-a0bb-c5a7dd22e892', device_name='0000000000000001', endpoint_uuid='64e20c15-6e1f-52a7-8781-40f3011035e3', endpoint_name='s1-eth1', ipv4_address=None), EndpointData(device_uuid='995a62fc-2b2f-5d35-a0bb-c5a7dd22e892', device_name='0000000000000001', endpoint_uuid='19e1437c-dd53-52a9-b343-bff16aecf144', endpoint_name='s1-eth2', ipv4_address=None), EndpointData(device_uuid='b52aaf41-0c5a-55f2-a66e-eb42c1153a96', device_name='0000000000000005', endpoint_uuid='9087d978-e931-5443-b383-8585d17a1142', endpoint_name='s5-eth2', ipv4_address=None), EndpointData(device_uuid='b52aaf41-0c5a-55f2-a66e-eb42c1153a96', device_name='0000000000000005', endpoint_uuid='e66f7077-8edf-54e6-b300-ac1daf2ca769', endpoint_name='s5-eth3', ipv4_address=None) ] [2026-01-16 11:10:32,568] DEBUG:service.service.service_handlers.l3nm_ryu.L3NMRyuServiceHandler:Ctrl: RYU [2026-01-16 11:10:32,568] DEBUG:service.service.service_handlers.l3nm_ryu.L3NMRyuServiceHandler:Forward Config Rule: { "action": "CONFIGACTION_SET", "custom": { "resource_key": "/device[s2]/flow[0000000000000002-0000000000000005]", "resource_value": { "dpid": "0000000000000002", "dst-ip-addr": null, "in-port": "s2-eth3", "out-port": "s5-eth3", "src-ip-addr": null }}} [2026-01-16 11:10:32,569] DEBUG:service.service.service_handlers.l3nm_ryu.L3NMRyuServiceHandler:Reverse Config Rule: { "action": "CONFIGACTION_SET", "custom": {"resource_key": "/device[s2]/flow[0000000000000005-0000000000000002]", "resource_value": { "dpid": "0000000000000002", "dst-ip-addr": null, "in-port": "s5-eth3", "out-port": "s2-eth3", "src-ip-addr": null }}} - flow_rule_name should be based on host names, e.g., hX-hY, not DPID[i]-DPID[i+1] - src/dst-ip-addr not extracted for settings - in/out-port should be per hop, not end-to-end
src/service/service/service_handlers/l3nm_ryu/L3NMRyuServiceHandler.py +1 −1 Original line number Diff line number Diff line Loading @@ -111,7 +111,7 @@ class ServiceData: def get_ip_addresses(self, reverse : bool = False) -> Tuple[str, str]: ipv4_addresses = [self.src_ipv4_address, self.dst_ipv4_address] if reverse: ipv4_addresses = list(reversed(ipv4_addresses)) return '-'.join(ipv4_addresses) return ipv4_addresses def compose_flow_rule( Loading