Merge branch 'for-john' of git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next
Conflicts: drivers/net/wireless/mwifiex/sta_ioctl.c net/mac80211/scan.c
This commit is contained in:
@@ -58,6 +58,8 @@
|
||||
* structures here describe these capabilities in detail.
|
||||
*/
|
||||
|
||||
struct wiphy;
|
||||
|
||||
/*
|
||||
* wireless hardware capability structures
|
||||
*/
|
||||
@@ -387,6 +389,22 @@ const struct cfg80211_chan_def *
|
||||
cfg80211_chandef_compatible(const struct cfg80211_chan_def *chandef1,
|
||||
const struct cfg80211_chan_def *chandef2);
|
||||
|
||||
/**
|
||||
* cfg80211_chandef_valid - check if a channel definition is valid
|
||||
* @chandef: the channel definition to check
|
||||
*/
|
||||
bool cfg80211_chandef_valid(const struct cfg80211_chan_def *chandef);
|
||||
|
||||
/**
|
||||
* cfg80211_chandef_usable - check if secondary channels can be used
|
||||
* @wiphy: the wiphy to validate against
|
||||
* @chandef: the channel definition to check
|
||||
* @prohibited_flags: the regulatory chanenl flags that must not be set
|
||||
*/
|
||||
bool cfg80211_chandef_usable(struct wiphy *wiphy,
|
||||
const struct cfg80211_chan_def *chandef,
|
||||
u32 prohibited_flags);
|
||||
|
||||
/**
|
||||
* enum survey_info_flags - survey information flags
|
||||
*
|
||||
@@ -520,6 +538,8 @@ struct cfg80211_beacon_data {
|
||||
* @privacy: the BSS uses privacy
|
||||
* @auth_type: Authentication type (algorithm)
|
||||
* @inactivity_timeout: time in seconds to determine station's inactivity.
|
||||
* @p2p_ctwindow: P2P CT Window
|
||||
* @p2p_opp_ps: P2P opportunistic PS
|
||||
*/
|
||||
struct cfg80211_ap_settings {
|
||||
struct cfg80211_chan_def chandef;
|
||||
@@ -534,6 +554,8 @@ struct cfg80211_ap_settings {
|
||||
bool privacy;
|
||||
enum nl80211_auth_type auth_type;
|
||||
int inactivity_timeout;
|
||||
u8 p2p_ctwindow;
|
||||
bool p2p_opp_ps;
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -895,6 +917,8 @@ struct mpath_info {
|
||||
* @ap_isolate: do not forward packets between connected stations
|
||||
* @ht_opmode: HT Operation mode
|
||||
* (u16 = opmode, -1 = do not change)
|
||||
* @p2p_ctwindow: P2P CT Window (-1 = no change)
|
||||
* @p2p_opp_ps: P2P opportunistic PS (-1 = no change)
|
||||
*/
|
||||
struct bss_parameters {
|
||||
int use_cts_prot;
|
||||
@@ -904,6 +928,7 @@ struct bss_parameters {
|
||||
u8 basic_rates_len;
|
||||
int ap_isolate;
|
||||
int ht_opmode;
|
||||
s8 p2p_ctwindow, p2p_opp_ps;
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -1045,9 +1070,6 @@ struct ieee80211_txq_params {
|
||||
u8 aifs;
|
||||
};
|
||||
|
||||
/* from net/wireless.h */
|
||||
struct wiphy;
|
||||
|
||||
/**
|
||||
* DOC: Scanning and BSS list handling
|
||||
*
|
||||
@@ -1183,6 +1205,18 @@ enum cfg80211_signal_type {
|
||||
CFG80211_SIGNAL_TYPE_UNSPEC,
|
||||
};
|
||||
|
||||
/**
|
||||
* struct cfg80211_bss_ie_data - BSS entry IE data
|
||||
* @rcu_head: internal use, for freeing
|
||||
* @len: length of the IEs
|
||||
* @data: IE data
|
||||
*/
|
||||
struct cfg80211_bss_ies {
|
||||
struct rcu_head rcu_head;
|
||||
int len;
|
||||
u8 data[];
|
||||
};
|
||||
|
||||
/**
|
||||
* struct cfg80211_bss - BSS description
|
||||
*
|
||||
@@ -1194,36 +1228,34 @@ enum cfg80211_signal_type {
|
||||
* @tsf: timestamp of last received update
|
||||
* @beacon_interval: the beacon interval as from the frame
|
||||
* @capability: the capability field in host byte order
|
||||
* @information_elements: the information elements (Note that there
|
||||
* @ies: the information elements (Note that there
|
||||
* is no guarantee that these are well-formed!); this is a pointer to
|
||||
* either the beacon_ies or proberesp_ies depending on whether Probe
|
||||
* Response frame has been received
|
||||
* @len_information_elements: total length of the information elements
|
||||
* @beacon_ies: the information elements from the last Beacon frame
|
||||
* @len_beacon_ies: total length of the beacon_ies
|
||||
* @proberesp_ies: the information elements from the last Probe Response frame
|
||||
* @len_proberesp_ies: total length of the proberesp_ies
|
||||
* @signal: signal strength value (type depends on the wiphy's signal_type)
|
||||
* @free_priv: function pointer to free private data
|
||||
* @priv: private area for driver use, has at least wiphy->bss_priv_size bytes
|
||||
*/
|
||||
struct cfg80211_bss {
|
||||
u64 tsf;
|
||||
|
||||
struct ieee80211_channel *channel;
|
||||
|
||||
u8 bssid[ETH_ALEN];
|
||||
u64 tsf;
|
||||
u16 beacon_interval;
|
||||
u16 capability;
|
||||
u8 *information_elements;
|
||||
size_t len_information_elements;
|
||||
u8 *beacon_ies;
|
||||
size_t len_beacon_ies;
|
||||
u8 *proberesp_ies;
|
||||
size_t len_proberesp_ies;
|
||||
const struct cfg80211_bss_ies __rcu *ies;
|
||||
const struct cfg80211_bss_ies __rcu *beacon_ies;
|
||||
const struct cfg80211_bss_ies __rcu *proberesp_ies;
|
||||
|
||||
void (*free_priv)(struct cfg80211_bss *bss);
|
||||
|
||||
s32 signal;
|
||||
|
||||
void (*free_priv)(struct cfg80211_bss *bss);
|
||||
u16 beacon_interval;
|
||||
u16 capability;
|
||||
|
||||
u8 bssid[ETH_ALEN];
|
||||
|
||||
u8 priv[0] __attribute__((__aligned__(sizeof(void *))));
|
||||
};
|
||||
|
||||
@@ -1231,6 +1263,9 @@ struct cfg80211_bss {
|
||||
* ieee80211_bss_get_ie - find IE with given ID
|
||||
* @bss: the bss to search
|
||||
* @ie: the IE ID
|
||||
*
|
||||
* Note that the return value is an RCU-protected pointer, so
|
||||
* rcu_read_lock() must be held when calling this function.
|
||||
* Returns %NULL if not found.
|
||||
*/
|
||||
const u8 *ieee80211_bss_get_ie(struct cfg80211_bss *bss, u8 ie);
|
||||
|
@@ -186,6 +186,10 @@ struct ieee80211_radiotap_header {
|
||||
* IEEE80211_RADIOTAP_AMPDU_STATUS u32, u16, u8, u8 unitless
|
||||
*
|
||||
* Contains the AMPDU information for the subframe.
|
||||
*
|
||||
* IEEE80211_RADIOTAP_VHT u16, u8, u8, u8[4], u8, u8, u16
|
||||
*
|
||||
* Contains VHT information about this frame.
|
||||
*/
|
||||
enum ieee80211_radiotap_type {
|
||||
IEEE80211_RADIOTAP_TSFT = 0,
|
||||
@@ -209,6 +213,7 @@ enum ieee80211_radiotap_type {
|
||||
|
||||
IEEE80211_RADIOTAP_MCS = 19,
|
||||
IEEE80211_RADIOTAP_AMPDU_STATUS = 20,
|
||||
IEEE80211_RADIOTAP_VHT = 21,
|
||||
|
||||
/* valid in every it_present bitmap, even vendor namespaces */
|
||||
IEEE80211_RADIOTAP_RADIOTAP_NAMESPACE = 29,
|
||||
@@ -282,6 +287,25 @@ enum ieee80211_radiotap_type {
|
||||
#define IEEE80211_RADIOTAP_AMPDU_DELIM_CRC_ERR 0x0010
|
||||
#define IEEE80211_RADIOTAP_AMPDU_DELIM_CRC_KNOWN 0x0020
|
||||
|
||||
/* For IEEE80211_RADIOTAP_VHT */
|
||||
#define IEEE80211_RADIOTAP_VHT_KNOWN_STBC 0x0001
|
||||
#define IEEE80211_RADIOTAP_VHT_KNOWN_TXOP_PS_NA 0x0002
|
||||
#define IEEE80211_RADIOTAP_VHT_KNOWN_GI 0x0004
|
||||
#define IEEE80211_RADIOTAP_VHT_KNOWN_SGI_NSYM_DIS 0x0008
|
||||
#define IEEE80211_RADIOTAP_VHT_KNOWN_LDPC_EXTRA_OFDM_SYM 0x0010
|
||||
#define IEEE80211_RADIOTAP_VHT_KNOWN_BEAMFORMED 0x0020
|
||||
#define IEEE80211_RADIOTAP_VHT_KNOWN_BANDWIDTH 0x0040
|
||||
#define IEEE80211_RADIOTAP_VHT_KNOWN_GROUP_ID 0x0080
|
||||
#define IEEE80211_RADIOTAP_VHT_KNOWN_PARTIAL_AID 0x0100
|
||||
|
||||
#define IEEE80211_RADIOTAP_VHT_FLAG_STBC 0x01
|
||||
#define IEEE80211_RADIOTAP_VHT_FLAG_TXOP_PS_NA 0x02
|
||||
#define IEEE80211_RADIOTAP_VHT_FLAG_SGI 0x04
|
||||
#define IEEE80211_RADIOTAP_VHT_FLAG_SGI_NSYM_M10_9 0x08
|
||||
#define IEEE80211_RADIOTAP_VHT_FLAG_LDPC_EXTRA_OFDM_SYM 0x10
|
||||
#define IEEE80211_RADIOTAP_VHT_FLAG_BEAMFORMED 0x20
|
||||
|
||||
|
||||
/* helpers */
|
||||
static inline int ieee80211_get_radiotap_len(unsigned char *data)
|
||||
{
|
||||
|
@@ -164,7 +164,7 @@ enum ieee80211_chanctx_change {
|
||||
* active on the channel to receive MIMO transmissions
|
||||
* @rx_chains_dynamic: The number of RX chains that must be enabled
|
||||
* after RTS/CTS handshake to receive SMPS MIMO transmissions;
|
||||
* this will always be >= @rx_chains_always.
|
||||
* this will always be >= @rx_chains_static.
|
||||
* @drv_priv: data area for driver use, will always be aligned to
|
||||
* sizeof(void *), size is determined in hw information.
|
||||
*/
|
||||
@@ -1473,6 +1473,10 @@ enum ieee80211_hw_flags {
|
||||
* include _FMT. Use %IEEE80211_RADIOTAP_MCS_HAVE_* values, only
|
||||
* adding _BW is supported today.
|
||||
*
|
||||
* @radiotap_vht_details: lists which VHT MCS information the HW reports,
|
||||
* the default is _GI | _BANDWIDTH.
|
||||
* Use the %IEEE80211_RADIOTAP_VHT_KNOWN_* values.
|
||||
*
|
||||
* @netdev_features: netdev features to be set in each netdev created
|
||||
* from this HW. Note only HW checksum features are currently
|
||||
* compatible with mac80211. Other feature bits will be rejected.
|
||||
@@ -1499,6 +1503,7 @@ struct ieee80211_hw {
|
||||
u8 max_tx_aggregation_subframes;
|
||||
u8 offchannel_tx_hw_queue;
|
||||
u8 radiotap_mcs_details;
|
||||
u16 radiotap_vht_details;
|
||||
netdev_features_t netdev_features;
|
||||
};
|
||||
|
||||
@@ -3139,8 +3144,7 @@ struct sk_buff *ieee80211_nullfunc_get(struct ieee80211_hw *hw,
|
||||
* @vif: &struct ieee80211_vif pointer from the add_interface callback.
|
||||
* @ssid: SSID buffer
|
||||
* @ssid_len: length of SSID
|
||||
* @ie: buffer containing all IEs except SSID for the template
|
||||
* @ie_len: length of the IE buffer
|
||||
* @tailroom: tailroom to reserve at end of SKB for IEs
|
||||
*
|
||||
* Creates a Probe Request template which can, for example, be uploaded to
|
||||
* hardware.
|
||||
@@ -3148,7 +3152,7 @@ struct sk_buff *ieee80211_nullfunc_get(struct ieee80211_hw *hw,
|
||||
struct sk_buff *ieee80211_probereq_get(struct ieee80211_hw *hw,
|
||||
struct ieee80211_vif *vif,
|
||||
const u8 *ssid, size_t ssid_len,
|
||||
const u8 *ie, size_t ie_len);
|
||||
size_t tailroom);
|
||||
|
||||
/**
|
||||
* ieee80211_rts_get - RTS frame generation function
|
||||
|
Reference in New Issue
Block a user