[dpdk-dev] [PATCH v3] net/iavf: support flex desc metadata extraction

Guo, Jia jia.guo at intel.com
Wed Sep 23 10:22:41 CEST 2020


> -----Original Message-----
> From: Wang, Haiyue <haiyue.wang at intel.com>
> Sent: Wednesday, September 23, 2020 4:11 PM
> To: Guo, Jia <jia.guo at intel.com>; Wu, Jingjing <jingjing.wu at intel.com>;
> Zhang, Qi Z <qi.z.zhang at intel.com>; Xing, Beilei <beilei.xing at intel.com>
> Cc: dev at dpdk.org
> Subject: RE: [PATCH v3] net/iavf: support flex desc metadata extraction
> 
> > -----Original Message-----
> > From: Guo, Jia <jia.guo at intel.com>
> > Sent: Wednesday, September 23, 2020 15:53
> > To: Wu, Jingjing <jingjing.wu at intel.com>; Zhang, Qi Z
> > <qi.z.zhang at intel.com>; Xing, Beilei <beilei.xing at intel.com>
> > Cc: dev at dpdk.org; Wang, Haiyue <haiyue.wang at intel.com>; Guo, Jia
> > <jia.guo at intel.com>
> > Subject: [PATCH v3] net/iavf: support flex desc metadata extraction
> >
> > Enable metadata extraction for flexible descriptors in AVF, that would
> > allow network function directly get metadata without additional
> > parsing which would reduce the CPU cost for VFs. The enabling metadata
> > extractions involve the metadata of VLAN/IPv4/IPv6/IPv6-
> FLOW/TCP/MPLS
> > flexible descriptors, and the VF could negotiate the capability of the
> > flexible descriptor with PF and correspondingly configure the specific
> > offload at receiving queues.
> >
> > Signed-off-by: Jeff Guo <jia.guo at intel.com>
> > ---
> > v3:
> > export these global symbols into .map
> >
> > v2:
> > remove makefile change and modify the rxdid handling
> > ---
> >  doc/guides/rel_notes/release_20_11.rst    |   6 +
> >  drivers/net/iavf/iavf.h                   |  25 +-
> >  drivers/net/iavf/iavf_ethdev.c            | 395 ++++++++++++++++++++++
> >  drivers/net/iavf/iavf_rxtx.c              | 282 +++++++++++++--
> >  drivers/net/iavf/iavf_rxtx.h              | 233 +++++++------
> >  drivers/net/iavf/iavf_vchnl.c             |  22 +-
> >  drivers/net/iavf/meson.build              |   2 +
> >  drivers/net/iavf/rte_pmd_iavf.h           | 250 ++++++++++++++
> >  drivers/net/iavf/rte_pmd_iavf_version.map |  13 +
> >  9 files changed, 1081 insertions(+), 147 deletions(-)  create mode
> > 100644 drivers/net/iavf/rte_pmd_iavf.h
> >
> 
> 
> > +enum iavf_flex_desc_type {
> > +IAVF_FLEX_DESC_NONE,
> > +IAVF_FLEX_DESC_VLAN,
> > +IAVF_FLEX_DESC_IPV4,
> > +IAVF_FLEX_DESC_IPV6,
> > +IAVF_FLEX_DESC_IPV6_FLOW,
> > +IAVF_FLEX_DESC_TCP,
> > +IAVF_FLEX_DESC_OVS,
> > +IAVF_FLEX_DESC_IP_OFFSET,
> > +IAVF_FLEX_DESC_MAX,
> > +};
> 
> The vector PMD will also support extract the above data type ? Take ice as an
> example, if user specifies the 'proto_xtr', the vector Rx path will be disabled,
> it will be handled in C function.
> 
> enum proto_xtr_type {
> PROTO_XTR_NONE,
> PROTO_XTR_VLAN,
> PROTO_XTR_IPV4,
> PROTO_XTR_IPV6,
> PROTO_XTR_IPV6_FLOW,
> PROTO_XTR_TCP,
> PROTO_XTR_IP_OFFSET,
> PROTO_XTR_MAX /* The last one */
> };
> 
> static inline int
> ice_rx_vec_queue_default(struct ice_rx_queue *rxq) { ...
> 
> if (rxq->proto_xtr != PROTO_XTR_NONE)
> return -1;
> 
> return 0;
> }
> 

You are right, vector will not support extraction, the version lack of handling for that.

> 
> > --
> > 2.20.1
> 



More information about the dev mailing list