Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 28 Apr 2016 20:29:50 +0000 (UTC)
From:      Adrian Chadd <adrian@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r298756 - head/sys/net80211
Message-ID:  <201604282029.u3SKToRo070020@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: adrian
Date: Thu Apr 28 20:29:49 2016
New Revision: 298756
URL: https://svnweb.freebsd.org/changeset/base/298756

Log:
  [net80211] handle action frames in adhoc mode from the node that created the BSS.
  
  We don't have a separate bss node; instead we dup the first node we saw
  and turn that into the BSS node.  This means that action frames from
  that node would be rejected.
  
  So, check that the node is the bss node /and/ the MAC doesn't match ni_macaddr.
  That's the "right" way for now to verify it's an unknown node.
  
  This fixes handling action frames in adhoc mode, which includes negotiating
  11n aggregation via ADDBA/DELBA.
  
  This by itself isn't enough to correctly create 11n adhoc networks; but
  it is required for aggregation to be negotiated.
  
  Tested:
  
  * AR9380, 11n adhoc mode
  * broadcom 11ac adhoc (vendor platform)
  
  Sponsored by:	Eva Automation, Inc.

Modified:
  head/sys/net80211/ieee80211_adhoc.c

Modified: head/sys/net80211/ieee80211_adhoc.c
==============================================================================
--- head/sys/net80211/ieee80211_adhoc.c	Thu Apr 28 19:26:46 2016	(r298755)
+++ head/sys/net80211/ieee80211_adhoc.c	Thu Apr 28 20:29:49 2016	(r298756)
@@ -854,7 +854,8 @@ adhoc_recv_mgmt(struct ieee80211_node *n
 
 	case IEEE80211_FC0_SUBTYPE_ACTION:
 	case IEEE80211_FC0_SUBTYPE_ACTION_NOACK:
-		if (ni == vap->iv_bss) {
+	if ((ni == vap->iv_bss) &&
+	    !IEEE80211_ADDR_EQ(wh->i_addr2, ni->ni_macaddr)) {
 			IEEE80211_DISCARD(vap, IEEE80211_MSG_INPUT,
 			    wh, NULL, "%s", "unknown node");
 			vap->iv_stats.is_rx_mgtdiscard++;



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201604282029.u3SKToRo070020>