[dpdk-dev] [PATCH v9] net/ice: optimize protocol extraction by dynamic mbuf API

Wang, Haiyue haiyue.wang at intel.com
Fri Nov 8 15:01:53 CET 2019


Hi Thomas,

> -----Original Message-----
> From: Thomas Monjalon <thomas at monjalon.net>
> Sent: Friday, November 8, 2019 20:55
> To: Wang, Haiyue <haiyue.wang at intel.com>
> Cc: dev at dpdk.org; olivier.matz at 6wind.com; Ye, Xiaolong <xiaolong.ye at intel.com>; Yigit, Ferruh
> <ferruh.yigit at intel.com>
> Subject: Re: [dpdk-dev] [PATCH v9] net/ice: optimize protocol extraction by dynamic mbuf API
> 
> 07/11/2019 11:44, Haiyue Wang:
> > --- a/drivers/net/ice/rte_pmd_ice_version.map
> > +++ b/drivers/net/ice/rte_pmd_ice_version.map
> > +EXPERIMENTAL {
> > +	global:
> > +
> > +	# added in 19.11
> > +	rte_net_ice_dynfield_proto_xtr_metadata_offs;
> > +	rte_net_ice_dynflag_proto_xtr_vlan_mask;
> > +	rte_net_ice_dynflag_proto_xtr_ipv4_mask;
> > +	rte_net_ice_dynflag_proto_xtr_ipv6_mask;
> > +	rte_net_ice_dynflag_proto_xtr_ipv6_flow_mask;
> > +	rte_net_ice_dynflag_proto_xtr_tcp_mask;
> > +};
> 
> Given that you provide some functions to access to the metadata,
> why do you need to export these flags and field in the .map?
>
> However, the functions are missing in the .map.
> Did you try to compile as a shared library?
> 

These functions are 'static inline', no need to be exported in the
.map. And the macros like 'PKT_RX_DYNF_PROTO_XTR_XXX', in fact, their
real definitions are global values defined in rte_pmd_ice like:
rte_net_ice_dynflag_proto_xtr_xxx_mask.

Since rte_pmd_ice are required to compiled as a shared library, so
it is needed to export these flags and field in the .map.

This design is referred to the below upstream practice about dynamic
mbuf.

commit 7743e81854944ed17df05bfdcba26556cb41ca0c
Author: Viacheslav Ovsiienko <viacheslavo at mellanox.com>
Date:   Tue Nov 5 14:19:30 2019 +0000

    ethdev: extend flow metadata

--- a/lib/librte_ethdev/rte_ethdev_version.map
+++ b/lib/librte_ethdev/rte_ethdev_version.map
@@ -289,4 +289,7 @@ EXPERIMENTAL {
        rte_eth_rx_hairpin_queue_setup;
        rte_eth_tx_burst_mode_get;
        rte_eth_tx_hairpin_queue_setup;
+       rte_flow_dynf_metadata_offs;
+       rte_flow_dynf_metadata_mask;
+       rte_flow_dynf_metadata_register;
 };


More information about the dev mailing list