I have an embedded device with some Artem Wireless LAN card. For this car I'm using the out-of-tree wl_lkm_718_release.tar.gz driver.
I'm using the TN5250 protocol (a telnet derivative), and log on to the AS/400. I get the login screen, and enter my Username and Password. When I now press ENTER, this information is sent to the AS/400 and I should get a complete screen with some menu in it. To save battery power, I turned on the powersafe function of the WLAN card with "iwconfig eth1 power on". That worked fine so far. Until I upgraded from 2.6.13-rc2 to 2.6.15.1. Now, with 2.6.15.1 this stopped working. I'm still sending the username and password, an I'm getting something back (tcpdump below), but the connection hangs and the emulation won't display the menu screen. This TN5250 emulation only displays a new screen if the whole information got in, there's no incremental update like in the normal telnet. So I know that some TCP data packets didn't make it, despite the TCP retries. The connection was hanging, so I had to reconnect. But to no avail, this state is pretty reproducible. Between 2.6.13-rc2 and 2.6.15.1 is therefore something that made this problem. The question is: how can I debug this and find out how to solve? For reference, here's a tcpdump of 2.6.15.1 with "iwconfig eth1 power off". The transaction worked well: (172.16.1.173: my device, 192.168.233.4: an AS/400) # tcpdump -S -s 120 -ttt -n -vvv -i eth1 host 192.168.233.4 device eth1 entered promiscuous mode tcpdump: listening on eth1, link-type EN10MB (Ethernet), capture size 120 bytes 000000 IP (tos 0x0, ttl 64, id 24304, offset 0, flags [DF], proto: TCP (6), length: 87) 172.16.1.173.3717 > 192.168.233.4.23: P, cksum 0xadd5 (correct), 1408641917:1408641952(35) ack 142360 win 3456 <nop,nop,timestamp 228839 3258762253> 025246 IP (tos 0x0, ttl 63, id 7056, offset 0, flags [DF], proto: TCP (6), length: 52) 192.168.233.4.23 > 172.16.1.173.3717: P, cksum 0xf2a2 (correct), 142360:142360(0) ack 1408641952 win 8192 <nop,nop,timestamp 3258782259 228839> 127833 IP (tos 0x0, ttl 63, id 7057, offset 0, flags [DF], proto: TCP (6), length: 71) 192.168.233.4.23 > 172.16.1.173.3717: P, cksum 0x0cf3 (correct), 142360:142379(19) ack 1408641952 win 8192 <nop,nop,timestamp 3258782387 228839> 008637 IP (tos 0x0, ttl 64, id 24305, offset 0, flags [DF], proto: TCP (6), length: 52) 172.16.1.173.3717 > 192.168.233.4.23: ., cksum 0x0487 (correct), 1408641952:1408641952(0) ack 142379 win 3456 <nop,nop,timestamp 228856 3258782387> 002264 IP (tos 0x0, ttl 64, id 24306, offset 0, flags [DF], proto: TCP (6), length: 127) 172.16.1.173.3717 > 192.168.233.4.23: P 1408641952:1408642027 (75) ack 142379 win 3456 <nop,nop,timestamp 228856 3258782387> 018255 IP (tos 0x0, ttl 63, id 7058, offset 0, flags [DF], proto: TCP (6), length: 64) 192.168.233.4.23 > 172.16.1.173.3717: P, cksum 0xdae4 (correct), 142379:142391(12) ack 1408642027 win 8192 <nop,nop,timestamp 3258782416 228856> 028104 IP (tos 0x0, ttl 63, id 7059, offset 0, flags [DF], proto: TCP (6), length: 64) 192.168.233.4.23 > 172.16.1.173.3717: P, cksum 0xdac8 (correct), 142379:142391(12) ack 1408642027 win 8192 <nop,nop,timestamp 3258782444 228856> 001397 IP (tos 0x0, ttl 64, id 24307, offset 0, flags [DF], proto: TCP (6), length: 52) 172.16.1.173.3717 > 192.168.233.4.23: ., cksum 0x03f2 (correct), 1408642027:1408642027(0) ack 142391 win 3456 <nop,nop,timestamp 228861 3258782444> 058678 IP (tos 0x0, ttl 63, id 7060, offset 0, flags [DF], proto: TCP (6), length: 870) 192.168.233.4.23 > 172.16.1.173.3717: P 142391:143209(818) ack 1408642027 win 8192 <nop,nop,timestamp 3258782502 228861> 000452 IP (tos 0x0, ttl 64, id 24308, offset 0, flags [DF], proto: TCP (6), length: 52) 172.16.1.173.3717 > 192.168.233.4.23: ., cksum 0xfad8 (correct), 1408642027:1408642027(0) ack 143209 win 4904 <nop,nop,timestamp 228866 3258782502> And here 2.6.15.1 with "iwconfig eth1 power on", where it did not work. Note that we have fewer packet count: # tcpdump -S -s 120 -ttt -n -vvv -i eth1 host 192.168.233.4 device eth1 entered promiscuous mode tcpdump: listening on eth1, link-type EN10MB (Ethernet), capture size 120 bytes 000000 IP (tos 0x0, ttl 64, id 24311, offset 0, flags [DF], proto: TCP (6), length: 87) 172.16.1.173.3717 > 192.168.233.4.23: P, cksum 0x5832 (correct), 1408642047:1408642082(35) ack 143713 win 5722 <nop,nop,timestamp 235993 3258838808> 026038 IP (tos 0x0, ttl 63, id 7063, offset 0, flags [DF], proto: TCP (6), length: 52) 192.168.233.4.23 > 172.16.1.173.3717: P, cksum 0xb96d (correct), 143713:143713(0) ack 1408642082 win 8192 <nop,nop,timestamp 3258853802 235993> 134730 IP (tos 0x0, ttl 63, id 7064, offset 0, flags [DF], proto: TCP (6), length: 64) 192.168.233.4.23 > 172.16.1.173.3717: P, cksum 0xa234 (correct), 143713:143725(12) ack 1408642082 win 8192 <nop,nop,timestamp 3258853937 235993> 002058 IP (tos 0x0, ttl 64, id 24312, offset 0, flags [DF], proto: TCP (6), length: 52) 172.16.1.173.3717 > 192.168.233.4.23: ., cksum 0xc277 (correct), 1408642082:1408642082(0) ack 143725 win 5722 <nop,nop,timestamp 236010 3258853937> 077535 IP (tos 0x0, ttl 63, id 7065, offset 0, flags [DF], proto: TCP (6), length: 870) 192.168.233.4.23 > 172.16.1.173.3717: P 143725:144543(818) ack 1408642082 win 8192 <nop,nop,timestamp 3258854015 236010> 002628 IP (tos 0x0, ttl 64, id 24313, offset 0, flags [DF], proto: TCP (6), length: 52) 172.16.1.173.3717 > 192.168.233.4.23: ., cksum 0xb947 (correct), 1408642082:1408642082(0) ack 144543 win 7170 <nop,nop,timestamp 236018 3258854015> And lastly, for reference here's a dump on 2.6.13-rc2 with "iwconfig eth1 power on". It worked. Note that it's slower, probably some TCP packet didn't come in while the WLAN card was in powerdown mode (it is slices of a second in powerdown and slices of a second in powerup, so sometimes a packet doesn't get delivered, but TCP's retry algorithms should fix that). Slower or not, I didn't get a hanging connection. # tcpdump -S -s 120 -ttt -n -vvv -i eth1 host 192.168.233.4 tcpdump: listening on eth1, link-type EN10MB (Ethernet), capture size 120 bytes 000000 IP (tos 0x0, ttl 64, id 25745, offset 0, flags [DF], proto: TCP (6), length: 87) 172.16.1.173.4563 > 192.168.233.4.23: P, cksum 0xbba7 (correct), 2116666203:2116666238(35) ack 142368 win 3456 <nop,nop,timestamp 4294948612 3259611052> 075176 IP (tos 0x0, ttl 63, id 7091, offset 0, flags [DF], proto: TCP (6), length: 52) 192.168.233.4.23 > 172.16.1.173.4563: P, cksum 0xb70d (correct), 142368:142368(0) ack 2116666238 win 8192 <nop,nop,timestamp 3259649849 4294948612> 4. 143837 arp who-has 192.168.233.1 tell 192.168.233.4 001149 IP (tos 0x0, ttl 64, id 25747, offset 0, flags [DF], proto: TCP (6), length: 52) 172.16.1.173.4563 > 192.168.233.4.23: ., cksum 0xc321 (correct), 2116666238:2116666238(0) ack 142387 win 3456 <nop,nop,timestamp 4294950100 3259649994> 000194 IP (tos 0x0, ttl 63, id 7093, offset 0, flags [DF], proto: TCP (6), length: 71) 192.168.233.4.23 > 172.16.1.173.4563: P, cksum 0xd0da (correct), 142368:142387(19) ack 2116666238 win 8192 <nop,nop,timestamp 3259650108 4294948612> 000787 IP (tos 0x0, ttl 64, id 25749, offset 0, flags [DF], proto: TCP (6), length: 52) 172.16.1.173.4563 > 192.168.233.4.23: ., cksum 0xc2af (correct), 2116666238:2116666238(0) ack 142387 win 3456 <nop,nop,timestamp 4294950100 3259650108> 000328 IP (tos 0x0, ttl 63, id 7094, offset 0, flags [DF], proto: TCP (6), length: 71) 192.168.233.4.23 > 172.16.1.173.4563: P, cksum 0xcf47 (correct), 142368:142387(19) ack 2116666238 win 8192 <nop,nop,timestamp 3259650511 4294948612> 000686 IP (tos 0x0, ttl 64, id 25751, offset 0, flags [DF], proto: TCP (6), length: 52) 172.16.1.173.4563 > 192.168.233.4.23: ., cksum 0xc11c (correct), 2116666238:2116666238(0) ack 142387 win 3456 <nop,nop,timestamp 4294950100 3259650511> 000252 IP (tos 0x0, ttl 63, id 7096, offset 0, flags [none], proto: TCP (6), length: 71) 192.168.233.4.23 > 172.16.1.173.4563: P, cksum 0xca27 (correct), 142368:142387(19) ack 2116666238 win 8192 <nop,nop,timestamp 3259651823 4294948612> 001448 IP (tos 0x0, ttl 64, id 25753, offset 0, flags [DF], proto: TCP (6), length: 52) 172.16.1.173.4563 > 192.168.233.4.23: ., cksum 0xbbfc (correct), 2116666238:2116666238(0) ack 142387 win 3456 <nop,nop,timestamp 4294950100 3259651823> 000322 IP (tos 0x0, ttl 63, id 7097, offset 0, flags [none], proto: TCP (6), length: 71) 192.168.233.4.23 > 172.16.1.173.4563: P, cksum 0xc1e6 (correct), 142368:142387(19) ack 2116666238 win 8192 <nop,nop,timestamp 3259653936 4294948612> 000674 IP (tos 0x0, ttl 64, id 25755, offset 0, flags [DF], proto: TCP (6), length: 52) 172.16.1.173.4563 > 192.168.233.4.23: ., cksum 0xb3bb (correct), 2116666238:2116666238(0) ack 142387 win 3456 <nop,nop,timestamp 4294950100 3259653936> 003486 IP (tos 0x0, ttl 64, id 25757, offset 0, flags [DF], proto: TCP (6), length: 127) 172.16.1.173.4563 > 192.168.233.4.23: P 2116666238:2116666313 (75) ack 142387 win 3456 <nop,nop,timestamp 4294950101 3259653936> 000785 IP (tos 0x0, ttl 63, id 7098, offset 0, flags [none], proto: TCP (6), length: 71) 192.168.233.4.23 > 172.16.1.173.4563: P, cksum 0xb35a (correct), 142368:142387(19) ack 2116666238 win 8192 <nop,nop,timestamp 3259657660 4294948612> 000253 IP (tos 0x0, ttl 64, id 25759, offset 0, flags [DF], proto: TCP (6), length: 52) 172.16.1.173.4563 > 192.168.233.4.23: ., cksum 0xa4e3 (correct), 2116666313:2116666313(0) ack 142387 win 3456 <nop,nop,timestamp 4294950101 3259657660> 002005 IP (tos 0x0, ttl 63, id 7099, offset 0, flags [none], proto: TCP (6), length: 71) 192.168.233.4.23 > 172.16.1.173.4563: P, cksum 0x98a1 (correct), 142368:142387(19) ack 2116666238 win 8192 <nop,nop,timestamp 3259664501 4294948612> 000782 IP (tos 0x0, ttl 64, id 25761, offset 0, flags [DF], proto: TCP (6), length: 52) 172.16.1.173.4563 > 192.168.233.4.23: ., cksum 0x8a2a (correct), 2116666313:2116666313(0) ack 142387 win 3456 <nop,nop,timestamp 4294950101 3259664501> 020181 IP (tos 0x0, ttl 63, id 7100, offset 0, flags [none], proto: TCP (6), length: 64) 192.168.233.4.23 > 172.16.1.173.4563: P, cksum 0x6010 (correct), 142387:142399(12) ack 2116666313 win 8192 <nop,nop,timestamp 3259664725 4294950101> 002028 IP (tos 0x0, ttl 64, id 25763, offset 0, flags [DF], proto: TCP (6), length: 52) 172.16.1.173.4563 > 192.168.233.4.23: ., cksum 0x893c (correct), 2116666313:2116666313(0) ack 142399 win 3456 <nop,nop,timestamp 4294950103 3259664725> 088096 IP (tos 0x0, ttl 63, id 7101, offset 0, flags [none], proto: TCP (6), length: 576) 192.168.233.4.23 > 172.16.1.173.4563: . 142399:142923(524) ack 2116666313 win 8192 <nop,nop,timestamp 3259664813 4294950103> 000824 IP (tos 0x0, ttl 64, id 25765, offset 0, flags [DF], proto: TCP (6), length: 52) 172.16.1.173.4563 > 192.168.233.4.23: ., cksum 0x84b7 (correct), 2116666313:2116666313(0) ack 142923 win 3992 <nop,nop,timestamp 4294950112 3259664813> 000393 IP (tos 0x0, ttl 63, id 7102, offset 0, flags [none], proto: TCP (6), length: 346) 192.168.233.4.23 > 172.16.1.173.4563: P 142923:143217(294) ack 2116666313 win 8192 <nop,nop,timestamp 3259664813 4294950103> 002385 IP (tos 0x0, ttl 64, id 25767, offset 0, flags [DF], proto: TCP (6), length: 52) 172.16.1.173.4563 > 192.168.233.4.23: ., cksum 0x8179 (correct), 2116666313:2116666313(0) ack 143217 win 4528 <nop,nop,timestamp 4294950112 3259664813> - To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html