[dpdk-dev] [PATCH v2 3/3] net/ice: support FDIR for IP fragment packet

Guo, Jia jia.guo at intel.com
Fri Apr 2 03:53:51 CEST 2021


Hi, ting

> -----Original Message-----
> From: Xu, Ting <ting.xu at intel.com>
> Sent: Thursday, April 1, 2021 10:08 AM
> To: Guo, Jia <jia.guo at intel.com>; Yang, Qiming <qiming.yang at intel.com>;
> Zhang, Qi Z <qi.z.zhang at intel.com>
> Cc: dev at dpdk.org
> Subject: RE: [PATCH v2 3/3] net/ice: support FDIR for IP fragment packet
> 
> Hi, Jeff
> 
> See inline
> 
> Best Regards,
> Xu Ting
> 
> > -----Original Message-----
> > From: Guo, Jia <jia.guo at intel.com>
> > Sent: Wednesday, March 24, 2021 9:54 PM
> > To: Yang, Qiming <qiming.yang at intel.com>; Zhang, Qi Z
> > <qi.z.zhang at intel.com>
> > Cc: Xu, Ting <ting.xu at intel.com>; dev at dpdk.org; Guo, Jia
> > <jia.guo at intel.com>
> > Subject: [PATCH v2 3/3] net/ice: support FDIR for IP fragment packet
> >
> > New FDIR parsing are added to handle the fragmented IPv4/IPv6 packet.
> >
> > Signed-off-by: Jeff Guo <jia.guo at intel.com>
> > ---
> >  drivers/net/ice/ice_fdir_filter.c | 96
> > +++++++++++++++++++++++++++----
> >  1 file changed, 85 insertions(+), 11 deletions(-)
> >
> > diff --git a/drivers/net/ice/ice_fdir_filter.c
> > b/drivers/net/ice/ice_fdir_filter.c
> > index 3af5812660..3504d3c6c2 100644
> > --- a/drivers/net/ice/ice_fdir_filter.c
> > +++ b/drivers/net/ice/ice_fdir_filter.c
> > @@ -24,7 +24,7 @@
> >  #define ICE_FDIR_INSET_ETH_IPV4 (\
> >  ICE_FDIR_INSET_ETH | \
> >  ICE_INSET_IPV4_SRC | ICE_INSET_IPV4_DST | ICE_INSET_IPV4_TOS | \
> > -ICE_INSET_IPV4_TTL | ICE_INSET_IPV4_PROTO)
> > +ICE_INSET_IPV4_TTL | ICE_INSET_IPV4_PROTO | ICE_INSET_IPV4_PKID)
> >
> 
> Skip...
> 
> > @@ -1700,8 +1719,6 @@ ice_fdir_parse_pattern(__rte_unused struct
> > ice_adapter *ad,
> >  /* Check IPv4 mask and update input set */  if
> > (ipv4_mask->hdr.version_ihl ||
> >      ipv4_mask->hdr.total_length ||
> > -    ipv4_mask->hdr.packet_id ||
> > -    ipv4_mask->hdr.fragment_offset ||
> >      ipv4_mask->hdr.hdr_checksum) {
> >  rte_flow_error_set(error, EINVAL,
> >
> > RTE_FLOW_ERROR_TYPE_ITEM,
> > @@ -1710,6 +1727,20 @@ ice_fdir_parse_pattern(__rte_unused struct
> > ice_adapter *ad,  return -rte_errno;  }
> >
> 
> May need to check if ipv4_last exists before using it.
> 

Sure, will add the check in next version.

> > +if (ipv4_last->hdr.version_ihl ||
> > +    ipv4_last->hdr.type_of_service ||
> > +    ipv4_last->hdr.time_to_live ||
> > +    ipv4_last->hdr.total_length |
> > +    ipv4_last->hdr.next_proto_id ||
> > +    ipv4_last->hdr.hdr_checksum ||
> > +    ipv4_last->hdr.src_addr ||
> > +    ipv4_last->hdr.dst_addr) {
> > +rte_flow_error_set(error, EINVAL,
> > +
> > RTE_FLOW_ERROR_TYPE_ITEM,
> > +   item, "Invalid IPv4 last.");
> > +return -rte_errno;
> > +}
> > +
> >  if (ipv4_mask->hdr.dst_addr == UINT32_MAX)  *input_set |=
> > ICE_INSET_IPV4_DST;  if (ipv4_mask->hdr.src_addr == UINT32_MAX) @@ -
> 
> Skip...
> 
> > 2.20.1
> 



More information about the dev mailing list