svn commit: r195067 - projects/mesh11s/sys/net80211
Rui Paulo
rpaulo at FreeBSD.org
Fri Jun 26 18:37:42 UTC 2009
Author: rpaulo
Date: Fri Jun 26 18:37:42 2009
New Revision: 195067
URL: http://svn.freebsd.org/changeset/base/195067
Log:
Move the maxhops sysctl to a per vap setting.
Sponsored by: The FreeBSD Foundation
Modified:
projects/mesh11s/sys/net80211/ieee80211_hwmp.c
projects/mesh11s/sys/net80211/ieee80211_hwmp.h
projects/mesh11s/sys/net80211/ieee80211_ioctl.h
Modified: projects/mesh11s/sys/net80211/ieee80211_hwmp.c
==============================================================================
--- projects/mesh11s/sys/net80211/ieee80211_hwmp.c Fri Jun 26 18:36:46 2009 (r195066)
+++ projects/mesh11s/sys/net80211/ieee80211_hwmp.c Fri Jun 26 18:37:42 2009 (r195067)
@@ -102,7 +102,6 @@ static inline int hwmp_send_rann(struct
const uint8_t [IEEE80211_ADDR_LEN], const uint8_t [IEEE80211_ADDR_LEN],
struct ieee80211_meshrann_ie *);
-static int ieee80211_hwmp_maxhops = 31;
static int ieee80211_hwmp_targetonly = 0;
static int ieee80211_hwmp_replyforward = 1;
static const int ieee80211_hwmp_maxprepretries = 3;
@@ -131,8 +130,6 @@ static const uint8_t invalidaddr[IEEE802
SYSCTL_NODE(_net_wlan, OID_AUTO, hwmp, CTLFLAG_RD, 0,
"IEEE 802.11s HWMP parameters");
-SYSCTL_INT(_net_wlan_hwmp, OID_AUTO, maxhops, CTLTYPE_INT | CTLFLAG_RW,
- &ieee80211_hwmp_maxhops, 0, "Maximum number of hops for paths");
SYSCTL_INT(_net_wlan_hwmp, OID_AUTO, targetonly, CTLTYPE_INT | CTLFLAG_RW,
&ieee80211_hwmp_targetonly, 0, "Set TO bit on generated PREQs");
SYSCTL_INT(_net_wlan_hwmp, OID_AUTO, replyforward, CTLTYPE_INT | CTLFLAG_RW,
@@ -140,6 +137,8 @@ SYSCTL_INT(_net_wlan_hwmp, OID_AUTO, rep
MALLOC_DEFINE(M_80211_HWMP, "80211hwmp", "802.11 HWMP routing table");
+#define IEEE80211_HWMP_DEFAULT_MAXHOPS 31
+
/*
* Helper functions to manipulate the HWMP routing table.
*/
@@ -211,6 +210,7 @@ ieee80211_hwmp_vattach(struct ieee80211v
}
TAILQ_INIT(&hs->hs_head);
mtx_init(&hs->hs_lock, "HWMP", "802.11s HWMP", MTX_DEF);
+ hs->hs_maxhops = IEEE80211_HWMP_DEFAULT_MAXHOPS;
vap->iv_hwmp = hs;
}
@@ -1107,6 +1107,9 @@ hwmp_ioctl_get80211(struct ieee80211vap
case IEEE80211_IOC_HWMP_ROOTMODE:
ireq->i_val = hs->hs_rootmode;
break;
+ case IEEE80211_IOC_HWMP_MAXHOPS:
+ ireq->i_val = hs->hs_maxhops;
+ break;
default:
return ENOSYS;
}
@@ -1161,6 +1164,11 @@ hwmp_ioctl_set80211(struct ieee80211vap
return EINVAL;
hs->hs_rootmode = ireq->i_val;
break;
+ case IEEE80211_IOC_HWMP_MAXHOPS:
+ if (ireq->i_val <= 0 || ireq->i_val > 255)
+ return EINVAL;
+ hs->hs_maxhops = ireq->i_val;
+ break;
default:
return ENOSYS;
}
Modified: projects/mesh11s/sys/net80211/ieee80211_hwmp.h
==============================================================================
--- projects/mesh11s/sys/net80211/ieee80211_hwmp.h Fri Jun 26 18:36:46 2009 (r195066)
+++ projects/mesh11s/sys/net80211/ieee80211_hwmp.h Fri Jun 26 18:37:42 2009 (r195067)
@@ -63,6 +63,7 @@ struct ieee80211_hwmp_state {
struct timeval hs_lastperr; /* last time we sent a PERR */
struct mtx hs_lock; /* lock for the fi table */
int hs_rootmode; /* proactive HWMP */
+ uint8_t hs_maxhops; /* max hop count */
};
void ieee80211_hwmp_vattach(struct ieee80211vap *);
Modified: projects/mesh11s/sys/net80211/ieee80211_ioctl.h
==============================================================================
--- projects/mesh11s/sys/net80211/ieee80211_ioctl.h Fri Jun 26 18:36:46 2009 (r195066)
+++ projects/mesh11s/sys/net80211/ieee80211_ioctl.h Fri Jun 26 18:37:42 2009 (r195067)
@@ -668,6 +668,7 @@ struct ieee80211req {
#define IEEE80211_IOC_MESH_TTL 194 /* mesh TTL */
#define IEEE80211_IOC_HWMP_CMD 195 /* HWMP table commands */
#define IEEE80211_IOC_HWMP_ROOTMODE 196 /* HWMP root mode */
+#define IEEE80211_IOC_HWMP_MAXHOPS 197 /* number of hops before drop */
#define IEEE80211_IOC_TDMA_SLOT 201 /* TDMA: assigned slot */
#define IEEE80211_IOC_TDMA_SLOTCNT 202 /* TDMA: slots in bss */
More information about the svn-src-projects
mailing list