diff --git a/doc/plan.org b/doc/plan.org index e94c57d..00138b3 100644 --- a/doc/plan.org +++ b/doc/plan.org @@ -63,31 +63,40 @@ | | - test with host | | | | | | | 2019-03-06 | Meet Laurent #3 | | -| | - Checksum's in scapy | | -| | - Python2 ipaddress fix (import future) | | -| | - Added custom package format / additional information in packet | | -| | - (partial) NDP working in controller | | -| | - P4 checksum_with_payload | | -| | - Reading scapy / inet6 | | -| | - Further checksum tests -> required everywhere in IPv6 | | -| | - icmp6 echo request working in controller | | -| | - Hosts can ping6 the switch | | -| | - Ran into P4 casting bug: https://github.com/p4lang/p4c/issues/1765 | | -| | -> seems to be more than just casting bug | | -| | - Default route for ipv6 hosts | | +| | - Checksum's in scapy | x | +| | - Python2 ipaddress fix (import future) | x | +| | - Added custom package format / additional information in packet | x | +| | - (partial) NDP working in controller | x | +| | - P4 checksum_with_payload | x | +| | - Reading scapy / inet6 | x | +| | - Further checksum tests -> required everywhere in IPv6 | x | +| | - icmp6 echo request working in controller | x | +| | - Hosts can ping6 the switch | x | +| | - Ran into P4 casting bug: https://github.com/p4lang/p4c/issues/1765 | x | +| | -> seems to be more than just casting bug | x | +| | - Default route for ipv6 hosts | x | | | | | | | Next target: | | -| | - Focus on enabling the "Internet" with ICMP6 translation | | +| | - Focus on enabling the "Internet" with ICMP6 translation | x | | | | | | | Next steps: | | -| | - Investigate again into checksumming with payload in P4 | | -| | - Answering icmp6 echo request *in* in the switch | | -| | - Translate icmp6 to icmp | | +| | - Investigate again into checksumming with payload in P4 | x | +| | - Answering icmp6 echo request *in* in the switch | x | +| | - Translate icmp6 to icmp | x | | | - Translate icmp to icmp6 | | -| | - Multiple branches: | | -| | * Work on checksumming / p4 | | -| | * Work on metadata passing / p4 | | +| | - Multiple branches: | x | +| | * Work on checksumming / p4 | x | +| | * Work on metadata passing / p4 | x | | | * Work on static mapping (w/ incorrect checksum) 1:1 | | +| | * v1model/ | | +| | | | +| | Notes: | | +| | * Edgar back on Friday // check tofino checksumming | | +| | * Bugs mentioning in thesis | | +| | * Maybe run static mapping on tofino / p4_14 | | +| | * Tofino p4_16: alpha compiler | | +| | * Send recap / mail next week | | +| | * week after 1130 Thursday | | | | | | | | | | | 2019-03-08 | NAT64 1:1 table ICMP, ICMPv6 working | | diff --git a/p4app/controller.py b/p4app/controller.py index ff19485..c9e32c8 100644 --- a/p4app/controller.py +++ b/p4app/controller.py @@ -175,13 +175,18 @@ class L2Controller(object): self.controller.table_clear("v6_addresses") for v6addr in self.v6_addresses[self.mode]: + log.debug("Adding v6 address: {}".format(v6addr)) + icmp6_addr = self.gen_ndp_multicast_addr(v6addr) + another_addr = v6addr +1 + another_addr_ns = self.gen_ndp_multicast_addr(another_addr) self.controller.table_add("v6_addresses", "controller_reply", [str(v6addr)], [str(self.task['ICMP6_GENERAL'])]) self.controller.table_add("v6_addresses", "controller_reply", [str(icmp6_addr)], [str(self.task['ICMP6_NS'])]) - # Experimental + # Experimental: controller does NDP, switch does ICMP6 echo reply + self.controller.table_add("v6_addresses", "controller_reply", [str(another_addr_ns)], [str(self.task['ICMP6_NS'])]) self.controller.table_add("v6_addresses", "icmp6_echo_reply", [str(another_addr)]) def config_hosts(self):