linux/drivers/net
Nikolay Aleksandrov 32819dc183 bonding: modify the old and add new xmit hash policies
This patch adds two new hash policy modes which use skb_flow_dissect:
3 - Encapsulated layer 2+3
4 - Encapsulated layer 3+4
There should be a good improvement for tunnel users in those modes.
It also changes the old hash functions to:
hash ^= (__force u32)flow.dst ^ (__force u32)flow.src;
hash ^= (hash >> 16);
hash ^= (hash >> 8);

Where hash will be initialized either to L2 hash, that is
SRCMAC[5] XOR DSTMAC[5], or to flow->ports which should be extracted
from the upper layer. Flow's dst and src are also extracted based on the
xmit policy either directly from the buffer or by using skb_flow_dissect,
but in both cases if the protocol is IPv6 then dst and src are obtained by
ipv6_addr_hash() on the real addresses. In case of a non-dissectable
packet, the algorithms fall back to L2 hashing.
The bond_set_mode_ops() function is now obsolete and thus deleted
because it was used only to set the proper hash policy. Also we trim a
pointer from struct bonding because we no longer need to keep the hash
function, now there's only a single hash function - bond_xmit_hash that
works based on bond->params.xmit_policy.

The hash function and skb_flow_dissect were suggested by Eric Dumazet.
The layer names were suggested by Andy Gospodarek, because I suck at
semantics.

Signed-off-by: Nikolay Aleksandrov <nikolay@redhat.com>
Acked-by: Eric Dumazet <edumazet@google.com>
Acked-by: Veaceslav Falico <vfalico@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2013-10-03 15:36:38 -04:00
..
appletalk
arcnet
bonding bonding: modify the old and add new xmit hash policies 2013-10-03 15:36:38 -04:00
caif caif: add a sanity check to the tty name 2013-09-04 00:27:27 -04:00
can Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2013-10-01 17:06:14 -04:00
cris
dsa
ethernet net:drivers/net: Miscellaneous conversions to ETH_ALEN 2013-10-02 17:04:45 -04:00
fddi net:drivers/net: Miscellaneous conversions to ETH_ALEN 2013-10-02 17:04:45 -04:00
hamradio hamradio: baycom: remove deprecated IRQF_DISABLED 2013-09-30 15:08:13 -04:00
hippi
hyperv Drivers: hv: remove HV_DRV_VERSION 2013-08-02 11:34:30 +08:00
ieee802154
irda irda: Remove extern from function prototypes 2013-09-24 12:54:17 -07:00
phy drivers: net: phy: marvell.c: removed checkpatch.pl warnings 2013-09-30 22:15:28 -07:00
plip net:drivers/net: Miscellaneous conversions to ETH_ALEN 2013-10-02 17:04:45 -04:00
ppp ip: generate unique IP identificator if local fragmentation is allowed 2013-09-19 14:11:15 -04:00
slip slip/slcan: added locking in wakeup function 2013-09-20 15:38:26 -04:00
team net: team: inherit addr_assign_type along with dev_addr 2013-09-03 20:57:49 -04:00
usb net:drivers/net: Miscellaneous conversions to ETH_ALEN 2013-10-02 17:04:45 -04:00
vmxnet3 vmxnet3: Remove extern from function prototypes 2013-09-24 16:37:10 -07:00
wan wan: Remove extern from function prototypes 2013-09-24 16:40:19 -07:00
wimax wimax: Remove extern from function prototypes 2013-09-24 16:46:22 -07:00
wireless ath10k: wmi: Convert use of 6 to ETH_ALEN 2013-10-02 23:41:53 -04:00
xen-netback Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2013-10-01 17:06:14 -04:00
dummy.c
eql.c
ifb.c
Kconfig
LICENSE.SRC
loopback.c net loopback: Set loopback_dev to NULL when freed 2013-09-17 19:05:13 -04:00
macvlan.c macvlan: Move skb_clone check closer to call 2013-09-11 16:03:12 -04:00
macvtap.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2013-08-26 16:37:08 -04:00
Makefile
mdio.c
mii.c
netconsole.c netconsole: fix a deadlock with rtnl and netconsole's mutex 2013-09-19 14:15:53 -04:00
nlmon.c
ntb_netdev.c
rionet.c
sb1000.c
Space.c
sungem_phy.c
tun.c tuntap: correctly handle error in tun_set_iff() 2013-09-12 17:21:42 -04:00
veth.c
virtio_net.c virtio-net: Set RXCSUM feature if GUEST_CSUM is available 2013-09-03 21:36:41 -04:00
vxlan.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2013-10-01 17:06:14 -04:00
xen-netfront.c xen-netfront: convert to GRO API 2013-10-02 15:54:11 -04:00