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.
Showing the changes to include/uapi (1 of 3 files). Show all
Unified · Split
| @@ -1943,8 +1943,9 @@ enum nl80211_commands { · 1942 unmodified lines | |||
| 1943 | * The driver must also specify support for this with the extended | 1943 | * The driver must also specify support for this with the extended |
| 1944 | * features NL80211_EXT_FEATURE_BEACON_RATE_LEGACY, | 1944 | * features NL80211_EXT_FEATURE_BEACON_RATE_LEGACY, |
| 1945 | * NL80211_EXT_FEATURE_BEACON_RATE_HT, | 1945 | * NL80211_EXT_FEATURE_BEACON_RATE_HT, |
| 1946 | * NL80211_EXT_FEATURE_BEACON_RATE_VHT and | 1946 | * NL80211_EXT_FEATURE_BEACON_RATE_VHT, |
| 1947 | * NL80211_EXT_FEATURE_BEACON_RATE_HE. | 1947 | * NL80211_EXT_FEATURE_BEACON_RATE_HE and |
| 1948 | * NL80211_EXT_FEATURE_BEACON_RATE_EHT. | ||
| 1948 | * | 1949 | * |
| 1949 | * @NL80211_ATTR_FRAME_MATCH: A binary attribute which typically must contain | 1950 | * @NL80211_ATTR_FRAME_MATCH: A binary attribute which typically must contain |
| 1950 | * at least one byte, currently used with @NL80211_CMD_REGISTER_FRAME. | 1951 | * at least one byte, currently used with @NL80211_CMD_REGISTER_FRAME. |
| @@ -3736,6 +3737,22 @@ enum nl80211_eht_gi { · 1785 unmodified lines | |||
| 3736 | NL80211_RATE_INFO_EHT_GI_3_2, | 3737 | NL80211_RATE_INFO_EHT_GI_3_2, |
| 3737 | }; | 3738 | }; |
| 3738 | 3739 | ||
| 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 | |||
| 3739 | /** | 3756 | /** |
| 3740 | * enum nl80211_eht_ru_alloc - EHT RU allocation values | 3757 | * enum nl80211_eht_ru_alloc - EHT RU allocation values |
| 3741 | * @NL80211_RATE_INFO_EHT_RU_ALLOC_26: 26-tone RU allocation | 3758 | * @NL80211_RATE_INFO_EHT_RU_ALLOC_26: 26-tone RU allocation |
| @@ -5482,6 +5499,10 @@ enum nl80211_key_attributes { · 1740 unmodified lines | |||
| 5482 | * see &struct nl80211_txrate_he | 5499 | * see &struct nl80211_txrate_he |
| 5483 | * @NL80211_TXRATE_HE_GI: configure HE GI, 0.8us, 1.6us and 3.2us. | 5500 | * @NL80211_TXRATE_HE_GI: configure HE GI, 0.8us, 1.6us and 3.2us. |
| 5484 | * @NL80211_TXRATE_HE_LTF: configure HE LTF, 1XLTF, 2XLTF and 4XLTF. | 5501 | * @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) | ||
| 5485 | * @__NL80211_TXRATE_AFTER_LAST: internal | 5506 | * @__NL80211_TXRATE_AFTER_LAST: internal |
| 5486 | * @NL80211_TXRATE_MAX: highest TX rate attribute | 5507 | * @NL80211_TXRATE_MAX: highest TX rate attribute |
| 5487 | */ | 5508 | */ |
| @@ -5494,6 +5515,9 @@ enum nl80211_tx_rate_attributes { · 6 unmodified lines | |||
| 5494 | NL80211_TXRATE_HE, | 5515 | NL80211_TXRATE_HE, |
| 5495 | NL80211_TXRATE_HE_GI, | 5516 | NL80211_TXRATE_HE_GI, |
| 5496 | NL80211_TXRATE_HE_LTF, | 5517 | NL80211_TXRATE_HE_LTF, |
| 5518 | NL80211_TXRATE_EHT, | ||
| 5519 | NL80211_TXRATE_EHT_GI, | ||
| 5520 | NL80211_TXRATE_EHT_LTF, | ||
| 5497 | 5521 | ||
| 5498 | /* keep last */ | 5522 | /* keep last */ |
| 5499 | __NL80211_TXRATE_AFTER_LAST, | 5523 | __NL80211_TXRATE_AFTER_LAST, |
| @@ -5526,6 +5550,15 @@ enum nl80211_txrate_gi { · 26 unmodified lines | |||
| 5526 | NL80211_TXRATE_FORCE_LGI, | 5550 | NL80211_TXRATE_FORCE_LGI, |
| 5527 | }; | 5551 | }; |
| 5528 | 5552 | ||
| 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 | |||
| 5529 | /** | 5562 | /** |
| 5530 | * enum nl80211_band - Frequency band | 5563 | * enum nl80211_band - Frequency band |
| 5531 | * @NL80211_BAND_2GHZ: 2.4 GHz ISM band | 5564 | * @NL80211_BAND_2GHZ: 2.4 GHz ISM band |
| @@ -6650,6 +6683,9 @@ enum nl80211_feature_flags { · 1118 unmodified lines | |||
| 6650 | * (signaling and payload protected) A-MSDUs and this shall be advertised | 6683 | * (signaling and payload protected) A-MSDUs and this shall be advertised |
| 6651 | * in the RSNXE. | 6684 | * in the RSNXE. |
| 6652 | * | 6685 | * |
| 6686 | * @NL80211_EXT_FEATURE_BEACON_RATE_EHT: Driver supports beacon rate | ||
| 6687 | * configuration (AP/mesh) with EHT rates. | ||
| 6688 | * | ||
| 6653 | * @NUM_NL80211_EXT_FEATURES: number of extended features. | 6689 | * @NUM_NL80211_EXT_FEATURES: number of extended features. |
| 6654 | * @MAX_NL80211_EXT_FEATURES: highest extended feature index. | 6690 | * @MAX_NL80211_EXT_FEATURES: highest extended feature index. |
| 6655 | */ | 6691 | */ |
| @@ -6725,6 +6761,7 @@ enum nl80211_ext_feature_index { · 69 unmodified lines | |||
| 6725 | NL80211_EXT_FEATURE_OWE_OFFLOAD_AP, | 6761 | NL80211_EXT_FEATURE_OWE_OFFLOAD_AP, |
| 6726 | NL80211_EXT_FEATURE_DFS_CONCURRENT, | 6762 | NL80211_EXT_FEATURE_DFS_CONCURRENT, |
| 6727 | NL80211_EXT_FEATURE_SPP_AMSDU_SUPPORT, | 6763 | NL80211_EXT_FEATURE_SPP_AMSDU_SUPPORT, |
| 6764 | NL80211_EXT_FEATURE_BEACON_RATE_EHT, | ||
| 6728 | 6765 | ||
| 6729 | /* add new features before the definition below */ | 6766 | /* add new features before the definition below */ |
| 6730 | NUM_NL80211_EXT_FEATURES, | 6767 | NUM_NL80211_EXT_FEATURES, |