Multi-AP: Generation of Multi-AP Profile subelement

Add support for including the Multi-AP Profile subelement into the
Multi-AP element.

Signed-off-by: Manoj Sekar <quic_sekar@quicinc.com>
This commit is contained in:
Manoj Sekar 2024-02-26 18:18:21 +05:30 committed by Jouni Malinen
parent 364cb7c943
commit 0034112429
3 changed files with 19 additions and 1 deletions

View file

@ -2625,7 +2625,7 @@ size_t add_multi_ap_ie(u8 *buf, size_t len,
u8 *pos = buf;
u8 *len_ptr;
if (len < 9)
if (len < 6)
return 0;
*pos++ = WLAN_EID_VENDOR_SPECIFIC;
@ -2636,10 +2636,21 @@ size_t add_multi_ap_ie(u8 *buf, size_t len,
*pos++ = MULTI_AP_OUI_TYPE;
/* Multi-AP Extension subelement */
if (buf + len - pos < 3)
return 0;
*pos++ = MULTI_AP_SUB_ELEM_TYPE;
*pos++ = 1; /* len */
*pos++ = multi_ap->capability;
/* Add Multi-AP Profile subelement only for R2 or newer configuration */
if (multi_ap->profile >= MULTI_AP_PROFILE_2) {
if (buf + len - pos < 3)
return 0;
*pos++ = MULTI_AP_PROFILE_SUB_ELEM_TYPE;
*pos++ = 1;
*pos++ = multi_ap->profile;
}
*len_ptr = pos - len_ptr - 1;
return pos - buf;

View file

@ -32,6 +32,7 @@ struct mb_ies_info {
struct multi_ap_params {
u8 capability;
u8 profile;
};
/* Parsed Information Elements */

View file

@ -1447,11 +1447,17 @@ struct ieee80211_ampe_ie {
#define WFA_CAPA_OUI_TYPE 0x23
#define MULTI_AP_SUB_ELEM_TYPE 0x06
#define MULTI_AP_PROFILE_SUB_ELEM_TYPE 0x07
#define MULTI_AP_TEAR_DOWN BIT(4)
#define MULTI_AP_FRONTHAUL_BSS BIT(5)
#define MULTI_AP_BACKHAUL_BSS BIT(6)
#define MULTI_AP_BACKHAUL_STA BIT(7)
#define MULTI_AP_PROFILE_1 1
#define MULTI_AP_PROFILE_2 2
#define MULTI_AP_PROFILE_MAX 6
#define WMM_OUI_TYPE 2
#define WMM_OUI_SUBTYPE_INFORMATION_ELEMENT 0
#define WMM_OUI_SUBTYPE_PARAMETER_ELEMENT 1