svn commit: r195190 - projects/mesh11s/sys/net80211
Rui Paulo
rpaulo at FreeBSD.org
Tue Jun 30 13:38:15 UTC 2009
Author: rpaulo
Date: Tue Jun 30 13:38:14 2009
New Revision: 195190
URL: http://svn.freebsd.org/changeset/base/195190
Log:
Add a helper function to detect duplicates.
Sponsored by: The FreeBSD Foundation
Modified:
projects/mesh11s/sys/net80211/ieee80211_hwmp.c
projects/mesh11s/sys/net80211/ieee80211_hwmp.h
Modified: projects/mesh11s/sys/net80211/ieee80211_hwmp.c
==============================================================================
--- projects/mesh11s/sys/net80211/ieee80211_hwmp.c Tue Jun 30 12:35:47 2009 (r195189)
+++ projects/mesh11s/sys/net80211/ieee80211_hwmp.c Tue Jun 30 13:38:14 2009 (r195190)
@@ -1165,6 +1165,26 @@ ieee80211_hwmp_find_txnode(struct ieee80
return ieee80211_find_txnode(vap, rt->rt_nexthop);
}
+int
+ieee80211_hwmp_checkpseq(struct ieee80211vap *vap,
+ uint8_t source[IEEE80211_ADDR_LEN], uint32_t seq)
+{
+ struct ieee80211_hwmp_route *rt;
+
+ rt = hwmp_rt_find(vap, source);
+ if (rt == NULL) {
+ rt = hwmp_rt_add(vap, source);
+ rt->rt_lastpseq = seq;
+ return 0;
+ }
+ if (rt->rt_lastpseq >= seq)
+ return 1;
+ else {
+ rt->rt_lastpseq = seq;
+ return 0;
+ }
+}
+
static int
hwmp_ioctl_get80211(struct ieee80211vap *vap, struct ieee80211req *ireq)
{
Modified: projects/mesh11s/sys/net80211/ieee80211_hwmp.h
==============================================================================
--- projects/mesh11s/sys/net80211/ieee80211_hwmp.h Tue Jun 30 12:35:47 2009 (r195189)
+++ projects/mesh11s/sys/net80211/ieee80211_hwmp.h Tue Jun 30 13:38:14 2009 (r195190)
@@ -48,6 +48,8 @@ struct ieee80211_hwmp_route {
uint8_t rt_prevhop[IEEE80211_ADDR_LEN];
uint32_t rt_lifetime;
int rt_preqretries;
+ uint32_t rt_lastpseq; /* last mesh seq number
+ from this node */
};
#ifdef _KERNEL
@@ -76,8 +78,10 @@ void ieee80211_hwmp_recv_action(struct i
struct ieee80211_node *ieee80211_hwmp_discover(struct ieee80211vap *,
uint8_t [IEEE80211_ADDR_LEN], struct mbuf *);
struct ieee80211_node *
-ieee80211_hwmp_find_txnode(struct ieee80211vap *vap,
+ ieee80211_hwmp_find_txnode(struct ieee80211vap *vap,
uint8_t dest[IEEE80211_ADDR_LEN]);
+int ieee80211_hwmp_checkpseq(struct ieee80211vap *,
+ uint8_t [IEEE80211_ADDR_LEN], uint32_t);
void ieee80211_hwmp_peerdown(struct ieee80211_node *);
#endif /* _KERNEL */
More information about the svn-src-projects
mailing list