net: addr_list: add exclusive dev_uc_add and dev_mc_add
This adds a dev_uc_add_excl() and dev_mc_add_excl() calls similar to the original dev_{uc|mc}_add() except it sets the global bit and returns -EEXIST for duplicat entires. This is useful for drivers that support SR-IOV, macvlan devices and any other devices that need to manage the unicast and multicast lists. v2: fix typo UNICAST should be MULTICAST in dev_mc_add_excl() CC: Ben Hutchings <bhutchings@solarflare.com> Signed-off-by: John Fastabend <john.r.fastabend@intel.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:

committed by
David S. Miller

parent
77162022ab
commit
12a9463445
@@ -2569,6 +2569,7 @@ extern int dev_addr_init(struct net_device *dev);
|
||||
|
||||
/* Functions used for unicast addresses handling */
|
||||
extern int dev_uc_add(struct net_device *dev, unsigned char *addr);
|
||||
extern int dev_uc_add_excl(struct net_device *dev, unsigned char *addr);
|
||||
extern int dev_uc_del(struct net_device *dev, unsigned char *addr);
|
||||
extern int dev_uc_sync(struct net_device *to, struct net_device *from);
|
||||
extern void dev_uc_unsync(struct net_device *to, struct net_device *from);
|
||||
@@ -2578,6 +2579,7 @@ extern void dev_uc_init(struct net_device *dev);
|
||||
/* Functions used for multicast addresses handling */
|
||||
extern int dev_mc_add(struct net_device *dev, unsigned char *addr);
|
||||
extern int dev_mc_add_global(struct net_device *dev, unsigned char *addr);
|
||||
extern int dev_mc_add_excl(struct net_device *dev, unsigned char *addr);
|
||||
extern int dev_mc_del(struct net_device *dev, unsigned char *addr);
|
||||
extern int dev_mc_del_global(struct net_device *dev, unsigned char *addr);
|
||||
extern int dev_mc_sync(struct net_device *to, struct net_device *from);
|
||||
|
Reference in New Issue
Block a user