aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/nl80211.h
diff options
context:
space:
mode:
authorJouni Malinen <jouni.malinen@atheros.com>2009-01-13 09:03:29 -0500
committerJohn W. Linville <linville@tuxdriver.com>2009-01-29 16:00:35 -0500
commit9aed3cc124343d92be6697e9af3928bdfe8eb03e (patch)
tree6a49a68422656790f944f37e3f34379b753d1dab /include/linux/nl80211.h
parent0c1aa495961f03c964b3287cf5800217cf6f2cee (diff)
nl80211: New command for adding extra IE(s) into management frames
A new nl80211 command, NL80211_CMD_SET_MGMT_EXTRA_IE, can be used to add arbitrary IE data into the end of management frames. The interface allows extra IEs to be configured for each management frame subtype, but only some of them (ProbeReq, ProbeResp, Auth, (Re)AssocReq, Deauth, Disassoc) are currently accepted in mac80211 implementation. This makes it easier to implement IEEE 802.11 extensions like WPS and FT that add IE(s) into some management frames. In addition, this can be useful for testing and experimentation purposes. Signed-off-by: Jouni Malinen <jouni.malinen@atheros.com> Acked-by: Johannes Berg <johannes@sipsolutions.net> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'include/linux/nl80211.h')
-rw-r--r--include/linux/nl80211.h22
1 files changed, 22 insertions, 0 deletions
diff --git a/include/linux/nl80211.h b/include/linux/nl80211.h
index 4e7a7986a521..76aae3d8e97e 100644
--- a/include/linux/nl80211.h
+++ b/include/linux/nl80211.h
@@ -133,6 +133,14 @@
133 * @NL80211_CMD_SET_MESH_PARAMS: Set mesh networking properties for the 133 * @NL80211_CMD_SET_MESH_PARAMS: Set mesh networking properties for the
134 * interface identified by %NL80211_ATTR_IFINDEX 134 * interface identified by %NL80211_ATTR_IFINDEX
135 * 135 *
136 * @NL80211_CMD_SET_MGMT_EXTRA_IE: Set extra IEs for management frames. The
137 * interface is identified with %NL80211_ATTR_IFINDEX and the management
138 * frame subtype with %NL80211_ATTR_MGMT_SUBTYPE. The extra IE data to be
139 * added to the end of the specified management frame is specified with
140 * %NL80211_ATTR_IE. If the command succeeds, the requested data will be
141 * added to all specified management frames generated by
142 * kernel/firmware/driver.
143 *
136 * @NL80211_CMD_MAX: highest used command number 144 * @NL80211_CMD_MAX: highest used command number
137 * @__NL80211_CMD_AFTER_LAST: internal use 145 * @__NL80211_CMD_AFTER_LAST: internal use
138 */ 146 */
@@ -178,6 +186,8 @@ enum nl80211_commands {
178 NL80211_CMD_GET_MESH_PARAMS, 186 NL80211_CMD_GET_MESH_PARAMS,
179 NL80211_CMD_SET_MESH_PARAMS, 187 NL80211_CMD_SET_MESH_PARAMS,
180 188
189 NL80211_CMD_SET_MGMT_EXTRA_IE,
190
181 /* add new commands above here */ 191 /* add new commands above here */
182 192
183 /* used to define NL80211_CMD_MAX below */ 193 /* used to define NL80211_CMD_MAX below */
@@ -190,6 +200,7 @@ enum nl80211_commands {
190 * here 200 * here
191 */ 201 */
192#define NL80211_CMD_SET_BSS NL80211_CMD_SET_BSS 202#define NL80211_CMD_SET_BSS NL80211_CMD_SET_BSS
203#define NL80211_CMD_SET_MGMT_EXTRA_IE NL80211_CMD_SET_MGMT_EXTRA_IE
193 204
194/** 205/**
195 * enum nl80211_attrs - nl80211 netlink attributes 206 * enum nl80211_attrs - nl80211 netlink attributes
@@ -284,6 +295,12 @@ enum nl80211_commands {
284 * supported interface types, each a flag attribute with the number 295 * supported interface types, each a flag attribute with the number
285 * of the interface mode. 296 * of the interface mode.
286 * 297 *
298 * @NL80211_ATTR_MGMT_SUBTYPE: Management frame subtype for
299 * %NL80211_CMD_SET_MGMT_EXTRA_IE.
300 *
301 * @NL80211_ATTR_IE: Information element(s) data (used, e.g., with
302 * %NL80211_CMD_SET_MGMT_EXTRA_IE).
303 *
287 * @NL80211_ATTR_MAX: highest attribute number currently defined 304 * @NL80211_ATTR_MAX: highest attribute number currently defined
288 * @__NL80211_ATTR_AFTER_LAST: internal use 305 * @__NL80211_ATTR_AFTER_LAST: internal use
289 */ 306 */
@@ -348,6 +365,9 @@ enum nl80211_attrs {
348 365
349 NL80211_ATTR_KEY_DEFAULT_MGMT, 366 NL80211_ATTR_KEY_DEFAULT_MGMT,
350 367
368 NL80211_ATTR_MGMT_SUBTYPE,
369 NL80211_ATTR_IE,
370
351 /* add attributes here, update the policy in nl80211.c */ 371 /* add attributes here, update the policy in nl80211.c */
352 372
353 __NL80211_ATTR_AFTER_LAST, 373 __NL80211_ATTR_AFTER_LAST,
@@ -363,6 +383,8 @@ enum nl80211_attrs {
363#define NL80211_ATTR_WIPHY_TXQ_PARAMS NL80211_ATTR_WIPHY_TXQ_PARAMS 383#define NL80211_ATTR_WIPHY_TXQ_PARAMS NL80211_ATTR_WIPHY_TXQ_PARAMS
364#define NL80211_ATTR_WIPHY_FREQ NL80211_ATTR_WIPHY_FREQ 384#define NL80211_ATTR_WIPHY_FREQ NL80211_ATTR_WIPHY_FREQ
365#define NL80211_ATTR_WIPHY_CHANNEL_TYPE NL80211_ATTR_WIPHY_CHANNEL_TYPE 385#define NL80211_ATTR_WIPHY_CHANNEL_TYPE NL80211_ATTR_WIPHY_CHANNEL_TYPE
386#define NL80211_ATTR_MGMT_SUBTYPE NL80211_ATTR_MGMT_SUBTYPE
387#define NL80211_ATTR_IE NL80211_ATTR_IE
366 388
367#define NL80211_MAX_SUPP_RATES 32 389#define NL80211_MAX_SUPP_RATES 32
368#define NL80211_MAX_SUPP_REG_RULES 32 390#define NL80211_MAX_SUPP_REG_RULES 32