From: Ori Kam <orika@nvidia.com>
To: Dekel Peled <dekelp@nvidia.com>,
NBU-Contact-Thomas Monjalon <thomas@monjalon.net>,
"ferruh.yigit@intel.com" <ferruh.yigit@intel.com>,
"arybchenko@solarflare.com" <arybchenko@solarflare.com>,
"konstantin.ananyev@intel.com" <konstantin.ananyev@intel.com>,
"olivier.matz@6wind.com" <olivier.matz@6wind.com>,
"wenzhuo.lu@intel.com" <wenzhuo.lu@intel.com>,
"beilei.xing@intel.com" <beilei.xing@intel.com>,
"bernard.iremonger@intel.com" <bernard.iremonger@intel.com>,
Matan Azrad <matan@nvidia.com>,
Shahaf Shuler <shahafs@nvidia.com>,
Slava Ovsiienko <viacheslavo@nvidia.com>
Cc: "dev@dpdk.org" <dev@dpdk.org>
Subject: Re: [dpdk-dev] [PATCH v2 11/11] net/mlx5: enforce limitation on IPv6 next proto
Date: Sun, 4 Oct 2020 13:55:11 +0000 [thread overview]
Message-ID: <MN2PR12MB42864B674FD695FE5A022E18D60F0@MN2PR12MB4286.namprd12.prod.outlook.com> (raw)
In-Reply-To: <5a25973431babe75cf681df7827ee69942297446.1601586564.git.dekelp@nvidia.com>
Hi
> -----Original Message-----
> From: Dekel Peled <dekelp@nvidia.com>
> Sent: Friday, October 2, 2020 12:15 AM
> Subject: [PATCH v2 11/11] net/mlx5: enforce limitation on IPv6 next proto
>
> Due to PRM requirement, the IPv6 header item 'proto' field, indicating
> the next header protocol, should not be set as extension header.
> This patch adds the relevant validation, and documents the limitation.
>
> Signed-off-by: Dekel Peled <dekelp@nvidia.com>
> ---
> doc/guides/nics/mlx5.rst | 7 +++++++
> drivers/net/mlx5/mlx5_flow.c | 14 ++++++++++++--
> 2 files changed, 19 insertions(+), 2 deletions(-)
>
> diff --git a/doc/guides/nics/mlx5.rst b/doc/guides/nics/mlx5.rst
> index 211c0c5..e6ca5e1 100644
> --- a/doc/guides/nics/mlx5.rst
> +++ b/doc/guides/nics/mlx5.rst
> @@ -311,6 +311,13 @@ Limitations
> for some NICs (such as ConnectX-6 Dx and BlueField 2).
> The capability bit ``scatter_fcs_w_decap_disable`` shows NIC support.
>
> +- IPv6 header item 'proto' field, indicating the next header protocol, should
> + not be set as extension header.
> + In case the next header is an extension header, it should not be specified in
> + IPv6 header item 'proto' field.
> + The last extension header item 'next header' field can specify the following
> + header protocol type.
> +
> Statistics
> ----------
>
> diff --git a/drivers/net/mlx5/mlx5_flow.c b/drivers/net/mlx5/mlx5_flow.c
> index 906741f..7a438cf 100644
> --- a/drivers/net/mlx5/mlx5_flow.c
> +++ b/drivers/net/mlx5/mlx5_flow.c
> @@ -1645,9 +1645,9 @@ struct mlx5_flow_tunnel_info {
> RTE_FLOW_ERROR_TYPE_ITEM,
> item,
> "IPv6 cannot follow L2/VLAN layer "
> "which ether type is not IPv6");
> + if (mask && spec)
> + next_proto = mask->hdr.proto & spec->hdr.proto;
> if (item_flags & MLX5_FLOW_LAYER_IPV6_ENCAP) {
> - if (mask && spec)
> - next_proto = mask->hdr.proto & spec->hdr.proto;
> if (next_proto == IPPROTO_IPIP || next_proto ==
> IPPROTO_IPV6)
> return rte_flow_error_set(error, EINVAL,
>
> RTE_FLOW_ERROR_TYPE_ITEM,
> @@ -1655,6 +1655,16 @@ struct mlx5_flow_tunnel_info {
> "multiple tunnel "
> "not supported");
> }
> + if (next_proto == IPPROTO_HOPOPTS ||
> + next_proto == IPPROTO_ROUTING ||
> + next_proto == IPPROTO_FRAGMENT ||
> + next_proto == IPPROTO_ESP ||
> + next_proto == IPPROTO_AH ||
> + next_proto == IPPROTO_DSTOPTS)
> + return rte_flow_error_set(error, EINVAL,
> + RTE_FLOW_ERROR_TYPE_ITEM,
> item,
> + "IPv6 proto (next header) should "
> + "not be set as extension header");
> if (item_flags & MLX5_FLOW_LAYER_IPIP)
> return rte_flow_error_set(error, EINVAL,
> RTE_FLOW_ERROR_TYPE_ITEM,
> item,
> --
> 1.8.3.1
Acked-by: Ori Kam <orika@nvidia.com>
Thanks,
Ori
next prev parent reply other threads:[~2020-10-04 13:55 UTC|newest]
Thread overview: 101+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-09-30 14:10 [dpdk-dev] [PATCH 00/10] support match on L3 fragmented packets Dekel Peled
2020-09-30 14:10 ` [dpdk-dev] [PATCH 01/10] ethdev: add extensions attributes to IPv6 item Dekel Peled
2020-09-30 14:54 ` Ori Kam
2020-09-30 14:10 ` [dpdk-dev] [PATCH 02/10] ethdev: add IPv6 fragment extension header item Dekel Peled
2020-09-30 14:55 ` Ori Kam
2020-09-30 14:10 ` [dpdk-dev] [PATCH 03/10] app/testpmd: support IPv4 fragments Dekel Peled
2020-09-30 14:54 ` Ori Kam
2020-09-30 14:10 ` [dpdk-dev] [PATCH 04/10] app/testpmd: support IPv6 fragments Dekel Peled
2020-09-30 14:10 ` [dpdk-dev] [PATCH 05/10] app/testpmd: support IPv6 fragment extension item Dekel Peled
2020-09-30 14:56 ` Ori Kam
2020-09-30 14:10 ` [dpdk-dev] [PATCH 06/10] net/mlx5: remove handling of ICMP fragmented packets Dekel Peled
2020-09-30 14:10 ` [dpdk-dev] [PATCH 07/10] net/mlx5: support match on IPv4 fragment packets Dekel Peled
2020-09-30 14:10 ` [dpdk-dev] [PATCH 08/10] net/mlx5: support match on IPv6 " Dekel Peled
2020-09-30 14:10 ` [dpdk-dev] [PATCH 09/10] net/mlx5: support match on IPv6 fragment ext. item Dekel Peled
2020-09-30 14:10 ` [dpdk-dev] [PATCH 10/10] doc: update release notes for MLX5 L3 frag support Dekel Peled
2020-10-01 21:14 ` [dpdk-dev] [PATCH v2 00/11] support match on L3 fragmented packets Dekel Peled
2020-10-01 21:14 ` [dpdk-dev] [PATCH v2 01/11] ethdev: add extensions attributes to IPv6 item Dekel Peled
2020-10-04 13:45 ` Ori Kam
2020-10-01 21:14 ` [dpdk-dev] [PATCH v2 02/11] ethdev: add IPv6 fragment extension header item Dekel Peled
2020-10-01 21:27 ` Stephen Hemminger
2020-10-01 21:15 ` [dpdk-dev] [PATCH v2 03/11] app/testpmd: support IPv4 fragments Dekel Peled
2020-10-04 13:47 ` Ori Kam
2020-10-01 21:15 ` [dpdk-dev] [PATCH v2 04/11] app/testpmd: support IPv6 fragments Dekel Peled
2020-10-04 13:49 ` Ori Kam
2020-10-01 21:15 ` [dpdk-dev] [PATCH v2 05/11] app/testpmd: support IPv6 fragment extension item Dekel Peled
2020-10-04 13:47 ` Ori Kam
2020-10-01 21:15 ` [dpdk-dev] [PATCH v2 06/11] net/mlx5: remove handling of ICMP fragmented packets Dekel Peled
2020-10-04 13:49 ` Ori Kam
2020-10-01 21:15 ` [dpdk-dev] [PATCH v2 07/11] net/mlx5: support match on IPv4 fragment packets Dekel Peled
2020-10-04 13:48 ` Ori Kam
2020-10-01 21:15 ` [dpdk-dev] [PATCH v2 08/11] net/mlx5: support match on IPv6 " Dekel Peled
2020-10-01 21:15 ` [dpdk-dev] [PATCH v2 09/11] net/mlx5: support match on IPv6 fragment ext. item Dekel Peled
2020-10-04 13:51 ` Ori Kam
2020-10-01 21:15 ` [dpdk-dev] [PATCH v2 10/11] doc: update release notes for MLX5 L3 frag support Dekel Peled
2020-10-04 13:55 ` Ori Kam
2020-10-01 21:15 ` [dpdk-dev] [PATCH v2 11/11] net/mlx5: enforce limitation on IPv6 next proto Dekel Peled
2020-10-04 13:55 ` Ori Kam [this message]
2020-10-05 8:35 ` [dpdk-dev] [PATCH v3 00/11] support match on L3 fragmented packets Dekel Peled
2020-10-05 8:35 ` [dpdk-dev] [PATCH v3 01/11] ethdev: add extensions attributes to IPv6 item Dekel Peled
2020-10-06 23:43 ` Ajit Khaparde
2020-10-07 6:59 ` Dekel Peled
2020-10-05 8:35 ` [dpdk-dev] [PATCH v3 02/11] ethdev: add IPv6 fragment extension header item Dekel Peled
2020-10-05 8:50 ` Ori Kam
2020-10-05 8:35 ` [dpdk-dev] [PATCH v3 03/11] app/testpmd: support IPv4 fragments Dekel Peled
2020-10-05 8:35 ` [dpdk-dev] [PATCH v3 04/11] app/testpmd: support IPv6 fragments Dekel Peled
2020-10-05 8:35 ` [dpdk-dev] [PATCH v3 05/11] app/testpmd: support IPv6 fragment extension item Dekel Peled
2020-10-05 8:35 ` [dpdk-dev] [PATCH v3 06/11] net/mlx5: remove handling of ICMP fragmented packets Dekel Peled
2020-10-05 8:35 ` [dpdk-dev] [PATCH v3 07/11] net/mlx5: support match on IPv4 fragment packets Dekel Peled
2020-10-05 8:35 ` [dpdk-dev] [PATCH v3 08/11] net/mlx5: support match on IPv6 " Dekel Peled
2020-10-05 8:51 ` Ori Kam
2020-10-05 8:35 ` [dpdk-dev] [PATCH v3 09/11] net/mlx5: support match on IPv6 fragment ext. item Dekel Peled
2020-10-05 8:35 ` [dpdk-dev] [PATCH v3 10/11] doc: update release notes for MLX5 L3 frag support Dekel Peled
2020-10-05 8:35 ` [dpdk-dev] [PATCH v3 11/11] net/mlx5: enforce limitation on IPv6 next proto Dekel Peled
2020-10-07 10:53 ` [dpdk-dev] [PATCH v4 00/11] support match on L3 fragmented packets Dekel Peled
2020-10-07 10:54 ` [dpdk-dev] [PATCH v4 01/11] ethdev: add extensions attributes to IPv6 item Dekel Peled
2020-10-08 3:14 ` Ajit Khaparde
2020-10-08 7:03 ` Dekel Peled
2020-10-08 18:28 ` Ajit Khaparde
2020-10-07 10:54 ` [dpdk-dev] [PATCH v4 02/11] ethdev: add IPv6 fragment extension header item Dekel Peled
2020-10-07 10:54 ` [dpdk-dev] [PATCH v4 03/11] app/testpmd: support IPv4 fragments Dekel Peled
2020-10-07 10:54 ` [dpdk-dev] [PATCH v4 04/11] app/testpmd: support IPv6 fragments Dekel Peled
2020-10-07 10:54 ` [dpdk-dev] [PATCH v4 05/11] app/testpmd: support IPv6 fragment extension item Dekel Peled
2020-10-07 10:54 ` [dpdk-dev] [PATCH v4 06/11] net/mlx5: remove handling of ICMP fragmented packets Dekel Peled
2020-10-07 10:54 ` [dpdk-dev] [PATCH v4 07/11] net/mlx5: support match on IPv4 fragment packets Dekel Peled
2020-10-07 10:54 ` [dpdk-dev] [PATCH v4 08/11] net/mlx5: support match on IPv6 " Dekel Peled
2020-10-07 10:54 ` [dpdk-dev] [PATCH v4 09/11] net/mlx5: support match on IPv6 fragment ext. item Dekel Peled
2020-10-07 10:54 ` [dpdk-dev] [PATCH v4 10/11] doc: update release notes for MLX5 L3 frag support Dekel Peled
2020-10-07 10:54 ` [dpdk-dev] [PATCH v4 11/11] net/mlx5: enforce limitation on IPv6 next proto Dekel Peled
2020-10-07 11:15 ` [dpdk-dev] [PATCH v4 00/11] support match on L3 fragmented packets Ori Kam
2020-10-12 10:42 ` [dpdk-dev] [PATCH v5 " Dekel Peled
2020-10-12 10:43 ` [dpdk-dev] [PATCH v5 01/11] ethdev: add extensions attributes to IPv6 item Dekel Peled
2020-10-12 20:41 ` Thomas Monjalon
2020-10-13 8:22 ` Dekel Peled
2020-10-12 10:43 ` [dpdk-dev] [PATCH v5 02/11] ethdev: add IPv6 fragment extension header item Dekel Peled
2020-10-12 20:50 ` Thomas Monjalon
2020-10-13 8:11 ` Dekel Peled
2020-10-12 10:43 ` [dpdk-dev] [PATCH v5 03/11] app/testpmd: support IPv4 fragments Dekel Peled
2020-10-12 10:43 ` [dpdk-dev] [PATCH v5 04/11] app/testpmd: support IPv6 fragments Dekel Peled
2020-10-12 10:43 ` [dpdk-dev] [PATCH v5 05/11] app/testpmd: support IPv6 fragment extension item Dekel Peled
2020-10-12 10:43 ` [dpdk-dev] [PATCH v5 06/11] net/mlx5: remove handling of ICMP fragmented packets Dekel Peled
2020-10-12 10:43 ` [dpdk-dev] [PATCH v5 07/11] net/mlx5: support match on IPv4 fragment packets Dekel Peled
2020-10-12 10:43 ` [dpdk-dev] [PATCH v5 08/11] net/mlx5: support match on IPv6 " Dekel Peled
2020-10-12 10:43 ` [dpdk-dev] [PATCH v5 09/11] net/mlx5: support match on IPv6 fragment ext. item Dekel Peled
2020-10-12 10:43 ` [dpdk-dev] [PATCH v5 10/11] doc: update release notes for MLX5 L3 frag support Dekel Peled
2020-10-12 19:29 ` Thomas Monjalon
2020-10-12 10:43 ` [dpdk-dev] [PATCH v5 11/11] net/mlx5: enforce limitation on IPv6 next proto Dekel Peled
2020-10-13 13:32 ` [dpdk-dev] [PATCH v6 0/5] support match on L3 fragmented packets Dekel Peled
2020-10-13 13:32 ` [dpdk-dev] [PATCH v6 1/5] ethdev: add extensions attributes to IPv6 item Dekel Peled
2020-10-14 10:36 ` Thomas Monjalon
2020-10-13 13:32 ` [dpdk-dev] [PATCH v6 2/5] ethdev: add IPv6 fragment extension header item Dekel Peled
2020-10-14 10:37 ` Thomas Monjalon
2020-10-13 13:32 ` [dpdk-dev] [PATCH v6 3/5] app/testpmd: support IPv4 fragments Dekel Peled
2020-10-13 13:32 ` [dpdk-dev] [PATCH v6 4/5] app/testpmd: support IPv6 fragments Dekel Peled
2020-10-13 13:32 ` [dpdk-dev] [PATCH v6 5/5] app/testpmd: support IPv6 fragment extension item Dekel Peled
2020-10-14 16:35 ` [dpdk-dev] [PATCH v7 0/5] support match on L3 fragmented packets Dekel Peled
2020-10-14 16:35 ` [dpdk-dev] [PATCH v7 1/5] ethdev: add extensions attributes to IPv6 item Dekel Peled
2020-10-14 16:35 ` [dpdk-dev] [PATCH v7 2/5] ethdev: add IPv6 fragment extension header item Dekel Peled
2020-10-14 16:35 ` [dpdk-dev] [PATCH v7 3/5] app/testpmd: support IPv4 fragments Dekel Peled
2020-10-14 16:35 ` [dpdk-dev] [PATCH v7 4/5] app/testpmd: support IPv6 fragments Dekel Peled
2020-10-14 16:35 ` [dpdk-dev] [PATCH v7 5/5] app/testpmd: support IPv6 fragment extension item Dekel Peled
2020-10-14 17:18 ` [dpdk-dev] [PATCH v7 0/5] support match on L3 fragmented packets Ferruh Yigit
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=MN2PR12MB42864B674FD695FE5A022E18D60F0@MN2PR12MB4286.namprd12.prod.outlook.com \
--to=orika@nvidia.com \
--cc=arybchenko@solarflare.com \
--cc=beilei.xing@intel.com \
--cc=bernard.iremonger@intel.com \
--cc=dekelp@nvidia.com \
--cc=dev@dpdk.org \
--cc=ferruh.yigit@intel.com \
--cc=konstantin.ananyev@intel.com \
--cc=matan@nvidia.com \
--cc=olivier.matz@6wind.com \
--cc=shahafs@nvidia.com \
--cc=thomas@monjalon.net \
--cc=viacheslavo@nvidia.com \
--cc=wenzhuo.lu@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).