aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/bonding/bonding.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/bonding/bonding.h')
-rw-r--r--drivers/net/bonding/bonding.h35
1 files changed, 33 insertions, 2 deletions
diff --git a/drivers/net/bonding/bonding.h b/drivers/net/bonding/bonding.h
index ffb668dd6d3b..b5eb8e65b309 100644
--- a/drivers/net/bonding/bonding.h
+++ b/drivers/net/bonding/bonding.h
@@ -19,16 +19,19 @@
19#include <linux/proc_fs.h> 19#include <linux/proc_fs.h>
20#include <linux/if_bonding.h> 20#include <linux/if_bonding.h>
21#include <linux/kobject.h> 21#include <linux/kobject.h>
22#include <linux/in6.h>
22#include "bond_3ad.h" 23#include "bond_3ad.h"
23#include "bond_alb.h" 24#include "bond_alb.h"
24 25
25#define DRV_VERSION "3.3.0" 26#define DRV_VERSION "3.5.0"
26#define DRV_RELDATE "June 10, 2008" 27#define DRV_RELDATE "November 4, 2008"
27#define DRV_NAME "bonding" 28#define DRV_NAME "bonding"
28#define DRV_DESCRIPTION "Ethernet Channel Bonding Driver" 29#define DRV_DESCRIPTION "Ethernet Channel Bonding Driver"
29 30
30#define BOND_MAX_ARP_TARGETS 16 31#define BOND_MAX_ARP_TARGETS 16
31 32
33extern struct list_head bond_dev_list;
34
32#ifdef BONDING_DEBUG 35#ifdef BONDING_DEBUG
33#define dprintk(fmt, args...) \ 36#define dprintk(fmt, args...) \
34 printk(KERN_DEBUG \ 37 printk(KERN_DEBUG \
@@ -126,6 +129,7 @@ struct bond_params {
126 int xmit_policy; 129 int xmit_policy;
127 int miimon; 130 int miimon;
128 int num_grat_arp; 131 int num_grat_arp;
132 int num_unsol_na;
129 int arp_interval; 133 int arp_interval;
130 int arp_validate; 134 int arp_validate;
131 int use_carrier; 135 int use_carrier;
@@ -133,6 +137,7 @@ struct bond_params {
133 int updelay; 137 int updelay;
134 int downdelay; 138 int downdelay;
135 int lacp_fast; 139 int lacp_fast;
140 int ad_select;
136 char primary[IFNAMSIZ]; 141 char primary[IFNAMSIZ];
137 __be32 arp_targets[BOND_MAX_ARP_TARGETS]; 142 __be32 arp_targets[BOND_MAX_ARP_TARGETS];
138}; 143};
@@ -148,6 +153,9 @@ struct vlan_entry {
148 struct list_head vlan_list; 153 struct list_head vlan_list;
149 __be32 vlan_ip; 154 __be32 vlan_ip;
150 unsigned short vlan_id; 155 unsigned short vlan_id;
156#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)
157 struct in6_addr vlan_ipv6;
158#endif
151}; 159};
152 160
153struct slave { 161struct slave {
@@ -195,6 +203,7 @@ struct bonding {
195 rwlock_t curr_slave_lock; 203 rwlock_t curr_slave_lock;
196 s8 kill_timers; 204 s8 kill_timers;
197 s8 send_grat_arp; 205 s8 send_grat_arp;
206 s8 send_unsol_na;
198 s8 setup_by_slave; 207 s8 setup_by_slave;
199 struct net_device_stats stats; 208 struct net_device_stats stats;
200#ifdef CONFIG_PROC_FS 209#ifdef CONFIG_PROC_FS
@@ -218,6 +227,9 @@ struct bonding {
218 struct delayed_work arp_work; 227 struct delayed_work arp_work;
219 struct delayed_work alb_work; 228 struct delayed_work alb_work;
220 struct delayed_work ad_work; 229 struct delayed_work ad_work;
230#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)
231 struct in6_addr master_ipv6;
232#endif
221}; 233};
222 234
223/** 235/**
@@ -341,5 +353,24 @@ extern struct bond_parm_tbl xmit_hashtype_tbl[];
341extern struct bond_parm_tbl arp_validate_tbl[]; 353extern struct bond_parm_tbl arp_validate_tbl[];
342extern struct bond_parm_tbl fail_over_mac_tbl[]; 354extern struct bond_parm_tbl fail_over_mac_tbl[];
343 355
356#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)
357void bond_send_unsolicited_na(struct bonding *bond);
358void bond_register_ipv6_notifier(void);
359void bond_unregister_ipv6_notifier(void);
360#else
361static inline void bond_send_unsolicited_na(struct bonding *bond)
362{
363 return;
364}
365static inline void bond_register_ipv6_notifier(void)
366{
367 return;
368}
369static inline void bond_unregister_ipv6_notifier(void)
370{
371 return;
372}
373#endif
374
344#endif /* _LINUX_BONDING_H */ 375#endif /* _LINUX_BONDING_H */
345 376