Johannes Berg says: ==================== One batch of changes, containing: * hwsim improvements from Jouni and myself, to be able to test more scenarios easily * some more HE (802.11ax) support * some initial S1G (sub 1 GHz) work for fractional MHz channels * some (action) frame registration updates to help DPP support * along with other various improvements/fixes ====================
Showing the changes to include/linux (1 of 49 files). Show all
Unified · Split
| @@ -9,7 +9,7 @@ · 8 unmodified lines | ||
| 9 | 9 | * Copyright (c) 2006, Michael Wu <flamingice@sourmilk.net> |
| 10 | 10 | * Copyright (c) 2013 - 2014 Intel Mobile Communications GmbH |
| 11 | 11 | * Copyright (c) 2016 - 2017 Intel Deutschland GmbH |
| 12 | − * Copyright (c) 2018 - 2019 Intel Corporation | |
| 12 | + * Copyright (c) 2018 - 2020 Intel Corporation | |
| 13 | 13 | */ |
| 14 | 14 | |
| 15 | 15 | #ifndef LINUX_IEEE80211_H |
| @@ -859,6 +859,7 @@ enum ieee80211_ht_chanwidth_values { · 843 unmodified lines | ||
| 859 | 859 | * @IEEE80211_OPMODE_NOTIF_CHANWIDTH_40MHZ: 40 MHz channel width |
| 860 | 860 | * @IEEE80211_OPMODE_NOTIF_CHANWIDTH_80MHZ: 80 MHz channel width |
| 861 | 861 | * @IEEE80211_OPMODE_NOTIF_CHANWIDTH_160MHZ: 160 MHz or 80+80 MHz channel width |
| 862 | + * @IEEE80211_OPMODE_NOTIF_BW_160_80P80: 160 / 80+80 MHz indicator flag | |
| 862 | 863 | * @IEEE80211_OPMODE_NOTIF_RX_NSS_MASK: number of spatial streams mask |
| 863 | 864 | * (the NSS value is the value of this field + 1) |
| 864 | 865 | * @IEEE80211_OPMODE_NOTIF_RX_NSS_SHIFT: number of spatial streams shift |
| @@ -866,11 +867,12 @@ enum ieee80211_ht_chanwidth_values { · 1 unmodified line | ||
| 866 | 867 | * using a beamforming steering matrix |
| 867 | 868 | */ |
| 868 | 869 | enum ieee80211_vht_opmode_bits { |
| 869 | − IEEE80211_OPMODE_NOTIF_CHANWIDTH_MASK = 3, | |
| 870 | + IEEE80211_OPMODE_NOTIF_CHANWIDTH_MASK = 0x03, | |
| 870 | 871 | IEEE80211_OPMODE_NOTIF_CHANWIDTH_20MHZ = 0, |
| 871 | 872 | IEEE80211_OPMODE_NOTIF_CHANWIDTH_40MHZ = 1, |
| 872 | 873 | IEEE80211_OPMODE_NOTIF_CHANWIDTH_80MHZ = 2, |
| 873 | 874 | IEEE80211_OPMODE_NOTIF_CHANWIDTH_160MHZ = 3, |
| 875 | + IEEE80211_OPMODE_NOTIF_BW_160_80P80 = 0x04, | |
| 874 | 876 | IEEE80211_OPMODE_NOTIF_RX_NSS_MASK = 0x70, |
| 875 | 877 | IEEE80211_OPMODE_NOTIF_RX_NSS_SHIFT = 4, |
| 876 | 878 | IEEE80211_OPMODE_NOTIF_RX_NSS_TYPE_BF = 0x80, |
| @@ -1065,6 +1067,7 @@ struct ieee80211_mgmt { · 188 unmodified lines | ||
| 1065 | 1067 | /* Supported rates membership selectors */ |
| 1066 | 1068 | #define BSS_MEMBERSHIP_SELECTOR_HT_PHY 127 |
| 1067 | 1069 | #define BSS_MEMBERSHIP_SELECTOR_VHT_PHY 126 |
| 1070 | +#define BSS_MEMBERSHIP_SELECTOR_HE_PHY 122 | |
| 1068 | 1071 | |
| 1069 | 1072 | /* mgmt header + 1 byte category code */ |
| 1070 | 1073 | #define IEEE80211_MIN_ACTION_SIZE offsetof(struct ieee80211_mgmt, u.action.u) |
| @@ -1731,6 +1734,9 @@ struct ieee80211_mu_edca_param_set { · 660 unmodified lines | ||
| 1731 | 1734 | * @ext_nss_bw_capable: indicates whether or not the local transmitter |
| 1732 | 1735 | * (rate scaling algorithm) can deal with the new logic |
| 1733 | 1736 | * (dot11VHTExtendedNSSBWCapable) |
| 1737 | + * @max_vht_nss: current maximum NSS as advertised by the STA in | |
| 1738 | + * operating mode notification, can be 0 in which case the | |
| 1739 | + * capability data will be used to derive this (from MCS support) | |
| 1734 | 1740 | * |
| 1735 | 1741 | * Due to the VHT Extended NSS Bandwidth Support, the maximum NSS can |
| 1736 | 1742 | * vary for a given BW/MCS. This function parses the data. |
| @@ -1739,7 +1745,8 @@ struct ieee80211_mu_edca_param_set { · 2 unmodified lines | ||
| 1739 | 1745 | */ |
| 1740 | 1746 | int ieee80211_get_vht_max_nss(struct ieee80211_vht_cap *cap, |
| 1741 | 1747 | enum ieee80211_vht_chanwidth bw, |
| 1742 | − int mcs, bool ext_nss_bw_capable); | |
| 1748 | + int mcs, bool ext_nss_bw_capable, | |
| 1749 | + unsigned int max_vht_nss); | |
| 1743 | 1750 | |
| 1744 | 1751 | /* 802.11ax HE MAC capabilities */ |
| 1745 | 1752 | #define IEEE80211_HE_MAC_CAP0_HTC_HE 0x01 |
| @@ -3323,6 +3330,16 @@ static inline int ieee80211_get_tdls_action(struct sk_buff *skb, u32 hdr_size) · 1577 unmodified lines | ||
| 3323 | 3330 | #define TU_TO_JIFFIES(x) (usecs_to_jiffies((x) * 1024)) |
| 3324 | 3331 | #define TU_TO_EXP_TIME(x) (jiffies + TU_TO_JIFFIES(x)) |
| 3325 | 3332 | |
| 3333 | +/* convert frequencies */ | |
| 3334 | +#define MHZ_TO_KHZ(freq) ((freq) * 1000) | |
| 3335 | +#define KHZ_TO_MHZ(freq) ((freq) / 1000) | |
| 3336 | + | |
| 3337 | +/* convert powers */ | |
| 3338 | +#define DBI_TO_MBI(gain) ((gain) * 100) | |
| 3339 | +#define MBI_TO_DBI(gain) ((gain) / 100) | |
| 3340 | +#define DBM_TO_MBM(gain) ((gain) * 100) | |
| 3341 | +#define MBM_TO_DBM(gain) ((gain) / 100) | |
| 3342 | + | |
| 3326 | 3343 | /** |
| 3327 | 3344 | * ieee80211_action_contains_tpc - checks if the frame contains TPC element |
| 3328 | 3345 | * @skb: the skb containing the frame, length will be checked |