summaryrefslogtreecommitdiff
path: root/include/linux
diff options
context:
space:
mode:
authorAndy Zhou <azhou@nicira.com>2014-04-08 18:42:39 -0700
committerAndy Zhou <azhou@nicira.com>2014-04-16 15:30:42 -0700
commit347bf289b3dc006ca7b95cca26d3e0d3f20fbe95 (patch)
treecfba5f780ef08d0afe405e11801df2167142fec5 /include/linux
parent40dd413d5b5424eb4cd2e6a8558d33f3b7c607ed (diff)
downloadopenvswitch-347bf289b3dc006ca7b95cca26d3e0d3f20fbe95.tar.gz
dpif-netdev: Move hash function out of the recirc action, into its own action
Currently recirculation action can optionally compute hash. This patch adds a hash action that is independent of the recirc action, which no longer computes hash. For megaflow bond with recirc, the output to a bond port action will look like: hash(hash_l4(0)), recirc(<recirc_id>) Obviously, when a recirculation application that does not depend on hash value can just use the recirc action alone. Signed-off-by: Andy Zhou <azhou@nicira.com> Reviewed-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp> Acked-by: Pravin B Shelar <pshelar@nicira.com
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/openvswitch.h21
1 files changed, 9 insertions, 12 deletions
diff --git a/include/linux/openvswitch.h b/include/linux/openvswitch.h
index b3977d1a5..e17f802b1 100644
--- a/include/linux/openvswitch.h
+++ b/include/linux/openvswitch.h
@@ -542,26 +542,22 @@ struct ovs_action_push_vlan {
/* Data path hash algorithm for computing Datapath hash.
*
- * The Algorithm type only specifies the fields in a flow
+ * The algorithm type only specifies the fields in a flow
* will be used as part of the hash. Each datapath is free
* to use its own hash algorithm. The hash value will be
* opaque to the user space daemon.
*/
-enum ovs_recirc_hash_alg {
- OVS_RECIRC_HASH_ALG_NONE,
- OVS_RECIRC_HASH_ALG_L4,
+enum ovs_hash_alg {
+ OVS_HASH_ALG_L4,
};
/*
- * struct ovs_action_recirc - %OVS_ACTION_ATTR_RECIRC action argument.
- * @recirc_id: The Recirculation label, Zero is invalid.
+ * struct ovs_action_hash - %OVS_ACTION_ATTR_HASH action argument.
* @hash_alg: Algorithm used to compute hash prior to recirculation.
- * @hash_bias: bias used for computing hash. used to compute hash prior to
- * recirculation.
+ * @hash_bias: bias used for computing hash.
*/
-struct ovs_action_recirc {
- uint32_t hash_alg; /* One of ovs_dp_hash_alg. */
+struct ovs_action_hash {
+ uint32_t hash_alg; /* One of ovs_hash_alg. */
uint32_t hash_bias;
- uint32_t recirc_id; /* Recirculation label. */
};
/**
@@ -604,7 +600,8 @@ enum ovs_action_attr {
OVS_ACTION_ATTR_SAMPLE, /* Nested OVS_SAMPLE_ATTR_*. */
OVS_ACTION_ATTR_PUSH_MPLS, /* struct ovs_action_push_mpls. */
OVS_ACTION_ATTR_POP_MPLS, /* __be16 ethertype. */
- OVS_ACTION_ATTR_RECIRC, /* struct ovs_action_recirc. */
+ OVS_ACTION_ATTR_RECIRC, /* u32 recirc_id. */
+ OVS_ACTION_ATTR_HASH, /* struct ovs_action_hash. */
__OVS_ACTION_ATTR_MAX
};