hostapd: Initial IEEE 802.11ax (HE) definitions
Add IEEE 802.11ax definitions for config, IEEE structures, and constants. These are still subject to change in the IEEE process. Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
This commit is contained in:
parent
5972dc73c1
commit
94380cb40a
10 changed files with 182 additions and 0 deletions
|
@ -619,6 +619,24 @@ struct hostapd_bss_config {
|
|||
int multicast_to_unicast;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct he_phy_capabilities_info - HE PHY capabilities
|
||||
*/
|
||||
struct he_phy_capabilities_info {
|
||||
Boolean he_su_beamformer;
|
||||
Boolean he_su_beamformee;
|
||||
Boolean he_mu_beamformer;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct he_operation - HE operation
|
||||
*/
|
||||
struct he_operation {
|
||||
u8 he_bss_color;
|
||||
u8 he_default_pe_duration;
|
||||
u8 he_twt_required;
|
||||
u8 he_rts_threshold;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct hostapd_config - Per-radio interface configuration
|
||||
|
@ -732,6 +750,12 @@ struct hostapd_config {
|
|||
struct wpabuf *lci;
|
||||
struct wpabuf *civic;
|
||||
int stationary_ap;
|
||||
|
||||
int ieee80211ax;
|
||||
#ifdef CONFIG_IEEE80211AX
|
||||
struct he_phy_capabilities_info he_phy_capab;
|
||||
struct he_operation he_op;
|
||||
#endif /* CONFIG_IEEE80211AX */
|
||||
};
|
||||
|
||||
|
||||
|
|
|
@ -1960,4 +1960,53 @@ enum nr_chan_width {
|
|||
NR_CHAN_WIDTH_80P80 = 4,
|
||||
};
|
||||
|
||||
struct ieee80211_he_capabilities {
|
||||
u8 he_mac_capab_info[5];
|
||||
u8 he_phy_capab_info[9];
|
||||
u16 he_txrx_mcs_support;
|
||||
/* possibly followed by Tx Rx MCS NSS descriptor */
|
||||
u8 variable[];
|
||||
/* PPE Thresholds (optional) */
|
||||
} STRUCT_PACKED;
|
||||
|
||||
struct ieee80211_he_operation {
|
||||
u32 he_oper_params;
|
||||
u8 he_mcs_nss_set[3];
|
||||
u8 vht_op_info_chwidth;
|
||||
u8 vht_op_info_chan_center_freq_seg0_idx;
|
||||
u8 vht_op_info_chan_center_freq_seg1_idx;
|
||||
} STRUCT_PACKED;
|
||||
|
||||
/* HE Capabilities Information defines */
|
||||
#define HE_PHYCAP_SU_BEAMFORMER_CAPAB_IDX 3
|
||||
#define HE_PHYCAP_SU_BEAMFORMER_CAPAB ((u8) BIT(7))
|
||||
#define HE_PHYCAP_SU_BEAMFORMEE_CAPAB_IDX 4
|
||||
#define HE_PHYCAP_SU_BEAMFORMEE_CAPAB ((u8) BIT(0))
|
||||
#define HE_PHYCAP_MU_BEAMFORMER_CAPAB_IDX 4
|
||||
#define HE_PHYCAP_MU_BEAMFORMER_CAPAB ((u8) BIT(1))
|
||||
|
||||
/* HE Operation defines */
|
||||
#define HE_OPERATION_BSS_COLOR_MASK ((u32) (BIT(0) | BIT(1) | \
|
||||
BIT(2) | BIT(3) | \
|
||||
BIT(4) | BIT(5)))
|
||||
#define HE_OPERATION_DFLT_PE_DURATION_MASK ((u32) (BIT(6) | BIT(7) | \
|
||||
BIT(8)))
|
||||
#define HE_OPERATION_DFLT_PE_DURATION_OFFSET 6
|
||||
#define HE_OPERATION_TWT_REQUIRED ((u32) BIT(9))
|
||||
#define HE_OPERATION_RTS_THRESHOLD_MASK ((u32) (BIT(10) | BIT(11) | \
|
||||
BIT(12) | BIT(13) | \
|
||||
BIT(14) | BIT(15) | \
|
||||
BIT(16) | BIT(17) | \
|
||||
BIT(18) | BIT(19)))
|
||||
#define HE_OPERATION_RTS_THRESHOLD_OFFSET 10
|
||||
#define HE_OPERATION_PARTIAL_BSS_COLOR ((u32) BIT(20))
|
||||
#define HE_OPERATION_MAX_BSSID_INDICATOR_MASK ((u32) (BIT(21) | BIT(22) | \
|
||||
BIT(23) | BIT(24) | \
|
||||
BIT(25) | BIT(26) | \
|
||||
BIT(27) | BIT(28)))
|
||||
#define HE_OPERATION_MAX_BSSID_INDICATOR_OFFSET 21
|
||||
#define HE_OPERATION_TX_BSSID_INDICATOR ((u32) BIT(29))
|
||||
#define HE_OPERATION_BSS_COLOR_DISABLED ((u32) BIT(30))
|
||||
#define HE_OPERATION_BSS_DUAL_BEACON ((u32) BIT(31))
|
||||
|
||||
#endif /* IEEE802_11_DEFS_H */
|
||||
|
|
|
@ -136,6 +136,29 @@ struct hostapd_channel_data {
|
|||
unsigned int dfs_cac_ms;
|
||||
};
|
||||
|
||||
#define HE_MAX_NUM_SS 8
|
||||
#define HE_MAX_PHY_CAPAB_SIZE 3
|
||||
|
||||
/**
|
||||
* struct he_ppe_threshold - IEEE 802.11ax HE PPE Threshold
|
||||
*/
|
||||
struct he_ppe_threshold {
|
||||
u32 numss_m1;
|
||||
u32 ru_count;
|
||||
u32 ppet16_ppet8_ru3_ru0[HE_MAX_NUM_SS];
|
||||
};
|
||||
|
||||
/**
|
||||
* struct he_capabilities - IEEE 802.11ax HE capabilities
|
||||
*/
|
||||
struct he_capabilities {
|
||||
u8 he_supported;
|
||||
u32 phy_cap[HE_MAX_PHY_CAPAB_SIZE];
|
||||
u32 mac_cap;
|
||||
u32 mcs;
|
||||
struct he_ppe_threshold ppet;
|
||||
};
|
||||
|
||||
#define HOSTAPD_MODE_FLAG_HT_INFO_KNOWN BIT(0)
|
||||
#define HOSTAPD_MODE_FLAG_VHT_INFO_KNOWN BIT(1)
|
||||
|
||||
|
@ -194,6 +217,11 @@ struct hostapd_hw_modes {
|
|||
u8 vht_mcs_set[8];
|
||||
|
||||
unsigned int flags; /* HOSTAPD_MODE_FLAG_* */
|
||||
|
||||
/**
|
||||
* he_capab - HE (IEEE 802.11ax) capabilities
|
||||
*/
|
||||
struct he_capabilities he_capab;
|
||||
};
|
||||
|
||||
|
||||
|
@ -1429,6 +1457,8 @@ struct wpa_driver_capa {
|
|||
#define WPA_DRIVER_FLAGS_MGMT_TX_RANDOM_TA_CONNECTED 0x0000800000000000ULL
|
||||
/** Driver supports better BSS reporting with sched_scan in connected mode */
|
||||
#define WPA_DRIVER_FLAGS_SCHED_SCAN_RELATIVE_RSSI 0x0001000000000000ULL
|
||||
/** Driver supports HE capabilities */
|
||||
#define WPA_DRIVER_FLAGS_HE_CAPABILITIES 0x0002000000000000ULL
|
||||
u64 flags;
|
||||
|
||||
#define FULL_AP_CLIENT_STATE_SUPP(drv_flags) \
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue