mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-01-29 13:14:35 -05:00
Merge branch 'for-davem' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next
This commit is contained in:
@@ -1169,6 +1169,21 @@ enum nl80211_commands {
|
||||
* @NL80211_ATTR_PROBE_RESP: Probe Response template data. Contains the entire
|
||||
* probe-response frame. The DA field in the 802.11 header is zero-ed out,
|
||||
* to be filled by the FW.
|
||||
* @NL80211_ATTR_DISABLE_HT: Force HT capable interfaces to disable
|
||||
* this feature. Currently, only supported in mac80211 drivers.
|
||||
* @NL80211_ATTR_HT_CAPABILITY_MASK: Specify which bits of the
|
||||
* ATTR_HT_CAPABILITY to which attention should be paid.
|
||||
* Currently, only mac80211 NICs support this feature.
|
||||
* The values that may be configured are:
|
||||
* MCS rates, MAX-AMSDU, HT-20-40 and HT_CAP_SGI_40
|
||||
* AMPDU density and AMPDU factor.
|
||||
* All values are treated as suggestions and may be ignored
|
||||
* by the driver as required. The actual values may be seen in
|
||||
* the station debugfs ht_caps file.
|
||||
*
|
||||
* @NL80211_ATTR_DFS_REGION: region for regulatory rules which this country
|
||||
* abides to when initiating radiation on DFS channels. A country maps
|
||||
* to one DFS region.
|
||||
*
|
||||
* @NL80211_ATTR_MAX: highest attribute number currently defined
|
||||
* @__NL80211_ATTR_AFTER_LAST: internal use
|
||||
@@ -1408,6 +1423,11 @@ enum nl80211_attrs {
|
||||
|
||||
NL80211_ATTR_PROBE_RESP,
|
||||
|
||||
NL80211_ATTR_DFS_REGION,
|
||||
|
||||
NL80211_ATTR_DISABLE_HT,
|
||||
NL80211_ATTR_HT_CAPABILITY_MASK,
|
||||
|
||||
/* add attributes here, update the policy in nl80211.c */
|
||||
|
||||
__NL80211_ATTR_AFTER_LAST,
|
||||
@@ -1916,6 +1936,21 @@ enum nl80211_reg_rule_flags {
|
||||
NL80211_RRF_NO_IBSS = 1<<8,
|
||||
};
|
||||
|
||||
/**
|
||||
* enum nl80211_dfs_regions - regulatory DFS regions
|
||||
*
|
||||
* @NL80211_DFS_UNSET: Country has no DFS master region specified
|
||||
* @NL80211_DFS_FCC_: Country follows DFS master rules from FCC
|
||||
* @NL80211_DFS_FCC_: Country follows DFS master rules from ETSI
|
||||
* @NL80211_DFS_JP_: Country follows DFS master rules from JP/MKK/Telec
|
||||
*/
|
||||
enum nl80211_dfs_regions {
|
||||
NL80211_DFS_UNSET = 0,
|
||||
NL80211_DFS_FCC = 1,
|
||||
NL80211_DFS_ETSI = 2,
|
||||
NL80211_DFS_JP = 3,
|
||||
};
|
||||
|
||||
/**
|
||||
* enum nl80211_survey_info - survey information
|
||||
*
|
||||
|
||||
@@ -1043,6 +1043,15 @@ struct cfg80211_auth_request {
|
||||
bool local_state_change;
|
||||
};
|
||||
|
||||
/**
|
||||
* enum cfg80211_assoc_req_flags - Over-ride default behaviour in association.
|
||||
*
|
||||
* @ASSOC_REQ_DISABLE_HT: Disable HT (802.11n)
|
||||
*/
|
||||
enum cfg80211_assoc_req_flags {
|
||||
ASSOC_REQ_DISABLE_HT = BIT(0),
|
||||
};
|
||||
|
||||
/**
|
||||
* struct cfg80211_assoc_request - (Re)Association request data
|
||||
*
|
||||
@@ -1054,6 +1063,10 @@ struct cfg80211_auth_request {
|
||||
* @use_mfp: Use management frame protection (IEEE 802.11w) in this association
|
||||
* @crypto: crypto settings
|
||||
* @prev_bssid: previous BSSID, if not %NULL use reassociate frame
|
||||
* @flags: See &enum cfg80211_assoc_req_flags
|
||||
* @ht_capa: HT Capabilities over-rides. Values set in ht_capa_mask
|
||||
* will be used in ht_capa. Un-supported values will be ignored.
|
||||
* @ht_capa_mask: The bits of ht_capa which are to be used.
|
||||
*/
|
||||
struct cfg80211_assoc_request {
|
||||
struct cfg80211_bss *bss;
|
||||
@@ -1061,6 +1074,9 @@ struct cfg80211_assoc_request {
|
||||
size_t ie_len;
|
||||
struct cfg80211_crypto_settings crypto;
|
||||
bool use_mfp;
|
||||
u32 flags;
|
||||
struct ieee80211_ht_cap ht_capa;
|
||||
struct ieee80211_ht_cap ht_capa_mask;
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -1159,6 +1175,10 @@ struct cfg80211_ibss_params {
|
||||
* @key_len: length of WEP key for shared key authentication
|
||||
* @key_idx: index of WEP key for shared key authentication
|
||||
* @key: WEP key for shared key authentication
|
||||
* @flags: See &enum cfg80211_assoc_req_flags
|
||||
* @ht_capa: HT Capabilities over-rides. Values set in ht_capa_mask
|
||||
* will be used in ht_capa. Un-supported values will be ignored.
|
||||
* @ht_capa_mask: The bits of ht_capa which are to be used.
|
||||
*/
|
||||
struct cfg80211_connect_params {
|
||||
struct ieee80211_channel *channel;
|
||||
@@ -1172,6 +1192,9 @@ struct cfg80211_connect_params {
|
||||
struct cfg80211_crypto_settings crypto;
|
||||
const u8 *key;
|
||||
u8 key_len, key_idx;
|
||||
u32 flags;
|
||||
struct ieee80211_ht_cap ht_capa;
|
||||
struct ieee80211_ht_cap ht_capa_mask;
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -1700,6 +1723,8 @@ struct cfg80211_ops {
|
||||
* cfg80211_report_obss_beacon().
|
||||
* @WIPHY_FLAG_AP_PROBE_RESP_OFFLOAD: When operating as an AP, the device
|
||||
* responds to probe-requests in hardware.
|
||||
* @WIPHY_FLAG_OFFCHAN_TX: Device supports direct off-channel TX.
|
||||
* @WIPHY_FLAG_HAS_REMAIN_ON_CHANNEL: Device supports remain-on-channel call.
|
||||
*/
|
||||
enum wiphy_flags {
|
||||
WIPHY_FLAG_CUSTOM_REGULATORY = BIT(0),
|
||||
@@ -1721,6 +1746,8 @@ enum wiphy_flags {
|
||||
WIPHY_FLAG_HAVE_AP_SME = BIT(17),
|
||||
WIPHY_FLAG_REPORTS_OBSS = BIT(18),
|
||||
WIPHY_FLAG_AP_PROBE_RESP_OFFLOAD = BIT(19),
|
||||
WIPHY_FLAG_OFFCHAN_TX = BIT(20),
|
||||
WIPHY_FLAG_HAS_REMAIN_ON_CHANNEL = BIT(21),
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -1934,6 +1961,8 @@ struct wiphy_wowlan_support {
|
||||
* @wowlan: WoWLAN support information
|
||||
*
|
||||
* @ap_sme_capa: AP SME capabilities, flags from &enum nl80211_ap_sme_features.
|
||||
* @ht_capa_mod_mask: Specify what ht_cap values can be over-ridden.
|
||||
* If null, then none can be over-ridden.
|
||||
*/
|
||||
struct wiphy {
|
||||
/* assign these fields before you register the wiphy */
|
||||
@@ -2023,6 +2052,8 @@ struct wiphy {
|
||||
/* dir in debugfs: ieee80211/<wiphyname> */
|
||||
struct dentry *debugfsdir;
|
||||
|
||||
const struct ieee80211_ht_cap *ht_capa_mod_mask;
|
||||
|
||||
#ifdef CONFIG_NET_NS
|
||||
/* the network namespace this phy lives in currently */
|
||||
struct net *_net;
|
||||
@@ -2387,69 +2418,6 @@ extern int ieee80211_radiotap_iterator_next(
|
||||
extern const unsigned char rfc1042_header[6];
|
||||
extern const unsigned char bridge_tunnel_header[6];
|
||||
|
||||
/* Parsed Information Elements */
|
||||
struct ieee802_11_elems {
|
||||
u8 *ie_start;
|
||||
size_t total_len;
|
||||
|
||||
/* pointers to IEs */
|
||||
u8 *ssid;
|
||||
u8 *supp_rates;
|
||||
u8 *fh_params;
|
||||
u8 *ds_params;
|
||||
u8 *cf_params;
|
||||
struct ieee80211_tim_ie *tim;
|
||||
u8 *ibss_params;
|
||||
u8 *challenge;
|
||||
u8 *wpa;
|
||||
u8 *rsn;
|
||||
u8 *erp_info;
|
||||
u8 *ext_supp_rates;
|
||||
u8 *wmm_info;
|
||||
u8 *wmm_param;
|
||||
struct ieee80211_ht_cap *ht_cap_elem;
|
||||
struct ieee80211_ht_info *ht_info_elem;
|
||||
struct ieee80211_meshconf_ie *mesh_config;
|
||||
u8 *mesh_id;
|
||||
u8 *peering;
|
||||
u8 *preq;
|
||||
u8 *prep;
|
||||
u8 *perr;
|
||||
struct ieee80211_rann_ie *rann;
|
||||
u8 *ch_switch_elem;
|
||||
u8 *country_elem;
|
||||
u8 *pwr_constr_elem;
|
||||
u8 *quiet_elem; /* first quite element */
|
||||
u8 *timeout_int;
|
||||
|
||||
/* length of them, respectively */
|
||||
u8 ssid_len;
|
||||
u8 supp_rates_len;
|
||||
u8 fh_params_len;
|
||||
u8 ds_params_len;
|
||||
u8 cf_params_len;
|
||||
u8 tim_len;
|
||||
u8 ibss_params_len;
|
||||
u8 challenge_len;
|
||||
u8 wpa_len;
|
||||
u8 rsn_len;
|
||||
u8 erp_info_len;
|
||||
u8 ext_supp_rates_len;
|
||||
u8 wmm_info_len;
|
||||
u8 wmm_param_len;
|
||||
u8 mesh_id_len;
|
||||
u8 peering_len;
|
||||
u8 preq_len;
|
||||
u8 prep_len;
|
||||
u8 perr_len;
|
||||
u8 ch_switch_elem_len;
|
||||
u8 country_elem_len;
|
||||
u8 pwr_constr_elem_len;
|
||||
u8 quiet_elem_len;
|
||||
u8 num_of_quiet_elem; /* can be more the one */
|
||||
u8 timeout_int_len;
|
||||
};
|
||||
|
||||
/**
|
||||
* ieee80211_get_hdrlen_from_skb - get header length from data
|
||||
*
|
||||
|
||||
@@ -1760,11 +1760,21 @@ enum ieee80211_frame_release_type {
|
||||
* skb contains the buffer starting from the IEEE 802.11 header.
|
||||
* The low-level driver should send the frame out based on
|
||||
* configuration in the TX control data. This handler should,
|
||||
* preferably, never fail and stop queues appropriately, more
|
||||
* importantly, however, it must never fail for A-MPDU-queues.
|
||||
* This function should return NETDEV_TX_OK except in very
|
||||
* limited cases.
|
||||
* Must be implemented and atomic.
|
||||
* preferably, never fail and stop queues appropriately.
|
||||
* This must be implemented if @tx_frags is not.
|
||||
* Must be atomic.
|
||||
*
|
||||
* @tx_frags: Called to transmit multiple fragments of a single MSDU.
|
||||
* This handler must consume all fragments, sending out some of
|
||||
* them only is useless and it can't ask for some of them to be
|
||||
* queued again. If the frame is not fragmented the queue has a
|
||||
* single SKB only. To avoid issues with the networking stack
|
||||
* when TX status is reported the frames should be removed from
|
||||
* the skb queue.
|
||||
* If this is used, the tx_info @vif and @sta pointers will be
|
||||
* invalid -- you must not use them in that case.
|
||||
* This must be implemented if @tx isn't.
|
||||
* Must be atomic.
|
||||
*
|
||||
* @start: Called before the first netdevice attached to the hardware
|
||||
* is enabled. This should turn on the hardware and must turn on
|
||||
@@ -2101,6 +2111,8 @@ enum ieee80211_frame_release_type {
|
||||
*/
|
||||
struct ieee80211_ops {
|
||||
void (*tx)(struct ieee80211_hw *hw, struct sk_buff *skb);
|
||||
void (*tx_frags)(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
|
||||
struct ieee80211_sta *sta, struct sk_buff_head *skbs);
|
||||
int (*start)(struct ieee80211_hw *hw);
|
||||
void (*stop)(struct ieee80211_hw *hw);
|
||||
#ifdef CONFIG_PM
|
||||
|
||||
@@ -34,30 +34,30 @@
|
||||
#define NCI_MAX_NUM_CONN 10
|
||||
|
||||
/* NCI Status Codes */
|
||||
#define NCI_STATUS_OK 0x00
|
||||
#define NCI_STATUS_REJECTED 0x01
|
||||
#define NCI_STATUS_RF_FRAME_CORRUPTED 0x02
|
||||
#define NCI_STATUS_FAILED 0x03
|
||||
#define NCI_STATUS_NOT_INITIALIZED 0x04
|
||||
#define NCI_STATUS_SYNTAX_ERROR 0x05
|
||||
#define NCI_STATUS_SEMANTIC_ERROR 0x06
|
||||
#define NCI_STATUS_UNKNOWN_GID 0x07
|
||||
#define NCI_STATUS_UNKNOWN_OID 0x08
|
||||
#define NCI_STATUS_INVALID_PARAM 0x09
|
||||
#define NCI_STATUS_MESSAGE_SIZE_EXCEEDED 0x0a
|
||||
#define NCI_STATUS_OK 0x00
|
||||
#define NCI_STATUS_REJECTED 0x01
|
||||
#define NCI_STATUS_RF_FRAME_CORRUPTED 0x02
|
||||
#define NCI_STATUS_FAILED 0x03
|
||||
#define NCI_STATUS_NOT_INITIALIZED 0x04
|
||||
#define NCI_STATUS_SYNTAX_ERROR 0x05
|
||||
#define NCI_STATUS_SEMANTIC_ERROR 0x06
|
||||
#define NCI_STATUS_UNKNOWN_GID 0x07
|
||||
#define NCI_STATUS_UNKNOWN_OID 0x08
|
||||
#define NCI_STATUS_INVALID_PARAM 0x09
|
||||
#define NCI_STATUS_MESSAGE_SIZE_EXCEEDED 0x0a
|
||||
/* Discovery Specific Status Codes */
|
||||
#define NCI_STATUS_DISCOVERY_ALREADY_STARTED 0xa0
|
||||
#define NCI_STATUS_DISCOVERY_TARGET_ACTIVATION_FAILED 0xa1
|
||||
#define NCI_STATUS_DISCOVERY_TEAR_DOWN 0xa2
|
||||
#define NCI_STATUS_DISCOVERY_ALREADY_STARTED 0xa0
|
||||
#define NCI_STATUS_DISCOVERY_TARGET_ACTIVATION_FAILED 0xa1
|
||||
#define NCI_STATUS_DISCOVERY_TEAR_DOWN 0xa2
|
||||
/* RF Interface Specific Status Codes */
|
||||
#define NCI_STATUS_RF_TRANSMISSION_ERROR 0xb0
|
||||
#define NCI_STATUS_RF_PROTOCOL_ERROR 0xb1
|
||||
#define NCI_STATUS_RF_TIMEOUT_ERROR 0xb2
|
||||
#define NCI_STATUS_RF_TRANSMISSION_ERROR 0xb0
|
||||
#define NCI_STATUS_RF_PROTOCOL_ERROR 0xb1
|
||||
#define NCI_STATUS_RF_TIMEOUT_ERROR 0xb2
|
||||
/* NFCEE Interface Specific Status Codes */
|
||||
#define NCI_STATUS_MAX_ACTIVE_NFCEE_INTERFACES_REACHED 0xc0
|
||||
#define NCI_STATUS_NFCEE_INTERFACE_ACTIVATION_FAILED 0xc1
|
||||
#define NCI_STATUS_NFCEE_TRANSMISSION_ERROR 0xc2
|
||||
#define NCI_STATUS_NFCEE_PROTOCOL_ERROR 0xc3
|
||||
#define NCI_STATUS_MAX_ACTIVE_NFCEE_INTERFACES_REACHED 0xc0
|
||||
#define NCI_STATUS_NFCEE_INTERFACE_ACTIVATION_FAILED 0xc1
|
||||
#define NCI_STATUS_NFCEE_TRANSMISSION_ERROR 0xc2
|
||||
#define NCI_STATUS_NFCEE_PROTOCOL_ERROR 0xc3
|
||||
#define NCI_STATUS_NFCEE_TIMEOUT_ERROR 0xc4
|
||||
|
||||
/* NCI RF Technology and Mode */
|
||||
@@ -97,9 +97,9 @@
|
||||
|
||||
/* NCI RF Interfaces */
|
||||
#define NCI_RF_INTERFACE_NFCEE_DIRECT 0x00
|
||||
#define NCI_RF_INTERFACE_FRAME 0x01
|
||||
#define NCI_RF_INTERFACE_ISO_DEP 0x02
|
||||
#define NCI_RF_INTERFACE_NFC_DEP 0x03
|
||||
#define NCI_RF_INTERFACE_FRAME 0x01
|
||||
#define NCI_RF_INTERFACE_ISO_DEP 0x02
|
||||
#define NCI_RF_INTERFACE_NFC_DEP 0x03
|
||||
|
||||
/* NCI Reset types */
|
||||
#define NCI_RESET_TYPE_KEEP_CONFIG 0x00
|
||||
@@ -118,22 +118,22 @@
|
||||
|
||||
/* NCI Discovery Types */
|
||||
#define NCI_DISCOVERY_TYPE_POLL_A_PASSIVE 0x00
|
||||
#define NCI_DISCOVERY_TYPE_POLL_B_PASSIVE 0x01
|
||||
#define NCI_DISCOVERY_TYPE_POLL_F_PASSIVE 0x02
|
||||
#define NCI_DISCOVERY_TYPE_POLL_A_ACTIVE 0x03
|
||||
#define NCI_DISCOVERY_TYPE_POLL_F_ACTIVE 0x05
|
||||
#define NCI_DISCOVERY_TYPE_WAKEUP_A_ACTIVE 0x09
|
||||
#define NCI_DISCOVERY_TYPE_LISTEN_A_PASSIVE 0x80
|
||||
#define NCI_DISCOVERY_TYPE_LISTEN_B_PASSIVE 0x81
|
||||
#define NCI_DISCOVERY_TYPE_LISTEN_F_PASSIVE 0x82
|
||||
#define NCI_DISCOVERY_TYPE_LISTEN_A_ACTIVE 0x83
|
||||
#define NCI_DISCOVERY_TYPE_LISTEN_F_ACTIVE 0x85
|
||||
#define NCI_DISCOVERY_TYPE_POLL_B_PASSIVE 0x01
|
||||
#define NCI_DISCOVERY_TYPE_POLL_F_PASSIVE 0x02
|
||||
#define NCI_DISCOVERY_TYPE_POLL_A_ACTIVE 0x03
|
||||
#define NCI_DISCOVERY_TYPE_POLL_F_ACTIVE 0x05
|
||||
#define NCI_DISCOVERY_TYPE_WAKEUP_A_ACTIVE 0x09
|
||||
#define NCI_DISCOVERY_TYPE_LISTEN_A_PASSIVE 0x80
|
||||
#define NCI_DISCOVERY_TYPE_LISTEN_B_PASSIVE 0x81
|
||||
#define NCI_DISCOVERY_TYPE_LISTEN_F_PASSIVE 0x82
|
||||
#define NCI_DISCOVERY_TYPE_LISTEN_A_ACTIVE 0x83
|
||||
#define NCI_DISCOVERY_TYPE_LISTEN_F_ACTIVE 0x85
|
||||
|
||||
/* NCI Deactivation Type */
|
||||
#define NCI_DEACTIVATE_TYPE_IDLE_MODE 0x00
|
||||
#define NCI_DEACTIVATE_TYPE_SLEEP_MODE 0x01
|
||||
#define NCI_DEACTIVATE_TYPE_SLEEP_AF_MODE 0x02
|
||||
#define NCI_DEACTIVATE_TYPE_DISCOVERY 0x03
|
||||
#define NCI_DEACTIVATE_TYPE_IDLE_MODE 0x00
|
||||
#define NCI_DEACTIVATE_TYPE_SLEEP_MODE 0x01
|
||||
#define NCI_DEACTIVATE_TYPE_SLEEP_AF_MODE 0x02
|
||||
#define NCI_DEACTIVATE_TYPE_DISCOVERY 0x03
|
||||
|
||||
/* Message Type (MT) */
|
||||
#define NCI_MT_DATA_PKT 0x00
|
||||
@@ -165,10 +165,10 @@
|
||||
#define nci_conn_id(hdr) (__u8)(((hdr)[0])&0x0f)
|
||||
|
||||
/* GID values */
|
||||
#define NCI_GID_CORE 0x0
|
||||
#define NCI_GID_RF_MGMT 0x1
|
||||
#define NCI_GID_NFCEE_MGMT 0x2
|
||||
#define NCI_GID_PROPRIETARY 0xf
|
||||
#define NCI_GID_CORE 0x0
|
||||
#define NCI_GID_RF_MGMT 0x1
|
||||
#define NCI_GID_NFCEE_MGMT 0x2
|
||||
#define NCI_GID_PROPRIETARY 0xf
|
||||
|
||||
/* ---- NCI Packet structures ---- */
|
||||
#define NCI_CTRL_HDR_SIZE 3
|
||||
|
||||
@@ -48,6 +48,10 @@ enum environment_cap {
|
||||
* 99 - built by driver but a specific alpha2 cannot be determined
|
||||
* 98 - result of an intersection between two regulatory domains
|
||||
* 97 - regulatory domain has not yet been configured
|
||||
* @dfs_region: If CRDA responded with a regulatory domain that requires
|
||||
* DFS master operation on a known DFS region (NL80211_DFS_*),
|
||||
* dfs_region represents that region. Drivers can use this and the
|
||||
* @alpha2 to adjust their device's DFS parameters as required.
|
||||
* @intersect: indicates whether the wireless core should intersect
|
||||
* the requested regulatory domain with the presently set regulatory
|
||||
* domain.
|
||||
@@ -67,6 +71,7 @@ struct regulatory_request {
|
||||
int wiphy_idx;
|
||||
enum nl80211_reg_initiator initiator;
|
||||
char alpha2[2];
|
||||
u8 dfs_region;
|
||||
bool intersect;
|
||||
bool processed;
|
||||
enum environment_cap country_ie_env;
|
||||
@@ -93,6 +98,7 @@ struct ieee80211_reg_rule {
|
||||
struct ieee80211_regdomain {
|
||||
u32 n_reg_rules;
|
||||
char alpha2[2];
|
||||
u8 dfs_region;
|
||||
struct ieee80211_reg_rule reg_rules[];
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user