net: dsa: add switch notifier
Add a notifier block per DSA switch, registered against a notifier head in the switch fabric they belong to. This infrastructure will allow to propagate fabric-wide events such as port bridging, VLAN configuration, etc. If a DSA switch driver cares about cross-chip configuration, such events can be caught. Signed-off-by: Vivien Didelot <vivien.didelot@savoirfairelinux.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
c5d35cb32c
commit
f515f192ab
@@ -13,6 +13,7 @@
|
||||
|
||||
#include <linux/if_ether.h>
|
||||
#include <linux/list.h>
|
||||
#include <linux/notifier.h>
|
||||
#include <linux/timer.h>
|
||||
#include <linux/workqueue.h>
|
||||
#include <linux/of.h>
|
||||
@@ -92,6 +93,9 @@ struct packet_type;
|
||||
struct dsa_switch_tree {
|
||||
struct list_head list;
|
||||
|
||||
/* Notifier chain for switch-wide events */
|
||||
struct raw_notifier_head nh;
|
||||
|
||||
/* Tree identifier */
|
||||
u32 tree;
|
||||
|
||||
@@ -182,6 +186,9 @@ struct dsa_switch {
|
||||
struct dsa_switch_tree *dst;
|
||||
int index;
|
||||
|
||||
/* Listener for switch fabric events */
|
||||
struct notifier_block nb;
|
||||
|
||||
/*
|
||||
* Give the switch driver somewhere to hang its private data
|
||||
* structure.
|
||||
|
||||
Reference in New Issue
Block a user