svn commit: r192107 - head/sys/net80211

Sam Leffler sam at FreeBSD.org
Thu May 14 16:23:24 UTC 2009


Author: sam
Date: Thu May 14 16:23:24 2009
New Revision: 192107
URL: http://svn.freebsd.org/changeset/base/192107

Log:
  correct handling of ctl frames: the sender's address is always i_addr2 for
  frames we should expect to process (old code was trying to handle frames
  we should never see--like ACK)
  
  Reviewed by:	thompsa, cbzimmer

Modified:
  head/sys/net80211/ieee80211_node.c

Modified: head/sys/net80211/ieee80211_node.c
==============================================================================
--- head/sys/net80211/ieee80211_node.c	Thu May 14 16:01:29 2009	(r192106)
+++ head/sys/net80211/ieee80211_node.c	Thu May 14 16:23:24 2009	(r192107)
@@ -1439,12 +1439,6 @@ ieee80211_add_neighbor(struct ieee80211v
 	return ni;
 }
 
-#define	IS_CTL(wh) \
-	((wh->i_fc[0] & IEEE80211_FC0_TYPE_MASK) == IEEE80211_FC0_TYPE_CTL)
-#define	IS_PSPOLL(wh) \
-	((wh->i_fc[0] & IEEE80211_FC0_SUBTYPE_MASK) == IEEE80211_FC0_SUBTYPE_PS_POLL)
-#define	IS_BAR(wh) \
-	((wh->i_fc[0] & IEEE80211_FC0_SUBTYPE_MASK) == IEEE80211_FC0_SUBTYPE_BAR)
 #define	IS_PROBEREQ(wh) \
 	((wh->i_fc[0] & (IEEE80211_FC0_TYPE_MASK|IEEE80211_FC0_SUBTYPE_MASK)) \
 	    == (IEEE80211_FC0_TYPE_MGT | IEEE80211_FC0_SUBTYPE_PROBE_REQ))
@@ -1456,9 +1450,6 @@ static __inline struct ieee80211_node *
 _find_rxnode(struct ieee80211_node_table *nt,
     const struct ieee80211_frame_min *wh)
 {
-	/* XXX 4-address frames? */
-	if (IS_CTL(wh) && !IS_PSPOLL(wh) && !IS_BAR(wh) /*&& !IS_RTS(ah)*/)
-		return ieee80211_find_node_locked(nt, wh->i_addr1);
 	if (IS_BCAST_PROBEREQ(wh))
 		return NULL;		/* spam bcast probe req to all vap's */
 	return ieee80211_find_node_locked(nt, wh->i_addr2);
@@ -1547,9 +1538,6 @@ ieee80211_find_rxnode_withkey(struct iee
 }
 #undef IS_BCAST_PROBEREQ
 #undef IS_PROBEREQ
-#undef IS_BAR
-#undef IS_PSPOLL
-#undef IS_CTL
 
 /*
  * Return a reference to the appropriate node for sending


More information about the svn-src-all mailing list