}
bss->multi_ap = val;
+ } else if (os_strcmp(buf, "multi_ap_profile") == 0) {
+ int val = atoi(pos);
+
+ if (val < MULTI_AP_PROFILE_1 || val > MULTI_AP_PROFILE_MAX) {
+ wpa_printf(MSG_ERROR,
+ "Line %d: Invalid multi_ap_profile '%s'",
+ line, buf);
+ return -1;
+ }
+ bss->multi_ap_profile = val;
} else if (os_strcmp(buf, "rssi_reject_assoc_rssi") == 0) {
conf->rssi_reject_assoc_rssi = atoi(pos);
} else if (os_strcmp(buf, "rssi_reject_assoc_timeout") == 0) {
#multi_ap_backhaul_wpa_psk=0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef
#multi_ap_backhaul_wpa_passphrase=secret passphrase
+# Multi-AP Profile
+# Indicate the supported Multi-AP profile (default: 2)
+# 1 = Supports Multi-AP profile 1 as defined in Wi-Fi EasyMesh specification
+# 2 = Supports Multi-AP profile 2 as defined in Wi-Fi EasyMesh specification
+#multi_ap_profile=2
+
# WPS UPnP interface
# If set, support for external Registrars is enabled.
#upnp_iface=br0
/* Default to strict CRL checking. */
bss->check_crl_strict = 1;
+ bss->multi_ap_profile = MULTI_AP_PROFILE_2;
+
#ifdef CONFIG_TESTING_OPTIONS
bss->sae_commit_status = -1;
bss->test_assoc_comeback_type = -1;
#define BACKHAUL_BSS 1
#define FRONTHAUL_BSS 2
int multi_ap; /* bitmap of BACKHAUL_BSS, FRONTHAUL_BSS */
+ int multi_ap_profile;
#ifdef CONFIG_AIRTIME_POLICY
unsigned int airtime_weight;
if (hapd->conf->multi_ap & FRONTHAUL_BSS)
multi_ap.capability |= MULTI_AP_FRONTHAUL_BSS;
+ multi_ap.profile = hapd->conf->multi_ap_profile;
+
return eid + add_multi_ap_ie(eid, len, &multi_ap);
}
{ INT_RANGE(owe_ptk_workaround, 0, 1) },
{ INT_RANGE(multi_ap_backhaul_sta, 0, 1) },
{ INT_RANGE(ft_eap_pmksa_caching, 0, 1) },
+ { INT_RANGE(multi_ap_profile, MULTI_AP_PROFILE_1,
+ MULTI_AP_PROFILE_MAX) },
{ INT_RANGE(beacon_prot, 0, 1) },
{ INT_RANGE(transition_disable, 0, 255) },
{ INT_RANGE(sae_pk, 0, 2) },
INT(owe_ptk_workaround);
INT(multi_ap_backhaul_sta);
INT(ft_eap_pmksa_caching);
+ INT(multi_ap_profile);
INT(beacon_prot);
INT(transition_disable);
INT(sae_pk);
*/
int ft_eap_pmksa_caching;
+ /**
+ * multi_ap_profile - Supported Multi-AP profile
+ */
+ int multi_ap_profile;
+
/**
* beacon_prot - Whether Beacon protection is enabled
*
struct multi_ap_params multi_ap = { 0 };
multi_ap.capability = MULTI_AP_BACKHAUL_STA;
+ multi_ap.profile = ssid->multi_ap_profile;
multi_ap_ie_len = add_multi_ap_ie(
wpa_s->sme.assoc_req_ie + wpa_s->sme.assoc_req_ie_len,
struct multi_ap_params multi_ap = { 0 };
multi_ap.capability = MULTI_AP_BACKHAUL_STA;
+ multi_ap.profile = ssid->multi_ap_profile;
multi_ap_ie_len = add_multi_ap_ie(wpa_ie + wpa_ie_len,
max_wpa_ie_len - wpa_ie_len,
# support Multi-AP, and sets 4-address mode if it does. Thus, the netdev can be
# added to a bridge to allow forwarding frames over this backhaul link.
+# Multi-AP Profile
+# Indicate the supported Multi-AP profile
+# 1 = Supports Multi-AP profile 1 as defined in Wi-Fi EasyMesh specification
+# 2 = Supports Multi-AP profile 2 as defined in Wi-Fi EasyMesh specification
+#multi_ap_profile=2
+
##### Fast Session Transfer (FST) support #####################################
#
# The options in this section are only available when the build configuration