diff --git a/doc/plan.org b/doc/plan.org index f21bb38..0e75bf6 100644 --- a/doc/plan.org +++ b/doc/plan.org @@ -133,7 +133,9 @@ | | Writing down double LPM problem | | | | Removing source network support, documenting limitation | | | | Rewriting code to use multiple NAT64 destinations | | +| | New test.py v6_static_mapping tests | | | | | | +| | Again checksum errors in NDP answer | | | | | | | | | | | 2019-03-28 | Meet Laurent #4 | | @@ -317,15 +319,15 @@ p4@ubuntu:~/master-thesis$ **** Implement IPv4 side handling ***** TODO Make switch answer icmp echo request for ***** TODO Add default route for v4 hosts -**** TODO Translate ipv6 --> ipv4 with a (freely programmable) prefix +**** DONE Basis to translate ipv6 --> ipv4 with a (freely programmable) prefix; test ping6_switch ***** DONE Insert prefix into switch: v6_networks -***** TODO Support multiple ipv6 source networks: need new table w/ 2 keys! -> later +***** DONE Support multiple ipv6 source networks: need new table w/ 2 keys! -> not at the moment ***** DONE Write test.py to generate correct destination packets >>> a = ipaddress.ip_network("2001:db8::/32") >>> b = ipaddress.ip_address("10.0.0.1") >>> a[int(b)] IPv6Address('2001:db8::a00:1') -***** Using test.py, new NDP packets been seen, bur zero icmp on the outgoing side +***** DONE Using test.py, new NDP packets been seen, bur zero icmp on the outgoing side p4@ubuntu:~/master-thesis/p4app$ python test.py --method v6_static_mapping --debug INFO:main:Trying to reach 10.0.0.1 (64:ff9b::a00:1) from h1 sudo: unable to resolve host ubuntu @@ -379,21 +381,42 @@ DEBUG:main:reassambled= not at the moment +***** DONE Not sure whether we should react on router solicitation -> not at the moment - Using static routes -> should do the job -***** TODO Implement the calculation -***** TODO Sketch the flow for session handling for icmp6 w/o packet loss +***** DONE Implement the calculation +Currently offset + ip address +***** DONE Sketch the flow for session handling for icmp6 w/o packet loss - switch receives icmp6 packet for known prefix - controller needs to create session entry (?) -**** TODO Translate icmp <-> icmp6 -**** TODO Create table entry for mapping v4->v6 [net] -**** TODO Create table entry for mapping v6->v4 [net] +Not sure what I meant to do here - closing. +***** DONE Create table entry for mapping v4->v6 [net] +***** DONE Create table entry for mapping v6->v4 [net] +**** TODO Translate icmp <-> icmp6: test v6_static_mapping +***** try1: only packets on h1 + controller 2019-03-25 ++ filename=static_nat64-2019-03-25-1121-h1.pcap ++ intf=h1-eth0 ++ mx h1 tcpdump -ni h1-eth0 -w static_nat64-2019-03-25-1121-h1.pcap +tcpdump: listening on h1-eth0, link-type EN10MB (Ethernet), capture size 262144 bytes +^C10 packets captured +10 packets received by filter +0 packets dropped by kernel +DEBUG:main:reassambled=>>> +DEBUG:main:reassambled=>>> +DEBUG:main:reassambled=>>> +DEBUG:main:reassambled=>>> +DEBUG:main:reassambled=>>> + + +That looks like NDP is not working again. Why: checksum seems to be +incorrect according to wireshark. Why? Checksum is the SAME as in the +request -> probably not updated. + *** TODO Get p4 VM / vagrant running **** DONE install libvirtd-daemon **** DONE install ebtables diff --git a/p4src/static-mapping.p4 b/p4src/static-mapping.p4 index 87a1dad..7f91a7e 100644 --- a/p4src/static-mapping.p4 +++ b/p4src/static-mapping.p4 @@ -16,7 +16,7 @@ control MyIngress(inout headers hdr, inout metadata meta, inout standard_metadata_t standard_metadata) { - /********************** ACTIONS ***********************************/ + /********************** GENERAL ACTIONS ***********************************/ action drop() { mark_to_drop(); @@ -172,7 +172,7 @@ control MyIngress(inout headers hdr, /* 2. ICMP6 changes */ hdr.icmp6.type = ICMP6_NA; hdr.icmp6.code = 0; - // checksum is calculated in deparser + hdr.icmp6.checksum = 42; // checksum is calculated in deparser - marking with 42 to see whether it is calculated /* 3. icmp6/neighbor advertisement: values taken from real world answers */ hdr.icmp6_na_ns.router = 0;