Linux Kernel
3.7.1
|
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/types.h>
#include <linux/fcntl.h>
#include <linux/interrupt.h>
#include <linux/ptrace.h>
#include <linux/ioport.h>
#include <linux/in.h>
#include <net/ip.h>
#include <linux/ip.h>
#include <linux/tcp.h>
#include <linux/udp.h>
#include <linux/slab.h>
#include <linux/string.h>
#include <linux/init.h>
#include <linux/timer.h>
#include <linux/socket.h>
#include <linux/ctype.h>
#include <linux/inet.h>
#include <linux/bitops.h>
#include <linux/io.h>
#include <asm/dma.h>
#include <linux/uaccess.h>
#include <linux/errno.h>
#include <linux/netdevice.h>
#include <linux/inetdevice.h>
#include <linux/igmp.h>
#include <linux/etherdevice.h>
#include <linux/skbuff.h>
#include <net/sock.h>
#include <linux/rtnetlink.h>
#include <linux/smp.h>
#include <linux/if_ether.h>
#include <net/arp.h>
#include <linux/mii.h>
#include <linux/ethtool.h>
#include <linux/if_vlan.h>
#include <linux/if_bonding.h>
#include <linux/jiffies.h>
#include <linux/preempt.h>
#include <net/route.h>
#include <net/net_namespace.h>
#include <net/netns/generic.h>
#include <net/pkt_sched.h>
#include "bonding.h"
#include "bond_3ad.h"
#include "bond_alb.h"
Go to the source code of this file.
Macros | |
#define | pr_fmt(fmt) KBUILD_MODNAME ": " fmt |
#define | BOND_LINK_MON_INTERV 0 |
#define | BOND_LINK_ARP_INTERV 0 |
#define | BOND_VLAN_FEATURES |
Functions | |
module_param (max_bonds, int, 0) | |
MODULE_PARM_DESC (max_bonds,"Max number of bonded devices") | |
module_param (tx_queues, int, 0) | |
MODULE_PARM_DESC (tx_queues,"Max number of transmit queues (default = 16)") | |
module_param_named (num_grat_arp, num_peer_notif, int, 0644) | |
MODULE_PARM_DESC (num_grat_arp,"Number of peer notifications to send on ""failover event (alias of num_unsol_na)") | |
module_param_named (num_unsol_na, num_peer_notif, int, 0644) | |
MODULE_PARM_DESC (num_unsol_na,"Number of peer notifications to send on ""failover event (alias of num_grat_arp)") | |
module_param (miimon, int, 0) | |
MODULE_PARM_DESC (miimon,"Link check interval in milliseconds") | |
module_param (updelay, int, 0) | |
MODULE_PARM_DESC (updelay,"Delay before considering link up, in milliseconds") | |
module_param (downdelay, int, 0) | |
MODULE_PARM_DESC (downdelay,"Delay before considering link down, ""in milliseconds") | |
module_param (use_carrier, int, 0) | |
MODULE_PARM_DESC (use_carrier,"Use netif_carrier_ok (vs MII ioctls) in miimon; ""0 for off, 1 for on (default)") | |
module_param (mode, charp, 0) | |
MODULE_PARM_DESC (mode,"Mode of operation; 0 for balance-rr, ""1 for active-backup, 2 for balance-xor, ""3 for broadcast, 4 for 802.3ad, 5 for balance-tlb, ""6 for balance-alb") | |
module_param (primary, charp, 0) | |
MODULE_PARM_DESC (primary,"Primary network device to use") | |
module_param (primary_reselect, charp, 0) | |
MODULE_PARM_DESC (primary_reselect,"Reselect primary slave ""once it comes up; ""0 for always (default), ""1 for only if speed of primary is ""better, ""2 for only on active slave ""failure") | |
module_param (lacp_rate, charp, 0) | |
MODULE_PARM_DESC (lacp_rate,"LACPDU tx rate to request from 802.3ad partner; ""0 for slow, 1 for fast") | |
module_param (ad_select, charp, 0) | |
MODULE_PARM_DESC (ad_select,"803.ad aggregation selection logic; ""0 for stable (default), 1 for bandwidth, ""2 for count") | |
module_param (min_links, int, 0) | |
MODULE_PARM_DESC (min_links,"Minimum number of available links before turning on carrier") | |
module_param (xmit_hash_policy, charp, 0) | |
MODULE_PARM_DESC (xmit_hash_policy,"balance-xor and 802.3ad hashing method; ""0 for layer 2 (default), 1 for layer 3+4, ""2 for layer 2+3") | |
module_param (arp_interval, int, 0) | |
MODULE_PARM_DESC (arp_interval,"arp interval in milliseconds") | |
module_param_array (arp_ip_target, charp, NULL, 0) | |
MODULE_PARM_DESC (arp_ip_target,"arp targets in n.n.n.n form") | |
module_param (arp_validate, charp, 0) | |
MODULE_PARM_DESC (arp_validate,"validate src/dst of ARP probes; ""0 for none (default), 1 for active, ""2 for backup, 3 for all") | |
module_param (fail_over_mac, charp, 0) | |
MODULE_PARM_DESC (fail_over_mac,"For active-backup, do not set all slaves to ""the same MAC; 0 for none (default), ""1 for active, 2 for follow") | |
module_param (all_slaves_active, int, 0) | |
MODULE_PARM_DESC (all_slaves_active,"Keep all frames received on an interface""by setting active flag for all slaves; ""0 for never (default), 1 for always.") | |
module_param (resend_igmp, int, 0) | |
MODULE_PARM_DESC (resend_igmp,"Number of IGMP membership reports to send on ""link failure") | |
const char * | bond_mode_name (int mode) |
struct vlan_entry * | bond_next_vlan (struct bonding *bond, struct vlan_entry *curr) |
int | bond_dev_queue_xmit (struct bonding *bond, struct sk_buff *skb, struct net_device *slave_dev) |
void | bond_change_active_slave (struct bonding *bond, struct slave *new_active) |
void | bond_select_active_slave (struct bonding *bond) |
int | bond_enslave (struct net_device *bond_dev, struct net_device *slave_dev) |
int | bond_release (struct net_device *bond_dev, struct net_device *slave_dev) |
void | bond_mii_monitor (struct work_struct *work) |
void | bond_loadbalance_arp_mon (struct work_struct *work) |
void | bond_activebackup_arp_mon (struct work_struct *work) |
void | bond_set_mode_ops (struct bonding *bond, int mode) |
int | bond_parse_parm (const char *buf, const struct bond_parm_tbl *tbl) |
int | bond_create (struct net *net, const char *name) |
module_init (bonding_init) | |
module_exit (bonding_exit) | |
MODULE_LICENSE ("GPL") | |
MODULE_VERSION (DRV_VERSION) | |
MODULE_DESCRIPTION (DRV_DESCRIPTION", v"DRV_VERSION) | |
MODULE_AUTHOR ("Thomas Davis, [email protected] and many others") | |
MODULE_ALIAS_RTNL_LINK ("bond") | |
#define BOND_LINK_ARP_INTERV 0 |
Definition at line 88 of file bond_main.c.
#define BOND_LINK_MON_INTERV 0 |
Definition at line 87 of file bond_main.c.
#define BOND_VLAN_FEATURES |
Definition at line 1372 of file bond_main.c.
Definition at line 34 of file bond_main.c.
void bond_activebackup_arp_mon | ( | struct work_struct * | work | ) |
Definition at line 3171 of file bond_main.c.
change_active_interface - change the active slave into the specified one : our bonding struct : the new slave to make the active one
Set the new slave to the bond's settings and unset them on the old curr_active_slave. Setting include flags, mc-list, promiscuity, allmulti, etc.
If 's link state is BOND_LINK_BACK we'll set it to BOND_LINK_UP, because it is apparently the best available slave we have, even though its updelay hasn't timed out yet.
If new_active is not NULL, caller must hold bond->lock for read and curr_slave_lock for write_bh.
Definition at line 1054 of file bond_main.c.
Definition at line 4886 of file bond_main.c.
int bond_dev_queue_xmit | ( | struct bonding * | bond, |
struct sk_buff * | skb, | ||
struct net_device * | slave_dev | ||
) |
bond_dev_queue_xmit - Prepare skb for xmit.
: bond device that got this skb for tx. : hw accel VLAN tagged skb to transmit : slave that is supposed to xmit this skbuff
Definition at line 392 of file bond_main.c.
int bond_enslave | ( | struct net_device * | bond_dev, |
struct net_device * | slave_dev | ||
) |
Definition at line 1503 of file bond_main.c.
void bond_loadbalance_arp_mon | ( | struct work_struct * | work | ) |
Definition at line 2815 of file bond_main.c.
void bond_mii_monitor | ( | struct work_struct * | work | ) |
Definition at line 2545 of file bond_main.c.
Definition at line 255 of file bond_main.c.
|
read |
bond_next_vlan - safely skip to the next item in the vlans list. : the bond we're working on : item we're advancing from
Returns NULL if list is empty, bond->next_vlan if is NULL, or ->next otherwise (even if it is itself again).
Caller must hold bond->lock
Definition at line 360 of file bond_main.c.
Definition at line 4459 of file bond_main.c.
int bond_release | ( | struct net_device * | bond_dev, |
struct net_device * | slave_dev | ||
) |
Definition at line 1935 of file bond_main.c.
bond_select_active_slave - select a new active slave, if needed : our bonding struct
This functions should be called when one of the following occurs:
Caller must hold bond->lock for read and curr_slave_lock for write_bh.
Definition at line 1156 of file bond_main.c.
Definition at line 4292 of file bond_main.c.
MODULE_ALIAS_RTNL_LINK | ( | "bond" | ) |
MODULE_AUTHOR | ( | "Thomas | Davis, |
tadavis @lbl.gov and many others" | |||
) |
MODULE_DESCRIPTION | ( | DRV_DESCRIPTION" | , |
v" | DRV_VERSION | ||
) |
module_exit | ( | bonding_exit | ) |
module_init | ( | bonding_init | ) |
MODULE_LICENSE | ( | "GPL" | ) |
module_param | ( | max_bonds | , |
int | , | ||
0 | |||
) |
module_param | ( | tx_queues | , |
int | , | ||
0 | |||
) |
module_param | ( | miimon | , |
int | , | ||
0 | |||
) |
module_param | ( | updelay | , |
int | , | ||
0 | |||
) |
module_param | ( | downdelay | , |
int | , | ||
0 | |||
) |
module_param | ( | use_carrier | , |
int | , | ||
0 | |||
) |
module_param | ( | mode | , |
charp | , | ||
0 | |||
) |
module_param | ( | primary | , |
charp | , | ||
0 | |||
) |
module_param | ( | primary_reselect | , |
charp | , | ||
0 | |||
) |
module_param | ( | lacp_rate | , |
charp | , | ||
0 | |||
) |
module_param | ( | ad_select | , |
charp | , | ||
0 | |||
) |
module_param | ( | min_links | , |
int | , | ||
0 | |||
) |
module_param | ( | xmit_hash_policy | , |
charp | , | ||
0 | |||
) |
module_param | ( | arp_interval | , |
int | , | ||
0 | |||
) |
module_param | ( | arp_validate | , |
charp | , | ||
0 | |||
) |
module_param | ( | fail_over_mac | , |
charp | , | ||
0 | |||
) |
module_param | ( | all_slaves_active | , |
int | , | ||
0 | |||
) |
module_param | ( | resend_igmp | , |
int | , | ||
0 | |||
) |
module_param_array | ( | arp_ip_target | , |
charp | , | ||
NULL | , | ||
0 | |||
) |
module_param_named | ( | num_grat_arp | , |
num_peer_notif | , | ||
int | , | ||
0644 | |||
) |
module_param_named | ( | num_unsol_na | , |
num_peer_notif | , | ||
int | , | ||
0644 | |||
) |
MODULE_PARM_DESC | ( | tx_queues | , |
"Max number of transmit queues (default = 16)" | |||
) |
MODULE_PARM_DESC | ( | num_grat_arp | , |
"Number of peer notifications to send on ""failover event (alias of num_unsol_na)" | |||
) |
MODULE_PARM_DESC | ( | num_unsol_na | , |
"Number of peer notifications to send on ""failover event (alias of num_grat_arp)" | |||
) |
MODULE_PARM_DESC | ( | use_carrier | , |
"Use netif_carrier_ok (vs MII ioctls) in miimon; ""0 for | off, | ||
1 for on(default)" | |||
) |
MODULE_PARM_DESC | ( | mode | , |
"Mode of operation; 0 for balance- | rr, | ||
""1 for active- | backup, | ||
2 for balance- | xor, | ||
""3 for | broadcast, | ||
4 for 802. | 3ad, | ||
5 for balance- | tlb, | ||
""6 for balance-alb" | |||
) |
MODULE_PARM_DESC | ( | primary_reselect | , |
"Reselect primary slave ""once it comes up; ""0 for always | default, | ||
""1 for only if speed of primary is"" | better, | ||
""2 for only on active slave""failure" | |||
) |
MODULE_PARM_DESC | ( | lacp_rate | , |
"LACPDU tx rate to request from 802.3ad partner; ""0 for | slow, | ||
1 for fast" | |||
) |
MODULE_PARM_DESC | ( | ad_select | , |
"803.ad aggregation selection logic; ""0 for stable | default, | ||
1 for | bandwidth, | ||
""2 for count" | |||
) |
MODULE_PARM_DESC | ( | xmit_hash_policy | , |
"balance-xor and 802.3ad hashing method; ""0 for layer 2 | default, | ||
1 for layer 3+ | 4, | ||
""2 for layer 2+3" | |||
) |
MODULE_PARM_DESC | ( | arp_validate | , |
"validate src/dst of ARP probes; ""0 for none | default, | ||
1 for | active, | ||
""2 for | backup, | ||
3 for all" | |||
) |
MODULE_PARM_DESC | ( | fail_over_mac | , |
"For active- | backup, | ||
do not set all slaves to""the same MAC;0 for | nonedefault, | ||
""1 for | active, | ||
2 for follow" | |||
) |
MODULE_PARM_DESC | ( | all_slaves_active | , |
"Keep all frames received on an interface""by setting active flag for all slaves; ""0 for never | default, | ||
1 for always." | |||
) |
MODULE_VERSION | ( | DRV_VERSION | ) |
struct rtnl_link_ops bond_link_ops __read_mostly |
Definition at line 187 of file bond_main.c.
struct bond_parm_tbl ad_select_tbl[] |
Definition at line 241 of file bond_main.c.
struct bond_parm_tbl arp_validate_tbl[] |
Definition at line 219 of file bond_main.c.
struct bond_parm_tbl bond_lacp_tbl[] |
Definition at line 195 of file bond_main.c.
struct bond_parm_tbl bond_mode_tbl[] |
Definition at line 201 of file bond_main.c.
struct bond_parm_tbl fail_over_mac_tbl[] |
Definition at line 227 of file bond_main.c.
struct bond_parm_tbl pri_reselect_tbl[] |
Definition at line 234 of file bond_main.c.
struct bond_parm_tbl xmit_hashtype_tbl[] |
Definition at line 212 of file bond_main.c.