Skip to content

Commit 962c382

Browse files
committed
Merge tag 'mac80211-next-for-davem-2019-02-01' of git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next
Johannes Berg says: ==================== New features for the wifi stack: * airtime fairness scheduling in mac80211, so we can share * more authentication offloads to userspace - this is for SAE which is part of WPA3 and is hard to do in firmware * documentation fixes * various mesh improvements * various other small improvements/cleanups This also contains the NLA_POLICY_NESTED{,_ARRAY} change we discussed, which affects everyone but there's no other user yet. ==================== Signed-off-by: David S. Miller <davem@davemloft.net>
2 parents 39ee6e8 + 7d41946 commit 962c382

File tree

25 files changed

+749
-75
lines changed

25 files changed

+749
-75
lines changed

Documentation/driver-api/80211/mac80211.rst

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,9 @@ functions/definitions
125125
.. kernel-doc:: include/net/mac80211.h
126126
:functions: ieee80211_rx_status
127127

128+
.. kernel-doc:: include/net/mac80211.h
129+
:functions: mac80211_rx_encoding_flags
130+
128131
.. kernel-doc:: include/net/mac80211.h
129132
:functions: mac80211_rx_flags
130133

drivers/net/wireless/virt_wifi.c

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,6 @@
1414
#include <linux/etherdevice.h>
1515
#include <linux/module.h>
1616

17-
#include <net/cfg80211.h>
18-
#include <net/rtnetlink.h>
19-
#include <linux/etherdevice.h>
20-
#include <linux/module.h>
21-
2217
static struct wiphy *common_wiphy;
2318

2419
struct virt_wifi_wiphy_priv {
@@ -429,13 +424,11 @@ static int virt_wifi_net_device_open(struct net_device *dev)
429424
static int virt_wifi_net_device_stop(struct net_device *dev)
430425
{
431426
struct virt_wifi_netdev_priv *n_priv = netdev_priv(dev);
432-
struct virt_wifi_wiphy_priv *w_priv;
433427

434428
n_priv->is_up = false;
435429

436430
if (!dev->ieee80211_ptr)
437431
return 0;
438-
w_priv = wiphy_priv(dev->ieee80211_ptr->wiphy);
439432

440433
virt_wifi_cancel_scan(dev->ieee80211_ptr->wiphy);
441434
virt_wifi_cancel_connect(dev);

include/net/cfg80211.h

Lines changed: 52 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -835,6 +835,17 @@ struct cfg80211_bitrate_mask {
835835
} control[NUM_NL80211_BANDS];
836836
};
837837

838+
/**
839+
* enum cfg80211_ap_settings_flags - AP settings flags
840+
*
841+
* Used by cfg80211_ap_settings
842+
*
843+
* @AP_SETTINGS_EXTERNAL_AUTH_SUPPORT: AP supports external authentication
844+
*/
845+
enum cfg80211_ap_settings_flags {
846+
AP_SETTINGS_EXTERNAL_AUTH_SUPPORT = BIT(0),
847+
};
848+
838849
/**
839850
* struct cfg80211_ap_settings - AP configuration
840851
*
@@ -865,6 +876,7 @@ struct cfg80211_bitrate_mask {
865876
* @he_cap: HE capabilities (or %NULL if HE isn't enabled)
866877
* @ht_required: stations must support HT
867878
* @vht_required: stations must support VHT
879+
* @flags: flags, as defined in enum cfg80211_ap_settings_flags
868880
*/
869881
struct cfg80211_ap_settings {
870882
struct cfg80211_chan_def chandef;
@@ -890,6 +902,7 @@ struct cfg80211_ap_settings {
890902
const struct ieee80211_vht_cap *vht_cap;
891903
const struct ieee80211_he_cap_elem *he_cap;
892904
bool ht_required, vht_required;
905+
u32 flags;
893906
};
894907

895908
/**
@@ -1003,6 +1016,7 @@ enum station_parameters_apply_mask {
10031016
* @support_p2p_ps: information if station supports P2P PS mechanism
10041017
* @he_capa: HE capabilities of station
10051018
* @he_capa_len: the length of the HE capabilities
1019+
* @airtime_weight: airtime scheduler weight for this station
10061020
*/
10071021
struct station_parameters {
10081022
const u8 *supported_rates;
@@ -1032,6 +1046,7 @@ struct station_parameters {
10321046
int support_p2p_ps;
10331047
const struct ieee80211_he_cap_elem *he_capa;
10341048
u8 he_capa_len;
1049+
u16 airtime_weight;
10351050
};
10361051

10371052
/**
@@ -1300,6 +1315,8 @@ struct cfg80211_tid_stats {
13001315
* from this peer
13011316
* @connected_to_gate: true if mesh STA has a path to mesh gate
13021317
* @rx_duration: aggregate PPDU duration(usecs) for all the frames from a peer
1318+
* @tx_duration: aggregate PPDU duration(usecs) for all the frames to a peer
1319+
* @airtime_weight: current airtime scheduling weight
13031320
* @pertid: per-TID statistics, see &struct cfg80211_tid_stats, using the last
13041321
* (IEEE80211_NUM_TIDS) index for MSDUs not encapsulated in QoS-MPDUs.
13051322
* Note that this doesn't use the @filled bit, but is used if non-NULL.
@@ -1350,15 +1367,18 @@ struct station_info {
13501367

13511368
u32 expected_throughput;
13521369

1353-
u64 rx_beacon;
1370+
u64 tx_duration;
13541371
u64 rx_duration;
1372+
u64 rx_beacon;
13551373
u8 rx_beacon_signal_avg;
13561374
u8 connected_to_gate;
13571375

13581376
struct cfg80211_tid_stats *pertid;
13591377
s8 ack_signal;
13601378
s8 avg_ack_signal;
13611379

1380+
u16 airtime_weight;
1381+
13621382
u32 rx_mpdu_count;
13631383
u32 fcs_err_count;
13641384
};
@@ -1422,6 +1442,8 @@ enum monitor_flags {
14221442
* @MPATH_INFO_DISCOVERY_TIMEOUT: @discovery_timeout filled
14231443
* @MPATH_INFO_DISCOVERY_RETRIES: @discovery_retries filled
14241444
* @MPATH_INFO_FLAGS: @flags filled
1445+
* @MPATH_INFO_HOP_COUNT: @hop_count filled
1446+
* @MPATH_INFO_PATH_CHANGE: @path_change_count filled
14251447
*/
14261448
enum mpath_info_flags {
14271449
MPATH_INFO_FRAME_QLEN = BIT(0),
@@ -1431,6 +1453,8 @@ enum mpath_info_flags {
14311453
MPATH_INFO_DISCOVERY_TIMEOUT = BIT(4),
14321454
MPATH_INFO_DISCOVERY_RETRIES = BIT(5),
14331455
MPATH_INFO_FLAGS = BIT(6),
1456+
MPATH_INFO_HOP_COUNT = BIT(7),
1457+
MPATH_INFO_PATH_CHANGE = BIT(8),
14341458
};
14351459

14361460
/**
@@ -1450,6 +1474,8 @@ enum mpath_info_flags {
14501474
* This number should increase every time the list of mesh paths
14511475
* changes, i.e. when a station is added or removed, so that
14521476
* userspace can tell whether it got a consistent snapshot.
1477+
* @hop_count: hops to destination
1478+
* @path_change_count: total number of path changes to destination
14531479
*/
14541480
struct mpath_info {
14551481
u32 filled;
@@ -1460,6 +1486,8 @@ struct mpath_info {
14601486
u32 discovery_timeout;
14611487
u8 discovery_retries;
14621488
u8 flags;
1489+
u8 hop_count;
1490+
u32 path_change_count;
14631491

14641492
int generation;
14651493
};
@@ -2391,6 +2419,8 @@ enum wiphy_params_flags {
23912419
WIPHY_PARAM_TXQ_QUANTUM = 1 << 8,
23922420
};
23932421

2422+
#define IEEE80211_DEFAULT_AIRTIME_WEIGHT 256
2423+
23942424
/**
23952425
* struct cfg80211_pmksa - PMK Security Association
23962426
*
@@ -2815,13 +2845,15 @@ struct cfg80211_pmk_conf {
28152845
* use %WLAN_STATUS_UNSPECIFIED_FAILURE if user space cannot give you
28162846
* the real status code for failures. Used only for the authentication
28172847
* response command interface (user space to driver).
2848+
* @pmkid: The identifier to refer a PMKSA.
28182849
*/
28192850
struct cfg80211_external_auth_params {
28202851
enum nl80211_external_auth_action action;
28212852
u8 bssid[ETH_ALEN] __aligned(2);
28222853
struct cfg80211_ssid ssid;
28232854
unsigned int key_mgmt_suite;
28242855
u16 status;
2856+
const u8 *pmkid;
28252857
};
28262858

28272859
/**
@@ -4112,6 +4144,8 @@ struct cfg80211_pmsr_capabilities {
41124144
* @signal_type: signal type reported in &struct cfg80211_bss.
41134145
* @cipher_suites: supported cipher suites
41144146
* @n_cipher_suites: number of supported cipher suites
4147+
* @akm_suites: supported AKM suites
4148+
* @n_akm_suites: number of supported AKM suites
41154149
* @retry_short: Retry limit for short frames (dot11ShortRetryLimit)
41164150
* @retry_long: Retry limit for long frames (dot11LongRetryLimit)
41174151
* @frag_threshold: Fragmentation threshold (dot11FragmentationThreshold);
@@ -4310,6 +4344,9 @@ struct wiphy {
43104344
int n_cipher_suites;
43114345
const u32 *cipher_suites;
43124346

4347+
int n_akm_suites;
4348+
const u32 *akm_suites;
4349+
43134350
u8 retry_short;
43144351
u8 retry_long;
43154352
u32 frag_threshold;
@@ -4573,6 +4610,17 @@ struct cfg80211_cqm_config;
45734610
* @mesh_id_len: (private) Used by the internal configuration code
45744611
* @mesh_id_up_len: (private) Used by the internal configuration code
45754612
* @wext: (private) Used by the internal wireless extensions compat code
4613+
* @wext.ibss: (private) IBSS data part of wext handling
4614+
* @wext.connect: (private) connection handling data
4615+
* @wext.keys: (private) (WEP) key data
4616+
* @wext.ie: (private) extra elements for association
4617+
* @wext.ie_len: (private) length of extra elements
4618+
* @wext.bssid: (private) selected network BSSID
4619+
* @wext.ssid: (private) selected network SSID
4620+
* @wext.default_key: (private) selected default key index
4621+
* @wext.default_mgmt_key: (private) selected default management key index
4622+
* @wext.prev_bssid: (private) previous BSSID for reassociation
4623+
* @wext.prev_bssid_valid: (private) previous BSSID validity
45764624
* @use_4addr: indicates 4addr mode is used on this interface, must be
45774625
* set by driver (if supported) on add_interface BEFORE registering the
45784626
* netdev and may otherwise be used by driver read-only, will be update
@@ -4672,7 +4720,8 @@ struct wireless_dev {
46724720
struct cfg80211_cached_keys *keys;
46734721
const u8 *ie;
46744722
size_t ie_len;
4675-
u8 bssid[ETH_ALEN], prev_bssid[ETH_ALEN];
4723+
u8 bssid[ETH_ALEN];
4724+
u8 prev_bssid[ETH_ALEN];
46764725
u8 ssid[IEEE80211_MAX_SSID_LEN];
46774726
s8 default_key, default_mgmt_key;
46784727
bool prev_bssid_valid;
@@ -5568,7 +5617,7 @@ void cfg80211_ibss_joined(struct net_device *dev, const u8 *bssid,
55685617
* @dev: network device
55695618
* @macaddr: the MAC address of the new candidate
55705619
* @ie: information elements advertised by the peer candidate
5571-
* @ie_len: lenght of the information elements buffer
5620+
* @ie_len: length of the information elements buffer
55725621
* @gfp: allocation flags
55735622
*
55745623
* This function notifies cfg80211 that the mesh peer candidate has been

0 commit comments

Comments
 (0)