Thanks, PSB.
> -----Original Message----- > From: Stephen Hemminger <step...@networkplumber.org> > Sent: Monday, June 1, 2020 8:39 AM > To: Dekel Peled <dek...@mellanox.com> > Cc: ferruh.yi...@intel.com; arybche...@solarflare.com; Ori Kam > <or...@mellanox.com>; john.mcnam...@intel.com; > marko.kovace...@intel.com; Asaf Penso <as...@mellanox.com>; Matan > Azrad <ma...@mellanox.com>; Eli Britstein <el...@mellanox.com>; > 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 <dek...@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] > > > https://eur03.safelinks.protection.outlook.com/?url=http%3A%2F%2Fmails > > .dpdk.org%2Farchives%2Fdev%2F2020- > March%2F160255.html&data=02%7C01 > > > %7Cdekelp%40mellanox.com%7C9ee87004dc3943b945c908d805ee0bcc%7Ca > 652971c > > > 7d2e4d9ba6a4d149256f461b%7C0%7C0%7C637265867256841029&sdata > =rf1zYz > > > fNLGdqayXLHffO%2FrM%2FeX5op6KO91RDKq%2BYk3Q%3D&reserved > =0 > > > > Signed-off-by: Dekel Peled <dek...@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. Please see above, I noted in the commit log that this is proposed for 20.11.