svn commit: r194520 - projects/mesh11s/sys/net80211

Rui Paulo rpaulo at FreeBSD.org
Fri Jun 19 23:30:10 UTC 2009


Author: rpaulo
Date: Fri Jun 19 23:30:09 2009
New Revision: 194520
URL: http://svn.freebsd.org/changeset/base/194520

Log:
  * Don't forward locally generated frames.
  * Bump the refcnt before xmit.
  
  Sponsored by:	The FreeBSD Foundation

Modified:
  projects/mesh11s/sys/net80211/ieee80211_mesh.c

Modified: projects/mesh11s/sys/net80211/ieee80211_mesh.c
==============================================================================
--- projects/mesh11s/sys/net80211/ieee80211_mesh.c	Fri Jun 19 23:28:26 2009	(r194519)
+++ projects/mesh11s/sys/net80211/ieee80211_mesh.c	Fri Jun 19 23:30:09 2009	(r194520)
@@ -388,12 +388,12 @@ mesh_input(struct ieee80211_node *ni, st
 			    ((struct ieee80211_qosframe *)wh)->i_qos[0];
 		} else
 			qos = 0;
-
 		/*
-		 * Broadcast multicast packets. We just decrement the TTL and
-		 * set addr2 to our MAC address.
+		 * Forward multicast packets. We just decrement the TTL and
+		 * set TA to our MAC address.
 		 */
 		if (IEEE80211_IS_MULTICAST(wh->i_addr1) && mc->mc_ttl > 0 &&
+		    !IEEE80211_ADDR_EQ(vap->iv_myaddr, wh->i_addr3) &&
 		    (vap->iv_meshflags & IEEE80211_MFLAGS_FWRD)) {
 			struct mbuf *mcopy;
 			struct ieee80211_meshcntl *mccopy;
@@ -434,6 +434,12 @@ mesh_input(struct ieee80211_node *ni, st
 			params.ibp_rate0 = tp->mgmtrate;
 			params.ibp_flags |= IEEE80211_BPF_NOACK;
 			params.ibp_try0 = 1;
+			IEEE80211_DPRINTF(vap, IEEE80211_MSG_NODE,
+			    "ieee80211_ref_node (%s:%u) %p<%s> refcnt %d\n",
+			    __func__, __LINE__,
+			    ni, ether_sprintf(ni->ni_macaddr),
+			    ieee80211_node_refcnt(ni)+1);
+			ieee80211_ref_node(vap->iv_bss);
 			err = ic->ic_raw_xmit(vap->iv_bss, mcopy, &params);
 			if (err) {
 				/* NB: IFQ_HANDOFF reclaims mbuf */


More information about the svn-src-projects mailing list