summaryrefslogtreecommitdiff
path: root/include/uapi
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2013-10-03 23:37:10 +0400
committerDavid S. Miller <davem@davemloft.net>2013-10-03 23:37:10 +0400
commit99ebe9f2b34368c51ae6d4b09708e240284435bd (patch)
tree726011355fb63db194ee061d8e2e7ab215b167df /include/uapi
parent5080546682bae3d32734b18e281091684f0ebbe4 (diff)
parent7a6afab1de8526d1d6347fc33a7957ea3015ad82 (diff)
downloadlinux-99ebe9f2b34368c51ae6d4b09708e240284435bd.tar.xz
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>
Diffstat (limited to 'include/uapi')
-rw-r--r--include/uapi/linux/if_bonding.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/include/uapi/linux/if_bonding.h b/include/uapi/linux/if_bonding.h
index a17edda8a781..9635a62f6f89 100644
--- a/include/uapi/linux/if_bonding.h
+++ b/include/uapi/linux/if_bonding.h
@@ -91,6 +91,8 @@
#define BOND_XMIT_POLICY_LAYER2 0 /* layer 2 (MAC only), default */
#define BOND_XMIT_POLICY_LAYER34 1 /* layer 3+4 (IP ^ (TCP || UDP)) */
#define BOND_XMIT_POLICY_LAYER23 2 /* layer 2+3 (IP ^ MAC) */
+#define BOND_XMIT_POLICY_ENCAP23 3 /* encapsulated layer 2+3 */
+#define BOND_XMIT_POLICY_ENCAP34 4 /* encapsulated layer 3+4 */
typedef struct ifbond {
__s32 bond_mode;