aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorJohn W. Linville <linville@tuxdriver.com>2012-11-21 14:43:51 -0500
committerJohn W. Linville <linville@tuxdriver.com>2012-11-21 14:43:51 -0500
commit75c8ec71fb29ed59c4b9bda2f411ed3b09164cf7 (patch)
treec1dfd91e624b48ccefa71db573d043b639fe088f /include
parent1e60896fe07307baa5f3ca1a220dfa9792657352 (diff)
parent77d2ece6fde80631193054edc9c9a3edad519565 (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.h2
-rw-r--r--include/net/cfg80211.h19
-rw-r--r--include/net/mac80211.h39
-rw-r--r--include/uapi/linux/nl80211.h10
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 */
3611void 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 */
789struct ieee80211_rx_status { 800struct 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 */
3061enum nl80211_feature_flags { 3070enum 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/**