Please note: This project is no longer active. The website is kept online for historic purposes only.
If you´re looking for a Linux driver for your Atheros WLAN device, you should continue here .

Ticket #1945 (new defect)

Opened 10 years ago

Last modified 7 years ago

madwifi can't receive an action frame except in a monitor mode

Reported by: caojing.china@gmail.com Assigned to:
Priority: minor Milestone:
Component: madwifi: other Version: v0.9.4
Keywords: action frame Cc:
Patch is attached: 0 Pending:

Description (Last modified by mrenzmann)

I'm trying to use the madwifi driver to tx and rx action frame, which sub type is 0xd0.

  1. one node sends action frame, the other node can receive those frames in monitor mode.
  2. I change the receive node to master mode, It can't receive any action frames.
  3. A virtual monitor interface is created on the same device. Then it can receive the action frames again.
  4. The virtual monitor interface is removed and I modify the sender action frame's subtype to 0x40 (Probe Request type) without change any other bits in the send frame. Now the receiver can receive the action frame again.

Actual, I search the whole madwifi code. I didn't find any place to use the definition of IEEE80211_FC0_SUBTYPE_ACTION.

Is there any setting for hardware to receive the action frame?

Change History

05/17/08 14:00:49 changed by mrenzmann

  • description changed.

05/17/08 22:43:40 changed by caojing.china@gmail.com

I found the problem is the rx queue filter, which is as follow.

/* Rx Filter Frame Types */
typedef enum {
	HAL_RX_FILTER_UCAST	= 0x00000001,	/* Allow unicast frames */
	HAL_RX_FILTER_MCAST	= 0x00000002,	/* Allow multicast frames */
	HAL_RX_FILTER_BCAST	= 0x00000004,	/* Allow broadcast frames */
	HAL_RX_FILTER_CONTROL	= 0x00000008,	/* Allow control frames */
	HAL_RX_FILTER_BEACON	= 0x00000010,	/* Allow beacon frames */
	HAL_RX_FILTER_PROM	= 0x00000020,	/* Promiscuous mode */
	HAL_RX_FILTER_XRPOLL	= 0x00000040,	/* Allow XR poll frmae */
	HAL_RX_FILTER_PROBEREQ	= 0x00000080,	/* Allow probe request frames */
	HAL_RX_FILTER_PHYERR	= 0x00000100,	/* Allow phy errors */
	HAL_RX_FILTER_PHYRADAR	= 0x00000200,	/* Allow phy radar errors*/
} HAL_RX_FILTER;

In madwifi master mode, it only receive the HAL_RX_FILTER_UCAST | HAL_RX_FILTER_BCAST | HAL_RX_FILTER_MCAST | HAL_RX_FILTER_PROBEREQ | HAL_RX_FILTER_PHYERR.

In madwifi monitor mode, it also receive the HAL_RX_FILTER_CONTROL | HAL_RX_FILTER_BEACON | HAL_RX_FILTER_PROM

The multiple virtual interface share the same filter setted by ath_hal_setrxfilter.

The action frame is received in HAL_RX_FILTER_PROM.

So now my question is whether there is more accurate filter from management frame for hal. Or we have to use the ath5k with open_hal.