PSB. > -----Original Message----- > From: Ferruh Yigit <ferruh.yi...@intel.com> > Sent: Tuesday, November 17, 2020 12:30 PM > To: Dekel Peled <dek...@nvidia.com>; Xiaoyu Min > <jack...@mellanox.com>; Jasvinder Singh <jasvinder.si...@intel.com>; > Cristian Dumitrescu <cristian.dumitre...@intel.com> > Cc: dev@dpdk.org > Subject: Re: [dpdk-dev] [PATCH 5/5] net/softnic: update headers size > calculation > > On 11/16/2020 7:09 PM, Dekel Peled wrote: > > < Please don't top post, reply moved to the bottom > > > >> -----Original Message----- > >> From: Ferruh Yigit <ferruh.yi...@intel.com> > >> Sent: Monday, November 16, 2020 6:27 PM > >> To: Xiaoyu Min <jack...@mellanox.com>; Jasvinder Singh > >> <jasvinder.si...@intel.com>; Cristian Dumitrescu > >> <cristian.dumitre...@intel.com> > >> Cc: dev@dpdk.org; Dekel Peled <dek...@nvidia.com> > >> Subject: Re: [dpdk-dev] [PATCH 5/5] net/softnic: update headers size > >> calculation > >> > >> On 11/16/2020 7:55 AM, Xiaoyu Min wrote: > >>> From: Dekel Peled <dek...@nvidia.com> > >>> > >>> The rte_flow_item_eth and rte_flow_item_vlan items were updated in > >> [1]. > >>> The rte_flow_item_ipv6 item was updated in [2]. > >>> The structs now contain additional metadata following the header data. > >>> The size to use for match should be the header data size only, and > >>> not the size of the whole struct. > >>> > >>> This patch replaces the rte_flow_item_* with the corresponding > >> rte_*_hdr. > >>> > >>> [1]:commit 09315fc83861 ("ethdev: add VLAN attributes to ethernet > >>> and VLAN > >>> items") > >>> > >>> [2]: commit ad976bd40d28 ("ethdev: add extensions attributes to IPv6 > >>> item") > >>> > >>> Signed-off-by: Dekel Peled <dek...@nvidia.com> > >>> --- > >>> drivers/net/softnic/rte_eth_softnic_flow.c | 8 ++++---- > >>> 1 file changed, 4 insertions(+), 4 deletions(-) > >>> > >>> diff --git a/drivers/net/softnic/rte_eth_softnic_flow.c > >>> b/drivers/net/softnic/rte_eth_softnic_flow.c > >>> index f05ff092fa..7925bad1c0 100644 > >>> --- a/drivers/net/softnic/rte_eth_softnic_flow.c > >>> +++ b/drivers/net/softnic/rte_eth_softnic_flow.c > >>> @@ -169,22 +169,22 @@ flow_item_is_proto(enum > rte_flow_item_type > >> type, > >>> > >>> case RTE_FLOW_ITEM_TYPE_ETH: > >>> *mask = &rte_flow_item_eth_mask; > >>> - *size = sizeof(struct rte_flow_item_eth); > >>> + *size = sizeof(struct rte_ether_hdr); > >>> return 1; /* TRUE */ > >>> > >>> case RTE_FLOW_ITEM_TYPE_VLAN: > >>> *mask = &rte_flow_item_vlan_mask; > >>> - *size = sizeof(struct rte_flow_item_vlan); > >>> + *size = sizeof(struct rte_vlan_hdr); > >>> return 1; > >>> > >>> case RTE_FLOW_ITEM_TYPE_IPV4: > >>> *mask = &rte_flow_item_ipv4_mask; > >>> - *size = sizeof(struct rte_flow_item_ipv4); > >>> + *size = sizeof(struct rte_ipv4_hdr); > >>> return 1; > >>> > >>> case RTE_FLOW_ITEM_TYPE_IPV6: > >>> *mask = &rte_flow_item_ipv6_mask; > >>> - *size = sizeof(struct rte_flow_item_ipv6); > >>> + *size = sizeof(struct rte_ipv6_hdr); > >>> return 1; > >>> > >> > >> As far as I can see the 'flow_item_is_proto' sets the size to be used > >> over 'rte_flow_item_*" types, the original values seems correct to > >> me, am I missing something. > >> > >> Can you please elaborate why the change is needed? > > > > Hi Ferruh, > > > > The failure occur at hash_key_mask_is_same() which uses the size > returned by > flow_item_is_proto() for comparison. > > Since the rte_flow_item_* of some types is now different than the > rte_*_hdr size of these types, need to use the rte_*_hdr size. > > > > Got it. > > Using "rte_*_hdr" structs size will strip the new additions to the > "rte_flow_item_*" structs and won't able to use them. > But at least using old sizes should preserve old functionality and prevent any > unexpected side affect, so I am OK to continue with this change but code > needs to be updated later to benefit from latest "rte_flow_item_*" structs. > > Cristian, Jasvinder, > > Can you please acknowledge that you are aware of the reason of this change > and possible updates may be required later?
Please see related issues fixed by this patch: https://bugs.dpdk.org/show_bug.cgi?id=564 https://bugs.dpdk.org/show_bug.cgi?id=565