Introduce mixed mode NDP/ICMP6 echo reply
- Controller: NDP - Switch: icmp6 echo reply
This commit is contained in:
parent
a0acd719e7
commit
e0a9d28606
2 changed files with 34 additions and 20 deletions
47
doc/plan.org
47
doc/plan.org
|
@ -63,31 +63,40 @@
|
||||||
| | - test with host | |
|
| | - test with host | |
|
||||||
| | | |
|
| | | |
|
||||||
| 2019-03-06 | Meet Laurent #3 | |
|
| 2019-03-06 | Meet Laurent #3 | |
|
||||||
| | - Checksum's in scapy | |
|
| | - Checksum's in scapy | x |
|
||||||
| | - Python2 ipaddress fix (import future) | |
|
| | - Python2 ipaddress fix (import future) | x |
|
||||||
| | - Added custom package format / additional information in packet | |
|
| | - Added custom package format / additional information in packet | x |
|
||||||
| | - (partial) NDP working in controller | |
|
| | - (partial) NDP working in controller | x |
|
||||||
| | - P4 checksum_with_payload | |
|
| | - P4 checksum_with_payload | x |
|
||||||
| | - Reading scapy / inet6 | |
|
| | - Reading scapy / inet6 | x |
|
||||||
| | - Further checksum tests -> required everywhere in IPv6 | |
|
| | - Further checksum tests -> required everywhere in IPv6 | x |
|
||||||
| | - icmp6 echo request working in controller | |
|
| | - icmp6 echo request working in controller | x |
|
||||||
| | - Hosts can ping6 the switch | |
|
| | - Hosts can ping6 the switch | x |
|
||||||
| | - Ran into P4 casting bug: https://github.com/p4lang/p4c/issues/1765 | |
|
| | - Ran into P4 casting bug: https://github.com/p4lang/p4c/issues/1765 | x |
|
||||||
| | -> seems to be more than just casting bug | |
|
| | -> seems to be more than just casting bug | x |
|
||||||
| | - Default route for ipv6 hosts | |
|
| | - Default route for ipv6 hosts | x |
|
||||||
| | | |
|
| | | |
|
||||||
| | Next target: | |
|
| | Next target: | |
|
||||||
| | - Focus on enabling the "Internet" with ICMP6 translation | |
|
| | - Focus on enabling the "Internet" with ICMP6 translation | x |
|
||||||
| | | |
|
| | | |
|
||||||
| | Next steps: | |
|
| | Next steps: | |
|
||||||
| | - Investigate again into checksumming with payload in P4 | |
|
| | - Investigate again into checksumming with payload in P4 | x |
|
||||||
| | - Answering icmp6 echo request *in* in the switch | |
|
| | - Answering icmp6 echo request *in* in the switch | x |
|
||||||
| | - Translate icmp6 to icmp | |
|
| | - Translate icmp6 to icmp | x |
|
||||||
| | - Translate icmp to icmp6 | |
|
| | - Translate icmp to icmp6 | |
|
||||||
| | - Multiple branches: | |
|
| | - Multiple branches: | x |
|
||||||
| | * Work on checksumming / p4 | |
|
| | * Work on checksumming / p4 | x |
|
||||||
| | * Work on metadata passing / p4 | |
|
| | * Work on metadata passing / p4 | x |
|
||||||
| | * Work on static mapping (w/ incorrect checksum) 1:1 | |
|
| | * 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 | |
|
| 2019-03-08 | NAT64 1:1 table ICMP, ICMPv6 working | |
|
||||||
|
|
|
@ -175,13 +175,18 @@ class L2Controller(object):
|
||||||
|
|
||||||
self.controller.table_clear("v6_addresses")
|
self.controller.table_clear("v6_addresses")
|
||||||
for v6addr in self.v6_addresses[self.mode]:
|
for v6addr in self.v6_addresses[self.mode]:
|
||||||
|
log.debug("Adding v6 address: {}".format(v6addr))
|
||||||
|
|
||||||
icmp6_addr = self.gen_ndp_multicast_addr(v6addr)
|
icmp6_addr = self.gen_ndp_multicast_addr(v6addr)
|
||||||
|
|
||||||
another_addr = v6addr +1
|
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(v6addr)], [str(self.task['ICMP6_GENERAL'])])
|
||||||
self.controller.table_add("v6_addresses", "controller_reply", [str(icmp6_addr)], [str(self.task['ICMP6_NS'])])
|
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)])
|
self.controller.table_add("v6_addresses", "icmp6_echo_reply", [str(another_addr)])
|
||||||
|
|
||||||
def config_hosts(self):
|
def config_hosts(self):
|
||||||
|
|
Loading…
Reference in a new issue