diff --git a/print-ip6.c b/print-ip6.c index 269b41fb2..514d44819 100644 --- a/print-ip6.c +++ b/print-ip6.c @@ -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 diff --git a/tests/icmpv6-length-zero.out b/tests/icmpv6-length-zero.out index 5e392cb01..f67376a77 100644 --- a/tests/icmpv6-length-zero.out +++ b/tests/icmpv6-length-zero.out @@ -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 diff --git a/tests/pim-packet-assortment-v.out b/tests/pim-packet-assortment-v.out index 61c6f28b2..590767a36 100644 --- a/tests/pim-packet-assortment-v.out +++ b/tests/pim-packet-assortment-v.out @@ -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 @@ -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 @@ -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 diff --git a/tests/pim-packet-assortment-vv.out b/tests/pim-packet-assortment-vv.out index 06d18a32f..d953ffa49 100644 --- a/tests/pim-packet-assortment-vv.out +++ b/tests/pim-packet-assortment-vv.out @@ -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 @@ -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 @@ -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