[PATCH RFC] AP: Allow using existing interfaces for all BSS-es

Jouni Malinen j at w1.fi
Mon May 30 07:50:48 PDT 2016

On Mon, May 30, 2016 at 08:53:13AM +0200, Rafał Miłecki wrote:
> Some drivers (e.g. brcmfmac) may not support deleting virtual
> interfaces. In such cases we can start AP interfaces once only. This can
> be easily workarounded by allowing driver(s) to use all existing
> interfaces.

> This patch allows me freely use BCM4366 with brcmfmac and multiple AP
> interfaces. Unfortunately I don't know reason for having this limiration
> in the first place. Do you know if my patch may break anything?

This would leave hapd->interface_added == 1 even for interfaces that
were not added by hostapd. hostapd_free_hapd_data() would then try to
remove this interface which would apparently fail with this driver.

> diff --git a/src/ap/hostapd.c b/src/ap/hostapd.c
> @@ -941,7 +941,7 @@ static int hostapd_setup_bss(struct hostapd_data *hapd, int first)
>  				   conf->iface, addr, hapd,
>  				   &hapd->drv_priv, force_ifname, if_addr,
>  				   conf->bridge[0] ? conf->bridge : NULL,
> -				   first == -1)) {
> +				   true)) {
>  			wpa_printf(MSG_ERROR, "Failed to add BSS (BSSID="
>  				   MACSTR ")", MAC2STR(hapd->own_addr));
>  			hapd->interface_added = 0;

Maybe this should first try first == -1 and if that fails, try with
use_existing parameter value 1 ("true" is not used within most places of
hostapd yet) and if that succeeds, allow operation to continue but with
hapd->interface_added = 0.
Jouni Malinen                                            PGP id EFC895FA

More information about the Hostap mailing list