Struct match has the tunnel values/masks in match->flow.tunnel/match->wc.masks.tunnel. Load actions such as load:0xa566c10->NXM_NX_TUN_IPV4_DST[], load:0xbba->NXM_NX_TUN_ID[] are utilizing the tunnel masks fields, but those should not be used for matching. Offloading fails if masks is not clear. Fix it by checking if tunnel is present.
Signed-off-by: Eli Britstein <[email protected]> --- lib/netdev-offload-dpdk.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/netdev-offload-dpdk.c b/lib/netdev-offload-dpdk.c index 4538baf5e..c68d539ea 100644 --- a/lib/netdev-offload-dpdk.c +++ b/lib/netdev-offload-dpdk.c @@ -1092,7 +1092,8 @@ netdev_offload_dpdk_validate_flow(const struct match *match) /* Create a wc-zeroed version of flow. */ match_init(&match_zero_wc, &match->flow, &match->wc); - if (!is_all_zeros(&match_zero_wc.flow.tunnel, + if (flow_tnl_dst_is_set(&match->flow.tunnel) && + !is_all_zeros(&match_zero_wc.flow.tunnel, sizeof match_zero_wc.flow.tunnel)) { goto err; } -- 2.26.2.1730.g385c171 _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
