aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/drivers/net/wireless/quantenna/qtnfmac/bus.h
diff options
context:
space:
mode:
authorIgor Mitsyanko <igor.mitsyanko.os@quantenna.com>2019-11-18 08:23:06 +0000
committerKalle Valo <kvalo@codeaurora.org>2019-11-20 09:42:56 +0200
commitdecfc5c70d206fdfba5de8405eb9148de6d7897b (patch)
treed7024551bd55b58867a14d0705b748be53b451b0 /drivers/net/wireless/quantenna/qtnfmac/bus.h
parentqtnfmac: remove VIF in firmware in case of error (diff)
downloadwireguard-linux-decfc5c70d206fdfba5de8405eb9148de6d7897b.tar.xz
wireguard-linux-decfc5c70d206fdfba5de8405eb9148de6d7897b.zip
qtnfmac: track broadcast domain of each interface
If firmware reports that it supports hardware switch capabilities, driver needs to track and notify device whenever broadcast domain of a particular network device changes (ie. whenever it's upper master device changes). Firmware needs a unique ID to tell broadcast domains from each other which is an opaque number otherwise. For that purpose we can use netspace:ifidx pair to uniquely identify each broadcast domain: - if netdev is not part of a bridge, then use it's own ifidx as a broadcast domain ID - if netdev is part of a bridge, then use bridge netdev ifidx as broadcast domain ID Firmware makes sure that packets are only forwarded between interfaces marked with the same broadcast domain ID. Signed-off-by: Igor Mitsyanko <igor.mitsyanko.os@quantenna.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Diffstat (limited to 'drivers/net/wireless/quantenna/qtnfmac/bus.h')
-rw-r--r--drivers/net/wireless/quantenna/qtnfmac/bus.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/net/wireless/quantenna/qtnfmac/bus.h b/drivers/net/wireless/quantenna/qtnfmac/bus.h
index 7cea08f71838..4c6eca344a09 100644
--- a/drivers/net/wireless/quantenna/qtnfmac/bus.h
+++ b/drivers/net/wireless/quantenna/qtnfmac/bus.h
@@ -54,6 +54,7 @@ struct qtnf_bus {
struct work_struct event_work;
struct mutex bus_lock; /* lock during command/event processing */
struct dentry *dbg_dir;
+ struct notifier_block netdev_nb;
/* bus private data */
char bus_priv[0] __aligned(sizeof(void *));
};