diff options
author | John W. Linville <linville@tuxdriver.com> | 2012-11-21 14:43:51 -0500 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2012-11-21 14:43:51 -0500 |
commit | 75c8ec71fb29ed59c4b9bda2f411ed3b09164cf7 (patch) | |
tree | c1dfd91e624b48ccefa71db573d043b639fe088f /include | |
parent | 1e60896fe07307baa5f3ca1a220dfa9792657352 (diff) | |
parent | 77d2ece6fde80631193054edc9c9a3edad519565 (diff) |
Merge branch 'for-john' of git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/ieee80211.h | 2 | ||||
-rw-r--r-- | include/net/cfg80211.h | 19 | ||||
-rw-r--r-- | include/net/mac80211.h | 39 | ||||
-rw-r--r-- | include/uapi/linux/nl80211.h | 10 |
4 files changed, 68 insertions, 2 deletions
diff --git a/include/linux/ieee80211.h b/include/linux/ieee80211.h index 4530d4960953..d68790903b9e 100644 --- a/include/linux/ieee80211.h +++ b/include/linux/ieee80211.h | |||
@@ -131,6 +131,8 @@ | |||
131 | 131 | ||
132 | #define IEEE80211_MAX_MESH_ID_LEN 32 | 132 | #define IEEE80211_MAX_MESH_ID_LEN 32 |
133 | 133 | ||
134 | #define IEEE80211_NUM_TIDS 16 | ||
135 | |||
134 | #define IEEE80211_QOS_CTL_LEN 2 | 136 | #define IEEE80211_QOS_CTL_LEN 2 |
135 | /* 1d tag mask */ | 137 | /* 1d tag mask */ |
136 | #define IEEE80211_QOS_CTL_TAG1D_MASK 0x0007 | 138 | #define IEEE80211_QOS_CTL_TAG1D_MASK 0x0007 |
diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h index 81d725038f97..8a1aec54e68f 100644 --- a/include/net/cfg80211.h +++ b/include/net/cfg80211.h | |||
@@ -3594,6 +3594,25 @@ void cfg80211_ch_switch_notify(struct net_device *dev, int freq, | |||
3594 | enum nl80211_channel_type type); | 3594 | enum nl80211_channel_type type); |
3595 | 3595 | ||
3596 | /* | 3596 | /* |
3597 | * cfg80211_tdls_oper_request - request userspace to perform TDLS operation | ||
3598 | * @dev: the device on which the operation is requested | ||
3599 | * @peer: the MAC address of the peer device | ||
3600 | * @oper: the requested TDLS operation (NL80211_TDLS_SETUP or | ||
3601 | * NL80211_TDLS_TEARDOWN) | ||
3602 | * @reason_code: the reason code for teardown request | ||
3603 | * @gfp: allocation flags | ||
3604 | * | ||
3605 | * This function is used to request userspace to perform TDLS operation that | ||
3606 | * requires knowledge of keys, i.e., link setup or teardown when the AP | ||
3607 | * connection uses encryption. This is optional mechanism for the driver to use | ||
3608 | * if it can automatically determine when a TDLS link could be useful (e.g., | ||
3609 | * based on traffic and signal strength for a peer). | ||
3610 | */ | ||
3611 | void cfg80211_tdls_oper_request(struct net_device *dev, const u8 *peer, | ||
3612 | enum nl80211_tdls_operation oper, | ||
3613 | u16 reason_code, gfp_t gfp); | ||
3614 | |||
3615 | /* | ||
3597 | * cfg80211_calculate_bitrate - calculate actual bitrate (in 100Kbps units) | 3616 | * cfg80211_calculate_bitrate - calculate actual bitrate (in 100Kbps units) |
3598 | * @rate: given rate_info to calculate bitrate from | 3617 | * @rate: given rate_info to calculate bitrate from |
3599 | * | 3618 | * |
diff --git a/include/net/mac80211.h b/include/net/mac80211.h index a789dd1d4c10..e1293c7e4d2c 100644 --- a/include/net/mac80211.h +++ b/include/net/mac80211.h | |||
@@ -711,10 +711,13 @@ ieee80211_tx_info_clear_status(struct ieee80211_tx_info *info) | |||
711 | * the frame. | 711 | * the frame. |
712 | * @RX_FLAG_FAILED_PLCP_CRC: Set this flag if the PCLP check failed on | 712 | * @RX_FLAG_FAILED_PLCP_CRC: Set this flag if the PCLP check failed on |
713 | * the frame. | 713 | * the frame. |
714 | * @RX_FLAG_MACTIME_MPDU: The timestamp passed in the RX status (@mactime | 714 | * @RX_FLAG_MACTIME_START: The timestamp passed in the RX status (@mactime |
715 | * field) is valid and contains the time the first symbol of the MPDU | 715 | * field) is valid and contains the time the first symbol of the MPDU |
716 | * was received. This is useful in monitor mode and for proper IBSS | 716 | * was received. This is useful in monitor mode and for proper IBSS |
717 | * merging. | 717 | * merging. |
718 | * @RX_FLAG_MACTIME_END: The timestamp passed in the RX status (@mactime | ||
719 | * field) is valid and contains the time the last symbol of the MPDU | ||
720 | * (including FCS) was received. | ||
718 | * @RX_FLAG_SHORTPRE: Short preamble was used for this frame | 721 | * @RX_FLAG_SHORTPRE: Short preamble was used for this frame |
719 | * @RX_FLAG_HT: HT MCS was used and rate_idx is MCS index | 722 | * @RX_FLAG_HT: HT MCS was used and rate_idx is MCS index |
720 | * @RX_FLAG_40MHZ: HT40 (40 MHz) was used | 723 | * @RX_FLAG_40MHZ: HT40 (40 MHz) was used |
@@ -745,7 +748,7 @@ enum mac80211_rx_flags { | |||
745 | RX_FLAG_IV_STRIPPED = BIT(4), | 748 | RX_FLAG_IV_STRIPPED = BIT(4), |
746 | RX_FLAG_FAILED_FCS_CRC = BIT(5), | 749 | RX_FLAG_FAILED_FCS_CRC = BIT(5), |
747 | RX_FLAG_FAILED_PLCP_CRC = BIT(6), | 750 | RX_FLAG_FAILED_PLCP_CRC = BIT(6), |
748 | RX_FLAG_MACTIME_MPDU = BIT(7), | 751 | RX_FLAG_MACTIME_START = BIT(7), |
749 | RX_FLAG_SHORTPRE = BIT(8), | 752 | RX_FLAG_SHORTPRE = BIT(8), |
750 | RX_FLAG_HT = BIT(9), | 753 | RX_FLAG_HT = BIT(9), |
751 | RX_FLAG_40MHZ = BIT(10), | 754 | RX_FLAG_40MHZ = BIT(10), |
@@ -759,6 +762,7 @@ enum mac80211_rx_flags { | |||
759 | RX_FLAG_AMPDU_IS_LAST = BIT(18), | 762 | RX_FLAG_AMPDU_IS_LAST = BIT(18), |
760 | RX_FLAG_AMPDU_DELIM_CRC_ERROR = BIT(19), | 763 | RX_FLAG_AMPDU_DELIM_CRC_ERROR = BIT(19), |
761 | RX_FLAG_AMPDU_DELIM_CRC_KNOWN = BIT(20), | 764 | RX_FLAG_AMPDU_DELIM_CRC_KNOWN = BIT(20), |
765 | RX_FLAG_MACTIME_END = BIT(21), | ||
762 | }; | 766 | }; |
763 | 767 | ||
764 | /** | 768 | /** |
@@ -785,12 +789,21 @@ enum mac80211_rx_flags { | |||
785 | * @ampdu_reference: A-MPDU reference number, must be a different value for | 789 | * @ampdu_reference: A-MPDU reference number, must be a different value for |
786 | * each A-MPDU but the same for each subframe within one A-MPDU | 790 | * each A-MPDU but the same for each subframe within one A-MPDU |
787 | * @ampdu_delimiter_crc: A-MPDU delimiter CRC | 791 | * @ampdu_delimiter_crc: A-MPDU delimiter CRC |
792 | * @vendor_radiotap_bitmap: radiotap vendor namespace presence bitmap | ||
793 | * @vendor_radiotap_len: radiotap vendor namespace length | ||
794 | * @vendor_radiotap_align: radiotap vendor namespace alignment. Note | ||
795 | * that the actual data must be at the start of the SKB data | ||
796 | * already. | ||
797 | * @vendor_radiotap_oui: radiotap vendor namespace OUI | ||
798 | * @vendor_radiotap_subns: radiotap vendor sub namespace | ||
788 | */ | 799 | */ |
789 | struct ieee80211_rx_status { | 800 | struct ieee80211_rx_status { |
790 | u64 mactime; | 801 | u64 mactime; |
791 | u32 device_timestamp; | 802 | u32 device_timestamp; |
792 | u32 ampdu_reference; | 803 | u32 ampdu_reference; |
793 | u32 flag; | 804 | u32 flag; |
805 | u32 vendor_radiotap_bitmap; | ||
806 | u16 vendor_radiotap_len; | ||
794 | u16 freq; | 807 | u16 freq; |
795 | u8 rate_idx; | 808 | u8 rate_idx; |
796 | u8 rx_flags; | 809 | u8 rx_flags; |
@@ -798,6 +811,9 @@ struct ieee80211_rx_status { | |||
798 | u8 antenna; | 811 | u8 antenna; |
799 | s8 signal; | 812 | s8 signal; |
800 | u8 ampdu_delimiter_crc; | 813 | u8 ampdu_delimiter_crc; |
814 | u8 vendor_radiotap_align; | ||
815 | u8 vendor_radiotap_oui[3]; | ||
816 | u8 vendor_radiotap_subns; | ||
801 | }; | 817 | }; |
802 | 818 | ||
803 | /** | 819 | /** |
@@ -2192,6 +2208,14 @@ enum ieee80211_rate_control_changed { | |||
2192 | * @sta_remove: Notifies low level driver about removal of an associated | 2208 | * @sta_remove: Notifies low level driver about removal of an associated |
2193 | * station, AP, IBSS/WDS/mesh peer etc. This callback can sleep. | 2209 | * station, AP, IBSS/WDS/mesh peer etc. This callback can sleep. |
2194 | * | 2210 | * |
2211 | * @sta_add_debugfs: Drivers can use this callback to add debugfs files | ||
2212 | * when a station is added to mac80211's station list. This callback | ||
2213 | * and @sta_remove_debugfs should be within a CONFIG_MAC80211_DEBUGFS | ||
2214 | * conditional. This callback can sleep. | ||
2215 | * | ||
2216 | * @sta_remove_debugfs: Remove the debugfs files which were added using | ||
2217 | * @sta_add_debugfs. This callback can sleep. | ||
2218 | * | ||
2195 | * @sta_notify: Notifies low level driver about power state transition of an | 2219 | * @sta_notify: Notifies low level driver about power state transition of an |
2196 | * associated station, AP, IBSS/WDS/mesh peer etc. For a VIF operating | 2220 | * associated station, AP, IBSS/WDS/mesh peer etc. For a VIF operating |
2197 | * in AP mode, this callback will not be called when the flag | 2221 | * in AP mode, this callback will not be called when the flag |
@@ -2473,6 +2497,16 @@ struct ieee80211_ops { | |||
2473 | struct ieee80211_sta *sta); | 2497 | struct ieee80211_sta *sta); |
2474 | int (*sta_remove)(struct ieee80211_hw *hw, struct ieee80211_vif *vif, | 2498 | int (*sta_remove)(struct ieee80211_hw *hw, struct ieee80211_vif *vif, |
2475 | struct ieee80211_sta *sta); | 2499 | struct ieee80211_sta *sta); |
2500 | #ifdef CONFIG_MAC80211_DEBUGFS | ||
2501 | void (*sta_add_debugfs)(struct ieee80211_hw *hw, | ||
2502 | struct ieee80211_vif *vif, | ||
2503 | struct ieee80211_sta *sta, | ||
2504 | struct dentry *dir); | ||
2505 | void (*sta_remove_debugfs)(struct ieee80211_hw *hw, | ||
2506 | struct ieee80211_vif *vif, | ||
2507 | struct ieee80211_sta *sta, | ||
2508 | struct dentry *dir); | ||
2509 | #endif | ||
2476 | void (*sta_notify)(struct ieee80211_hw *hw, struct ieee80211_vif *vif, | 2510 | void (*sta_notify)(struct ieee80211_hw *hw, struct ieee80211_vif *vif, |
2477 | enum sta_notify_cmd, struct ieee80211_sta *sta); | 2511 | enum sta_notify_cmd, struct ieee80211_sta *sta); |
2478 | int (*sta_state)(struct ieee80211_hw *hw, struct ieee80211_vif *vif, | 2512 | int (*sta_state)(struct ieee80211_hw *hw, struct ieee80211_vif *vif, |
@@ -2514,6 +2548,7 @@ struct ieee80211_ops { | |||
2514 | int (*get_antenna)(struct ieee80211_hw *hw, u32 *tx_ant, u32 *rx_ant); | 2548 | int (*get_antenna)(struct ieee80211_hw *hw, u32 *tx_ant, u32 *rx_ant); |
2515 | 2549 | ||
2516 | int (*remain_on_channel)(struct ieee80211_hw *hw, | 2550 | int (*remain_on_channel)(struct ieee80211_hw *hw, |
2551 | struct ieee80211_vif *vif, | ||
2517 | struct ieee80211_channel *chan, | 2552 | struct ieee80211_channel *chan, |
2518 | enum nl80211_channel_type channel_type, | 2553 | enum nl80211_channel_type channel_type, |
2519 | int duration); | 2554 | int duration); |
diff --git a/include/uapi/linux/nl80211.h b/include/uapi/linux/nl80211.h index cbd2d6bb907a..1a9a819cfab0 100644 --- a/include/uapi/linux/nl80211.h +++ b/include/uapi/linux/nl80211.h | |||
@@ -526,6 +526,12 @@ | |||
526 | * of PMKSA caching dandidates. | 526 | * of PMKSA caching dandidates. |
527 | * | 527 | * |
528 | * @NL80211_CMD_TDLS_OPER: Perform a high-level TDLS command (e.g. link setup). | 528 | * @NL80211_CMD_TDLS_OPER: Perform a high-level TDLS command (e.g. link setup). |
529 | * In addition, this can be used as an event to request userspace to take | ||
530 | * actions on TDLS links (set up a new link or tear down an existing one). | ||
531 | * In such events, %NL80211_ATTR_TDLS_OPERATION indicates the requested | ||
532 | * operation, %NL80211_ATTR_MAC contains the peer MAC address, and | ||
533 | * %NL80211_ATTR_REASON_CODE the reason code to be used (only with | ||
534 | * %NL80211_TDLS_TEARDOWN). | ||
529 | * @NL80211_CMD_TDLS_MGMT: Send a TDLS management frame. | 535 | * @NL80211_CMD_TDLS_MGMT: Send a TDLS management frame. |
530 | * | 536 | * |
531 | * @NL80211_CMD_UNEXPECTED_FRAME: Used by an application controlling an AP | 537 | * @NL80211_CMD_UNEXPECTED_FRAME: Used by an application controlling an AP |
@@ -3057,6 +3063,9 @@ enum nl80211_ap_sme_features { | |||
3057 | * @NL80211_FEATURE_SCAN_FLUSH: Scan flush is supported | 3063 | * @NL80211_FEATURE_SCAN_FLUSH: Scan flush is supported |
3058 | * @NL80211_FEATURE_AP_SCAN: Support scanning using an AP vif | 3064 | * @NL80211_FEATURE_AP_SCAN: Support scanning using an AP vif |
3059 | * @NL80211_FEATURE_VIF_TXPOWER: The driver supports per-vif TX power setting | 3065 | * @NL80211_FEATURE_VIF_TXPOWER: The driver supports per-vif TX power setting |
3066 | * @NL80211_FEATURE_NEED_OBSS_SCAN: The driver expects userspace to perform | ||
3067 | * OBSS scans and generate 20/40 BSS coex reports. This flag is used only | ||
3068 | * for drivers implementing the CONNECT API, for AUTH/ASSOC it is implied. | ||
3060 | */ | 3069 | */ |
3061 | enum nl80211_feature_flags { | 3070 | enum nl80211_feature_flags { |
3062 | NL80211_FEATURE_SK_TX_STATUS = 1 << 0, | 3071 | NL80211_FEATURE_SK_TX_STATUS = 1 << 0, |
@@ -3069,6 +3078,7 @@ enum nl80211_feature_flags { | |||
3069 | NL80211_FEATURE_SCAN_FLUSH = 1 << 7, | 3078 | NL80211_FEATURE_SCAN_FLUSH = 1 << 7, |
3070 | NL80211_FEATURE_AP_SCAN = 1 << 8, | 3079 | NL80211_FEATURE_AP_SCAN = 1 << 8, |
3071 | NL80211_FEATURE_VIF_TXPOWER = 1 << 9, | 3080 | NL80211_FEATURE_VIF_TXPOWER = 1 << 9, |
3081 | NL80211_FEATURE_NEED_OBSS_SCAN = 1 << 10, | ||
3072 | }; | 3082 | }; |
3073 | 3083 | ||
3074 | /** | 3084 | /** |