Skip to content

ipv6: Support new TSO without HBH #1329

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 6 additions & 7 deletions print-ip6.c
Original file line number Diff line number Diff line change
Expand Up @@ -466,14 +466,13 @@ ip6_print(netdissect_options *ndo, const u_char *bp, u_int length)

/*
* OK, we didn't see any extension
* header, but that means we have
* no payload, so set the length
* to the IPv6 header length,
* and change the snapshot length
* accordingly.
* header - presume TSO without a
* Jumbo Payload option.
*/
len = sizeof(struct ip6_hdr);
nd_change_snaplen(ndo, bp, len);
len = length;
if (ndo->ndo_vflag)
ND_PRINT("[real length %u, presumed TSO] ",
len);

/*
* Now subtract the length of
Expand Down
2 changes: 1 addition & 1 deletion tests/icmpv6-length-zero.out
Original file line number Diff line number Diff line change
@@ -1 +1 @@
1 2010-05-20 04:24:49.656077 IP6 fe80::25a:28ff:fe08:f150 > 6e02::41: ICMP6, length 0 (invalid)
1 2010-05-20 04:24:49.656077 IP6 fe80::25a:28ff:fe08:f150 > 6e02::41: ICMP6, neighbor advertisement, tgt is fe80:0:aa:aaaa:aaaa:aaaa:aaaa:aaaa, length 32
20 changes: 10 additions & 10 deletions tests/pim-packet-assortment-v.out
Original file line number Diff line number Diff line change
Expand Up @@ -1583,16 +1583,16 @@
Assert, cksum 0xd7b4 (correct) group=ff02::6 src=1::7 pref=0 metric=0
178 2019-07-05 17:27:40.810753 IP6 (hlim 64, next-header PIM (103), payload length 48) 10::2 > 10::1: PIMv2, length 48
Register, cksum 0xcc3c (correct), Flags [ Null ]
IP6 (class 0xc0, hlim 1, next-header PIM (103), payload length 0) 1::2 > ff02::1: [|pim]
IP6 (class 0xc0, hlim 1, next-header PIM (103), payload length 0) 1::2 > ff02::1: [real length 40, presumed TSO] [|pim]
179 2019-07-05 17:27:40.827314 IP6 (hlim 64, next-header PIM (103), payload length 48) 10::2 > 10::1: PIMv2, length 48
Register, cksum 0xcc3c (correct), Flags [ Null ]
IP6 (class 0xc0, hlim 1, next-header PIM (103), payload length 0) 1::2 > ff02::1: [|pim]
IP6 (class 0xc0, hlim 1, next-header PIM (103), payload length 0) 1::2 > ff02::1: [real length 40, presumed TSO] [|pim]
180 2019-07-05 17:27:40.843664 IP6 (hlim 64, next-header PIM (103), payload length 48) 10::2 > 10::1: PIMv2, length 48
Register, cksum 0xcc3c (correct), Flags [ Null ]
IP6 (class 0xc0, hlim 1, next-header PIM (103), payload length 0) 1::2 > ff02::1: [|pim]
IP6 (class 0xc0, hlim 1, next-header PIM (103), payload length 0) 1::2 > ff02::1: [real length 40, presumed TSO] [|pim]
181 2019-07-05 17:27:40.860071 IP6 (hlim 64, next-header PIM (103), payload length 48) 10::2 > 10::1: PIMv2, length 48
Register, cksum 0xcc3c (correct), Flags [ Null ]
IP6 (class 0xc0, hlim 1, next-header PIM (103), payload length 0) 1::2 > ff02::1: [|pim]
IP6 (class 0xc0, hlim 1, next-header PIM (103), payload length 0) 1::2 > ff02::1: [real length 40, presumed TSO] [|pim]
182 2019-07-05 17:27:40.879398 IP6 (hlim 64, next-header PIM (103), payload length 1400) 10::2 > 10::1: PIMv2, length 1400
Register, cksum 0x67ce (correct), Flags [ none ]
IP6 (hlim 64, next-header UDP (17), payload length 1352) 1::3.2468 > ff02::2.2468: [udp sum ok] UDP, length 1344
Expand All @@ -1607,16 +1607,16 @@
IP6 (hlim 64, next-header UDP (17), payload length 65487) 1::6.2468 > ff02::5.2468: UDP, length 65479
186 2019-07-05 17:27:40.957722 IP6 (hlim 64, next-header PIM (103), payload length 48) 10::2 > 10::1: PIMv2, length 48
Register, cksum 0xcc32 (correct), Flags [ Null ]
IP6 (class 0xc0, hlim 1, next-header PIM (103), payload length 0) 1::7 > ff02::6: [|pim]
IP6 (class 0xc0, hlim 1, next-header PIM (103), payload length 0) 1::7 > ff02::6: [real length 40, presumed TSO] [|pim]
187 2019-07-05 17:27:40.975732 IP6 (hlim 64, next-header PIM (103), payload length 48) 10::2 > 10::1: PIMv2, length 48
Register, cksum 0xcc32 (correct), Flags [ Null ]
IP6 (class 0xc0, hlim 1, next-header PIM (103), payload length 0) 1::7 > ff02::6: [|pim]
IP6 (class 0xc0, hlim 1, next-header PIM (103), payload length 0) 1::7 > ff02::6: [real length 40, presumed TSO] [|pim]
188 2019-07-05 17:27:40.993200 IP6 (hlim 64, next-header PIM (103), payload length 48) 10::2 > ff02::d: PIMv2, length 48
Register, cksum 0xcd31 (correct), Flags [ Null ]
IP6 (class 0xc0, hlim 1, next-header PIM (103), payload length 0) 1::8 > ff02::7: [|pim]
IP6 (class 0xc0, hlim 1, next-header PIM (103), payload length 0) 1::8 > ff02::7: [real length 40, presumed TSO] [|pim]
189 2019-07-05 17:27:56.005578 IP6 (hlim 64, next-header PIM (103), payload length 48) 10::2 > ff02::d: PIMv2, length 48
Register, cksum 0xcd2f (correct), Flags [ Null ]
IP6 (class 0xc0, hlim 1, next-header PIM (103), payload length 0) 1::9 > ff02::8: [|pim]
IP6 (class 0xc0, hlim 1, next-header PIM (103), payload length 0) 1::9 > ff02::8: [real length 40, presumed TSO] [|pim]
190 2019-07-05 17:28:11.113454 IP6 (class 0xc0, flowlabel 0xe75c5, hlim 255, next-header PIM (103), payload length 156) 1::b > 10::2: PIMv2, length 156
Register, cksum 0xde72 (correct), Flags [ none ]
IP6 (hlim 64, next-header UDP (17), payload length 108) 1::a.2468 > ff02::9.2468: [udp sum ok] UDP, length 100
Expand All @@ -1634,10 +1634,10 @@
IP6 (hlim 64, next-header UDP (17), payload length 108) 1::a.2468 > ff02::9.2468: [udp sum ok] UDP, length 100
195 2019-07-05 17:28:11.213700 IP6 (class 0xc0, flowlabel 0xfe48b, hlim 255, next-header PIM (103), payload length 48) 10::1 > 10::2: PIMv2, length 48
Register, cksum 0x9e6d (correct), Flags [ Null ]
IP6 (class 0xc0, hlim 1, next-header PIM (103), payload length 0) 1::c > ff02::a: [|pim]
IP6 (class 0xc0, hlim 1, next-header PIM (103), payload length 0) 1::c > ff02::a: [real length 40, presumed TSO] [|pim]
196 2019-07-05 17:28:11.228981 IP6 (class 0xc0, flowlabel 0xfe48b, hlim 255, next-header PIM (103), payload length 48) 10::1 > 10::2: PIMv2, length 48
Register, cksum 0x9e7e (incorrect), Flags [ Null ]
IP6 (class 0xc0, hlim 1, next-header PIM (103), payload length 0) 1::d > ff02::b: [|pim]
IP6 (class 0xc0, hlim 1, next-header PIM (103), payload length 0) 1::d > ff02::b: [real length 40, presumed TSO] [|pim]
197 2019-07-05 17:28:18.502726 IP6 (hlim 64, next-header PIM (103), payload length 42) 10::2 > 10::1: PIMv2, length 42
Register Stop, cksum 0xd9c4 (correct) group=ff02::1 source=1::2
198 2019-07-05 17:28:18.517840 IP6 (hlim 64, next-header PIM (103), payload length 42) 10::2 > 10::1: PIMv2, length 42
Expand Down
20 changes: 10 additions & 10 deletions tests/pim-packet-assortment-vv.out
Original file line number Diff line number Diff line change
Expand Up @@ -1703,16 +1703,16 @@
Assert, cksum 0xd7b4 (correct) group=ff02::6 src=1::7 pref=0 metric=0
178 2019-07-05 17:27:40.810753 IP6 (hlim 64, next-header PIM (103), payload length 48) 10::2 > 10::1: PIMv2, length 48
Register, cksum 0xcc3c (correct), Flags [ Null ]
IP6 (class 0xc0, hlim 1, next-header PIM (103), payload length 0) 1::2 > ff02::1: [|pim]
IP6 (class 0xc0, hlim 1, next-header PIM (103), payload length 0) 1::2 > ff02::1: [real length 40, presumed TSO] [|pim]
179 2019-07-05 17:27:40.827314 IP6 (hlim 64, next-header PIM (103), payload length 48) 10::2 > 10::1: PIMv2, length 48
Register, cksum 0xcc3c (correct), Flags [ Null ]
IP6 (class 0xc0, hlim 1, next-header PIM (103), payload length 0) 1::2 > ff02::1: [|pim]
IP6 (class 0xc0, hlim 1, next-header PIM (103), payload length 0) 1::2 > ff02::1: [real length 40, presumed TSO] [|pim]
180 2019-07-05 17:27:40.843664 IP6 (hlim 64, next-header PIM (103), payload length 48) 10::2 > 10::1: PIMv2, length 48
Register, cksum 0xcc3c (correct), Flags [ Null ]
IP6 (class 0xc0, hlim 1, next-header PIM (103), payload length 0) 1::2 > ff02::1: [|pim]
IP6 (class 0xc0, hlim 1, next-header PIM (103), payload length 0) 1::2 > ff02::1: [real length 40, presumed TSO] [|pim]
181 2019-07-05 17:27:40.860071 IP6 (hlim 64, next-header PIM (103), payload length 48) 10::2 > 10::1: PIMv2, length 48
Register, cksum 0xcc3c (correct), Flags [ Null ]
IP6 (class 0xc0, hlim 1, next-header PIM (103), payload length 0) 1::2 > ff02::1: [|pim]
IP6 (class 0xc0, hlim 1, next-header PIM (103), payload length 0) 1::2 > ff02::1: [real length 40, presumed TSO] [|pim]
182 2019-07-05 17:27:40.879398 IP6 (hlim 64, next-header PIM (103), payload length 1400) 10::2 > 10::1: PIMv2, length 1400
Register, cksum 0x67ce (correct), Flags [ none ]
IP6 (hlim 64, next-header UDP (17), payload length 1352) 1::3.2468 > ff02::2.2468: [udp sum ok] UDP, length 1344
Expand All @@ -1727,16 +1727,16 @@
IP6 (hlim 64, next-header UDP (17), payload length 65487) 1::6.2468 > ff02::5.2468: UDP, length 65479
186 2019-07-05 17:27:40.957722 IP6 (hlim 64, next-header PIM (103), payload length 48) 10::2 > 10::1: PIMv2, length 48
Register, cksum 0xcc32 (correct), Flags [ Null ]
IP6 (class 0xc0, hlim 1, next-header PIM (103), payload length 0) 1::7 > ff02::6: [|pim]
IP6 (class 0xc0, hlim 1, next-header PIM (103), payload length 0) 1::7 > ff02::6: [real length 40, presumed TSO] [|pim]
187 2019-07-05 17:27:40.975732 IP6 (hlim 64, next-header PIM (103), payload length 48) 10::2 > 10::1: PIMv2, length 48
Register, cksum 0xcc32 (correct), Flags [ Null ]
IP6 (class 0xc0, hlim 1, next-header PIM (103), payload length 0) 1::7 > ff02::6: [|pim]
IP6 (class 0xc0, hlim 1, next-header PIM (103), payload length 0) 1::7 > ff02::6: [real length 40, presumed TSO] [|pim]
188 2019-07-05 17:27:40.993200 IP6 (hlim 64, next-header PIM (103), payload length 48) 10::2 > ff02::d: PIMv2, length 48
Register, cksum 0xcd31 (correct), Flags [ Null ]
IP6 (class 0xc0, hlim 1, next-header PIM (103), payload length 0) 1::8 > ff02::7: [|pim]
IP6 (class 0xc0, hlim 1, next-header PIM (103), payload length 0) 1::8 > ff02::7: [real length 40, presumed TSO] [|pim]
189 2019-07-05 17:27:56.005578 IP6 (hlim 64, next-header PIM (103), payload length 48) 10::2 > ff02::d: PIMv2, length 48
Register, cksum 0xcd2f (correct), Flags [ Null ]
IP6 (class 0xc0, hlim 1, next-header PIM (103), payload length 0) 1::9 > ff02::8: [|pim]
IP6 (class 0xc0, hlim 1, next-header PIM (103), payload length 0) 1::9 > ff02::8: [real length 40, presumed TSO] [|pim]
190 2019-07-05 17:28:11.113454 IP6 (class 0xc0, flowlabel 0xe75c5, hlim 255, next-header PIM (103), payload length 156) 1::b > 10::2: PIMv2, length 156
Register, cksum 0xde72 (correct), Flags [ none ]
IP6 (hlim 64, next-header UDP (17), payload length 108) 1::a.2468 > ff02::9.2468: [udp sum ok] UDP, length 100
Expand All @@ -1754,10 +1754,10 @@
IP6 (hlim 64, next-header UDP (17), payload length 108) 1::a.2468 > ff02::9.2468: [udp sum ok] UDP, length 100
195 2019-07-05 17:28:11.213700 IP6 (class 0xc0, flowlabel 0xfe48b, hlim 255, next-header PIM (103), payload length 48) 10::1 > 10::2: PIMv2, length 48
Register, cksum 0x9e6d (correct), Flags [ Null ]
IP6 (class 0xc0, hlim 1, next-header PIM (103), payload length 0) 1::c > ff02::a: [|pim]
IP6 (class 0xc0, hlim 1, next-header PIM (103), payload length 0) 1::c > ff02::a: [real length 40, presumed TSO] [|pim]
196 2019-07-05 17:28:11.228981 IP6 (class 0xc0, flowlabel 0xfe48b, hlim 255, next-header PIM (103), payload length 48) 10::1 > 10::2: PIMv2, length 48
Register, cksum 0x9e7e (incorrect), Flags [ Null ]
IP6 (class 0xc0, hlim 1, next-header PIM (103), payload length 0) 1::d > ff02::b: [|pim]
IP6 (class 0xc0, hlim 1, next-header PIM (103), payload length 0) 1::d > ff02::b: [real length 40, presumed TSO] [|pim]
197 2019-07-05 17:28:18.502726 IP6 (hlim 64, next-header PIM (103), payload length 42) 10::2 > 10::1: PIMv2, length 42
Register Stop, cksum 0xd9c4 (correct) group=ff02::1 source=1::2
198 2019-07-05 17:28:18.517840 IP6 (hlim 64, next-header PIM (103), payload length 42) 10::2 > 10::1: PIMv2, length 42
Expand Down