Files
android_kernel_xiaomi_sm8450/include/uapi/linux
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
..
2013-04-26 16:08:16 +10:00
2013-09-05 20:46:06 -04:00
2013-08-02 12:33:54 -07:00
2012-10-16 18:49:15 -07:00
2013-03-27 14:37:47 +00:00
2013-06-24 16:39:05 -07:00
2013-03-28 01:20:42 -04:00
2013-08-31 22:30:00 -04:00
2013-08-13 15:10:22 -07:00
2013-08-21 12:21:45 -07:00
2013-09-04 13:12:43 -04:00
2013-09-04 13:12:43 -04:00
2013-06-26 18:01:46 +09:00
2013-07-09 10:33:25 -07:00
2013-02-27 19:10:22 -08:00
2013-04-19 14:57:57 -04:00
2012-11-16 10:15:35 -08:00
2013-08-26 14:03:13 -07:00
2013-07-24 17:54:48 -07:00
2013-03-22 16:19:59 -07:00
2013-03-21 12:36:33 -04:00
2013-09-04 11:28:04 -06:00
2013-05-02 13:40:15 +03:00