diff options
author | Sairam Venugopal <vsairam@vmware.com> | 2017-05-24 23:20:26 -0700 |
---|---|---|
committer | Joe Stringer <joe@ovn.org> | 2017-05-26 11:25:34 -0700 |
commit | d77b0d5f86f5fca5de2e05e17c25fc1768829015 (patch) | |
tree | ddf5bc34b61c83da34bed76e4d77e987ddc7dd80 /ofproto | |
parent | 4b5fa1e72b25b96771d580abe44e29126da05a79 (diff) | |
download | openvswitch-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.c | 13 |
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__ |