Re: [regression] 2.6.37+ commit 0363466866d9.... breaks tcp ipv6

Hans de Bruin
2011-01-21T19:46:58Z

[-- Attachment #1: Type: text/plain, Size: 815 bytes --]

On 01/18/2011 11:03 PM, Eric Dumazet wrote:
> Le mardi 18 janvier 2011 à 22:42 +0100, Hans de Bruin a écrit :
>> On 01/18/2011 09:06 PM, Jesse Gross wrote:

...

> You could try "tcpdump -i eth0 ip6 -v"
>
> I guess you receive frames with bad checksums

While you where staring at the code, I was fooling around with tcpdump.
And while the problem is fixed, I still have some questions:

Is there tool which shows whether a nic supports ipv6 checksum offload
or not?

I have captured http traffic (wget http://bootes/) between psion (my git
tree following laptop) and bootes (something running 2.6.33.7).
Attached is a capture with psion running 2.6.37 and one with this
morning's git tree. Wat's with the 'chsum ... ( incorrect -> ' lines ?
ifconfig does not show errors on either of the machines.

--
Hans

[-- Attachment #2: dump.bootes.37 --]
[-- Type: text/plain, Size: 3902 bytes --]

20:16:18.258004 IP6 (hlim 255, next-header ICMPv6 (58) payload length: 56) fe80::230:18ff:feae:75d8 > ff02::1: ICMP6, router advertisement, length 56
hop limit 64, Flags [none], pref medium, router lifetime 30s, reachable time 0s, retrans time 0s[ndp opt]
20:16:18.288694 IP6 (hlim 255, next-header ICMPv6 (58) payload length: 32) psion.system > ff02::1:ff00:2: [icmp6 sum ok] ICMP6, neighbor solicitation, length 32, who has orion.system
source link-address option (1), length 8 (1): 00:1c:23:2d:73:87
20:16:19.028550 IP6 (hlim 255, next-header ICMPv6 (58) payload length: 32) psion.system > ff02::1:ff00:7: [icmp6 sum ok] ICMP6, neighbor solicitation, length 32, who has bootes.system
source link-address option (1), length 8 (1): 00:1c:23:2d:73:87
20:16:19.028665 IP6 (hlim 255, next-header ICMPv6 (58) payload length: 32) bootes.system > psion.system: [icmp6 sum ok] ICMP6, neighbor advertisement, length 32, tgt is bootes.system, Flags [router, solicited, override]
destination link-address option (2), length 8 (1): 00:30:18:a8:89:7a
20:16:19.029000 IP6 (hlim 64, next-header TCP (6) payload length: 40) psion.system.56503 > bootes.system.http: Flags [S], seq 4077389508, win 4320, options [mss 1440,sackOK,TS val 131831 ecr 0,[|tcp]>
20:16:19.029122 IP6 (hlim 64, next-header TCP (6) payload length: 40) bootes.system.http > psion.system.56503: Flags [S.], seq 2926278613, ack 4077389509, win 5712, options [mss 1440,sackOK,TS val 1831852795 ecr 131831,[|tcp]>
20:16:19.029780 IP6 (hlim 64, next-header TCP (6) payload length: 32) psion.system.56503 > bootes.system.http: Flags [.], cksum 0x3b67 (correct), ack 1, win 68, options [nop,nop,TS val 131832 ecr 1831852795], length 0
20:16:19.029821 IP6 (hlim 64, next-header TCP (6) payload length: 136) psion.system.56503 > bootes.system.http: Flags [P.], ack 1, win 68, options [nop,nop,TS val 131832 ecr 1831852795], length 104
20:16:19.029901 IP6 (hlim 64, next-header TCP (6) payload length: 32) bootes.system.http > psion.system.56503: Flags [.], cksum 0x3b15 (correct), ack 105, win 45, options [nop,nop,TS val 1831852796 ecr 131832], length 0
20:16:19.041170 IP6 (hlim 64, next-header TCP (6) payload length: 1460) bootes.system.http > psion.system.56503: Flags [.], ack 105, win 45, options [nop,nop,TS val 1831852808 ecr 131832], length 1428
20:16:19.041238 IP6 (hlim 64, next-header TCP (6) payload length: 679) bootes.system.http > psion.system.56503: Flags [P.], ack 105, win 45, options [nop,nop,TS val 1831852808 ecr 131832], length 647
20:16:19.042492 IP6 (hlim 64, next-header TCP (6) payload length: 32) psion.system.56503 > bootes.system.http: Flags [.], cksum 0x352e (correct), ack 1429, win 113, options [nop,nop,TS val 131835 ecr 1831852808], length 0
20:16:19.042564 IP6 (hlim 64, next-header TCP (6) payload length: 32) psion.system.56503 > bootes.system.http: Flags [.], cksum 0x327b (correct), ack 2076, win 157, options [nop,nop,TS val 131835 ecr 1831852808], length 0
20:16:19.051735 IP6 (hlim 64, next-header TCP (6) payload length: 32) psion.system.56503 > bootes.system.http: Flags [F.], cksum 0x3278 (correct), seq 105, ack 2076, win 157, options [nop,nop,TS val 131837 ecr 1831852808], length 0
20:16:19.051882 IP6 (hlim 64, next-header TCP (6) payload length: 32) bootes.system.http > psion.system.56503: Flags [F.], cksum 0x32dd (correct), seq 2076, ack 106, win 45, options [nop,nop,TS val 1831852818 ecr 131837], length 0
20:16:19.052234 IP6 (hlim 64, next-header TCP (6) payload length: 32) psion.system.56503 > bootes.system.http: Flags [.], cksum 0x326d (correct), ack 2077, win 157, options [nop,nop,TS val 131837 ecr 1831852818], length 0
20:16:22.668566 IP6 (hlim 255, next-header ICMPv6 (58) payload length: 56) fe80::230:18ff:feae:75d8 > ff02::1: ICMP6, router advertisement, length 56
hop limit 64, Flags [none], pref medium, router lifetime 30s, reachable time 0s, retrans time 0s[ndp opt]

[-- Attachment #3: dump.bootes.git --]
[-- Type: text/plain, Size: 2901 bytes --]

20:22:35.329370 IP6 (hlim 255, next-header ICMPv6 (58) payload length: 56) fe80::230:18ff:feae:75d8 > ff02::1: ICMP6, router advertisement, length 56
hop limit 64, Flags [none], pref medium, router lifetime 30s, reachable time 0s, retrans time 0s[ndp opt]
20:22:37.760934 IP6 (hlim 64, next-header TCP (6) payload length: 40) psion.system.56995 > bootes.system.http: Flags [S], seq 531795977, win 14400, options [mss 1440,sackOK,TS val 4294944543 ecr 0,[|tcp]>
20:22:37.761054 IP6 (hlim 64, next-header TCP (6) payload length: 40) bootes.system.http > psion.system.56995: Flags [S.], seq 3711662312, ack 531795978, win 5712, options [mss 1440,sackOK,TS val 1832231527 ecr 4294944543,[|tcp]>
20:22:37.761441 IP6 (hlim 64, next-header TCP (6) payload length: 32) psion.system.56995 > bootes.system.http: Flags [.], cksum 0xe774 (correct), ack 1, win 225, options [nop,nop,TS val 4294944543 ecr 1832231527], length 0
20:22:37.761871 IP6 (hlim 64, next-header TCP (6) payload length: 136) psion.system.56995 > bootes.system.http: Flags [P.], ack 1, win 225, options [nop,nop,TS val 4294944543 ecr 1832231527], length 104
20:22:37.761958 IP6 (hlim 64, next-header TCP (6) payload length: 32) bootes.system.http > psion.system.56995: Flags [.], cksum 0xe7bf (correct), ack 105, win 45, options [nop,nop,TS val 1832231528 ecr 4294944543], length 0
20:22:37.767415 IP6 (hlim 64, next-header TCP (6) payload length: 1460) bootes.system.http > psion.system.56995: Flags [.], ack 105, win 45, options [nop,nop,TS val 1832231534 ecr 4294944543], length 1428
20:22:37.767476 IP6 (hlim 64, next-header TCP (6) payload length: 679) bootes.system.http > psion.system.56995: Flags [P.], ack 105, win 45, options [nop,nop,TS val 1832231534 ecr 4294944543], length 647
20:22:37.768236 IP6 (hlim 64, next-header TCP (6) payload length: 32) psion.system.56995 > bootes.system.http: Flags [.], cksum 0xe142 (correct), ack 1429, win 270, options [nop,nop,TS val 4294944545 ecr 1832231534], length 0
20:22:37.768293 IP6 (hlim 64, next-header TCP (6) payload length: 32) psion.system.56995 > bootes.system.http: Flags [.], cksum 0xde8e (correct), ack 2076, win 315, options [nop,nop,TS val 4294944545 ecr 1832231534], length 0
20:22:37.781697 IP6 (hlim 64, next-header TCP (6) payload length: 32) psion.system.56995 > bootes.system.http: Flags [F.], cksum 0xde8a (correct), seq 105, ack 2076, win 315, options [nop,nop,TS val 4294944548 ecr 1832231534], length 0
20:22:37.781854 IP6 (hlim 64, next-header TCP (6) payload length: 32) bootes.system.http > psion.system.56995: Flags [F.], cksum 0xdf89 (correct), seq 2076, ack 106, win 45, options [nop,nop,TS val 1832231548 ecr 4294944548], length 0
20:22:37.782421 IP6 (hlim 64, next-header TCP (6) payload length: 32) psion.system.56995 > bootes.system.http: Flags [.], cksum 0xde7b (correct), ack 2077, win 315, options [nop,nop,TS val 4294944548 ecr 1832231548], length 0

[-- Attachment #4: dump.psion.37 --]
[-- Type: text/plain, Size: 6361 bytes --]

20:17:22.849151 IP6 (hlim 255, next-header ICMPv6 (58) payload length: 56) fe80::230:18ff:feae:75d8 > ff02::1: ICMP6, router advertisement, length 56
hop limit 64, Flags [none], pref medium, router lifetime 30s, reachable time 0s, retrans time 0s[ndp opt]
20:17:22.879242 IP6 (hlim 255, next-header ICMPv6 (58) payload length: 32) psion.system > ff02::1:ff00:2: [icmp6 sum ok] ICMP6, neighbor solicitation, length 32, who has orion.system
source link-address option (1), length 8 (1): 00:1c:23:2d:73:87
20:17:22.880017 IP6 (hlim 255, next-header ICMPv6 (58) payload length: 32) orion.system > psion.system: [icmp6 sum ok] ICMP6, neighbor advertisement, length 32, tgt is orion.system, Flags [solicited, override]
destination link-address option (2), length 8 (1): 00:16:3e:00:00:02
20:17:22.880053 IP6 (hlim 64, next-header UDP (17) payload length: 98) psion.system.47203 > orion.system.domain: 41124+[|domain]
20:17:22.881325 IP6 (hlim 64, next-header UDP (17) payload length: 159) orion.system.domain > psion.system.47203: 41124 NXDomain[|domain]
20:17:22.883634 IP6 (hlim 64, next-header UDP (17) payload length: 98) psion.system.34461 > orion.system.domain: 63069+[|domain]
20:17:22.884987 IP6 (hlim 64, next-header UDP (17) payload length: 133) orion.system.domain > psion.system.34461: 63069 NXDomain*[|domain]
20:17:22.887354 IP6 (hlim 64, next-header UDP (17) payload length: 98) psion.system.46516 > orion.system.domain: 55721+[|domain]
20:17:22.888798 IP6 (hlim 64, next-header UDP (17) payload length: 159) orion.system.domain > psion.system.46516: 55721 NXDomain[|domain]
20:17:22.890306 IP6 (hlim 64, next-header UDP (17) payload length: 98) psion.system.46047 > orion.system.domain: 17153+[|domain]
20:17:22.891585 IP6 (hlim 64, next-header UDP (17) payload length: 188) orion.system.domain > psion.system.46047: 17153*[|domain]
20:17:22.893211 IP6 (hlim 64, next-header UDP (17) payload length: 98) psion.system.43776 > orion.system.domain: 1636+[|domain]
20:17:22.894542 IP6 (hlim 64, next-header UDP (17) payload length: 182) orion.system.domain > psion.system.43776: 1636*[|domain]
20:17:23.615864 IP6 (hlim 64, next-header UDP (17) payload length: 39) psion.system.43964 > orion.system.domain: 55214+[|domain]
20:17:23.616979 IP6 (hlim 64, next-header UDP (17) payload length: 97) orion.system.domain > psion.system.43964: 55214* 1/1/1 [|domain]
20:17:23.617211 IP6 (hlim 64, next-header UDP (17) payload length: 39) psion.system.47968 > orion.system.domain: 41048+[|domain]
20:17:23.618338 IP6 (hlim 64, next-header UDP (17) payload length: 97) orion.system.domain > psion.system.47968: 41048* 1/1/1 [|domain]
20:17:23.619254 IP6 (hlim 255, next-header ICMPv6 (58) payload length: 32) psion.system > ff02::1:ff00:7: [icmp6 sum ok] ICMP6, neighbor solicitation, length 32, who has bootes.system
source link-address option (1), length 8 (1): 00:1c:23:2d:73:87
20:17:23.619739 IP6 (hlim 255, next-header ICMPv6 (58) payload length: 32) bootes.system > psion.system: [icmp6 sum ok] ICMP6, neighbor advertisement, length 32, tgt is bootes.system, Flags [router, solicited, override]
destination link-address option (2), length 8 (1): 00:30:18:a8:89:7a
20:17:23.619758 IP6 (hlim 64, next-header TCP (6) payload length: 40) psion.system.56503 > bootes.system.http: Flags [S], seq 4077389508, win 4320, options [mss 1440,sackOK,TS val 131831 ecr 0,[|tcp]>
20:17:23.620289 IP6 (hlim 64, next-header TCP (6) payload length: 40) bootes.system.http > psion.system.56503: Flags [S.], seq 2926278613, ack 4077389509, win 5712, options [mss 1440,sackOK,TS val 1831852795 ecr 131831,[|tcp]>
20:17:23.620325 IP6 (hlim 64, next-header TCP (6) payload length: 32) psion.system.56503 > bootes.system.http: Flags [.], cksum 0xf2fb (incorrect -> 0x3b67), ack 1, win 68, options [nop,nop,TS val 131832 ecr 1831852795], length 0
20:17:23.620423 IP6 (hlim 64, next-header TCP (6) payload length: 136) psion.system.56503 > bootes.system.http: Flags [P.], ack 1, win 68, options [nop,nop,TS val 131832 ecr 1831852795], length 104
20:17:23.621055 IP6 (hlim 64, next-header TCP (6) payload length: 32) bootes.system.http > psion.system.56503: Flags [.], cksum 0x3b15 (correct), ack 105, win 45, options [nop,nop,TS val 1831852796 ecr 131832], length 0
20:17:23.621328 IP6 (hlim 64, next-header UDP (17) payload length: 98) psion.system.44443 > orion.system.domain: 48669+[|domain]
20:17:23.622786 IP6 (hlim 64, next-header UDP (17) payload length: 159) orion.system.domain > psion.system.44443: 48669 NXDomain[|domain]
20:17:23.624060 IP6 (hlim 64, next-header UDP (17) payload length: 98) psion.system.41904 > orion.system.domain: 13668+[|domain]
20:17:23.625741 IP6 (hlim 64, next-header UDP (17) payload length: 189) orion.system.domain > psion.system.41904: 13668*[|domain]
20:17:23.633020 IP6 (hlim 64, next-header TCP (6) payload length: 1460) bootes.system.http > psion.system.56503: Flags [.], ack 105, win 45, options [nop,nop,TS val 1831852808 ecr 131832], length 1428
20:17:23.633076 IP6 (hlim 64, next-header TCP (6) payload length: 32) psion.system.56503 > bootes.system.http: Flags [.], cksum 0xf2fb (incorrect -> 0x352e), ack 1429, win 113, options [nop,nop,TS val 131835 ecr 1831852808], length 0
20:17:23.633090 IP6 (hlim 64, next-header TCP (6) payload length: 679) bootes.system.http > psion.system.56503: Flags [P.], ack 105, win 45, options [nop,nop,TS val 1831852808 ecr 131832], length 647
20:17:23.633107 IP6 (hlim 64, next-header TCP (6) payload length: 32) psion.system.56503 > bootes.system.http: Flags [.], cksum 0xf2fb (incorrect -> 0x327b), ack 2076, win 157, options [nop,nop,TS val 131835 ecr 1831852808], length 0
20:17:23.642284 IP6 (hlim 64, next-header TCP (6) payload length: 32) psion.system.56503 > bootes.system.http: Flags [F.], cksum 0xf2fb (incorrect -> 0x3278), seq 105, ack 2076, win 157, options [nop,nop,TS val 131837 ecr 1831852808], length 0
20:17:23.642977 IP6 (hlim 64, next-header TCP (6) payload length: 32) bootes.system.http > psion.system.56503: Flags [F.], cksum 0x32dd (correct), seq 2076, ack 106, win 45, options [nop,nop,TS val 1831852818 ecr 131837], length 0
20:17:23.643018 IP6 (hlim 64, next-header TCP (6) payload length: 32) psion.system.56503 > bootes.system.http: Flags [.], cksum 0xf2fb (incorrect -> 0x326d), ack 2077, win 157, options [nop,nop,TS val 131837 ecr 1831852818], length 0

[-- Attachment #5: dump.psion.git --]
[-- Type: text/plain, Size: 4007 bytes --]

20:23:42.349445 IP6 (hlim 64, next-header UDP (17) payload length: 39) psion.system.56211 > orion.system.domain: 47986+[|domain]
20:23:42.350901 IP6 (hlim 64, next-header UDP (17) payload length: 97) orion.system.domain > psion.system.56211: 47986* 1/1/1 [|domain]
20:23:42.351249 IP6 (hlim 64, next-header UDP (17) payload length: 39) psion.system.58999 > orion.system.domain: 20696+[|domain]
20:23:42.352112 IP6 (hlim 64, next-header UDP (17) payload length: 97) orion.system.domain > psion.system.58999: 20696* 1/1/1 [|domain]
20:23:42.352524 IP6 (hlim 64, next-header TCP (6) payload length: 40) psion.system.56995 > bootes.system.http: Flags [S], seq 531795977, win 14400, options [mss 1440,sackOK,TS val 4294944543 ecr 0,[|tcp]>
20:23:42.352924 IP6 (hlim 64, next-header TCP (6) payload length: 40) bootes.system.http > psion.system.56995: Flags [S.], seq 3711662312, ack 531795978, win 5712, options [mss 1440,sackOK,TS val 1832231527 ecr 4294944543,[|tcp]>
20:23:42.352955 IP6 (hlim 64, next-header TCP (6) payload length: 32) psion.system.56995 > bootes.system.http: Flags [.], cksum 0xf2fb (incorrect -> 0xe774), ack 1, win 225, options [nop,nop,TS val 4294944543 ecr 1832231527], length 0
20:23:42.353263 IP6 (hlim 64, next-header TCP (6) payload length: 136) psion.system.56995 > bootes.system.http: Flags [P.], ack 1, win 225, options [nop,nop,TS val 4294944543 ecr 1832231527], length 104
20:23:42.354069 IP6 (hlim 64, next-header TCP (6) payload length: 32) bootes.system.http > psion.system.56995: Flags [.], cksum 0xe7bf (correct), ack 105, win 45, options [nop,nop,TS val 1832231528 ecr 4294944543], length 0
20:23:42.359591 IP6 (hlim 64, next-header TCP (6) payload length: 1460) bootes.system.http > psion.system.56995: Flags [.], ack 105, win 45, options [nop,nop,TS val 1832231534 ecr 4294944543], length 1428
20:23:42.359642 IP6 (hlim 64, next-header TCP (6) payload length: 32) psion.system.56995 > bootes.system.http: Flags [.], cksum 0xf2fb (incorrect -> 0xe142), ack 1429, win 270, options [nop,nop,TS val 4294944545 ecr 1832231534], length 0
20:23:42.359668 IP6 (hlim 64, next-header TCP (6) payload length: 679) bootes.system.http > psion.system.56995: Flags [P.], ack 105, win 45, options [nop,nop,TS val 1832231534 ecr 4294944543], length 647
20:23:42.359685 IP6 (hlim 64, next-header TCP (6) payload length: 32) psion.system.56995 > bootes.system.http: Flags [.], cksum 0xf2fb (incorrect -> 0xde8e), ack 2076, win 315, options [nop,nop,TS val 4294944545 ecr 1832231534], length 0
20:23:42.372455 IP6 (hlim 64, next-header UDP (17) payload length: 98) psion.system.60367 > orion.system.domain: 29336+[|domain]
20:23:42.373200 IP6 (hlim 64, next-header TCP (6) payload length: 32) psion.system.56995 > bootes.system.http: Flags [F.], cksum 0xf2fb (incorrect -> 0xde8a), seq 105, ack 2076, win 315, options [nop,nop,TS val 4294944548 ecr 1832231534], length 0
20:23:42.373771 IP6 (hlim 64, next-header UDP (17) payload length: 182) orion.system.domain > psion.system.60367: 29336*[|domain]
20:23:42.373793 IP6 (hlim 64, next-header TCP (6) payload length: 32) bootes.system.http > psion.system.56995: Flags [F.], cksum 0xdf89 (correct), seq 2076, ack 106, win 45, options [nop,nop,TS val 1832231548 ecr 4294944548], length 0
20:23:42.373821 IP6 (hlim 64, next-header TCP (6) payload length: 32) psion.system.56995 > bootes.system.http: Flags [.], cksum 0xf2fb (incorrect -> 0xde7b), ack 2077, win 315, options [nop,nop,TS val 4294944548 ecr 1832231548], length 0
20:23:42.378616 IP6 (hlim 64, next-header UDP (17) payload length: 98) psion.system.52144 > orion.system.domain: 9105+[|domain]
20:23:42.379782 IP6 (hlim 64, next-header UDP (17) payload length: 188) orion.system.domain > psion.system.52144: 9105*[|domain]
20:23:42.380951 IP6 (hlim 64, next-header UDP (17) payload length: 98) psion.system.48731 > orion.system.domain: 3203+[|domain]
20:23:42.382073 IP6 (hlim 64, next-header UDP (17) payload length: 189) orion.system.domain > psion.system.48731: 3203*[|domain]