diff mbox

[ovs-dev] ofproto-dpif: Include EthType in ct_orig_tuple feature probe

Message ID 20170525062026.118988-1-vsairam@vmware.com
State Accepted
Headers show

Commit Message

Sairam Venugopal May 25, 2017, 6:20 a.m. UTC
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.

Signed-off-by: Sairam Venugopal <vsairam@vmware.com>
---
 ofproto/ofproto-dpif.c | 13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

Comments

Joe Stringer May 26, 2017, 6:25 p.m. UTC | #1
On 24 May 2017 at 23:20, Sairam Venugopal <vsairam@vmware.com> wrote:
> 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.
>
> Signed-off-by: Sairam Venugopal <vsairam@vmware.com>

Thanks for the fix, applied.
diff mbox

Patch

diff --git a/ofproto/ofproto-dpif.c b/ofproto/ofproto-dpif.c
index dc5f004..ba9e1ea 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__