Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 20 Apr 2009 19:53:26 +0000 (UTC)
From:      Rui Paulo <rpaulo@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject:   svn commit: r191334 - projects/mesh11s/sys/net80211
Message-ID:  <200904201953.n3KJrQni056631@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
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];



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200904201953.n3KJrQni056631>