On 2020-06-04 02:15, John Crispin wrote:
Signed-off-by: John Crispin <john@xxxxxxxxxxx>
---
src/ap/ap_drv_ops.c | 8 +++++---
src/ap/ap_drv_ops.h | 3 ++-
src/ap/beacon.c | 4 ++++
src/ap/hostapd.c | 9 ++++++++-
src/common/defs.h | 7 +++++++
src/drivers/driver.h | 10 +++++++++-
wpa_supplicant/driver_i.h | 2 +-
7 files changed, 36 insertions(+), 7 deletions(-)
diff --git a/src/ap/ap_drv_ops.c b/src/ap/ap_drv_ops.c
index f15765945..3a46b5745 100644
--- a/src/ap/ap_drv_ops.c
+++ b/src/ap/ap_drv_ops.c
@@ -321,7 +321,7 @@ int hostapd_vlan_if_add(struct hostapd_data *hapd,
const char *ifname)
char force_ifname[IFNAMSIZ];
u8 if_addr[ETH_ALEN];
return hostapd_if_add(hapd, WPA_IF_AP_VLAN, ifname, hapd->own_addr,
- NULL, NULL, force_ifname, if_addr, NULL, 0);
+ NULL, NULL, force_ifname, if_addr, NULL, 0, 0, NULL);
}
@@ -497,13 +497,15 @@ int hostapd_set_ssid(struct hostapd_data *hapd,
const u8 *buf, size_t len)
int hostapd_if_add(struct hostapd_data *hapd, enum wpa_driver_if_type
type,
const char *ifname, const u8 *addr, void *bss_ctx,
void **drv_priv, char *force_ifname, u8 *if_addr,
- const char *bridge, int use_existing)
+ const char *bridge, int use_existing,
+ int multi_bssid_mode, const char *multi_bssid_parent)
{
if (hapd->driver == NULL || hapd->driver->if_add == NULL)
return -1;
return hapd->driver->if_add(hapd->drv_priv, type, ifname, addr,
bss_ctx, drv_priv, force_ifname, if_addr,
- bridge, use_existing, 1);
+ bridge, use_existing, 1,
+ multi_bssid_mode, multi_bssid_parent);
}
diff --git a/src/ap/ap_drv_ops.h b/src/ap/ap_drv_ops.h
index 5738c1c97..651b77e9a 100644
--- a/src/ap/ap_drv_ops.h
+++ b/src/ap/ap_drv_ops.h
@@ -54,7 +54,8 @@ int hostapd_set_ssid(struct hostapd_data *hapd,
const u8 *buf, size_t len);
int hostapd_if_add(struct hostapd_data *hapd, enum wpa_driver_if_type
type,
const char *ifname, const u8 *addr, void *bss_ctx,
void **drv_priv, char *force_ifname, u8 *if_addr,
- const char *bridge, int use_existing);
+ const char *bridge, int use_existin,
typo use_existing.
+ int multi_bssid_mode, const char *multi_bssid_parent);
int hostapd_if_remove(struct hostapd_data *hapd, enum
wpa_driver_if_type type,
const char *ifname);
int hostapd_set_ieee8021x(struct hostapd_data *hapd,
diff --git a/src/ap/beacon.c b/src/ap/beacon.c
index 22e672c8d..d3453102b 100644
--- a/src/ap/beacon.c
+++ b/src/ap/beacon.c
@@ -1500,6 +1500,10 @@ int ieee802_11_set_beacon(struct hostapd_data
*hapd)
params.twt_responder = hostapd_get_he_twt_responder(hapd,
IEEE80211_MODE_AP);
#endif /* CONFIG_IEEE80211AX */
+ if (hapd->iconf->multiple_bssid) {
+ params.multiple_bssid_index = hostapd_get_bss_index(hapd);
"multiple_bssid: add 2 new helper functions" must be before this patch.
no?
+ params.multiple_bssid_count = iface->num_bss;
+ }
hapd->reenable_beacon = 0;
if (cmode &&
diff --git a/src/ap/hostapd.c b/src/ap/hostapd.c
index b37f49f9a..033593f06 100644
--- a/src/ap/hostapd.c
+++ b/src/ap/hostapd.c
@@ -1129,6 +1129,13 @@ static int hostapd_setup_bss(struct
hostapd_data *hapd, int first)
if (!first || first == -1) {
u8 *addr = hapd->own_addr;
+ int multiple_bssid_mode = HOSTAPD_BSSID_LEGACY;
+ const char *multiple_bssid_parent = NULL;
+
+ if (hapd->iconf->multiple_bssid) {
+ multiple_bssid_mode = HOSTAPD_BSSID_NON_TRANSMITTED;
+ multiple_bssid_parent = hapd->iface->bss[0]->conf->iface;
+ }
Don't you have to set HOSTAPD_BSSID_TRANSMITTED in case of first BSS.
-Rajkumar
_______________________________________________
Hostap mailing list
Hostap@xxxxxxxxxxxxxxxxxxx
http://lists.infradead.org/mailman/listinfo/hostap