qcacmn: Add Bandwidth Indication Element support
Adding Bandwidth Indication Element Sub IE structure and other support Change-Id: Iae761582e8c5d2b12af231e58c6dcbb23421e9dd CRs-Fixed: 3444254
Dieser Commit ist enthalten in:

committet von
Madan Koyyalamudi

Ursprung
9a52f07701
Commit
08131c79a1
@@ -311,6 +311,11 @@ enum qcn_attribute_id {
|
||||
*/
|
||||
#define WLAN_TPE_IE_MAX_LEN 9
|
||||
|
||||
#ifdef WLAN_FEATURE_11BE
|
||||
/* Bandwidth indication element IE minimum length */
|
||||
#define WLAN_BW_IND_IE_MIN_LEN 3
|
||||
#endif
|
||||
|
||||
/* Max channel switch time IE length */
|
||||
#define WLAN_MAX_CHAN_SWITCH_TIME_IE_LEN 4
|
||||
|
||||
@@ -657,6 +662,7 @@ enum element_ie {
|
||||
* @WLAN_EXTN_ELEMID_EHTCAP: EHT Capabilities IE
|
||||
* @WLAN_EXTN_ELEMID_T2LM: TID-to-link mapping IE
|
||||
* @WLAN_EXTN_ELEMID_MULTI_LINK_TRAFFIC_IND: Multi-link Traffic Indication IE
|
||||
* @WLAN_EXTN_ELEMID_BW_IND: Bandwidth Indication Element Sub IE
|
||||
*/
|
||||
enum extn_element_ie {
|
||||
WLAN_EXTN_ELEMID_ESP = 11,
|
||||
@@ -680,6 +686,9 @@ enum extn_element_ie {
|
||||
#endif
|
||||
WLAN_EXTN_ELEMID_T2LM = 109,
|
||||
WLAN_EXTN_ELEMID_MULTI_LINK_TRAFFIC_IND = 110,
|
||||
#ifdef WLAN_FEATURE_11BE
|
||||
WLAN_EXTN_ELEMID_BW_IND = 135,
|
||||
#endif
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -1931,6 +1940,29 @@ struct wlan_ie_ehtops {
|
||||
uint8_t disabled_sub_chan_bitmap[2];
|
||||
} qdf_packed;
|
||||
|
||||
/**
|
||||
* struct wlan_ie_bw_ind - Bandwidth Indication Element
|
||||
* @elem_id: Element ID
|
||||
* @elem_len: Element length
|
||||
* @elem_id_extn: Element ID extension
|
||||
* @bw_ind_param: bw indication element parameters
|
||||
* @control: Control field in bw_ind Operation Information
|
||||
* @ccfs0: EHT Channel Centre Frequency Segment0 information
|
||||
* @ccfs1: EHT Channel Centre Frequency Segment1 information
|
||||
* @disabled_sub_chan_bitmap: Bitmap to indicate 20MHz subchannel
|
||||
* is punctured or not
|
||||
*/
|
||||
struct wlan_ie_bw_ind {
|
||||
uint8_t elem_id;
|
||||
uint8_t elem_len;
|
||||
uint8_t elem_id_extn;
|
||||
uint8_t bw_ind_param;
|
||||
uint8_t control;
|
||||
uint8_t ccfs0;
|
||||
uint8_t ccfs1;
|
||||
uint8_t disabled_sub_chan_bitmap[2];
|
||||
} qdf_packed;
|
||||
|
||||
#ifdef WLAN_FEATURE_11BE_MLO
|
||||
#define WLAN_MLO_MAX_VDEVS 2
|
||||
|
||||
|
@@ -209,6 +209,7 @@ struct channel_info {
|
||||
* @rsnxe: Pointer to rsnxe IE
|
||||
* @ehtcap: pointer to ehtcap ie
|
||||
* @ehtop: pointer to eht op ie
|
||||
* @bw_ind: pointer to bandwidth indication element sub ie
|
||||
* @multi_link_bv: pointer to multi link basic variant IE
|
||||
* @multi_link_rv: pointer to multi link reconfig IE
|
||||
* @t2lm: array of pointers to t2lm op ie
|
||||
@@ -276,6 +277,7 @@ struct ie_list {
|
||||
#ifdef WLAN_FEATURE_11BE
|
||||
uint8_t *ehtcap;
|
||||
uint8_t *ehtop;
|
||||
uint8_t *bw_ind;
|
||||
#endif
|
||||
#ifdef WLAN_FEATURE_11BE_MLO
|
||||
uint8_t *multi_link_bv;
|
||||
|
@@ -741,6 +741,8 @@ util_scan_copy_beacon_data(struct scan_cache_entry *new_entry,
|
||||
/* This macro will be removed once 11be is enabled */
|
||||
ie_lst->ehtcap = conv_ptr(ie_lst->ehtcap, old_ptr, new_ptr);
|
||||
ie_lst->ehtop = conv_ptr(ie_lst->ehtop, old_ptr, new_ptr);
|
||||
ie_lst->bw_ind =
|
||||
conv_ptr(ie_lst->bw_ind, old_ptr, new_ptr);
|
||||
#endif
|
||||
#ifdef WLAN_FEATURE_11BE_MLO
|
||||
ie_lst->multi_link_bv =
|
||||
@@ -1590,6 +1592,12 @@ util_scan_entry_ehtop(struct scan_cache_entry *scan_entry)
|
||||
{
|
||||
return scan_entry->ie_list.ehtop;
|
||||
}
|
||||
|
||||
static inline uint8_t*
|
||||
util_scan_entry_bw_ind(struct scan_cache_entry *scan_entry)
|
||||
{
|
||||
return scan_entry->ie_list.bw_ind;
|
||||
}
|
||||
#else
|
||||
|
||||
static inline uint8_t*
|
||||
@@ -1597,6 +1605,12 @@ util_scan_entry_ehtcap(struct scan_cache_entry *scan_entry)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static inline uint8_t*
|
||||
util_scan_entry_bw_ind(struct scan_cache_entry *scan_entry)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef WLAN_FEATURE_11BE_MLO
|
||||
|
@@ -953,6 +953,13 @@ util_scan_parse_chan_switch_wrapper_ie(struct scan_cache_entry *scan_params,
|
||||
return QDF_STATUS_E_INVAL;
|
||||
scan_params->ie_list.txpwrenvlp = (uint8_t *)sub_ie;
|
||||
break;
|
||||
#ifdef WLAN_FEATURE_11BE
|
||||
case WLAN_EXTN_ELEMID_BW_IND:
|
||||
if (sub_ie->ie_len < WLAN_BW_IND_IE_MIN_LEN)
|
||||
return QDF_STATUS_E_INVAL;
|
||||
scan_params->ie_list.bw_ind = (uint8_t *)sub_ie;
|
||||
break;
|
||||
#endif
|
||||
}
|
||||
/* Consume sub info element */
|
||||
sub_ie_len -= sub_ie->ie_len;
|
||||
|
In neuem Issue referenzieren
Einen Benutzer sperren