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

Rui Paulo rpaulo at FreeBSD.org
Thu Jul 9 13:42:20 UTC 2009


Author: rpaulo
Date: Thu Jul  9 13:42:18 2009
New Revision: 195491
URL: http://svn.freebsd.org/changeset/base/195491

Log:
  Set table seqno only if we didn't send one already.
  
  Sponsored by:	The FreeBSD Foundation

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

Modified: projects/mesh11s/sys/net80211/ieee80211_hwmp.c
==============================================================================
--- projects/mesh11s/sys/net80211/ieee80211_hwmp.c	Thu Jul  9 12:48:43 2009	(r195490)
+++ projects/mesh11s/sys/net80211/ieee80211_hwmp.c	Thu Jul  9 13:42:18 2009	(r195491)
@@ -720,7 +720,7 @@ hwmp_recv_preq(struct ieee80211vap *vap,
 		prep.prep_lifetime = preq->preq_lifetime;
 		prep.prep_metric = IEEE80211_MESHLMETRIC_INITIALVAL;
 		IEEE80211_ADDR_COPY(prep.prep_origaddr, vap->iv_myaddr);
-		prep.prep_origseq = hs->hs_seq++;
+		prep.prep_origseq = ++hs->hs_seq;
 		hwmp_send_prep(ni, vap->iv_myaddr, wh->i_addr2, &prep);
 		/*
 		 * Build the reverse path, if we don't have it already.
@@ -983,8 +983,9 @@ hwmp_recv_prep(struct ieee80211vap *vap,
 		}
 	} else {
 		IEEE80211_NOTE(vap, IEEE80211_MSG_HWMP, ni,
-		    "discard PREP from %s, wrong seqno %u",
-		    ether_sprintf(prep->prep_origaddr), prep->prep_targetseq);
+		    "discard PREP from %s, wrong seqno %u != %u",
+		    ether_sprintf(prep->prep_origaddr), prep->prep_targetseq,
+		    hr->hr_seq);
 		vap->iv_stats.is_hwmp_wrongseq++;
 	} 
 
@@ -1239,8 +1240,10 @@ hwmp_discover(struct ieee80211vap *vap,
 		hr = IEEE80211_MESH_ROUTE_PRIV(rt,
 		    struct ieee80211_hwmp_route);
 		if (IEEE80211_ADDR_EQ(rt->rt_nexthop, invalidaddr)) {
-			hr->hr_seq = ++hs->hs_seq;
-			hr->hr_preqid = ++hs->hs_preqid;
+			if (hr->hr_preqid == 0) {
+				hr->hr_seq = ++hs->hs_seq;
+				hr->hr_preqid = ++hs->hs_preqid;
+			}
 			rt->rt_metric = IEEE80211_MESHLMETRIC_INITIALVAL;
 			rt->rt_lifetime =
 			    timeval2msecs(ieee80211_hwmp_pathtimeout);


More information about the svn-src-projects mailing list