diff options
Diffstat (limited to 'include/linux/nl80211.h')
-rw-r--r-- | include/linux/nl80211.h | 147 |
1 files changed, 145 insertions, 2 deletions
diff --git a/include/linux/nl80211.h b/include/linux/nl80211.h index 9bad65400fba..79827345351d 100644 --- a/include/linux/nl80211.h +++ b/include/linux/nl80211.h | |||
@@ -25,8 +25,9 @@ | |||
25 | * | 25 | * |
26 | * @NL80211_CMD_GET_WIPHY: request information about a wiphy or dump request | 26 | * @NL80211_CMD_GET_WIPHY: request information about a wiphy or dump request |
27 | * to get a list of all present wiphys. | 27 | * to get a list of all present wiphys. |
28 | * @NL80211_CMD_SET_WIPHY: set wiphy name, needs %NL80211_ATTR_WIPHY and | 28 | * @NL80211_CMD_SET_WIPHY: set wiphy parameters, needs %NL80211_ATTR_WIPHY or |
29 | * %NL80211_ATTR_WIPHY_NAME. | 29 | * %NL80211_ATTR_IFINDEX; can be used to set %NL80211_ATTR_WIPHY_NAME |
30 | * and/or %NL80211_ATTR_WIPHY_TXQ_PARAMS. | ||
30 | * @NL80211_CMD_NEW_WIPHY: Newly created wiphy, response to get request | 31 | * @NL80211_CMD_NEW_WIPHY: Newly created wiphy, response to get request |
31 | * or rename notification. Has attributes %NL80211_ATTR_WIPHY and | 32 | * or rename notification. Has attributes %NL80211_ATTR_WIPHY and |
32 | * %NL80211_ATTR_WIPHY_NAME. | 33 | * %NL80211_ATTR_WIPHY_NAME. |
@@ -106,6 +107,12 @@ | |||
106 | * to the the specified ISO/IEC 3166-1 alpha2 country code. The core will | 107 | * to the the specified ISO/IEC 3166-1 alpha2 country code. The core will |
107 | * store this as a valid request and then query userspace for it. | 108 | * store this as a valid request and then query userspace for it. |
108 | * | 109 | * |
110 | * @NL80211_CMD_GET_MESH_PARAMS: Get mesh networking properties for the | ||
111 | * interface identified by %NL80211_ATTR_IFINDEX | ||
112 | * | ||
113 | * @NL80211_CMD_SET_MESH_PARAMS: Set mesh networking properties for the | ||
114 | * interface identified by %NL80211_ATTR_IFINDEX | ||
115 | * | ||
109 | * @NL80211_CMD_MAX: highest used command number | 116 | * @NL80211_CMD_MAX: highest used command number |
110 | * @__NL80211_CMD_AFTER_LAST: internal use | 117 | * @__NL80211_CMD_AFTER_LAST: internal use |
111 | */ | 118 | */ |
@@ -148,6 +155,9 @@ enum nl80211_commands { | |||
148 | NL80211_CMD_SET_REG, | 155 | NL80211_CMD_SET_REG, |
149 | NL80211_CMD_REQ_SET_REG, | 156 | NL80211_CMD_REQ_SET_REG, |
150 | 157 | ||
158 | NL80211_CMD_GET_MESH_PARAMS, | ||
159 | NL80211_CMD_SET_MESH_PARAMS, | ||
160 | |||
151 | /* add new commands above here */ | 161 | /* add new commands above here */ |
152 | 162 | ||
153 | /* used to define NL80211_CMD_MAX below */ | 163 | /* used to define NL80211_CMD_MAX below */ |
@@ -169,6 +179,7 @@ enum nl80211_commands { | |||
169 | * @NL80211_ATTR_WIPHY: index of wiphy to operate on, cf. | 179 | * @NL80211_ATTR_WIPHY: index of wiphy to operate on, cf. |
170 | * /sys/class/ieee80211/<phyname>/index | 180 | * /sys/class/ieee80211/<phyname>/index |
171 | * @NL80211_ATTR_WIPHY_NAME: wiphy name (used for renaming) | 181 | * @NL80211_ATTR_WIPHY_NAME: wiphy name (used for renaming) |
182 | * @NL80211_ATTR_WIPHY_TXQ_PARAMS: a nested array of TX queue parameters | ||
172 | * | 183 | * |
173 | * @NL80211_ATTR_IFINDEX: network interface index of the device to operate on | 184 | * @NL80211_ATTR_IFINDEX: network interface index of the device to operate on |
174 | * @NL80211_ATTR_IFNAME: network interface name | 185 | * @NL80211_ATTR_IFNAME: network interface name |
@@ -234,6 +245,9 @@ enum nl80211_commands { | |||
234 | * (u8, 0 or 1) | 245 | * (u8, 0 or 1) |
235 | * @NL80211_ATTR_BSS_SHORT_SLOT_TIME: whether short slot time enabled | 246 | * @NL80211_ATTR_BSS_SHORT_SLOT_TIME: whether short slot time enabled |
236 | * (u8, 0 or 1) | 247 | * (u8, 0 or 1) |
248 | * @NL80211_ATTR_BSS_BASIC_RATES: basic rates, array of basic | ||
249 | * rates in format defined by IEEE 802.11 7.3.2.2 but without the length | ||
250 | * restriction (at most %NL80211_MAX_SUPP_RATES). | ||
237 | * | 251 | * |
238 | * @NL80211_ATTR_HT_CAPABILITY: HT Capability information element (from | 252 | * @NL80211_ATTR_HT_CAPABILITY: HT Capability information element (from |
239 | * association request when used with NL80211_CMD_NEW_STATION) | 253 | * association request when used with NL80211_CMD_NEW_STATION) |
@@ -296,6 +310,12 @@ enum nl80211_attrs { | |||
296 | NL80211_ATTR_REG_ALPHA2, | 310 | NL80211_ATTR_REG_ALPHA2, |
297 | NL80211_ATTR_REG_RULES, | 311 | NL80211_ATTR_REG_RULES, |
298 | 312 | ||
313 | NL80211_ATTR_MESH_PARAMS, | ||
314 | |||
315 | NL80211_ATTR_BSS_BASIC_RATES, | ||
316 | |||
317 | NL80211_ATTR_WIPHY_TXQ_PARAMS, | ||
318 | |||
299 | /* add attributes here, update the policy in nl80211.c */ | 319 | /* add attributes here, update the policy in nl80211.c */ |
300 | 320 | ||
301 | __NL80211_ATTR_AFTER_LAST, | 321 | __NL80211_ATTR_AFTER_LAST, |
@@ -307,6 +327,8 @@ enum nl80211_attrs { | |||
307 | * here | 327 | * here |
308 | */ | 328 | */ |
309 | #define NL80211_ATTR_HT_CAPABILITY NL80211_ATTR_HT_CAPABILITY | 329 | #define NL80211_ATTR_HT_CAPABILITY NL80211_ATTR_HT_CAPABILITY |
330 | #define NL80211_ATTR_BSS_BASIC_RATES NL80211_ATTR_BSS_BASIC_RATES | ||
331 | #define NL80211_ATTR_WIPHY_TXQ_PARAMS NL80211_ATTR_WIPHY_TXQ_PARAMS | ||
310 | 332 | ||
311 | #define NL80211_MAX_SUPP_RATES 32 | 333 | #define NL80211_MAX_SUPP_RATES 32 |
312 | #define NL80211_MAX_SUPP_REG_RULES 32 | 334 | #define NL80211_MAX_SUPP_REG_RULES 32 |
@@ -452,17 +474,29 @@ enum nl80211_mpath_info { | |||
452 | * an array of nested frequency attributes | 474 | * an array of nested frequency attributes |
453 | * @NL80211_BAND_ATTR_RATES: supported bitrates in this band, | 475 | * @NL80211_BAND_ATTR_RATES: supported bitrates in this band, |
454 | * an array of nested bitrate attributes | 476 | * an array of nested bitrate attributes |
477 | * @NL80211_BAND_ATTR_HT_MCS_SET: 16-byte attribute containing the MCS set as | ||
478 | * defined in 802.11n | ||
479 | * @NL80211_BAND_ATTR_HT_CAPA: HT capabilities, as in the HT information IE | ||
480 | * @NL80211_BAND_ATTR_HT_AMPDU_FACTOR: A-MPDU factor, as in 11n | ||
481 | * @NL80211_BAND_ATTR_HT_AMPDU_DENSITY: A-MPDU density, as in 11n | ||
455 | */ | 482 | */ |
456 | enum nl80211_band_attr { | 483 | enum nl80211_band_attr { |
457 | __NL80211_BAND_ATTR_INVALID, | 484 | __NL80211_BAND_ATTR_INVALID, |
458 | NL80211_BAND_ATTR_FREQS, | 485 | NL80211_BAND_ATTR_FREQS, |
459 | NL80211_BAND_ATTR_RATES, | 486 | NL80211_BAND_ATTR_RATES, |
460 | 487 | ||
488 | NL80211_BAND_ATTR_HT_MCS_SET, | ||
489 | NL80211_BAND_ATTR_HT_CAPA, | ||
490 | NL80211_BAND_ATTR_HT_AMPDU_FACTOR, | ||
491 | NL80211_BAND_ATTR_HT_AMPDU_DENSITY, | ||
492 | |||
461 | /* keep last */ | 493 | /* keep last */ |
462 | __NL80211_BAND_ATTR_AFTER_LAST, | 494 | __NL80211_BAND_ATTR_AFTER_LAST, |
463 | NL80211_BAND_ATTR_MAX = __NL80211_BAND_ATTR_AFTER_LAST - 1 | 495 | NL80211_BAND_ATTR_MAX = __NL80211_BAND_ATTR_AFTER_LAST - 1 |
464 | }; | 496 | }; |
465 | 497 | ||
498 | #define NL80211_BAND_ATTR_HT_CAPA NL80211_BAND_ATTR_HT_CAPA | ||
499 | |||
466 | /** | 500 | /** |
467 | * enum nl80211_frequency_attr - frequency attributes | 501 | * enum nl80211_frequency_attr - frequency attributes |
468 | * @NL80211_FREQUENCY_ATTR_FREQ: Frequency in MHz | 502 | * @NL80211_FREQUENCY_ATTR_FREQ: Frequency in MHz |
@@ -594,4 +628,113 @@ enum nl80211_mntr_flags { | |||
594 | NL80211_MNTR_FLAG_MAX = __NL80211_MNTR_FLAG_AFTER_LAST - 1 | 628 | NL80211_MNTR_FLAG_MAX = __NL80211_MNTR_FLAG_AFTER_LAST - 1 |
595 | }; | 629 | }; |
596 | 630 | ||
631 | /** | ||
632 | * enum nl80211_meshconf_params - mesh configuration parameters | ||
633 | * | ||
634 | * Mesh configuration parameters | ||
635 | * | ||
636 | * @__NL80211_MESHCONF_INVALID: internal use | ||
637 | * | ||
638 | * @NL80211_MESHCONF_RETRY_TIMEOUT: specifies the initial retry timeout in | ||
639 | * millisecond units, used by the Peer Link Open message | ||
640 | * | ||
641 | * @NL80211_MESHCONF_CONFIRM_TIMEOUT: specifies the inital confirm timeout, in | ||
642 | * millisecond units, used by the peer link management to close a peer link | ||
643 | * | ||
644 | * @NL80211_MESHCONF_HOLDING_TIMEOUT: specifies the holding timeout, in | ||
645 | * millisecond units | ||
646 | * | ||
647 | * @NL80211_MESHCONF_MAX_PEER_LINKS: maximum number of peer links allowed | ||
648 | * on this mesh interface | ||
649 | * | ||
650 | * @NL80211_MESHCONF_MAX_RETRIES: specifies the maximum number of peer link | ||
651 | * open retries that can be sent to establish a new peer link instance in a | ||
652 | * mesh | ||
653 | * | ||
654 | * @NL80211_MESHCONF_TTL: specifies the value of TTL field set at a source mesh | ||
655 | * point. | ||
656 | * | ||
657 | * @NL80211_MESHCONF_AUTO_OPEN_PLINKS: whether we should automatically | ||
658 | * open peer links when we detect compatible mesh peers. | ||
659 | * | ||
660 | * @NL80211_MESHCONF_HWMP_MAX_PREQ_RETRIES: the number of action frames | ||
661 | * containing a PREQ that an MP can send to a particular destination (path | ||
662 | * target) | ||
663 | * | ||
664 | * @NL80211_MESHCONF_PATH_REFRESH_TIME: how frequently to refresh mesh paths | ||
665 | * (in milliseconds) | ||
666 | * | ||
667 | * @NL80211_MESHCONF_MIN_DISCOVERY_TIMEOUT: minimum length of time to wait | ||
668 | * until giving up on a path discovery (in milliseconds) | ||
669 | * | ||
670 | * @NL80211_MESHCONF_HWMP_ACTIVE_PATH_TIMEOUT: The time (in TUs) for which mesh | ||
671 | * points receiving a PREQ shall consider the forwarding information from the | ||
672 | * root to be valid. (TU = time unit) | ||
673 | * | ||
674 | * @NL80211_MESHCONF_HWMP_PREQ_MIN_INTERVAL: The minimum interval of time (in | ||
675 | * TUs) during which an MP can send only one action frame containing a PREQ | ||
676 | * reference element | ||
677 | * | ||
678 | * @NL80211_MESHCONF_HWMP_NET_DIAM_TRVS_TIME: The interval of time (in TUs) | ||
679 | * that it takes for an HWMP information element to propagate across the mesh | ||
680 | * | ||
681 | * @NL80211_MESHCONF_ATTR_MAX: highest possible mesh configuration attribute | ||
682 | * | ||
683 | * @__NL80211_MESHCONF_ATTR_AFTER_LAST: internal use | ||
684 | */ | ||
685 | enum nl80211_meshconf_params { | ||
686 | __NL80211_MESHCONF_INVALID, | ||
687 | NL80211_MESHCONF_RETRY_TIMEOUT, | ||
688 | NL80211_MESHCONF_CONFIRM_TIMEOUT, | ||
689 | NL80211_MESHCONF_HOLDING_TIMEOUT, | ||
690 | NL80211_MESHCONF_MAX_PEER_LINKS, | ||
691 | NL80211_MESHCONF_MAX_RETRIES, | ||
692 | NL80211_MESHCONF_TTL, | ||
693 | NL80211_MESHCONF_AUTO_OPEN_PLINKS, | ||
694 | NL80211_MESHCONF_HWMP_MAX_PREQ_RETRIES, | ||
695 | NL80211_MESHCONF_PATH_REFRESH_TIME, | ||
696 | NL80211_MESHCONF_MIN_DISCOVERY_TIMEOUT, | ||
697 | NL80211_MESHCONF_HWMP_ACTIVE_PATH_TIMEOUT, | ||
698 | NL80211_MESHCONF_HWMP_PREQ_MIN_INTERVAL, | ||
699 | NL80211_MESHCONF_HWMP_NET_DIAM_TRVS_TIME, | ||
700 | |||
701 | /* keep last */ | ||
702 | __NL80211_MESHCONF_ATTR_AFTER_LAST, | ||
703 | NL80211_MESHCONF_ATTR_MAX = __NL80211_MESHCONF_ATTR_AFTER_LAST - 1 | ||
704 | }; | ||
705 | |||
706 | /** | ||
707 | * enum nl80211_txq_attr - TX queue parameter attributes | ||
708 | * @__NL80211_TXQ_ATTR_INVALID: Attribute number 0 is reserved | ||
709 | * @NL80211_TXQ_ATTR_QUEUE: TX queue identifier (NL80211_TXQ_Q_*) | ||
710 | * @NL80211_TXQ_ATTR_TXOP: Maximum burst time in units of 32 usecs, 0 meaning | ||
711 | * disabled | ||
712 | * @NL80211_TXQ_ATTR_CWMIN: Minimum contention window [a value of the form | ||
713 | * 2^n-1 in the range 1..32767] | ||
714 | * @NL80211_TXQ_ATTR_CWMAX: Maximum contention window [a value of the form | ||
715 | * 2^n-1 in the range 1..32767] | ||
716 | * @NL80211_TXQ_ATTR_AIFS: Arbitration interframe space [0..255] | ||
717 | * @__NL80211_TXQ_ATTR_AFTER_LAST: Internal | ||
718 | * @NL80211_TXQ_ATTR_MAX: Maximum TXQ attribute number | ||
719 | */ | ||
720 | enum nl80211_txq_attr { | ||
721 | __NL80211_TXQ_ATTR_INVALID, | ||
722 | NL80211_TXQ_ATTR_QUEUE, | ||
723 | NL80211_TXQ_ATTR_TXOP, | ||
724 | NL80211_TXQ_ATTR_CWMIN, | ||
725 | NL80211_TXQ_ATTR_CWMAX, | ||
726 | NL80211_TXQ_ATTR_AIFS, | ||
727 | |||
728 | /* keep last */ | ||
729 | __NL80211_TXQ_ATTR_AFTER_LAST, | ||
730 | NL80211_TXQ_ATTR_MAX = __NL80211_TXQ_ATTR_AFTER_LAST - 1 | ||
731 | }; | ||
732 | |||
733 | enum nl80211_txq_q { | ||
734 | NL80211_TXQ_Q_VO, | ||
735 | NL80211_TXQ_Q_VI, | ||
736 | NL80211_TXQ_Q_BE, | ||
737 | NL80211_TXQ_Q_BK | ||
738 | }; | ||
739 | |||
597 | #endif /* __LINUX_NL80211_H */ | 740 | #endif /* __LINUX_NL80211_H */ |