[dpdk-dev] [PATCH] net/mlx5: fix VLAN inner ethernet type on E-Switch

Shahaf Shuler shahafs at mellanox.com
Thu Nov 22 12:42:31 CET 2018


Wednesday, November 21, 2018 7:45 PM, Viacheslav Ovsiienko:
> Subject: [dpdk-dev] [PATCH] net/mlx5: fix VLAN inner ethernet type on E-
> Switch
> 
> The TCA_FLOWER_KEY_VLAN_ETH_TYPE should be specified for the E-Switch
> Flows with VLAN and L3 pattern items in the Netlink messages. The patch
> adds missing flower key to the messages. This patch partially reverts to the
> code smashed by
> https://emea01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fpatc
> hes.dpdk.org%2Fpatch%2F47781&data=02%7C01%7Cshahafs%40mellan
> ox.com%7C6cdd88ebb5494ed2809908d64fd90b8f%7Ca652971c7d2e4d9ba6a4
> d149256f461b%7C0%7C0%7C636784190968004901&sdata=y%2BjABP0X3
> Z%2FQ70nemjj%2FzBaFkJ8ndpK%2BO1VmIH5BGPE%3D&reserved=0
> 
> Fixes: 251e8d02cf37 ("net/mlx5: add VXLAN to flow translate routine")
> 
> Signed-off-by: Viacheslav Ovsiienko <viacheslavo at mellanox.com>

Applied to next-net-mlx, thanks.

Ferruh, please let me know if you think it can be added to 18.11, it is relatively small, local, yet important fix. 

> ---
>  drivers/net/mlx5/mlx5_flow_tcf.c | 7 ++++---
>  1 file changed, 4 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/net/mlx5/mlx5_flow_tcf.c
> b/drivers/net/mlx5/mlx5_flow_tcf.c
> index 22a866d..fb284c3 100644
> --- a/drivers/net/mlx5/mlx5_flow_tcf.c
> +++ b/drivers/net/mlx5/mlx5_flow_tcf.c
> @@ -3260,7 +3260,8 @@ struct pedit_parser {
>  			assert(mask.ipv4);
>  			spec.ipv4 = items->spec;
>  			if (!decap.vxlan) {
> -				if (!eth_type_set && !vlan_eth_type_set)
> +				if (!eth_type_set ||
> +				    (!vlan_eth_type_set && vlan_present))
>  					mnl_attr_put_u16
>  						(nlh,
>  						 vlan_present ?
> @@ -3317,14 +3318,14 @@ struct pedit_parser {
>  			assert(mask.ipv6);
>  			spec.ipv6 = items->spec;
>  			if (!decap.vxlan) {
> -				if (!eth_type_set || !vlan_eth_type_set) {
> +				if (!eth_type_set ||
> +				    (!vlan_eth_type_set && vlan_present))
>  					mnl_attr_put_u16
>  						(nlh,
>  						 vlan_present ?
> 
> TCA_FLOWER_KEY_VLAN_ETH_TYPE :
> 
> TCA_FLOWER_KEY_ETH_TYPE,
>  						 RTE_BE16(ETH_P_IPV6));
> -				}
>  				eth_type_set = 1;
>  				vlan_eth_type_set = 1;
>  				if (mask.ipv6 ==
> &flow_tcf_mask_empty.ipv6)
> --
> 1.8.3.1



More information about the dev mailing list