Hi Johannes,

On 01/15/2018 07:09 AM, Johannes Berg wrote:
On Wed, 2018-01-10 at 11:09 -0600, Denis Kenzior wrote:

Pre-authentication type frames (protocol: 0x88c7) are also forwarded
over nl80211.

Interesting - maybe userspace should be able to configure a(n) (list
of) ethertype(s)?


I'm not so sure. Preauthentication is different from EAPoL frames and most of the special-case checks for control_port_ethertype inside mac80211 do not apply to it. I think it might be safer to carry it as a special case to the special case :P

Signed-off-by: Denis Kenzior <[email protected]>
---
  net/mac80211/cfg.c         |  2 ++
  net/mac80211/ieee80211_i.h |  1 +
  net/mac80211/mlme.c        |  2 ++
  net/mac80211/rx.c          | 31 ++++++++++++++++++++++++++++---
  4 files changed, 33 insertions(+), 3 deletions(-)

diff --git a/net/mac80211/cfg.c b/net/mac80211/cfg.c
index 46028e12e216..f53bfb27295f 100644
--- a/net/mac80211/cfg.c
+++ b/net/mac80211/cfg.c
@@ -925,6 +925,7 @@ static int ieee80211_start_ap(struct wiphy *wiphy, struct 
net_device *dev,
         */
        sdata->control_port_protocol = params->crypto.control_port_ethertype;
        sdata->control_port_no_encrypt = params->crypto.control_port_no_encrypt;
+       sdata->control_port_over_nl80211 = false;

It's probably better to reset this at interface type switching, if it's
not done anyway (we zero a lot of memory there, but not sure precisely
what)

Otherwise we'll surely forget this in some place like mesh or OCB ...

Initially it must be false (0) anyway.


Where do I look? Right now I'm mostly following the precedent of other control_port_* stuff.

Regards,
-Denis

Reply via email to