Linux Kernel
3.7.1
|
#include <linux/skbuff.h>
#include <linux/netdevice.h>
#include <linux/etherdevice.h>
#include <linux/pkt_sched.h>
#include <linux/spinlock.h>
#include <linux/slab.h>
#include <linux/timer.h>
#include <linux/ip.h>
#include <linux/ipv6.h>
#include <linux/if_arp.h>
#include <linux/if_ether.h>
#include <linux/if_bonding.h>
#include <linux/if_vlan.h>
#include <linux/in.h>
#include <net/ipx.h>
#include <net/arp.h>
#include <net/ipv6.h>
#include <asm/byteorder.h>
#include "bonding.h"
#include "bond_alb.h"
Go to the source code of this file.
Data Structures | |
struct | learning_pkt |
struct | arp_pkt |
Macros | |
#define | pr_fmt(fmt) KBUILD_MODNAME ": " fmt |
#define | __long_aligned __attribute__((aligned((sizeof(long))))) |
Functions | |
int | bond_alb_initialize (struct bonding *bond, int rlb_enabled) |
void | bond_alb_deinitialize (struct bonding *bond) |
int | bond_alb_xmit (struct sk_buff *skb, struct net_device *bond_dev) |
void | bond_alb_monitor (struct work_struct *work) |
int | bond_alb_init_slave (struct bonding *bond, struct slave *slave) |
void | bond_alb_deinit_slave (struct bonding *bond, struct slave *slave) |
void | bond_alb_handle_link_change (struct bonding *bond, struct slave *slave, char link) |
void | bond_alb_handle_active_change (struct bonding *bond, struct slave *new_slave) __releases(&bond-> curr_slave_lock) __releases(&bond->lock) __acquires(&bond->lock) __acquires(&bond->curr_slave_lock) |
int | bond_alb_set_mac_address (struct net_device *bond_dev, void *addr) __acquires(&bond-> lock) __releases(&bond->lock) |
void | bond_alb_clear_vlan (struct bonding *bond, unsigned short vlan_id) |
#define __long_aligned __attribute__((aligned((sizeof(long))))) |
Definition at line 49 of file bond_alb.c.
Definition at line 23 of file bond_alb.c.
Definition at line 1701 of file bond_alb.c.
Definition at line 1512 of file bond_alb.c.
Definition at line 1216 of file bond_alb.c.
void bond_alb_handle_active_change | ( | struct bonding * | bond, |
struct slave * | new_slave | ||
) | -> curr_slave_lock) __releases(&bond->lock) __acquires(&bond->lock) __acquires(&bond->curr_slave_lock) |
bond_alb_handle_active_change - assign new curr_active_slave : our bonding struct : new slave to assign
Set the bond->curr_active_slave to and handle mac address swapping and promiscuity changes as needed.
If new_slave is NULL, caller must hold curr_slave_lock or bond->lock for write.
If new_slave is not NULL, caller must hold RTNL, bond->lock for read and curr_slave_lock for write. Processing here may sleep, so no other locks may be held.
Definition at line 1565 of file bond_alb.c.
Definition at line 1527 of file bond_alb.c.
Definition at line 1472 of file bond_alb.c.
Definition at line 1192 of file bond_alb.c.
void bond_alb_monitor | ( | struct work_struct * | work | ) |
Definition at line 1358 of file bond_alb.c.
int bond_alb_set_mac_address | ( | struct net_device * | bond_dev, |
void * | addr | ||
) | -> lock) __releases(&bond->lock) |
Definition at line 1644 of file bond_alb.c.
int bond_alb_xmit | ( | struct sk_buff * | skb, |
struct net_device * | bond_dev | ||
) |
Definition at line 1227 of file bond_alb.c.