most received frames get corrupted, sent frames are passed correctly; short frames seem to have better chances to pass uncorrupted.
tcpdump reports bad crc on most received ip packets, while sent frames arrive untouched in the wired network (verified with a tcpdump on the wired machine)
ping screenshot
# ping 192.168.0.50
PING 192.168.0.50 (192.168.0.50) 56(84) bytes of data.
From 192.168.0.22 icmp_seq=2 Destination Host Unreachable
From 192.168.0.22 icmp_seq=3 Destination Host Unreachable
From 192.168.0.22 icmp_seq=4 Destination Host Unreachable
From 192.168.0.22 icmp_seq=6 Destination Host Unreachable
From 192.168.0.22 icmp_seq=7 Destination Host Unreachable
From 192.168.0.22 icmp_seq=8 Destination Host Unreachable
64 bytes from 192.168.0.50: icmp_seq=11 ttl=127 time=2.03 ms
64 bytes from 192.168.0.50: icmp_seq=12 ttl=127 time=1.23 ms
64 bytes from 192.168.0.50: icmp_seq=16 ttl=127 time=1.64 ms
64 bytes from 192.168.0.50: icmp_seq=17 ttl=127 time=1.80 ms
wrong data byte #44 should be 0x2c but was 0xff
#8 8 9 a b c d e f 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f 20 21 22 23 24 25 26 27
#40 28 29 2a 2b ff ff ff ff 30 31 32 33 34 35 36 37
64 bytes from 192.168.0.50: icmp_seq=19 ttl=127 time=1.24 ms
wrong data byte #44 should be 0x2c but was 0x0
#8 8 9 a b c d e f 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f 20 21 22 23 24 25 26 27
#40 28 29 2a 2b 0 0 0 0 30 31 32 33 34 35 36 37
64 bytes from 192.168.0.50: icmp_seq=26 ttl=127 time=1.24 ms
wrong data byte #44 should be 0x2c but was 0x0
#8 8 9 a b c d e f 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f 20 21 22 23 24 25 26 27
#40 28 29 2a 2b 0 0 ff ff 30 31 32 33 34 35 36 37
64 bytes from 192.168.0.50: icmp_seq=27 ttl=127 time=1.24 ms
64 bytes from 192.168.0.50: icmp_seq=32 ttl=127 time=1.24 ms
wrong data byte #12 should be 0xc but was 0x3f
#8 8 9 a b 3f 6b 60 1 10 11 12 13 14 15 16 17 18 19 1a 1b 98 1a 7 0 20 21 22 23 24 25 26 27
#40 28 29 2a 2b 0 0 ff ff 30 31 32 33 34 35 36 37
64 bytes from 192.168.0.50: icmp_seq=33 ttl=127 time=1.23 ms
wrong data byte #44 should be 0x2c but was 0x70
#8 8 9 a b c d e f 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f 20 21 22 23 24 25 26 27
#40 28 29 2a 2b 70 6b 74 63 30 31 32 33 34 35 36 37
64 bytes from 192.168.0.50: icmp_seq=35 ttl=127 time=1.24 ms
64 bytes from 192.168.0.50: icmp_seq=36 ttl=127 time=1.25 ms
64 bytes from 192.168.0.50: icmp_seq=45 ttl=127 time=1.26 ms
wrong data byte #44 should be 0x2c but was 0x0
#8 8 9 a b c d e f 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f 20 21 22 23 24 25 26 27
#40 28 29 2a 2b 0 0 0 0 30 31 32 33 34 35 36 37
64 bytes from 192.168.0.50: icmp_seq=46 ttl=127 time=1.23 ms
wrong data byte #28 should be 0x1c but was 0x98
#8 8 9 a b c d e f 10 11 12 13 14 15 16 17 18 19 1a 1b 98 1a 7 0 20 21 22 23 24 25 26 27
#40 28 29 2a 2b 0 0 ff ff 30 31 32 33 34 35 36 37
64 bytes from 192.168.0.50: icmp_seq=47 ttl=127 time=1.25 ms
--- 192.168.0.50 ping statistics ---
47 packets transmitted, 14 received, +6 errors, 70% packet loss, time 46007ms
rtt min/avg/max/mdev = 1.232/1.369/2.030/0.250 ms, pipe 3
(the first unreachable pings are due to corrupted/dropped arp frames)
interestingly enough, some frames seem to get dropped at lower levels, some make it to the ip layer and are discarded there. when the packet is bigger, multiple corruptions can occour:
# ping 192.168.0.50 -s 200 -p 77
PATTERN: 0x77
PING 192.168.0.50 (192.168.0.50) 200(228) bytes of data.
208 bytes from 192.168.0.50: icmp_seq=1 ttl=127 time=1.61 ms
wrong data byte #44 should be 0x77 but was 0x0
#8 77 77 77 77 77 77 77 77 77 77 77 77 77 77 77 77 77 77 77 77 77 77 77 77 77 77 77 77 77 77 77 77
#40 77 77 77 77 0 0 ff ff 77 77 77 77 77 77 77 77 77 77 77 77 3 0 17 0 77 77 77 77 77 77 77 77
#72 77 77 77 77 77 77 77 77 77 77 77 77 77 77 77 77 77 77 77 77 77 77 77 77 77 77 77 77 77 77 77 77
#104 77 77 77 77 77 77 77 77 77 77 77 77 77 77 77 77 77 77 77 77 77 77 77 77 77 77 77 77 77 77 77 77
#136 77 77 77 77 51 56 11 1 77 77 77 77 77 77 77 77 77 77 77 77 fe db 60 1 77 77 77 77 77 77 77 77
#168 77 77 77 77 5 0 8 0 77 77 77 77 77 77 77 77 77 77 77 77 2 1 2 0 77 77 77 77 77 77 77 77
OS: ubuntu 5.10; linux-2.6.12-10-686
madwifi: madwifi-ng-r1538-20060502 compiled using gcc-3.4
the card (netgear wg-511t) has been tested to work correctly on another computer with exactly the same madwifi version, the pcmcia slot has been tested with other 16 and 32 bit cards
same situation with or without WEP encryption
ATHSTATS
319 tx management frames
1 long on-chip tx retries
288 tx frames with no ack marked
464 rx failed due to bad CRC
149125 PHY errors
2406 OFDM timing
146720 CCK timing
3425 periodic calibrations
rssi of last ack: 66
rssi of last rcv: 63
19 switched default/rx antenna
Antenna profile:
[1] tx 199 rx 33090
[2] tx 138 rx 519
DMESG
[119584.380866] wifi0: 11b rates: 1Mbps 2Mbps 5.5Mbps 11Mbps
[119584.380898] wifi0: 11g rates: 1Mbps 2Mbps 5.5Mbps 11Mbps 6Mbps 9Mbps 12Mbps 18Mbps 24Mbps 36Mbps 48Mbps 54Mbps
[119584.380929] wifi0: turboG rates: 6Mbps 12Mbps 18Mbps 24Mbps 36Mbps 48Mbps 54Mbps
[119584.380950] wifi0: H/W encryption support: WEP AES AES_CCM TKIP
[119584.380964] wifi0: mac 7.9 phy 4.5 radio 5.6
[119584.380999] wifi0: Use hw queue 1 for WME_AC_BE traffic
[119584.381007] wifi0: Use hw queue 0 for WME_AC_BK traffic
[119584.381015] wifi0: Use hw queue 2 for WME_AC_VI traffic
[119584.381024] wifi0: Use hw queue 3 for WME_AC_VO traffic
[119584.381031] wifi0: Use hw queue 8 for CAB traffic
[119584.381070] wifi0: Use hw queue 9 for beacons
[119584.420438] wifi0: Atheros 5212: mem=0x21000000, irq=11