[dpdk-dev] [PATCH] net/mlx5: support MPLS-in-GRE and MPLS-in-UDP

Nélio Laranjeiro nelio.laranjeiro at 6wind.com
Tue May 15 11:37:47 CEST 2018


Hi Matan, 

I have a single comment, please see bellow,

On Mon, May 14, 2018 at 01:41:20PM +0000, Matan Azrad wrote:
> Add support for MPLS over GRE and MPLS over UDP tunnel types as
> described in the next RFCs:
> 1. https://tools.ietf.org/html/rfc4023
> 2. https://tools.ietf.org/html/rfc7510
> 3. https://tools.ietf.org/html/rfc4385
> 
> Signed-off-by: Matan Azrad <matan at mellanox.com>
> ---
>  doc/guides/nics/mlx5.rst     |   4 +-
>  drivers/net/mlx5/Makefile    |   5 ++
>  drivers/net/mlx5/mlx5.c      |  13 ++++
>  drivers/net/mlx5/mlx5.h      |   1 +
>  drivers/net/mlx5/mlx5_flow.c | 154 +++++++++++++++++++++++++++++++++++++++++--
>  5 files changed, 170 insertions(+), 7 deletions(-)
>[...]
> @@ -896,7 +928,9 @@ struct ibv_spec_header {
>  		if (ret)
>  			goto exit_item_not_supported;
>  		if (IS_TUNNEL(items->type)) {
> -			if (parser->tunnel) {
> +			if (parser->tunnel &&
> +			   !((items - 1)->type == RTE_FLOW_ITEM_TYPE_GRE &&
> +			     items->type == RTE_FLOW_ITEM_TYPE_MPLS)) {
>  				rte_flow_error_set(error, ENOTSUP,
>  						   RTE_FLOW_ERROR_TYPE_ITEM,
>  						   items,
> @@ -904,6 +938,16 @@ struct ibv_spec_header {
>  						   " tunnel encapsulations.");
>  				return -rte_errno;
>  			}
> +			if (items->type == RTE_FLOW_ITEM_TYPE_MPLS &&
> +			    !priv->config.mpls_en) {
> +				rte_flow_error_set(error, ENOTSUP,
> +						   RTE_FLOW_ERROR_TYPE_ITEM,
> +						   items,
> +						   "MPLS not supported or"
> +						   " disabled in firmware"
> +						   " configuration.");
> +				return -rte_errno;
> +			}
>  			if (!priv->config.tunnel_en &&
>  			    parser->rss_conf.level > 1) {
>  				rte_flow_error_set(error, ENOTSUP,

Doing such comparison will not work in all cases like

 GRE / VOID / MPLS

which is totally valid from rte_flow perspective.

Regards,

-- 
Nélio Laranjeiro
6WIND


More information about the dev mailing list