Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/dlm
[pandora-kernel.git] / drivers / net / bonding / bonding.h
index 90736cb..ea1d005 100644 (file)
@@ -24,8 +24,8 @@
 #include "bond_3ad.h"
 #include "bond_alb.h"
 
-#define DRV_VERSION    "3.7.0"
-#define DRV_RELDATE    "June 2, 2010"
+#define DRV_VERSION    "3.7.1"
+#define DRV_RELDATE    "April 27, 2011"
 #define DRV_NAME       "bonding"
 #define DRV_DESCRIPTION        "Ethernet Channel Bonding Driver"
 
               netif_running(dev)                       && \
               netif_carrier_ok(dev))
 
-/*
- * Checks whether bond is ready for transmit.
- *
- * Caller must hold bond->lock
- */
-#define BOND_IS_OK(bond)                            \
-                  (((bond)->dev->flags & IFF_UP) && \
-                   netif_running((bond)->dev)    && \
-                   ((bond)->slave_cnt > 0))
-
 /*
  * Checks whether slave is ready for transmit.
  */
@@ -149,8 +139,7 @@ struct bond_params {
        int mode;
        int xmit_policy;
        int miimon;
-       int num_grat_arp;
-       int num_unsol_na;
+       u8 num_peer_notif;
        int arp_interval;
        int arp_validate;
        int use_carrier;
@@ -178,9 +167,6 @@ struct vlan_entry {
        struct list_head vlan_list;
        __be32 vlan_ip;
        unsigned short vlan_id;
-#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)
-       struct in6_addr vlan_ipv6;
-#endif
 };
 
 struct slave {
@@ -196,12 +182,12 @@ struct slave {
        u8     backup:1,   /* indicates backup slave. Value corresponds with
                              BOND_STATE_ACTIVE and BOND_STATE_BACKUP */
               inactive:1; /* indicates inactive slave */
+       u8     duplex;
        u32    original_mtu;
        u32    link_failure_count;
-       u8     perm_hwaddr[ETH_ALEN];
-       u16    speed;
-       u8     duplex;
+       u32    speed;
        u16    queue_id;
+       u8     perm_hwaddr[ETH_ALEN];
        struct ad_slave_info ad_info; /* HUGE - better to dynamically alloc */
        struct tlb_slave_info tlb_info;
 #ifdef CONFIG_NET_POLL_CONTROLLER
@@ -231,11 +217,12 @@ struct bonding {
        struct   slave *primary_slave;
        bool     force_primary;
        s32      slave_cnt; /* never change this value outside the attach/detach wrappers */
+       void     (*recv_probe)(struct sk_buff *, struct bonding *,
+                              struct slave *);
        rwlock_t lock;
        rwlock_t curr_slave_lock;
        s8       kill_timers;
-       s8       send_grat_arp;
-       s8       send_unsol_na;
+       u8       send_peer_notif;
        s8       setup_by_slave;
        s8       igmp_retrans;
 #ifdef CONFIG_PROC_FS
@@ -260,9 +247,6 @@ struct bonding {
        struct   delayed_work alb_work;
        struct   delayed_work ad_work;
        struct   delayed_work mcast_work;
-#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)
-       struct   in6_addr master_ipv6;
-#endif
 #ifdef CONFIG_DEBUG_FS
        /* debugging suport via debugfs */
        struct   dentry *debug_dir;
@@ -409,13 +393,12 @@ void bond_set_mode_ops(struct bonding *bond, int mode);
 int bond_parse_parm(const char *mode_arg, const struct bond_parm_tbl *tbl);
 void bond_select_active_slave(struct bonding *bond);
 void bond_change_active_slave(struct bonding *bond, struct slave *new_active);
-void bond_register_arp(struct bonding *);
-void bond_unregister_arp(struct bonding *);
 void bond_create_debugfs(void);
 void bond_destroy_debugfs(void);
 void bond_debug_register(struct bonding *bond);
 void bond_debug_unregister(struct bonding *bond);
 void bond_debug_reregister(struct bonding *bond);
+const char *bond_mode_name(int mode);
 
 struct bond_net {
        struct net *            net;    /* Associated network namespace */
@@ -459,23 +442,4 @@ extern const struct bond_parm_tbl fail_over_mac_tbl[];
 extern const struct bond_parm_tbl pri_reselect_tbl[];
 extern struct bond_parm_tbl ad_select_tbl[];
 
-#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)
-void bond_send_unsolicited_na(struct bonding *bond);
-void bond_register_ipv6_notifier(void);
-void bond_unregister_ipv6_notifier(void);
-#else
-static inline void bond_send_unsolicited_na(struct bonding *bond)
-{
-       return;
-}
-static inline void bond_register_ipv6_notifier(void)
-{
-       return;
-}
-static inline void bond_unregister_ipv6_notifier(void)
-{
-       return;
-}
-#endif
-
 #endif /* _LINUX_BONDING_H */