Wl1251/Development

Contents

[edit] Firmware testing

Testing driver: Maemo Fremantle 2.6.28 / wireless-testing 2011-02-06

External monitor: Ubuntu 10.04 / Wireshark / Alfa AWUS036H (rtl8187) in monitor mode (single vif)

[edit] Monitor mode channel switching

[edit] JOIN

Parameters

bssid beacon_int dtim_period bss_type ctrl Result
00:00:00:00:00:00 100 1 BSS_TYPE_STA_BSS JOIN_CMD_CTRL_TX_FLUSH CTS
00:00:00:00:00:00 100 1 BSS_TYPE_STA_BSS 0 CTS
00:00:00:00:00:00 100 0 BSS_TYPE_STA_BSS JOIN_CMD_CTRL_TX_FLUSH CTS
00:00:00:00:00:00 0 1 BSS_TYPE_STA_BSS JOIN_CMD_CTRL_TX_FLUSH CTS
00:00:00:00:00:00 0 0 BSS_TYPE_STA_BSS 0 CTS

CTS: Emits some CTS frames

[edit] ACX_CTS_PROTECTION / JOIN

bssid beacon_int dtim_period bss_type ctrl ACX_CTS_PROTECTION Result
00:00:00:00:00:00 100 1 BSS_TYPE_STA_BSS JOIN_CMD_CTRL_TX_FLUSH CTSPROTECT_DISABLE CTS
00:00:00:00:00:00 100 1 BSS_TYPE_STA_BSS JOIN_CMD_CTRL_TX_FLUSH CTSPROTECT_ENABLE CTS
00:00:00:00:00:00 0 0 BSS_TYPE_STA_BSS 0 CTSPROTECT_DISABLE CTS
00:00:00:00:00:00 0 0 BSS_TYPE_STA_BSS 0 CTSPROTECT_ENABLE CTS
00:00:00:00:00:00 0 0 MAX_BSS_TYPE 0 CTSPROTECT_DISABLE No channel change
00:00:00:00:00:00 0 0 1 0 CTSPROTECT_DISABLE CTS
00:00:00:00:00:00 0 0 4 0 CTSPROTECT_DISABLE CTS
ff:ff:ff:ff:ff:ff 0 0 BSS_TYPE_STA_BSS 0 CTSPROTECT_DISABLE CTS

[edit] JOIN / ACX_CTS_PROTECTION

bssid beacon_int dtim_period bss_type ctrl ACX_CTS_PROTECTION Result
00:00:00:00:00:00 100 1 BSS_TYPE_STA_BSS 0 CTSPROTECT_DISABLE CTS
00:00:00:00:00:00 100 1 BSS_TYPE_STA_BSS 0 CTSPROTECT_ENABLE CTS
00:00:00:00:00:00 0 0 BSS_TYPE_STA_BSS 0 CTSPROTECT_DISABLE CTS
00:00:00:00:00:00 0 0 BSS_TYPE_STA_BSS 0 CTSPROTECT_ENABLE CTS

[edit] TX_DISABLE / JOIN

bssid beacon_int dtim_period bss_type ctrl Result
00:00:00:00:00:00 100 1 BSS_TYPE_STA_BSS JOIN_CMD_CTRL_TX_FLUSH WORKS!
00:00:00:00:00:00 100 1 BSS_TYPE_STA_BSS 0 WORKS!
00:00:00:00:00:00 0 0 BSS_TYPE_STA_BSS 0 WORKS!

[edit] JOIN / TX_DISABLE

bssid beacon_int dtim_period bss_type ctrl Result
00:00:00:00:00:00 100 1 BSS_TYPE_STA_BSS JOIN_CMD_CTRL_TX_FLUSH TX/RX not working

[edit] JOIN / DISCONNECT

bssid beacon_int dtim_period bss_type ctrl Result
00:00:00:00:00:00 100 1 BSS_TYPE_STA_BSS 0 some CTS/TX path disabled
00:00:00:00:00:00 0 0 BSS_TYPE_STA_BSS 0 some CTS/TX path disabled

[edit] TX_ENABLE

Result
TX path disabled

[edit] RX_ENABLE

Result
TX path disabled

[edit] TX_DISABLE

Result
No channel change?/TX path disabled

[edit] RX_DISABLE

Result
Firmware lockup on TX

[edit] New proposal:

Start with DISABLE_TX. Let op_add_interface do ENABLE_TX and op_remove_interface do DISABLE_TX. Use JOIN for every channel change.