]> git.baikalelectronics.ru Git - kernel.git/commit
Merge branch 'bond_hash'
authorDavid S. Miller <davem@davemloft.net>
Thu, 3 Oct 2013 19:37:10 +0000 (15:37 -0400)
committerDavid S. Miller <davem@davemloft.net>
Thu, 3 Oct 2013 19:37:10 +0000 (15:37 -0400)
commita42d48b967535db1667e1e29f6fb157c3875e084
tree726011355fb63db194ee061d8e2e7ab215b167df
parenta9a0aa2868c2909617c63ba78b80d3cb00deb821
parent17647e1e83f7dcd028ccaf3851b2cfc64c638334
Merge branch 'bond_hash'

Nikolay Aleksandrov says:

====================
This is a complete remake of my old patch that modified the bonding hash
functions to use skb_flow_dissect which was suggested by Eric Dumazet.
This time around I've left the old modes although using a new hash function
again suggested by Eric, which is the same for all modes. The only
difference is the way the headers are obtained. The old modes obtain them
as before in order to address concerns about speed, but the 2 new ones use
skb_flow_dissect. The unification of the hash function allows to remove a
pointer from struct bonding and also a few extra functions that dealt with
it. Two new functions are added which take care of the hashing based on
bond->params.xmit_policy only:
bond_xmit_hash() - global function, used by XOR and 3ad modes
bond_flow_dissect() - used by bond_xmit_hash() to obtain the necessary
headers and combine them according to bond->params.xmit_policy.
Also factor out the ports extraction from skb_flow_dissect and add a new
function - skb_flow_get_ports() which can be re-used.

v2: add the flow_dissector patch and use skb_flow_get_ports in patch 02
v3: fix a bug in the flow_dissector patch that caused a different thoff
    by modifying the thoff argument in skb_flow_get_ports directly, most
    of the users already do it anyway.
    Also add the necessary export symbol for skb_flow_get_ports.
v4: integrate the thoff bug fix in patch 01
v5: disintegrate the thoff bug fix and re-base on top of Eric's fix
====================

Signed-off-by: David S. Miller <davem@davemloft.net>