Page MenuHomeFreeBSD

D50676.id156747.diff
No OneTemporary

D50676.id156747.diff

diff --git a/sys/compat/linuxkpi/common/include/net/cfg80211.h b/sys/compat/linuxkpi/common/include/net/cfg80211.h
--- a/sys/compat/linuxkpi/common/include/net/cfg80211.h
+++ b/sys/compat/linuxkpi/common/include/net/cfg80211.h
@@ -895,29 +895,7 @@
#define VENDOR_CMD_RAW_DATA (void *)(uintptr_t)(-ENOENT)
-/*
- * 802.11ax-2021,
- * 9.4.2.248.2 HE MAC Capabilities Information field.
- * 9.4.2.248.3 HE PHY Capabilities Information field.
- */
-struct ieee80211_he_cap_elem {
- u8 mac_cap_info[6];
- u8 phy_cap_info[11];
-} __packed;
-
-/* 802.11ax-2021, 9.4.2.248.4 Supported HE-MCS And NSS Set field. */
-struct ieee80211_he_mcs_nss_supp {
- uint16_t rx_mcs_80;
- uint16_t tx_mcs_80;
- uint16_t rx_mcs_160;
- uint16_t tx_mcs_160;
- uint16_t rx_mcs_80p80;
- uint16_t tx_mcs_80p80;
-};
-
-#define IEEE80211_HE_CAP_PPE_THRES_MAX 25
-
-/* net80211::ic_ieee80211_he_cap */
+/* net80211::net80211_he_cap */
struct ieee80211_sta_he_cap {
bool has_he;
struct ieee80211_he_cap_elem he_cap_elem;
diff --git a/sys/compat/linuxkpi/common/include/net/mac80211.h b/sys/compat/linuxkpi/common/include/net/mac80211.h
--- a/sys/compat/linuxkpi/common/include/net/mac80211.h
+++ b/sys/compat/linuxkpi/common/include/net/mac80211.h
@@ -413,11 +413,6 @@
int civicloc_len;
};
-struct ieee80211_he_mu_edca_param_ac_rec {
- /* TODO FIXME */
- int aifsn, ecw_min_max, mu_edca_timer;
-};
-
struct ieee80211_conf {
int dynamic_ps_timeout;
int power_level;
diff --git a/sys/net80211/ieee80211.h b/sys/net80211/ieee80211.h
--- a/sys/net80211/ieee80211.h
+++ b/sys/net80211/ieee80211.h
@@ -28,6 +28,12 @@
#ifndef _NET80211_IEEE80211_H_
#define _NET80211_IEEE80211_H_
+#include <sys/types.h>
+
+#ifndef _KERNEL
+#include <stdbool.h>
+#endif
+
/*
* 802.11 protocol definitions.
*/
@@ -1098,6 +1104,70 @@
#define WLAN_ACTION_VHT_GROUPID_MGMT 1
#define WLAN_ACTION_VHT_OPMODE_NOTIF 2
+#if defined(_KERNEL) || defined(WANT_NET80211)
+/*
+ * HE
+ */
+
+/*
+ * 802.11ax-2021,
+ * 9.4.2.248.2 HE MAC Capabilities Information field.
+ * 9.4.2.248.3 HE PHY Capabilities Information field.
+ */
+struct ieee80211_he_cap_elem {
+ uint8_t mac_cap_info[6];
+ uint8_t phy_cap_info[11];
+} __packed;
+
+/* 802.11ax-2021, 9.4.2.248.4 Supported HE-MCS And NSS Set field. */
+struct ieee80211_he_mcs_nss_supp {
+ uint16_t rx_mcs_80;
+ uint16_t tx_mcs_80;
+ uint16_t rx_mcs_160;
+ uint16_t tx_mcs_160;
+ uint16_t rx_mcs_80p80;
+ uint16_t tx_mcs_80p80;
+} __packed;
+
+#define IEEE80211_HE_CAP_PPE_THRES_MAX 25
+
+/* XXX this should only be internal. */
+struct net80211_he_cap {
+ bool has_he;
+ struct ieee80211_he_cap_elem he_cap_elem;
+ struct ieee80211_he_mcs_nss_supp he_mcs_nss_supp;
+ uint8_t ppe_thres[IEEE80211_HE_CAP_PPE_THRES_MAX];
+};
+
+/* 802.11ax-2021, 9.4.2.249 HE Operation element. */
+struct ieee80211_he_operation {
+ uint32_t he_oper_params;
+ uint16_t he_mcs_nss_set;
+ uint8_t optional[0];
+} __packed;
+
+/* 802.11ax-2021, 9.4.2.251 MU EDCA Parameter Set element. */
+struct ieee80211_he_mu_edca_param_ac_rec {
+ uint8_t aifsn;
+ uint8_t ecw_min_max;
+ uint8_t mu_edca_timer;
+} __packed;
+
+struct ieee80211_mu_edca_param_set {
+ uint8_t mu_qos_info;
+ union {
+ struct {
+ struct ieee80211_he_mu_edca_param_ac_rec ac_be;
+ struct ieee80211_he_mu_edca_param_ac_rec ac_bk;
+ struct ieee80211_he_mu_edca_param_ac_rec ac_vi;
+ struct ieee80211_he_mu_edca_param_ac_rec ac_vo;
+ };
+ struct ieee80211_he_mu_edca_param_ac_rec param_ac_recs[4];
+ };
+} __packed;
+#endif /* _KERNEL || WANT_NET80211 */
+
+
/*
* Management information element payloads.
*

File Metadata

Mime Type
text/plain
Expires
Fri, May 22, 7:55 PM (41 m, 3 s)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
33429246
Default Alt Text
D50676.id156747.diff (3 KB)

Event Timeline