NOTE: this page is for archival only, see the note at the end of the page.

mac80211 issues

This page lists the issues blocking zd1211rw moving to the mac80211 stack. Some of these may already be resolved, they just need to be checked.

Short preamble handling

We don't correctly adjust the preamble in the device-generated RTS/CTS frames. We should use the new mac80211 notification system to keep the RTS_CTS register up to date. Patch written, will send to Ulrich soon.

We also need a way of disabling the TX queue outside of the TX handler to complete this properly. This mac80211 functionality has been under discussion recently.

Basic rates handling

In the softmac driver, we program the basic rates for RTS/CTS based on the association info. Need a similar system in mac80211.

Detailed error statistics

Ulrich has greatly improved the zd1211rw 802.11 error statistics. This code needs moving over to the mac80211 driver after figuring out how mac80211 does this.

Testing on ARM and SPARC64

We have happy ARM and SPARC64 users. To my knowledge, mac80211 has not been tested there.

MAC address issues

Johannes writes:

In zd1211, we start with hwaddr = dev->wiphy->perm_addr which isn't
correct either, for a pure monitor mode we want to start with a zero mac
addr to avoid acking packets. Also, zd1211rw will end up having a NULL
hwaddr when a monitor interface is added, most likely segfaulting in
zd_write_mac_addr then.

Non-blocking issues

These issues are specific to mac80211 (as opposed to being regressions over the softmac driver), so these are not holding up the merge.

multiple interfaces broken

Discussed on the "Arrested Development" thread:

I forgot to mention that the monitor support doesn't work with
additonal interfaces right now. Additional interfaces are broken
currently for zd1211rw.

Fixed issues

  • Regulatory domain control
  • Signal level reporting
  • Connectivity loss issues
  • monitor mode not showing all frames
  • monitor mode scanning oops
  • multicasting/IPv6

This is a static dump of the old wiki, taken after locking it in January 2015. The new wiki is at
versions of this page: last, v21, v20, v19, v18, v17, v16, v15, v14, v13, v12, v11, v10, v9, v8, v7, v6, v5, v4, v3, v2, v1