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

Rui Paulo rpaulo at FreeBSD.org
Fri Jun 26 22:26:08 UTC 2009


Author: rpaulo
Date: Fri Jun 26 22:26:07 2009
New Revision: 195082
URL: http://svn.freebsd.org/changeset/base/195082

Log:
  Enable commented out verify length.
  
  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	Fri Jun 26 22:13:15 2009	(r195081)
+++ projects/mesh11s/sys/net80211/ieee80211_hwmp.c	Fri Jun 26 22:26:07 2009	(r195082)
@@ -564,18 +564,8 @@ hwmp_recv_preq(struct ieee80211vap *vap,
 	}
 
 	fi = hwmp_rt_find(vap, PREQ_TADDR(0));
-#if 0
-	/*
-	 * Record the PREQ ID and the originator MAC address.
-	 */
-	if (fi == NULL) {
-		fi = hwmp_rt_add(vap, PREQ_TADDR(0));
-		fi->fi_seq = preq->preq_origseq;
-		fi->fi_metric = preq->preq_metric;
-		fi->fi_lifetime = preq->preq_lifetime;
-	}
-	fi->fi_preqid = preq->preq_id;
-#endif
+	if (fi)
+		fi->fi_preqid = preq->preq_id;
 
 	/*
 	 * Check if the PREQ is addressed to us.
@@ -599,16 +589,15 @@ hwmp_recv_preq(struct ieee80211vap *vap,
 		IEEE80211_ADDR_COPY(prep.prep_origaddr, vap->iv_myaddr);
 		prep.prep_origseq = hs->hs_seq++;
 		hwmp_send_prep(ni, vap->iv_myaddr, wh->i_addr2, &prep);
-#if 0
 		/*
 		 * Build the reverse path, if we don't have it already.
 		 */
-		if (fi == NULL ||
-		    IEEE80211_ADDR_EQ(fi->fi_nexthop, invalidaddr)) {
-			ieee80211_hwmp_discover(vap, fi->fi_dest);
-		}
-#endif
-
+		fi = hwmp_rt_find(vap, preq->preq_origaddr);
+		if (fi == NULL) {
+			fi = hwmp_rt_add(vap, preq->preq_origaddr);
+			ieee80211_hwmp_discover(vap, fi->fi_dest, NULL);
+		} else if (IEEE80211_ADDR_EQ(fi->fi_nexthop, invalidaddr))
+			ieee80211_hwmp_discover(vap, fi->fi_dest, NULL);
 		return;
 	}
 
@@ -626,7 +615,6 @@ hwmp_recv_preq(struct ieee80211vap *vap,
 		 */
 		if (fi != NULL &&
 		    !IEEE80211_ADDR_EQ(fi->fi_nexthop, invalidaddr)) {
-
 			IEEE80211_NOTE(vap, IEEE80211_MSG_HWMP, ni,
 			    "forwarding PREQ from %s",
 			    ether_sprintf(preq->preq_origaddr));
@@ -670,6 +658,12 @@ hwmp_recv_preq(struct ieee80211vap *vap,
 				    broadcastaddr, &prep);
 			}
 		} else {
+			fi = hwmp_rt_add(vap, PREQ_TADDR(0));
+			fi->fi_seq = preq->preq_origseq;
+			fi->fi_metric = preq->preq_metric;
+			fi->fi_lifetime = preq->preq_lifetime;
+			fi->fi_preqid = preq->preq_id;
+
 			IEEE80211_NOTE(vap, IEEE80211_MSG_HWMP, ni,
 			    "forwarding PREQ from %s",
 			    ether_sprintf(preq->preq_origaddr));


More information about the svn-src-projects mailing list