aboutsummaryrefslogtreecommitdiff
path: root/sys/net80211/ieee80211_mesh.h
diff options
context:
space:
mode:
authorMonthadar Al Jaberi <monthadar@FreeBSD.org>2012-05-01 15:47:30 +0000
committerMonthadar Al Jaberi <monthadar@FreeBSD.org>2012-05-01 15:47:30 +0000
commitb5df85a6fd6afa11023863293334d2cf8f788810 (patch)
tree65098c124ba0f2f21be8fe1f8be7ee9c5ab321af /sys/net80211/ieee80211_mesh.h
parent6eb9b443f44c197bf5a998cb264753d4b8e37c40 (diff)
downloadsrc-b5df85a6fd6afa11023863293334d2cf8f788810.tar.gz
src-b5df85a6fd6afa11023863293334d2cf8f788810.zip
Notes
Diffstat (limited to 'sys/net80211/ieee80211_mesh.h')
-rw-r--r--sys/net80211/ieee80211_mesh.h15
1 files changed, 13 insertions, 2 deletions
diff --git a/sys/net80211/ieee80211_mesh.h b/sys/net80211/ieee80211_mesh.h
index b3cb73d017e4..2d2631d5eb2b 100644
--- a/sys/net80211/ieee80211_mesh.h
+++ b/sys/net80211/ieee80211_mesh.h
@@ -409,9 +409,19 @@ MALLOC_DECLARE(M_80211_MESH_PREP);
MALLOC_DECLARE(M_80211_MESH_PERR);
MALLOC_DECLARE(M_80211_MESH_RT);
+/*
+ * Basic forwarding information:
+ * o Destination MAC
+ * o Next-hop MAC
+ * o Precursor list (not implemented yet)
+ * o Path timeout
+ * The rest is part of the active Mesh path selection protocol.
+ * XXX: to be moved out later.
+ */
struct ieee80211_mesh_route {
TAILQ_ENTRY(ieee80211_mesh_route) rt_next;
- int rt_crtime; /* creation time */
+ struct mtx rt_lock; /* fine grained route lock */
+ int rt_updtime; /* last update time */
uint8_t rt_dest[IEEE80211_ADDR_LEN];
uint8_t rt_nexthop[IEEE80211_ADDR_LEN];
uint32_t rt_metric; /* path metric */
@@ -419,7 +429,7 @@ struct ieee80211_mesh_route {
uint16_t rt_flags;
#define IEEE80211_MESHRT_FLAGS_VALID 0x01 /* patch discovery complete */
#define IEEE80211_MESHRT_FLAGS_PROXY 0x02 /* proxy entry */
- uint32_t rt_lifetime;
+ uint32_t rt_lifetime; /* route timeout */
uint32_t rt_lastmseq; /* last seq# seen dest */
void *rt_priv; /* private data */
};
@@ -508,6 +518,7 @@ void ieee80211_mesh_rt_del(struct ieee80211vap *,
void ieee80211_mesh_rt_flush(struct ieee80211vap *);
void ieee80211_mesh_rt_flush_peer(struct ieee80211vap *,
const uint8_t [IEEE80211_ADDR_LEN]);
+int ieee80211_mesh_rt_update(struct ieee80211_mesh_route *rt, int);
void ieee80211_mesh_proxy_check(struct ieee80211vap *,
const uint8_t [IEEE80211_ADDR_LEN]);