summaryrefslogtreecommitdiff
path: root/ofproto
diff options
context:
space:
mode:
authorSairam Venugopal <vsairam@vmware.com>2017-05-24 23:20:26 -0700
committerJoe Stringer <joe@ovn.org>2017-05-26 11:25:34 -0700
commitd77b0d5f86f5fca5de2e05e17c25fc1768829015 (patch)
treeddf5bc34b61c83da34bed76e4d77e987ddc7dd80 /ofproto
parent4b5fa1e72b25b96771d580abe44e29126da05a79 (diff)
downloadopenvswitch-d77b0d5f86f5fca5de2e05e17c25fc1768829015.tar.gz
ofproto-dpif: Include EthType in ct_orig_tuple feature probe
Set flow->dl_type to either ETH_TYPE_IP or ETH_TYPE_IPV6 when probing for ct_orig_tuple feature support. This can be expanded later on to check for both IPv4 and IPv6 support. Fixes: daf4d3c18da4 ("odp: Support conntrack orig tuple key.") Signed-off-by: Sairam Venugopal <vsairam@vmware.com> Signed-off-by: Joe Stringer <joe@ovn.org>
Diffstat (limited to 'ofproto')
-rw-r--r--ofproto/ofproto-dpif.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/ofproto/ofproto-dpif.c b/ofproto/ofproto-dpif.c
index dc5f004cd..ba9e1ea40 100644
--- a/ofproto/ofproto-dpif.c
+++ b/ofproto/ofproto-dpif.c
@@ -1316,7 +1316,7 @@ check_ct_eventmask(struct dpif_backer *backer)
return !error;
}
-#define CHECK_FEATURE__(NAME, SUPPORT, FIELD, VALUE) \
+#define CHECK_FEATURE__(NAME, SUPPORT, FIELD, VALUE, ETHTYPE) \
static bool \
check_##NAME(struct dpif_backer *backer) \
{ \
@@ -1333,6 +1333,7 @@ check_##NAME(struct dpif_backer *backer) \
\
memset(&flow, 0, sizeof flow); \
flow.FIELD = VALUE; \
+ flow.dl_type = htons(ETHTYPE); \
\
ofpbuf_use_stack(&key, &keybuf, sizeof keybuf); \
odp_flow_key_from_flow(&odp_parms, &key); \
@@ -1347,14 +1348,16 @@ check_##NAME(struct dpif_backer *backer) \
\
return enable; \
}
-#define CHECK_FEATURE(FIELD) CHECK_FEATURE__(FIELD, FIELD, FIELD, 1)
+#define CHECK_FEATURE(FIELD) CHECK_FEATURE__(FIELD, FIELD, FIELD, 1, \
+ ETH_TYPE_IP)
CHECK_FEATURE(ct_state)
CHECK_FEATURE(ct_zone)
CHECK_FEATURE(ct_mark)
-CHECK_FEATURE__(ct_label, ct_label, ct_label.u64.lo, 1)
-CHECK_FEATURE__(ct_state_nat, ct_state, ct_state, CS_TRACKED|CS_SRC_NAT)
-CHECK_FEATURE__(ct_orig_tuple, ct_orig_tuple, ct_nw_proto, 1)
+CHECK_FEATURE__(ct_label, ct_label, ct_label.u64.lo, 1, ETH_TYPE_IP)
+CHECK_FEATURE__(ct_state_nat, ct_state, ct_state, \
+ CS_TRACKED|CS_SRC_NAT, ETH_TYPE_IP)
+CHECK_FEATURE__(ct_orig_tuple, ct_orig_tuple, ct_nw_proto, 1, ETH_TYPE_IP)
#undef CHECK_FEATURE
#undef CHECK_FEATURE__