From 6bfd5d6e4b389bcf77f5068190497506c82851dc Mon Sep 17 00:00:00 2001 From: Krishna Rao Date: Mon, 19 Jul 2021 15:23:51 +0530 Subject: [PATCH] qcacmn: Add common definitions for Multi Link IE Add definitions for Multi Link IE which are common to all variants of this IE. These are based on IEEE802.11be D1.0. CRs-Fixed: 2995642 Change-Id: I74e6457a5ef2e3c440144c67df11fee621958d4d --- .../cmn_defs/inc/wlan_cmn_ieee80211.h | 58 ++++++++++++++++++- 1 file changed, 57 insertions(+), 1 deletion(-) diff --git a/umac/cmn_services/cmn_defs/inc/wlan_cmn_ieee80211.h b/umac/cmn_services/cmn_defs/inc/wlan_cmn_ieee80211.h index 351eeaae2f..b6e804302c 100644 --- a/umac/cmn_services/cmn_defs/inc/wlan_cmn_ieee80211.h +++ b/umac/cmn_services/cmn_defs/inc/wlan_cmn_ieee80211.h @@ -1480,7 +1480,63 @@ struct wlan_ie_ehtops { uint8_t minimum_rate; uint16_t puncture_pattern; } qdf_packed; -#endif + +#ifdef WLAN_FEATURE_11BE_MLO + +/** + * struct wlan_ie_multilink - Fixed fields in Multi-Link IE + * @elem_id: Element ID + * @elem_len: Element length + * @elem_id_ext: Element ID extension + * @mlcontrol: Multi-Link element Control field + */ +struct wlan_ie_multilink { + uint8_t elem_id; + uint8_t elem_len; + uint8_t elem_id_ext; + uint16_t mlcontrol; +} qdf_packed; + +/* The above fixed fields may be followed by: + * Common Info (variable size) + * Link Info (variable size) + */ + +/* Definitions related to Multi-Link element Control field applicable across + * variants. + */ + +/* Definitions for subfields in Multi-Link element Control field. Any unused + * bits are reserved. + */ +/* Type */ +#define WLAN_ML_CTRL_TYPE_IDX 0 +#define WLAN_ML_CTRL_TYPE_BITS 3 +/* Presence Bitmap */ +#define WLAN_ML_CTRL_PBM_IDX 4 +#define WLAN_ML_CTRL_PBM_BITS 12 + +/** + * enum wlan_ml_variant - Encoding for Type subfield in Multi-Link element + * Control field, which provides the Multi-Link element variant. + * Note: In case of holes in the enumeration, scheme for invalid value + * determination should be changed. + * @WLAN_ML_VARIANT_BASIC: Basic variant + * @WLAN_ML_VARIANT_PROBEREQ: Probe Request variant + * @WLAN_ML_VARIANT_INVALIDSTART: Start of invalid value range + */ +enum wlan_ml_variant { + WLAN_ML_VARIANT_BASIC = 0, + WLAN_ML_VARIANT_PROBEREQ = 1, + WLAN_ML_VARIANT_INVALIDSTART, +}; + +/* End of definitions related to Multi-Link element Control field applicable + * across variants. + */ + +#endif /* WLAN_FEATURE_11BE_MLO */ +#endif /* WLAN_FEATURE_11BE */ /** * struct he_oper_6g_param: 6 Ghz params for HE