OCE: Add hostapd mode OCE capability indication if enabled
Add OCE IE in Beacon, Probe Response, and (Re)Association Response frames if OCE is enabled in the configuration. Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
This commit is contained in:
parent
332aadb8a2
commit
65833d71a5
8 changed files with 80 additions and 12 deletions
|
@ -544,23 +544,38 @@ u8 * hostapd_eid_bss_max_idle_period(struct hostapd_data *hapd, u8 *eid)
|
|||
|
||||
u8 * hostapd_eid_mbo(struct hostapd_data *hapd, u8 *eid, size_t len)
|
||||
{
|
||||
u8 mbo[6], *mbo_pos = mbo;
|
||||
u8 mbo[9], *mbo_pos = mbo;
|
||||
u8 *pos = eid;
|
||||
|
||||
if (!hapd->conf->mbo_enabled)
|
||||
if (!hapd->conf->mbo_enabled && !hapd->enable_oce)
|
||||
return eid;
|
||||
|
||||
*mbo_pos++ = MBO_ATTR_ID_AP_CAPA_IND;
|
||||
*mbo_pos++ = 1;
|
||||
/* Not Cellular aware */
|
||||
*mbo_pos++ = 0;
|
||||
if (hapd->conf->mbo_enabled) {
|
||||
*mbo_pos++ = MBO_ATTR_ID_AP_CAPA_IND;
|
||||
*mbo_pos++ = 1;
|
||||
/* Not Cellular aware */
|
||||
*mbo_pos++ = 0;
|
||||
}
|
||||
|
||||
if (hapd->mbo_assoc_disallow) {
|
||||
if (hapd->conf->mbo_enabled && hapd->mbo_assoc_disallow) {
|
||||
*mbo_pos++ = MBO_ATTR_ID_ASSOC_DISALLOW;
|
||||
*mbo_pos++ = 1;
|
||||
*mbo_pos++ = hapd->mbo_assoc_disallow;
|
||||
}
|
||||
|
||||
if (hapd->enable_oce & (OCE_AP | OCE_STA_CFON)) {
|
||||
u8 ctrl;
|
||||
|
||||
ctrl = OCE_RELEASE;
|
||||
if ((hapd->enable_oce & (OCE_AP | OCE_STA_CFON)) ==
|
||||
OCE_STA_CFON)
|
||||
ctrl |= OCE_IS_STA_CFON;
|
||||
|
||||
*mbo_pos++ = OCE_ATTR_ID_CAPA_IND;
|
||||
*mbo_pos++ = 1;
|
||||
*mbo_pos++ = ctrl;
|
||||
}
|
||||
|
||||
pos += mbo_add_ie(pos, len, mbo, mbo_pos - mbo);
|
||||
|
||||
return pos;
|
||||
|
@ -569,14 +584,24 @@ u8 * hostapd_eid_mbo(struct hostapd_data *hapd, u8 *eid, size_t len)
|
|||
|
||||
u8 hostapd_mbo_ie_len(struct hostapd_data *hapd)
|
||||
{
|
||||
if (!hapd->conf->mbo_enabled)
|
||||
u8 len;
|
||||
|
||||
if (!hapd->conf->mbo_enabled && !hapd->enable_oce)
|
||||
return 0;
|
||||
|
||||
/*
|
||||
* MBO IE header (6) + Capability Indication attribute (3) +
|
||||
* Association Disallowed attribute (3) = 12
|
||||
*/
|
||||
return 6 + 3 + (hapd->mbo_assoc_disallow ? 3 : 0);
|
||||
len = 6;
|
||||
if (hapd->conf->mbo_enabled)
|
||||
len += 3 + (hapd->mbo_assoc_disallow ? 3 : 0);
|
||||
|
||||
/* OCE capability indication attribute (3) */
|
||||
if (hapd->enable_oce & (OCE_AP | OCE_STA_CFON))
|
||||
len += 3;
|
||||
|
||||
return len;
|
||||
}
|
||||
|
||||
#endif /* CONFIG_MBO */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue