[dpdk-dev] [RFC] ethdev: add fragment attribute to IPv6 item
Stephen Hemminger
stephen at networkplumber.org
Mon Jun 1 07:38:32 CEST 2020
On Sun, 31 May 2020 17:43:29 +0300
Dekel Peled <dekelp at mellanox.com> wrote:
> Using the current implementation of DPDK, an application cannot
> match on fragmented/non-fragmented IPv6 packets in a simple way.
>
> In current implementation:
> IPv6 header doesn't contain information regarding the packet
> fragmentation.
> Fragmented IPv6 packets contain a dedicated extension header, as
> detailed in RFC [1], which is not yet supported in rte_flow.
> Non-fragmented packets don't contain the fragment extension header.
> For an application to match on non-fragmented IPv6 packets, the
> current implementation doesn't provide a suitable solution.
> Matching on the Next Header field is not sufficient, since additional
> extension headers might be present in the same packet.
> To match on fragmented IPv6 packets, the same difficulty exists.
>
> Proposed update:
> An additional value will be added to IPv6 header struct.
> This value will contain the fragmentation attribute of the packet,
> providing simple means for identification of fragmented and
> non-fragmented packets.
>
> This update changes ABI, and is proposed for the 20.11 LTS version.
>
> [1] http://mails.dpdk.org/archives/dev/2020-March/160255.html
>
> Signed-off-by: Dekel Peled <dekelp at mellanox.com>
> ---
> lib/librte_ethdev/rte_flow.h | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/lib/librte_ethdev/rte_flow.h b/lib/librte_ethdev/rte_flow.h
> index b0e4199..3bc8ce1 100644
> --- a/lib/librte_ethdev/rte_flow.h
> +++ b/lib/librte_ethdev/rte_flow.h
> @@ -787,6 +787,8 @@ struct rte_flow_item_ipv4 {
> */
> struct rte_flow_item_ipv6 {
> struct rte_ipv6_hdr hdr; /**< IPv6 header definition. */
> + uint32_t is_frag:1; /**< Is IPv6 packet fragmented/non-fragmented. */
> + uint32_t reserved:31; /**< Reserved, must be zero. */
> };
You can't do this in the 20.08 release it would be an ABI breakage.
More information about the dev
mailing list