nl80211: Support network hierarchy of a master interface under bridge
authorDedy Lansky <qca_dlansky@qca.qualcomm.com>
Sun, 28 Feb 2016 13:54:17 +0000 (15:54 +0200)
committerJouni Malinen <j@w1.fi>
Wed, 9 Mar 2016 19:03:41 +0000 (21:03 +0200)
Since commit cb05808c46539922cf02e9e8527a062e90637ff9 ('nl80211: Generic
Linux master interface support for hostapd'), hostapd is listening for
EAPOL frames on any master which the interface is enslaved under.

This commit allows hostapd to support network hierarchy in which the
interface is enslaved under some master which in turn is enslaved under
a bridge.

Signed-off-by: Dedy Lansky <qca_dlansky@qca.qualcomm.com>
src/drivers/driver_nl80211.c

index 570dee6..5fb6652 100644 (file)
@@ -5912,6 +5912,14 @@ static void *i802_init(struct hostapd_data *hapd,
                        params->ifname, master_ifname);
                /* start listening for EAPOL on the master interface */
                add_ifidx(drv, if_nametoindex(master_ifname), drv->ifindex);
+
+               /* check if master itself is under bridge */
+               if (linux_br_get(master_ifname, master_ifname) == 0) {
+                       wpa_printf(MSG_DEBUG, "nl80211: which is in bridge %s",
+                                  master_ifname);
+                       br_ifindex = if_nametoindex(master_ifname);
+                       os_strlcpy(bss->brname, master_ifname, IFNAMSIZ);
+               }
        } else {
                master_ifname[0] = '\0';
        }