History

wifi: nl80211: Add EHT fixed Tx rate support

Add new attributes to support EHT MCS/NSS Tx rates and EHT GI/LTF. Parse EHT fixed MCS/NSS Tx rates and EHT GI/LTF values passed by the userspace, validate and add as part of cfg80211_bitrate_mask. MCS mask is constructed by new function, eht_build_mcs_mask(). Max NSS supported for MCS rates of 7, 9, 11 and 13 is utilized to set MCS bitmask for each NSS. MCS rates 14, and 15 if supported, are set only for NSS = 0.

Muna Sinada committed 1 year ago

Commit d0bf0611 parent 36b75dc3 files · +266 −7Browse files

Showing the changes to include/uapi (1 of 3 files). Show all

Unified · Split

include/uapi/linux/nl80211.h+39−2
@@ -1943,8 +1943,9 @@ enum nl80211_commands { · 1942 unmodified lines
19431943 * The driver must also specify support for this with the extended
19441944 * features NL80211_EXT_FEATURE_BEACON_RATE_LEGACY,
19451945 * NL80211_EXT_FEATURE_BEACON_RATE_HT,
1946− * NL80211_EXT_FEATURE_BEACON_RATE_VHT and
1947− * NL80211_EXT_FEATURE_BEACON_RATE_HE.
1946+ * NL80211_EXT_FEATURE_BEACON_RATE_VHT,
1947+ * NL80211_EXT_FEATURE_BEACON_RATE_HE and
1948+ * NL80211_EXT_FEATURE_BEACON_RATE_EHT.
19481949 *
19491950 * @NL80211_ATTR_FRAME_MATCH: A binary attribute which typically must contain
19501951 * at least one byte, currently used with @NL80211_CMD_REGISTER_FRAME.
@@ -3736,6 +3737,22 @@ enum nl80211_eht_gi { · 1785 unmodified lines
37363737 NL80211_RATE_INFO_EHT_GI_3_2,
37373738 };
37383739
3740+/**
3741+ * enum nl80211_eht_ltf - EHT long training field
3742+ * @NL80211_RATE_INFO_EHT_1XLTF: 3.2 usec
3743+ * @NL80211_RATE_INFO_EHT_2XLTF: 6.4 usec
3744+ * @NL80211_RATE_INFO_EHT_4XLTF: 12.8 usec
3745+ * @NL80211_RATE_INFO_EHT_6XLTF: 19.2 usec
3746+ * @NL80211_RATE_INFO_EHT_8XLTF: 25.6 usec
3747+ */
3748+enum nl80211_eht_ltf {
3749+ NL80211_RATE_INFO_EHT_1XLTF,
3750+ NL80211_RATE_INFO_EHT_2XLTF,
3751+ NL80211_RATE_INFO_EHT_4XLTF,
3752+ NL80211_RATE_INFO_EHT_6XLTF,
3753+ NL80211_RATE_INFO_EHT_8XLTF,
3754+};
3755+
37393756 /**
37403757 * enum nl80211_eht_ru_alloc - EHT RU allocation values
37413758 * @NL80211_RATE_INFO_EHT_RU_ALLOC_26: 26-tone RU allocation
@@ -5482,6 +5499,10 @@ enum nl80211_key_attributes { · 1740 unmodified lines
54825499 * see &struct nl80211_txrate_he
54835500 * @NL80211_TXRATE_HE_GI: configure HE GI, 0.8us, 1.6us and 3.2us.
54845501 * @NL80211_TXRATE_HE_LTF: configure HE LTF, 1XLTF, 2XLTF and 4XLTF.
5502+ * @NL80211_TXRATE_EHT: EHT rates allowed for TX rate selection,
5503+ * see &struct nl80211_txrate_eht
5504+ * @NL80211_TXRATE_EHT_GI: configure EHT GI, (u8, see &enum nl80211_eht_gi)
5505+ * @NL80211_TXRATE_EHT_LTF: configure EHT LTF, (u8, see &enum nl80211_eht_ltf)
54855506 * @__NL80211_TXRATE_AFTER_LAST: internal
54865507 * @NL80211_TXRATE_MAX: highest TX rate attribute
54875508 */
@@ -5494,6 +5515,9 @@ enum nl80211_tx_rate_attributes { · 6 unmodified lines
54945515 NL80211_TXRATE_HE,
54955516 NL80211_TXRATE_HE_GI,
54965517 NL80211_TXRATE_HE_LTF,
5518+ NL80211_TXRATE_EHT,
5519+ NL80211_TXRATE_EHT_GI,
5520+ NL80211_TXRATE_EHT_LTF,
54975521
54985522 /* keep last */
54995523 __NL80211_TXRATE_AFTER_LAST,
@@ -5526,6 +5550,15 @@ enum nl80211_txrate_gi { · 26 unmodified lines
55265550 NL80211_TXRATE_FORCE_LGI,
55275551 };
55285552
5553+#define NL80211_EHT_NSS_MAX 16
5554+/**
5555+ * struct nl80211_txrate_eht - EHT MCS/NSS txrate bitmap
5556+ * @mcs: MCS bitmap table for each NSS (array index 0 for 1 stream, etc.)
5557+ */
5558+struct nl80211_txrate_eht {
5559+ __u16 mcs[NL80211_EHT_NSS_MAX];
5560+};
5561+
55295562 /**
55305563 * enum nl80211_band - Frequency band
55315564 * @NL80211_BAND_2GHZ: 2.4 GHz ISM band
@@ -6650,6 +6683,9 @@ enum nl80211_feature_flags { · 1118 unmodified lines
66506683 * (signaling and payload protected) A-MSDUs and this shall be advertised
66516684 * in the RSNXE.
66526685 *
6686+ * @NL80211_EXT_FEATURE_BEACON_RATE_EHT: Driver supports beacon rate
6687+ * configuration (AP/mesh) with EHT rates.
6688+ *
66536689 * @NUM_NL80211_EXT_FEATURES: number of extended features.
66546690 * @MAX_NL80211_EXT_FEATURES: highest extended feature index.
66556691 */
@@ -6725,6 +6761,7 @@ enum nl80211_ext_feature_index { · 69 unmodified lines
67256761 NL80211_EXT_FEATURE_OWE_OFFLOAD_AP,
67266762 NL80211_EXT_FEATURE_DFS_CONCURRENT,
67276763 NL80211_EXT_FEATURE_SPP_AMSDU_SUPPORT,
6764+ NL80211_EXT_FEATURE_BEACON_RATE_EHT,
67286765
67296766 /* add new features before the definition below */
67306767 NUM_NL80211_EXT_FEATURES,

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t