Re: [dpdk-dev] [RFC] ethdev: add fragment attribute to IPv6 item
From: Dekel Peled <hidden>
Date: 2020-06-01 06:11:20
Thanks, PSB.
-----Original Message----- From: Stephen Hemminger <stephen@networkplumber.org> Sent: Monday, June 1, 2020 8:39 AM To: Dekel Peled <redacted> Cc: ferruh.yigit@intel.com; arybchenko@solarflare.com; Ori Kam [off-list ref]; john.mcnamara@intel.com; marko.kovacevic@intel.com; Asaf Penso [off-list ref]; Matan Azrad [off-list ref]; Eli Britstein [off-list ref]; dev@dpdk.org Subject: Re: [dpdk-dev] [RFC] ethdev: add fragment attribute to IPv6 item On Sun, 31 May 2020 17:43:29 +0300 Dekel Peled [off-list ref] wrote:quoted
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]https://eur03.safelinks.protection.outlook.com/?url=http%3A%2F%2Fmailsquoted
.dpdk.org%2Farchives%2Fdev%2F2020-March%2F160255.html&data=02%7C01quoted
%7Cdekelp%40mellanox.com%7C9ee87004dc3943b945c908d805ee0bcc%7Ca 652971cquoted
7d2e4d9ba6a4d149256f461b%7C0%7C0%7C637265867256841029&sdata =rf1zYzquoted
fNLGdqayXLHffO%2FrM%2FeX5op6KO91RDKq%2BYk3Q%3D&reserved =0quoted
Signed-off-by: Dekel Peled <redacted> --- lib/librte_ethdev/rte_flow.h | 2 ++ 1 file changed, 2 insertions(+)diff --git a/lib/librte_ethdev/rte_flow.hb/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.*/quoted
+ uint32_t reserved:31; /**< Reserved, must be zero. */ };You can't do this in the 20.08 release it would be an ABI breakage.
Please see above, I noted in the commit log that this is proposed for 20.11.