svn commit: r191334 - projects/mesh11s/sys/net80211
Rui Paulo
rpaulo at FreeBSD.org
Mon Apr 20 19:53:27 UTC 2009
Author: rpaulo
Date: Mon Apr 20 19:53:26 2009
New Revision: 191334
URL: http://svn.freebsd.org/changeset/base/191334
Log:
Implement setter/getter ioctl for mesh id.
Sponsored by: The FreeBSD Foundation
Modified:
projects/mesh11s/sys/net80211/ieee80211_ioctl.c
projects/mesh11s/sys/net80211/ieee80211_ioctl.h
projects/mesh11s/sys/net80211/ieee80211_var.h
Modified: projects/mesh11s/sys/net80211/ieee80211_ioctl.c
==============================================================================
--- projects/mesh11s/sys/net80211/ieee80211_ioctl.c Mon Apr 20 18:59:36 2009 (r191333)
+++ projects/mesh11s/sys/net80211/ieee80211_ioctl.c Mon Apr 20 19:53:26 2009 (r191334)
@@ -1110,6 +1110,14 @@ ieee80211_ioctl_get80211(struct ieee8021
ireq->i_val =
(vap->iv_flags_ext & IEEE80211_FEXT_RIFS) != 0;
break;
+ case IEEE80211_IOC_MESHID:
+ if (vap->iv_opmode != IEEE80211_M_MBSS)
+ return EINVAL;
+
+ ireq->i_len = vap->iv_meshidlen;
+ memcpy(tmpssid, vap->iv_meshid, ireq->i_len);
+ error = copyout(tmpssid, ireq->i_data, ireq->i_len);
+ break;
default:
error = ieee80211_ioctl_getdefault(vap, ireq);
break;
@@ -3137,6 +3145,17 @@ ieee80211_ioctl_set80211(struct ieee8021
if (isvapht(vap))
error = ERESTART;
break;
+ case IEEE80211_IOC_MESHID:
+ if (ireq->i_val != 0 ||
+ ireq->i_len > IEEE80211_NWID_LEN)
+ return EINVAL;
+ error = copyin(ireq->i_data, tmpssid, ireq->i_len);
+ if (error)
+ break;
+ memset(vap->iv_meshid, 0, IEEE80211_NWID_LEN);
+ vap->iv_meshidlen = ireq->i_len;
+ memcpy(vap->iv_meshid, tmpssid, ireq->i_len);
+ break;
default:
error = ieee80211_ioctl_setdefault(vap, ireq);
break;
Modified: projects/mesh11s/sys/net80211/ieee80211_ioctl.h
==============================================================================
--- projects/mesh11s/sys/net80211/ieee80211_ioctl.h Mon Apr 20 18:59:36 2009 (r191333)
+++ projects/mesh11s/sys/net80211/ieee80211_ioctl.h Mon Apr 20 19:53:26 2009 (r191334)
@@ -628,6 +628,7 @@ struct ieee80211req {
#define IEEE80211_IOC_STA_VLAN 109 /* per-station vlan tag */
#define IEEE80211_IOC_SMPS 110 /* MIMO power save */
#define IEEE80211_IOC_RIFS 111 /* RIFS config (on, off) */
+#define IEEE80211_IOC_MESHID 112 /* Mesh identifier */
#define IEEE80211_IOC_TDMA_SLOT 201 /* TDMA: assigned slot */
#define IEEE80211_IOC_TDMA_SLOTCNT 202 /* TDMA: slots in bss */
Modified: projects/mesh11s/sys/net80211/ieee80211_var.h
==============================================================================
--- projects/mesh11s/sys/net80211/ieee80211_var.h Mon Apr 20 18:59:36 2009 (r191333)
+++ projects/mesh11s/sys/net80211/ieee80211_var.h Mon Apr 20 19:53:26 2009 (r191334)
@@ -371,6 +371,8 @@ struct ieee80211vap {
uint8_t iv_dtim_count; /* DTIM count from last bcn */
/* set/unset aid pwrsav state */
int iv_csa_count; /* count for doing CSA */
+ int iv_meshidlen;
+ uint8_t iv_meshid[IEEE80211_NWID_LEN];
struct ieee80211_node *iv_bss; /* information for this node */
struct ieee80211_txparam iv_txparms[IEEE80211_MODE_MAX];
More information about the svn-src-projects
mailing list