Hello,

It seems that after some not very recent changes udp and tcp packes carring data send by a loopback have incorrect cksum:

UDP:
# echo test|nc -u 127.0.0.1 1111

# tcpdump -i lo -n -v -v port 1111
tcpdump: listening on lo, link-type EN10MB (Ethernet), capture size 96 bytes
19:43:39.340576 IP (tos 0x0, ttl  64, id 15179, offset 0, flags [DF], proto: UDP 
(17), length: 33) 127.0.0.1.49512 > 127.0.0.1.1111: [bad udp cksum 174c!] UDP, 
length 5

TCP:
# echo test|nc -u 127.0.0.1 1111

tcpdump: listening on lo, link-type EN10MB (Ethernet), capture size 96 bytes
*Correct:
19:44:27.692614 IP (tos 0x0, ttl  64, id 32100, offset 0, flags [DF], proto: TCP (6), 
length: 60) 127.0.0.1.53804 > 127.0.0.1.1111: S, cksum 0xfd54 (correct), 
3426125135:3426125135(0) win 32792 <mss 16396,sackOK,timestamp 1912797227 
0,nop,wscale 7>
19:44:27.692674 IP (tos 0x0, ttl  64, id 0, offset 0, flags [DF], proto: TCP (6), 
length: 60) 127.0.0.1.1111 > 127.0.0.1.53804: S, cksum 0xea3f (correct), 
3427916955:3427916955(0) ack 3426125136 win 32768 <mss 16396,sackOK,timestamp 
1912797227 1912797227,nop,wscale 7>
19:44:27.692711 IP (tos 0x0, ttl  64, id 32101, offset 0, flags [DF], proto: TCP (6), 
length: 52) 127.0.0.1.53804 > 127.0.0.1.1111: ., cksum 0xd263 (correct), 1:1(0) ack 1 
win 257 <nop,nop,timestamp 1912797227 1912797227>

*Incorrect:
19:44:27.692831 IP (tos 0x0, ttl  64, id 32102, offset 0, flags [DF], proto: TCP (6), 
length: 57) 127.0.0.1.53804 > 127.0.0.1.1111: P, cksum 0xfe2d (incorrect (-> 0xe07c), 
1:6(5) ack 1 win 257 <nop,nop,timestamp 1912797227 1912797227>

*Correct:
19:44:27.692859 IP (tos 0x0, ttl  64, id 9399, offset 0, flags [DF], proto: TCP (6), 
length: 52) 127.0.0.1.1111 > 127.0.0.1.53804: ., cksum 0xd25f (correct), 1:1(0) ack 6 
win 256 <nop,nop,timestamp 1912797227 1912797227>

Tested on:
 - 2.6.22.6
 - 2.6.21.7
 - 2.6.20.11

Best regards,


                                Krzysztof Olędzki

Reply via email to