aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux
diff options
context:
space:
mode:
authorPatrick McHardy <kaber@trash.net>2007-06-27 04:26:19 -0400
committerDavid S. Miller <davem@sunset.davemloft.net>2007-07-11 01:15:54 -0400
commitbf742482d7a647c5c6f03f78eb35a862e159ecf5 (patch)
tree80a822df5fa5eb6b766489b1983c4dc83d4f7668 /include/linux
parent75ebe8f73610636be8bbd8d73db883512850e6be (diff)
[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/linux')
-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 7a8f22fb4eee..aa389c77aa3e 100644
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
@@ -177,6 +177,14 @@ struct netif_rx_stats
177 177
178DECLARE_PER_CPU(struct netif_rx_stats, netdev_rx_stat); 178DECLARE_PER_CPU(struct netif_rx_stats, netdev_rx_stat);
179 179
180struct dev_addr_list
181{
182 struct dev_addr_list *next;
183 u8 da_addr[MAX_ADDR_LEN];
184 u8 da_addrlen;
185 int da_users;
186 int da_gusers;
187};
180 188
181/* 189/*
182 * We tag multicasts with these structures. 190 * We tag multicasts with these structures.
@@ -1008,6 +1016,9 @@ extern void dev_mc_upload(struct net_device *dev);
1008extern int dev_mc_delete(struct net_device *dev, void *addr, int alen, int all); 1016extern int dev_mc_delete(struct net_device *dev, void *addr, int alen, int all);
1009extern int dev_mc_add(struct net_device *dev, void *addr, int alen, int newonly); 1017extern int dev_mc_add(struct net_device *dev, void *addr, int alen, int newonly);
1010extern void dev_mc_discard(struct net_device *dev); 1018extern void dev_mc_discard(struct net_device *dev);
1019extern int __dev_addr_delete(struct dev_addr_list **list, void *addr, int alen, int all);
1020extern int __dev_addr_add(struct dev_addr_list **list, void *addr, int alen, int newonly);
1021extern void __dev_addr_discard(struct dev_addr_list **list);
1011extern void dev_set_promiscuity(struct net_device *dev, int inc); 1022extern void dev_set_promiscuity(struct net_device *dev, int inc);
1012extern void dev_set_allmulti(struct net_device *dev, int inc); 1023extern void dev_set_allmulti(struct net_device *dev, int inc);
1013extern void netdev_state_change(struct net_device *dev); 1024extern void netdev_state_change(struct net_device *dev);