@@ -835,6 +835,17 @@ struct cfg80211_bitrate_mask {
835
835
} control [NUM_NL80211_BANDS ];
836
836
};
837
837
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
+
838
849
/**
839
850
* struct cfg80211_ap_settings - AP configuration
840
851
*
@@ -865,6 +876,7 @@ struct cfg80211_bitrate_mask {
865
876
* @he_cap: HE capabilities (or %NULL if HE isn't enabled)
866
877
* @ht_required: stations must support HT
867
878
* @vht_required: stations must support VHT
879
+ * @flags: flags, as defined in enum cfg80211_ap_settings_flags
868
880
*/
869
881
struct cfg80211_ap_settings {
870
882
struct cfg80211_chan_def chandef ;
@@ -890,6 +902,7 @@ struct cfg80211_ap_settings {
890
902
const struct ieee80211_vht_cap * vht_cap ;
891
903
const struct ieee80211_he_cap_elem * he_cap ;
892
904
bool ht_required , vht_required ;
905
+ u32 flags ;
893
906
};
894
907
895
908
/**
@@ -1003,6 +1016,7 @@ enum station_parameters_apply_mask {
1003
1016
* @support_p2p_ps: information if station supports P2P PS mechanism
1004
1017
* @he_capa: HE capabilities of station
1005
1018
* @he_capa_len: the length of the HE capabilities
1019
+ * @airtime_weight: airtime scheduler weight for this station
1006
1020
*/
1007
1021
struct station_parameters {
1008
1022
const u8 * supported_rates ;
@@ -1032,6 +1046,7 @@ struct station_parameters {
1032
1046
int support_p2p_ps ;
1033
1047
const struct ieee80211_he_cap_elem * he_capa ;
1034
1048
u8 he_capa_len ;
1049
+ u16 airtime_weight ;
1035
1050
};
1036
1051
1037
1052
/**
@@ -1300,6 +1315,8 @@ struct cfg80211_tid_stats {
1300
1315
* from this peer
1301
1316
* @connected_to_gate: true if mesh STA has a path to mesh gate
1302
1317
* @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
1303
1320
* @pertid: per-TID statistics, see &struct cfg80211_tid_stats, using the last
1304
1321
* (IEEE80211_NUM_TIDS) index for MSDUs not encapsulated in QoS-MPDUs.
1305
1322
* Note that this doesn't use the @filled bit, but is used if non-NULL.
@@ -1350,15 +1367,18 @@ struct station_info {
1350
1367
1351
1368
u32 expected_throughput ;
1352
1369
1353
- u64 rx_beacon ;
1370
+ u64 tx_duration ;
1354
1371
u64 rx_duration ;
1372
+ u64 rx_beacon ;
1355
1373
u8 rx_beacon_signal_avg ;
1356
1374
u8 connected_to_gate ;
1357
1375
1358
1376
struct cfg80211_tid_stats * pertid ;
1359
1377
s8 ack_signal ;
1360
1378
s8 avg_ack_signal ;
1361
1379
1380
+ u16 airtime_weight ;
1381
+
1362
1382
u32 rx_mpdu_count ;
1363
1383
u32 fcs_err_count ;
1364
1384
};
@@ -1422,6 +1442,8 @@ enum monitor_flags {
1422
1442
* @MPATH_INFO_DISCOVERY_TIMEOUT: @discovery_timeout filled
1423
1443
* @MPATH_INFO_DISCOVERY_RETRIES: @discovery_retries filled
1424
1444
* @MPATH_INFO_FLAGS: @flags filled
1445
+ * @MPATH_INFO_HOP_COUNT: @hop_count filled
1446
+ * @MPATH_INFO_PATH_CHANGE: @path_change_count filled
1425
1447
*/
1426
1448
enum mpath_info_flags {
1427
1449
MPATH_INFO_FRAME_QLEN = BIT (0 ),
@@ -1431,6 +1453,8 @@ enum mpath_info_flags {
1431
1453
MPATH_INFO_DISCOVERY_TIMEOUT = BIT (4 ),
1432
1454
MPATH_INFO_DISCOVERY_RETRIES = BIT (5 ),
1433
1455
MPATH_INFO_FLAGS = BIT (6 ),
1456
+ MPATH_INFO_HOP_COUNT = BIT (7 ),
1457
+ MPATH_INFO_PATH_CHANGE = BIT (8 ),
1434
1458
};
1435
1459
1436
1460
/**
@@ -1450,6 +1474,8 @@ enum mpath_info_flags {
1450
1474
* This number should increase every time the list of mesh paths
1451
1475
* changes, i.e. when a station is added or removed, so that
1452
1476
* 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
1453
1479
*/
1454
1480
struct mpath_info {
1455
1481
u32 filled ;
@@ -1460,6 +1486,8 @@ struct mpath_info {
1460
1486
u32 discovery_timeout ;
1461
1487
u8 discovery_retries ;
1462
1488
u8 flags ;
1489
+ u8 hop_count ;
1490
+ u32 path_change_count ;
1463
1491
1464
1492
int generation ;
1465
1493
};
@@ -2391,6 +2419,8 @@ enum wiphy_params_flags {
2391
2419
WIPHY_PARAM_TXQ_QUANTUM = 1 << 8 ,
2392
2420
};
2393
2421
2422
+ #define IEEE80211_DEFAULT_AIRTIME_WEIGHT 256
2423
+
2394
2424
/**
2395
2425
* struct cfg80211_pmksa - PMK Security Association
2396
2426
*
@@ -2815,13 +2845,15 @@ struct cfg80211_pmk_conf {
2815
2845
* use %WLAN_STATUS_UNSPECIFIED_FAILURE if user space cannot give you
2816
2846
* the real status code for failures. Used only for the authentication
2817
2847
* response command interface (user space to driver).
2848
+ * @pmkid: The identifier to refer a PMKSA.
2818
2849
*/
2819
2850
struct cfg80211_external_auth_params {
2820
2851
enum nl80211_external_auth_action action ;
2821
2852
u8 bssid [ETH_ALEN ] __aligned (2 );
2822
2853
struct cfg80211_ssid ssid ;
2823
2854
unsigned int key_mgmt_suite ;
2824
2855
u16 status ;
2856
+ const u8 * pmkid ;
2825
2857
};
2826
2858
2827
2859
/**
@@ -4112,6 +4144,8 @@ struct cfg80211_pmsr_capabilities {
4112
4144
* @signal_type: signal type reported in &struct cfg80211_bss.
4113
4145
* @cipher_suites: supported cipher suites
4114
4146
* @n_cipher_suites: number of supported cipher suites
4147
+ * @akm_suites: supported AKM suites
4148
+ * @n_akm_suites: number of supported AKM suites
4115
4149
* @retry_short: Retry limit for short frames (dot11ShortRetryLimit)
4116
4150
* @retry_long: Retry limit for long frames (dot11LongRetryLimit)
4117
4151
* @frag_threshold: Fragmentation threshold (dot11FragmentationThreshold);
@@ -4310,6 +4344,9 @@ struct wiphy {
4310
4344
int n_cipher_suites ;
4311
4345
const u32 * cipher_suites ;
4312
4346
4347
+ int n_akm_suites ;
4348
+ const u32 * akm_suites ;
4349
+
4313
4350
u8 retry_short ;
4314
4351
u8 retry_long ;
4315
4352
u32 frag_threshold ;
@@ -4573,6 +4610,17 @@ struct cfg80211_cqm_config;
4573
4610
* @mesh_id_len: (private) Used by the internal configuration code
4574
4611
* @mesh_id_up_len: (private) Used by the internal configuration code
4575
4612
* @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
4576
4624
* @use_4addr: indicates 4addr mode is used on this interface, must be
4577
4625
* set by driver (if supported) on add_interface BEFORE registering the
4578
4626
* netdev and may otherwise be used by driver read-only, will be update
@@ -4672,7 +4720,8 @@ struct wireless_dev {
4672
4720
struct cfg80211_cached_keys * keys ;
4673
4721
const u8 * ie ;
4674
4722
size_t ie_len ;
4675
- u8 bssid [ETH_ALEN ], prev_bssid [ETH_ALEN ];
4723
+ u8 bssid [ETH_ALEN ];
4724
+ u8 prev_bssid [ETH_ALEN ];
4676
4725
u8 ssid [IEEE80211_MAX_SSID_LEN ];
4677
4726
s8 default_key , default_mgmt_key ;
4678
4727
bool prev_bssid_valid ;
@@ -5568,7 +5617,7 @@ void cfg80211_ibss_joined(struct net_device *dev, const u8 *bssid,
5568
5617
* @dev: network device
5569
5618
* @macaddr: the MAC address of the new candidate
5570
5619
* @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
5572
5621
* @gfp: allocation flags
5573
5622
*
5574
5623
* This function notifies cfg80211 that the mesh peer candidate has been
0 commit comments