Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Functions
bond_alb.c File Reference
#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)
 

Macro Definition Documentation

#define __long_aligned   __attribute__((aligned((sizeof(long)))))

Definition at line 49 of file bond_alb.c.

#define pr_fmt (   fmt)    KBUILD_MODNAME ": " fmt

Definition at line 23 of file bond_alb.c.

Function Documentation

void bond_alb_clear_vlan ( struct bonding bond,
unsigned short  vlan_id 
)

Definition at line 1701 of file bond_alb.c.

void bond_alb_deinit_slave ( struct bonding bond,
struct slave slave 
)

Definition at line 1512 of file bond_alb.c.

void bond_alb_deinitialize ( struct bonding bond)

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.

void bond_alb_handle_link_change ( struct bonding bond,
struct slave slave,
char  link 
)

Definition at line 1527 of file bond_alb.c.

int bond_alb_init_slave ( struct bonding bond,
struct slave slave 
)

Definition at line 1472 of file bond_alb.c.

int bond_alb_initialize ( struct bonding bond,
int  rlb_enabled 
)

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.