The mac80211 softmac driver subsystem and handling of monitor interfaces

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

For various reasons I have been looking into the handling of virtual monitor interfaces in drivers that link with the mac80211 module.

It is my understanding that monitor interfaces per se. are not "passed down" to the driver module, and that driver modules should handle the IEEE80211_CONF_CHANGE_MONITOR flag passed down by the config callback whenever the set of virtual interfaces changes between having zero and one monitor member.

Firstly is this assumption correct?

Looking at the drivers in the current mainline kernel that link the mac80211 modules only a small minority of them hook this event. They are :-

ath/ath10k
ath/ath9k (both ath9k and ath9k_htc)
cw1200
brcm80211/brcmsmac

All the others seem to be doing things with NL80211_IFTYPE_MONITOR in the vif structure. Is this something to do with the somewhat opaque comment in mac80211.h?

 * @IEEE80211_CONF_MONITOR: there's a monitor interface present -- use this

 *    to determine for example whether to calculate timestamps for packets

 *    or not, do not use instead of filter flags!

If my assumptions are true I would expect drivers to do whatever private interaction with the hardware to enable monitoring at this point. For example setting up the right frame headers. I also assume that hw filters are handled separately so that different monitor vifs can have different flags.

Please feel free to tear this to shreds! I am on a steep learning curve on this.

I have read most of the docs I could find and studied the code, but please let me have any suggestions you have for further research.

Thanks

Roger




--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux