mirror of
https://github.com/Telecominfraproject/wlan-ap.git
synced 2025-12-20 02:43:38 +00:00
108 lines
3.9 KiB
Diff
108 lines
3.9 KiB
Diff
From a39239c62e4d86cbd0afacbcf2f286341cb4695f Mon Sep 17 00:00:00 2001
|
|
From: Aloka Dixit <quic_alokad@quicinc.com>
|
|
Date: Mon, 28 Jun 2021 13:27:48 -0700
|
|
Subject: [PATCH 02/23] eht: define EHT elements
|
|
|
|
Define following fields described in IEEE P802.11be/D1.4, January 2022,
|
|
- 9.4.2.313 EHT Capabilities element
|
|
- 9.4.2.311 EHT Operation element
|
|
|
|
Signed-off-by: Aloka Dixit <quic_alokad@quicinc.com>
|
|
---
|
|
src/common/ieee802_11_defs.h | 77 ++++++++++++++++++++++++++++++++++++
|
|
1 file changed, 77 insertions(+)
|
|
|
|
--- a/src/common/ieee802_11_defs.h
|
|
+++ b/src/common/ieee802_11_defs.h
|
|
@@ -493,6 +493,9 @@
|
|
#define WLAN_EID_EXT_REJECTED_GROUPS 92
|
|
#define WLAN_EID_EXT_ANTI_CLOGGING_TOKEN 93
|
|
#define WLAN_EID_EXT_PASN_PARAMS 100
|
|
+#define WLAN_EID_EXT_EHT_OPERATION 106
|
|
+#define WLAN_EID_EXT_EHT_MULTI_LINK 107
|
|
+#define WLAN_EID_EXT_EHT_CAPABILITY 108
|
|
|
|
/* Operating Triplet can be any integer >= 201
|
|
* From IEEE P802.11-REVmd/D4.0: The first octet in each Subband
|
|
@@ -2404,6 +2407,80 @@ struct ieee80211_he_mu_edca_parameter_se
|
|
/* B7: Reserved if sent by an AP; More Data Ack if sent by a non-AP STA */
|
|
#define HE_QOS_INFO_MORE_DATA_ACK ((u8) (BIT(7)))
|
|
|
|
+#define EHT_MAC_CAPAB_MAX_LEN 2
|
|
+#define EHT_PHY_CAPAB_MAX_LEN 9
|
|
+#define EHT_MCS_NSS_CAPAB_MAX_LEN 9
|
|
+/*
|
|
+ * Maximum PPE threshold length: 62 bytes
|
|
+ * NSS: 4 bits (maximum NSS: 16), RU index: 5 bits, each pair: 6 bits
|
|
+ * 9 + (5 * 16 * 6) = 489 bits, Padding: 7 bits
|
|
+ */
|
|
+#define EHT_PPE_THRESH_CAPAB_MAX_LEN 62
|
|
+
|
|
+/* IEEE P802.11be/D1.4, January 2022, section 9.4.2.313 */
|
|
+struct ieee80211_eht_capabilities {
|
|
+ u8 mac_cap[EHT_MAC_CAPAB_MAX_LEN];
|
|
+ u8 phy_cap[EHT_PHY_CAPAB_MAX_LEN];
|
|
+ u8 optional[71];
|
|
+} STRUCT_PACKED;
|
|
+
|
|
+/*
|
|
+ * struct ieee80211_eht_operation - eht operation element
|
|
+ *
|
|
+ * This structure is the "EHT Operation Element" fields as
|
|
+ * described in P802.11be_D1.4 section 9.4.2.311
|
|
+ *
|
|
+ * FIXME: The spec is unclear how big the fields are, and doesn't
|
|
+ * indicate the "Disabled Subchannel Bitmap Present" in the
|
|
+ * structure (Figure 9-1002a) at all ...
|
|
+ */
|
|
+struct ieee80211_eht_operation {
|
|
+ u8 chan_width;
|
|
+ u8 ccfs;
|
|
+ u8 present_bm;
|
|
+ /* contains disabled subchannel bitmap */
|
|
+ u8 optional[];
|
|
+} STRUCT_PACKED;
|
|
+
|
|
+/* IEEE P802.11be/D1.4, January 2022, section 9.4.2.313.3 */
|
|
+#define EHT_PHYCAP_320MHZ_IN_6GHZ_SUPPORT_IDX 0
|
|
+#define EHT_PHYCAP_320MHZ_IN_6GHZ_SUPPORT_MASK ((u8) BIT(1))
|
|
+
|
|
+#define EHT_PHYCAP_SU_BEAMFORMER_IDX 0
|
|
+#define EHT_PHYCAP_SU_BEAMFORMER ((u8) BIT(5))
|
|
+#define EHT_PHYCAP_SU_BEAMFORMEE_IDX 0
|
|
+#define EHT_PHYCAP_SU_BEAMFORMEE ((u8) BIT(6))
|
|
+
|
|
+#define EHT_PHYCAP_PPE_THRESHOLD_PRESENT_IDX 5
|
|
+#define EHT_PHYCAP_PPE_THRESHOLD_PRESENT ((u8) BIT(3))
|
|
+
|
|
+#define EHT_PHYCAP_PPE_THRESHOLD_PRESENT_IDX 5
|
|
+
|
|
+#define EHT_PHYCAP_MU_BEAMFORMER_IDX 7
|
|
+#define EHT_PHYCAP_MU_BEAMFORMER_80MHZ ((u8) BIT(4))
|
|
+#define EHT_PHYCAP_MU_BEAMFORMER_160MHZ ((u8) BIT(5))
|
|
+#define EHT_PHYCAP_MU_BEAMFORMER_320MHZ ((u8) BIT(6))
|
|
+#define EHT_PHYCAP_MU_BEAMFORMER_MASK (EHT_PHYCAP_MU_BEAMFORMER_80MHZ | \
|
|
+ EHT_PHYCAP_MU_BEAMFORMER_160MHZ | \
|
|
+ EHT_PHYCAP_MU_BEAMFORMER_320MHZ)
|
|
+
|
|
+/*
|
|
+ * IEEE P802.11be/D1.0, May 2021,
|
|
+ * section 9.4.2.295c.4 Supported EHT-MCS And NSS Set field
|
|
+ */
|
|
+#define EHT_NSS_MAX_STREAMS 8
|
|
+#define EHT_PHYCAP_MCS_NSS_LEN_20MHZ_ONLY 4
|
|
+#define EHT_PHYCAP_MCS_NSS_LEN_20MHZ_PLUS 3
|
|
+
|
|
+/* IEEE P802.11be/D1.0, May 2021, 9.4.2.295c.5 EHT PPE Thresholds field */
|
|
+#define EHT_PPE_THRES_NSS_SHIFT 0
|
|
+#define EHT_PPE_THRES_NSS_MASK ((u8) (BIT(0) | BIT(1) | \
|
|
+ BIT(2) | BIT(3)))
|
|
+#define EHT_PPE_THRES_RU_INDEX_SHIFT 4
|
|
+#define EHT_PPE_THRES_RU_INDEX_MASK ((u8) (BIT(0) | BIT(1) | \
|
|
+ BIT(2) | BIT(3) | \
|
|
+ BIT(4)))
|
|
+
|
|
/* IEEE P802.11ay/D4.0, 9.4.2.251 - EDMG Operation element */
|
|
#define EDMG_BSS_OPERATING_CHANNELS_OFFSET 6
|
|
#define EDMG_OPERATING_CHANNEL_WIDTH_OFFSET 7
|