Check how wrapping is done in P4

This commit is contained in:
Nico Schottelius 2019-07-16 11:53:00 +02:00
commit 1a39c35e3b
4 changed files with 133 additions and 1 deletions

View file

@ -5274,6 +5274,40 @@ Still using scapy + adjusted diff:
gets
sum 0xc5f2 (incorrect -> 0xe7cf)
*** 2019-07-16: pcap for debugging tcp
pcap/tcp-udp-delta-2019-07-15-1454-h3.pcap
pcap/tcp-udp-delta-2019-07-15-1454-h1.pcap
*** 2019-07-16: pcap for debugging udp
pcap/tcp-udp-delta-2019-07-16-0856-h3.pcap
pcap/tcp-udp-delta-2019-07-16-0856-h1.pcap
*** 2019-07-16: testing with udp
- suspicion: missing some cases in tcp6
#+BEGIN_CENTER
p4@ubuntu:~$ mx h1 "echo V6-OK | socat - UDP6-LISTEN:2342"
p4@ubuntu:~/master-thesis/bin$ mx h3 "echo V4-OK | socat - UDP:10.1.1.1:2342"
#+END_CENTER
08:57:19.998299 IP6 (hlim 64, next-header UDP (17) payload length: 14)
2001:db8:1::a00:1.59997 > 2001:db8::1.2342: [bad udp cksum 0xd84c ->
0xd84b!] UDP, length 6
**** DONE Result: arp (partly?) missing?
CLOSED: [2019-07-16 Tue 11:00]
**** TODO Result: udp checksum wrong
- should be: 0xd84b
- is: 0xd84c
My code is +1 too high
*** DONE 2019-07-16: understood scapy code
CLOSED: [2019-07-16 Tue 11:25]
meta.v6sum = (bit<16>) ((((tmp>>8) & 0xff)|tmp<<8) & 0xffff) ;
This is used to correct endianness!
-> not needed in our case
** The NetPFGA saga
Problems encountered: