For VLANs, the match of ethernet type should be specified in inner_type field of the vlan match, and not type field in ethernet match. Fix it.
Fixes: e8a2b5bf92bb ("netdev-dpdk: implement flow offload with rte flow") Signed-off-by: Eli Britstein <el...@nvidia.com> Reviewed-by: Salem Sol <sal...@nvidia.com> --- lib/netdev-offload-dpdk.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/lib/netdev-offload-dpdk.c b/lib/netdev-offload-dpdk.c index 28c4ba276..9298032aa 100644 --- a/lib/netdev-offload-dpdk.c +++ b/lib/netdev-offload-dpdk.c @@ -1116,12 +1116,13 @@ parse_flow_match(struct netdev *netdev, spec->tci = match->flow.vlans[0].tci & ~htons(VLAN_CFI); mask->tci = match->wc.masks.vlans[0].tci & ~htons(VLAN_CFI); - /* Match any protocols. */ - mask->inner_type = 0; - if (eth_spec && eth_mask) { eth_spec->has_vlan = 1; eth_mask->has_vlan = 1; + spec->inner_type = eth_spec->type; + mask->inner_type = eth_mask->type; + eth_spec->type = match->flow.vlans[0].tpid; + eth_mask->type = match->wc.masks.vlans[0].tpid; } add_flow_pattern(patterns, RTE_FLOW_ITEM_TYPE_VLAN, spec, mask); -- 2.28.0.2311.g225365fb51 _______________________________________________ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev