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

Reply via email to