OSDN Git Service

net: Add MDB net device operations
authorIdo Schimmel <idosch@nvidia.com>
Wed, 15 Mar 2023 13:11:45 +0000 (15:11 +0200)
committerDavid S. Miller <davem@davemloft.net>
Fri, 17 Mar 2023 08:05:48 +0000 (08:05 +0000)
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 <idosch@nvidia.com>
Reviewed-by: Nikolay Aleksandrov <razor@blackwall.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/linux/netdevice.h

index ee48307..23b0d7e 100644 (file)
@@ -1307,6 +1307,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,
@@ -1569,6 +1580,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,