Add MDB net device operations that will be invoked by rtnetlink code in
response to received RTM_{NEW,DEL,GET}MDB messages. Subsequent patches
will implement these operations in the bridge and VXLAN drivers.

Signed-off-by: Ido Schimmel <[email protected]>
---
 include/linux/netdevice.h | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h
index d5ef4c1fedd2..47e33c6d314e 100644
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
@@ -1305,6 +1305,17 @@ struct netdev_net_notifier {
  *     Used to add FDB entries to dump requests. Implementers should add
  *     entries to skb and update idx with the number of entries.
  *
+ * int (*ndo_mdb_add)(struct net_device *dev, struct nlattr *tb[],
+ *                   u16 nlmsg_flags, struct netlink_ext_ack *extack);
+ *     Adds an MDB entry to dev.
+ * int (*ndo_mdb_del)(struct net_device *dev, struct nlattr *tb[],
+ *                   struct netlink_ext_ack *extack);
+ *     Deletes the MDB entry from dev.
+ * int (*ndo_mdb_dump)(struct net_device *dev, struct sk_buff *skb,
+ *                    struct netlink_callback *cb);
+ *     Dumps MDB entries from dev. The first argument (marker) in the netlink
+ *     callback is used by core rtnetlink code.
+ *
  * int (*ndo_bridge_setlink)(struct net_device *dev, struct nlmsghdr *nlh,
  *                          u16 flags, struct netlink_ext_ack *extack)
  * int (*ndo_bridge_getlink)(struct sk_buff *skb, u32 pid, u32 seq,
@@ -1567,6 +1578,16 @@ struct net_device_ops {
                                               const unsigned char *addr,
                                               u16 vid, u32 portid, u32 seq,
                                               struct netlink_ext_ack *extack);
+       int                     (*ndo_mdb_add)(struct net_device *dev,
+                                              struct nlattr *tb[],
+                                              u16 nlmsg_flags,
+                                              struct netlink_ext_ack *extack);
+       int                     (*ndo_mdb_del)(struct net_device *dev,
+                                              struct nlattr *tb[],
+                                              struct netlink_ext_ack *extack);
+       int                     (*ndo_mdb_dump)(struct net_device *dev,
+                                               struct sk_buff *skb,
+                                               struct netlink_callback *cb);
        int                     (*ndo_bridge_setlink)(struct net_device *dev,
                                                      struct nlmsghdr *nlh,
                                                      u16 flags,
-- 
2.37.3

Reply via email to