rt73 associates, but unable to send data (only on Cisco aps)

Live forum: http://rt2x00.serialmonkey.com/viewtopic.php?t=5714

Bitt

15-10-2009 22:34:13

I'm observing some strange behavior with my rt73 in combination with an Cisco AP (it works fine with other AP including linksys WRT54GL). I am able to associate, but when I send data (e.g. ARP message before a ping), I don't observe it on the Wi-fi network when sniffing with AirPcap. I see, however, that the ARP packet is sent to the Wi-Fi stick using an usb-analyzer.

Linux reports that messages are received and sent (looking at Rx and Tx in ifconfig). I can see regular probe request/responses in the sniffer so the wi-fi card is not completly dead.

There is no security enabled on the AP (not able to connect when security is enabled - I suspect this is related to the same problem).

If I instead use the legacy driver, it works just fine.

Any ideas on what is happening here?

[codez7ve9r0p]
rt73usb 1-1:1.0: usb_probe_interface
rt73usb 1-1:1.0: usb_probe_interface - got id
phy0 -> rt73usb_validate_eeprom: EEPROM recovery - NIC: 0xffef
phy0 -> rt73usb_validate_eeprom: EEPROM recovery - RSSI OFFSET A: 0x0000
phy0 -> rt2x00_set_chip: Info - Chipset detected - rt: 1300, rf: 0002, rev: 0002573a.
phy0: Selected rate control algorithm 'pid'
/home/eb/uClinux/linux-2.6/drivers/usb/core/inode.c: creating file '003'
usb 1-1: New USB device found, idVendor=148f, idProduct=2573
usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
usb 1-1: Product: 802.11 bg WLAN
usb 1-1: Manufacturer: Ralink
phy0 -> rt2x00lib_request_firmware: Info - Loading firmware file 'rt73.bin'.
rt73usb 1-1:1.0: firmware: requesting rt73.bin
phy0 -> rt2x00lib_request_firmware: Info - Firmware detected - version: 1.7.
phy0: HW CONFIG: freq=2412
phy0 -> rt2x00mac_conf_tx: Info - Configured TX queue 0 - CWmin: 5, CWmax: 10, Aifs: 2, TXop: 0.
phy0 -> rt2x00mac_conf_tx: Info - Configured TX queue 1 - CWmin: 5, CWmax: 10, Aifs: 2, TXop: 0.
phy0 -> rt2x00mac_conf_tx: Info - Configured TX queue 2 - CWmin: 5, CWmax: 10, Aifs: 2, TXop: 0.
phy0 -> rt2x00mac_conf_tx: Info - Configured TX queue 3 - CWmin: 5, CWmax: 10, Aifs: 2, TXop: 0.
phy0: HW CONFIG: freq=2412
phy0: HW CONFIG: freq=2417
phy0: HW CONFIG: freq=2422
phy0: HW CONFIG: freq=2427
phy0: HW CONFIG: freq=2432
phy0: HW CONFIG: freq=2437
phy0: HW CONFIG: freq=2442
phy0: HW CONFIG: freq=2447
phy0: HW CONFIG: freq=2452
phy0: HW CONFIG: freq=2457
phy0: HW CONFIG: freq=2462
phy0: HW CONFIG: freq=2412
phy0: HW CONFIG: freq=2437
phy0 -> rt2x00mac_conf_tx: Info - Configured TX queue 0 - CWmin: 4, CWmax: 10, Aifs: 2, TXop: 0.
phy0 -> rt2x00mac_conf_tx: Info - Configured TX queue 1 - CWmin: 4, CWmax: 10, Aifs: 2, TXop: 0.
phy0 -> rt2x00mac_conf_tx: Info - Configured TX queue 2 - CWmin: 4, CWmax: 10, Aifs: 2, TXop: 0.
phy0 -> rt2x00mac_conf_tx: Info - Configured TX queue 3 - CWmin: 4, CWmax: 10, Aifs: 2, TXop: 0.
wlan0: authenticate with AP 00:26:52:db:f7:c0
wlan0: authenticated
wlan0: associate with AP 00:26:52:db:f7:c0
wlan0: RX AssocResp from 00:26:52:db:f7:c0 (capab=0x421 status=0 aid=1)
wlan0: associated
phy0: Allocated STA 00:26:52:db:f7:c0
phy0: Inserted STA 00:26:52:db:f7:c0
wmaster0: WMM queue=2 aci=0 acm=0 aifs=3 cWmin=15 cWmax=1023 txop=0
phy0 -> rt2x00mac_conf_tx: Info - Configured TX queue 2 - CWmin: 4, CWmax: 10, Aifs: 3, TXop: 0.
wmaster0: WMM queue=3 aci=1 acm=0 aifs=7 cWmin=15 cWmax=1023 txop=0
phy0 -> rt2x00mac_conf_tx: Info - Configured TX queue 3 - CWmin: 4, CWmax: 10, Aifs: 7, TXop: 0.
wmaster0: WMM queue=1 aci=2 acm=0 aifs=2 cWmin=7 cWmax=15 txop=188
phy0 -> rt2x00mac_conf_tx: Info - Configured TX queue 1 - CWmin: 3, CWmax: 4, Aifs: 2, TXop: 188.
wmaster0: WMM queue=0 aci=3 acm=0 aifs=2 cWmin=3 cWmax=7 txop=102
phy0 -> rt2x00mac_conf_tx: Info - Configured TX queue 0 - CWmin: 2, CWmax: 3, Aifs: 2, TXop: 102.
wlan0: CTS protection enabled (BSSID=00:26:52:db:f7:c0)
wlan0: switched to short barker preamble (BSSID=00:26:52:db:f7:c0)
[/codez7ve9r0p]

Bitt

17-10-2009 00:05:57

I've done a register dump for both the rt2x00 and legacy driver and noticed differences in the following registers
- Back off control register (slot time)
- LED control reg (shouldn't matter)
- TX/RX config register (RX_ACK_TIMEOUT and DROP_ACK_CTS)
- Auto-responder/Tx-retry reg (OFDM_TX_RATE_DOWN, OFDM_TX_FALLBACK_CCK, LONG_RETRY_LIMIT, SHORT_RETRY_LIMIT)
- TSF_TIMER and TBTT timer
- BBP serial control register
- Shared key table control (BSS0_KEY0_VALID set in legacy)
- RX error count and rx false cca count (shouldn't matter)
- TX_RETRY_COUNT - this is 0 in legacy driver, very high in rt2x00 - indicates problems with sending? If so, that corresponds well to the problem I'm having.

I've tried changing the TX/RX config reg and auto-responder reg after the driver has initialized, but it doesn't help at that point (maybe that's too late, will try to make changes in driver..). Any other of these registers that are relevant?

I also see some differences in the BBP register but haven't found a good overview of these regs...