All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Rafał Miłecki" <zajec5@gmail.com>
To: Brett Rudley <brudley@broadcom.com>,
	Arend van Spriel <arend@broadcom.com>,
	"Franky (Zhenhui) Lin" <frankyl@broadcom.com>,
	Hante Meuleman <meuleman@broadcom.com>,
	linux-wireless@vger.kernel.org, brcm80211-dev-list@broadcom.com
Cc: "Rafał Miłecki" <zajec5@gmail.com>
Subject: [RFC PATCH] brcmfmac: set WIPHY_FLAG_HAVE_AP_SME
Date: Wed, 20 Jan 2016 13:47:07 +0100	[thread overview]
Message-ID: <1453294027-12811-1-git-send-email-zajec5@gmail.com> (raw)

This allows user space check NL80211_ATTR_DEVICE_AP_SME and realize it's
dealing with a FullMAC device. It's important for a proper AP setup.
So far user space was only able to guess it's AP_SME after failing to
create monitor interface.

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
---
While this patch makes sense to me, it's breaking user space (hostapd).

There are two similar code paths in hostapd for FullMAC devices. For
details see nl80211_setup_ap, below is my summary:

1) hostapd doesn't get AP_SME
It tries to create monitor interface and after failing to it fallbacks
to the AP_SME:
> nl80211: Setup AP(wlan0) - device_ap_sme=0 use_monitor=1
> Failed to create interface mon.wlan0: -95 (Not supported)
> nl80211: Driver does not support monitor interface type - try to run without it
After that it tries to register for PROBE_REQ management frames but it's
not required to succeed.

2) hostapd knows about AP_SME
It tries to register for ACTION management frames requiring it to
succeed. If it fails it goes like this:
> nl80211: Subscribe to mgmt frames with AP handle 0x99f50 (device SME)
> nl80211: Register frame type=0xd0 (WLAN_FC_STYPE_ACTION) nl_handle=0x99f50 match=
> nl80211: Register frame command failed (type=208): ret=-22 (Invalid argument)
> nl80211: Register frame match - hexdump(len=0): [NULL]
> nl80211: Could not configure driver mode

Now, the problem with brcmfmac is that it doesn't report support for any
management frames in AP mode. It supports sending ACTION (and maybe
PROBE_RESP) frames, but it can't pass ACTION to the cfg80211. So even if
we report we can send ACTION (as it seems we do), it won't fix the
problem.

So this patch will trigger another code path in hostapd that due to
brcmfmac missing support for receiving & passing ACTION will fail.

Do you have any idea how to handle this?

Should hostapd drop depndency on ACTION frames? Should brcmfmac fake
support for receiving & passing ACTION frames? Or should support for
ACTION frames be added indeed?
---
 drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
index 7b01e4d..ab431e5 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
@@ -6180,6 +6180,7 @@ static int brcmf_setup_wiphy(struct wiphy *wiphy, struct brcmf_if *ifp)
 	wiphy->cipher_suites = __wl_cipher_suites;
 	wiphy->n_cipher_suites = ARRAY_SIZE(__wl_cipher_suites);
 	wiphy->flags |= WIPHY_FLAG_PS_ON_BY_DEFAULT |
+			WIPHY_FLAG_HAVE_AP_SME |
 			WIPHY_FLAG_OFFCHAN_TX |
 			WIPHY_FLAG_HAS_REMAIN_ON_CHANNEL;
 	if (brcmf_feat_is_enabled(ifp, BRCMF_FEAT_TDLS))
-- 
1.8.4.5


             reply	other threads:[~2016-01-20 12:47 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-01-20 12:47 Rafał Miłecki [this message]
2016-01-25  9:49 ` [RFC PATCH] brcmfmac: set WIPHY_FLAG_HAVE_AP_SME Arend van Spriel
2016-01-26  6:52   ` Rafał Miłecki

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1453294027-12811-1-git-send-email-zajec5@gmail.com \
    --to=zajec5@gmail.com \
    --cc=arend@broadcom.com \
    --cc=brcm80211-dev-list@broadcom.com \
    --cc=brudley@broadcom.com \
    --cc=frankyl@broadcom.com \
    --cc=linux-wireless@vger.kernel.org \
    --cc=meuleman@broadcom.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.