aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorPatrick McHardy <kaber@trash.net>2007-06-27 01:26:19 -0700
committerDavid S. Miller <davem@sunset.davemloft.net>2007-07-10 22:15:54 -0700
commitbf742482d7a647c5c6f03f78eb35a862e159ecf5 (patch)
tree80a822df5fa5eb6b766489b1983c4dc83d4f7668 /include
parent75ebe8f73610636be8bbd8d73db883512850e6be (diff)
downloadkernel_samsung_smdk4412-bf742482d7a647c5c6f03f78eb35a862e159ecf5.zip
kernel_samsung_smdk4412-bf742482d7a647c5c6f03f78eb35a862e159ecf5.tar.gz
kernel_samsung_smdk4412-bf742482d7a647c5c6f03f78eb35a862e159ecf5.tar.bz2
[NET]: dev: introduce generic net_device address lists
Introduce struct dev_addr_list and list maintenance functions based on dev_mc_list and the related functions. This will be used by follow-up patches for both multicast and secondary unicast addresses. Signed-off-by: Patrick McHardy <kaber@trash.net> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include')
-rw-r--r--include/linux/netdevice.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h
index 7a8f22f..aa389c7 100644
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
@@ -177,6 +177,14 @@ struct netif_rx_stats
DECLARE_PER_CPU(struct netif_rx_stats, netdev_rx_stat);
+struct dev_addr_list
+{
+ struct dev_addr_list *next;
+ u8 da_addr[MAX_ADDR_LEN];
+ u8 da_addrlen;
+ int da_users;
+ int da_gusers;
+};
/*
* We tag multicasts with these structures.
@@ -1008,6 +1016,9 @@ extern void dev_mc_upload(struct net_device *dev);
extern int dev_mc_delete(struct net_device *dev, void *addr, int alen, int all);
extern int dev_mc_add(struct net_device *dev, void *addr, int alen, int newonly);
extern void dev_mc_discard(struct net_device *dev);
+extern int __dev_addr_delete(struct dev_addr_list **list, void *addr, int alen, int all);
+extern int __dev_addr_add(struct dev_addr_list **list, void *addr, int alen, int newonly);
+extern void __dev_addr_discard(struct dev_addr_list **list);
extern void dev_set_promiscuity(struct net_device *dev, int inc);
extern void dev_set_allmulti(struct net_device *dev, int inc);
extern void netdev_state_change(struct net_device *dev);