From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 2DDE4A04EF; Sun, 31 May 2020 16:43:49 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 048231BFD6; Sun, 31 May 2020 16:43:48 +0200 (CEST) Received: from mellanox.co.il (mail-il-dmz.mellanox.com [193.47.165.129]) by dpdk.org (Postfix) with ESMTP id 707CB1BFD3 for ; Sun, 31 May 2020 16:43:46 +0200 (CEST) Received: from Internal Mail-Server by MTLPINE2 (envelope-from dekelp@mellanox.com) with ESMTPS (AES256-SHA encrypted); 31 May 2020 17:43:45 +0300 Received: from mtl-vdi-280.wap.labs.mlnx. (mtl-vdi-280.wap.labs.mlnx [10.228.134.250]) by labmailer.mlnx (8.13.8/8.13.8) with ESMTP id 04VEhjlY018436; Sun, 31 May 2020 17:43:45 +0300 From: Dekel Peled To: ferruh.yigit@intel.com, arybchenko@solarflare.com, orika@mellanox.com, john.mcnamara@intel.com, marko.kovacevic@intel.com Cc: asafp@mellanox.com, matan@mellanox.com, elibr@mellanox.com, dev@dpdk.org Date: Sun, 31 May 2020 17:43:29 +0300 Message-Id: <5f9b4d30b81fa68ed875106785419a43cc7a6166.1590935677.git.dekelp@mellanox.com> X-Mailer: git-send-email 1.7.1 Subject: [dpdk-dev] [RFC] ethdev: add fragment attribute to IPv6 item X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" 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 --- 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. */ }; /** Default mask for RTE_FLOW_ITEM_TYPE_IPV6. */ -- 1.8.3.1