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, ¶ms);
if (err) {
/* NB: IFQ_HANDOFF reclaims mbuf */
More information about the svn-src-projects
mailing list