diff --git a/doc/plan.org b/doc/plan.org index 96cd285..8878c0f 100644 --- a/doc/plan.org +++ b/doc/plan.org @@ -20,13 +20,17 @@ | | | | | | | | | 2019-02-28 | Meet Laurent #2 | | -| | - Setup base code | | -| | - Parser for all protocols (udp,tcp,icmp,icmp6) | | -| | - Started with icmp translation | | -| | - Investigating into IPv6 based checksums | | -| | - Some issues with python2 (ipaddr) - slowing down | | -| | - Reading into various RFCs, NDP, MLD | | -| | - Reading about multicast / trying to figure out dynamic membership | | +| | - Status | | +| | * Setup base code | | +| | * Parser for all protocols (udp,tcp,icmp,icmp6) | | +| | * Started with icmp translation | | +| | * Investigating into IPv6 based checksums | | +| | * Reading into various RFCs, NDP, MLD | | +| | * Reading about multicast / trying to figure out dynamic membership | | +| | | | +| | - Challenges | | +| | * Some issues with python2 (ipaddr) - slowing down | | +| | * Forwarded and received icmp6 packets are not "accepted" | | | | | | | | - Questions | | | | * Re-using code (lee howard) | | @@ -509,3 +513,19 @@ listening on h1-eth0, link-type EN10MB (Ethernet), capture size 262144 bytes 09:47:08.190331 IP6 2001:db8:61::1 > ff02::1:ff00:42: ICMP6, neighbor solicitation, who has 2001:db8:61::42, length 32 09:47:09.190279 IP6 2001:db8:61::1 > ff02::1:ff00:42: ICMP6, neighbor solicitation, who has 2001:db8:61::42, length 32 *** TODO special rule for ff02::1:ff00:42 + +Semi works, replies are there, but host still retries: + +p4@ubuntu:~/master-thesis$ h=1; mx h$h tcpdump -lni h$h-eth0 +sudo: unable to resolve host ubuntu +tcpdump: verbose output suppressed, use -v or -vv for full protocol decode +listening on h1-eth0, link-type EN10MB (Ethernet), capture size 262144 bytes +09:58:04.786979 IP6 2001:db8:61::1 > ff02::1:ff00:42: ICMP6, neighbor solicitation, who has 2001:db8:61::42, length 32 +09:58:04.793560 IP6 2001:db8:61::42 > 2001:db8:61::1: ICMP6, neighbor advertisement, tgt is 2001:db8:61::42, length 32 +09:58:05.786311 IP6 2001:db8:61::1 > ff02::1:ff00:42: ICMP6, neighbor solicitation, who has 2001:db8:61::42, length 32 +09:58:05.790506 IP6 2001:db8:61::42 > 2001:db8:61::1: ICMP6, neighbor advertisement, tgt is 2001:db8:61::42, length 32 +09:58:06.786254 IP6 2001:db8:61::1 > ff02::1:ff00:42: ICMP6, neighbor solicitation, who has 2001:db8:61::42, length 32 +09:58:06.792325 IP6 2001:db8:61::42 > 2001:db8:61::1: ICMP6, neighbor advertisement, tgt is 2001:db8:61::42, length 32 + + +Maybe checksums? diff --git a/p4src/checksums.p4 b/p4src/checksums.p4 index 842eedd..bc6eb06 100644 --- a/p4src/checksums.p4 +++ b/p4src/checksums.p4 @@ -26,7 +26,7 @@ control MyComputeChecksum(inout headers hdr, inout metadata meta) { { hdr.ipv6.src_addr, /* 128 */ hdr.ipv6.dst_addr, /* 128 */ - hdr.ipv6.payload_length, /* 16 bit -> should be 32 according to RFC2460 - also static number? */ + (bit<32>) hdr.ipv6.payload_length, /* 16 bit -> should be 32 according to RFC2460 - also static number? */ 24w0, /* 24 0's */ PROTO_ICMP6 /* 8 */ },