History

nl80211: add support for setting fixed HE rate/gi/ltf

This patch adds the nl80211 structs, definitions, policies and parsing code required to pass fixed HE rate, GI and LTF settings.

Miles Hu committed 6 years ago

Commit eb89a6a1 parent 493a0eb3 files · +160 −8Browse files

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

Unified · Split

include/uapi/linux/nl80211.h+28−0
@@ -3180,6 +3180,18 @@ enum nl80211_he_gi { · 3179 unmodified lines
3180 NL80211_RATE_INFO_HE_GI_3_2,3180 NL80211_RATE_INFO_HE_GI_3_2,
3181};3181};
3182 3182
3183/**
3184 * enum nl80211_he_ltf - HE long training field
3185 * @NL80211_RATE_INFO_HE_1xLTF: 3.2 usec
3186 * @NL80211_RATE_INFO_HE_2xLTF: 6.4 usec
3187 * @NL80211_RATE_INFO_HE_4xLTF: 12.8 usec
3188 */
3189enum nl80211_he_ltf {
3190 NL80211_RATE_INFO_HE_1XLTF,
3191 NL80211_RATE_INFO_HE_2XLTF,
3192 NL80211_RATE_INFO_HE_4XLTF,
3193};
3194
3183/**3195/**
3184 * enum nl80211_he_ru_alloc - HE RU allocation values3196 * enum nl80211_he_ru_alloc - HE RU allocation values
3185 * @NL80211_RATE_INFO_HE_RU_ALLOC_26: 26-tone RU allocation3197 * @NL80211_RATE_INFO_HE_RU_ALLOC_26: 26-tone RU allocation
@@ -4735,6 +4747,10 @@ enum nl80211_key_attributes { · 1549 unmodified lines
4735 * @NL80211_TXRATE_VHT: VHT rates allowed for TX rate selection,4747 * @NL80211_TXRATE_VHT: VHT rates allowed for TX rate selection,
4736 * see &struct nl80211_txrate_vht4748 * see &struct nl80211_txrate_vht
4737 * @NL80211_TXRATE_GI: configure GI, see &enum nl80211_txrate_gi4749 * @NL80211_TXRATE_GI: configure GI, see &enum nl80211_txrate_gi
4750 * @NL80211_TXRATE_HE: HE rates allowed for TX rate selection,
4751 * see &struct nl80211_txrate_he
4752 * @NL80211_TXRATE_HE_GI: configure HE GI, 0.8us, 1.6us and 3.2us.
4753 * @NL80211_TXRATE_HE_LTF: configure HE LTF, 1XLTF, 2XLTF and 4XLTF.
4738 * @__NL80211_TXRATE_AFTER_LAST: internal4754 * @__NL80211_TXRATE_AFTER_LAST: internal
4739 * @NL80211_TXRATE_MAX: highest TX rate attribute4755 * @NL80211_TXRATE_MAX: highest TX rate attribute
4740 */4756 */
@@ -4744,6 +4760,9 @@ enum nl80211_tx_rate_attributes { · 3 unmodified lines
4744 NL80211_TXRATE_HT,4760 NL80211_TXRATE_HT,
4745 NL80211_TXRATE_VHT,4761 NL80211_TXRATE_VHT,
4746 NL80211_TXRATE_GI,4762 NL80211_TXRATE_GI,
4763 NL80211_TXRATE_HE,
4764 NL80211_TXRATE_HE_GI,
4765 NL80211_TXRATE_HE_LTF,
4747 4766
4748 /* keep last */4767 /* keep last */
4749 __NL80211_TXRATE_AFTER_LAST,4768 __NL80211_TXRATE_AFTER_LAST,
@@ -4761,6 +4780,15 @@ struct nl80211_txrate_vht { · 11 unmodified lines
4761 __u16 mcs[NL80211_VHT_NSS_MAX];4780 __u16 mcs[NL80211_VHT_NSS_MAX];
4762};4781};
4763 4782
4783#define NL80211_HE_NSS_MAX 8
4784/**
4785 * struct nl80211_txrate_he - HE MCS/NSS txrate bitmap
4786 * @mcs: MCS bitmap table for each NSS (array index 0 for 1 stream, etc.)
4787 */
4788struct nl80211_txrate_he {
4789 __u16 mcs[NL80211_HE_NSS_MAX];
4790};
4791
4764enum nl80211_txrate_gi {4792enum nl80211_txrate_gi {
4765 NL80211_TXRATE_DEFAULT_GI,4793 NL80211_TXRATE_DEFAULT_GI,
4766 NL80211_TXRATE_FORCE_SGI,4794 NL80211_TXRATE_FORCE_SGI,