On 5/22/2018 3:18 PM, Rafał Miłecki wrote:
From: Rafał Miłecki <rafal@xxxxxxxxxx> New Broadcom firmwares mark monitor mode packets using a newly defined bit in the flags field. Use it to filter them out and pass to the monitor interface. These defines were found in bcmmsgbuf.h from SDK. As not every firmware generates radiotap header this commit introduces BRCMF_FEAT_MON_FMT_RADIOTAP that has to be set per firmware version. If not present brcmf_netif_mon_rx() assumed packet being a raw 802.11 frame and prepends it with an empty radiotap header. It's limited to the msgbuf protocol. Adding support for SDIO/USB devices will require some extra research.
So I went looking on my shelf and found the patch I made for SDIO a while back. It relies on firmware change and I did not introduce a firmware flag for it. I will send the patch as RFT so you can have a look at it.
I checked our internal driver and it turns out the raw vs. radiotap is a compilation option. So depending on customer they would get either firmware doing the radiotap header generation or the host driver, without any run-time way to determine it. Not nice for brcmfmac.
Regards, Arend
Signed-off-by: Rafał Miłecki <rafal@xxxxxxxxxx> --- .../wireless/broadcom/brcm80211/brcmfmac/core.c | 24 ++++++++++++++++++++++ .../wireless/broadcom/brcm80211/brcmfmac/core.h | 2 ++ .../wireless/broadcom/brcm80211/brcmfmac/feature.h | 6 +++++- .../wireless/broadcom/brcm80211/brcmfmac/msgbuf.c | 17 +++++++++++++++ 4 files changed, 48 insertions(+), 1 deletion(-)