[dpdk-dev] [RFC 3/3] examples: add Rx ptype offload

Pavan Nikhilesh Bhagavatula pbhagavatula at marvell.com
Tue Aug 6 15:57:14 CEST 2019



>-----Original Message-----
>From: Ananyev, Konstantin <konstantin.ananyev at intel.com>
>Sent: Tuesday, August 6, 2019 2:50 PM
>To: Pavan Nikhilesh Bhagavatula <pbhagavatula at marvell.com>; Jerin
>Jacob Kollanukkaran <jerinj at marvell.com>; Hunt, David
><david.hunt at intel.com>; Kovacevic, Marko
><marko.kovacevic at intel.com>; Ori Kam <orika at mellanox.com>;
>Richardson, Bruce <bruce.richardson at intel.com>; De Lara Guarch,
>Pablo <pablo.de.lara.guarch at intel.com>; Nicolau, Radu
><radu.nicolau at intel.com>; Akhil Goyal <akhil.goyal at nxp.com>;
>Kantecki, Tomasz <tomasz.kantecki at intel.com>; Mcnamara, John
><john.mcnamara at intel.com>; Van Haaren, Harry
><harry.van.haaren at intel.com>; Li, Xiaoyun <xiaoyun.li at intel.com>
>Cc: dev at dpdk.org
>Subject: RE: [dpdk-dev] [RFC 3/3] examples: add Rx ptype offload
>> -----Original Message-----
>> From: pbhagavatula at marvell.com
>[mailto:pbhagavatula at marvell.com]
>> Sent: Tuesday, August 6, 2019 9:02 AM
>> To: jerinj at marvell.com; Ananyev, Konstantin
><konstantin.ananyev at intel.com>; Hunt, David
><david.hunt at intel.com>; Kovacevic, Marko
>> <marko.kovacevic at intel.com>; Ori Kam <orika at mellanox.com>;
>Richardson, Bruce <bruce.richardson at intel.com>; De Lara Guarch,
>Pablo
>> <pablo.de.lara.guarch at intel.com>; Nicolau, Radu
><radu.nicolau at intel.com>; Akhil Goyal <akhil.goyal at nxp.com>;
>Kantecki, Tomasz
>> <tomasz.kantecki at intel.com>; Mcnamara, John
><john.mcnamara at intel.com>; Van Haaren, Harry
><harry.van.haaren at intel.com>; Li,
>> Xiaoyun <xiaoyun.li at intel.com>
>> Cc: dev at dpdk.org; Pavan Nikhilesh <pbhagavatula at marvell.com>
>> Subject: [dpdk-dev] [RFC 3/3] examples: add Rx ptype offload
>>
>> From: Pavan Nikhilesh <pbhagavatula at marvell.com>
>>
>> Add DEV_RX_OFFLOAD_PTYPE as a offload requirement for applicable
>> examples.
>>
>> Signed-off-by: Pavan Nikhilesh <pbhagavatula at marvell.com>
>> ---
>>  examples/ip_fragmentation/main.c                | 7 +++++++
>>  examples/l3fwd-power/main.c                     | 8 ++++++++
>>  examples/l3fwd/main.c                           | 9 +++++++++
>>  examples/performance-thread/l3fwd-thread/main.c | 9 +++++++++
>>  examples/tep_termination/vxlan_setup.c          | 1 +
>>  5 files changed, 34 insertions(+)
>>
>> diff --git a/examples/ip_fragmentation/main.c
>b/examples/ip_fragmentation/main.c
>> index 324d60773..2a9895542 100644
>> --- a/examples/ip_fragmentation/main.c
>> +++ b/examples/ip_fragmentation/main.c
>> @@ -904,6 +904,13 @@ main(int argc, char **argv)
>>
>>  		/* limit the frame size to the maximum supported by
>NIC */
>>  		rte_eth_dev_info_get(portid, &dev_info);
>> +
>> +		if (dev_info.rx_offload_capa &
>DEV_RX_OFFLOAD_PTYPE)
>> +			local_port_conf.rxmode.offloads |=
>DEV_RX_OFFLOAD_PTYPE;
>> +
>> +		if (dev_info.tx_offload_capa &
>DEV_TX_OFFLOAD_MBUF_FAST_FREE)
>> +			local_port_conf.txmode.offloads |=
>> +				DEV_TX_OFFLOAD_MBUF_FAST_FREE;
>
>I didn't look at the rest of the patch series yet, but these 3 lines above
>seems wrong.
>and not related to that subject.
>Probably something wrong with your merge process.

Ack. I will remove it in the next version.

>Check
>commit ed553e3db4a84af0ddac0d898476333d61adb93a
>Author: Sunil Kumar Kori <skori at marvell.com>
>Date:   Thu Jul 25 13:54:10 2019 +0530
>
>    examples/ip_frag: remove Tx fast free offload flag
>
>
>>  		local_port_conf.rxmode.max_rx_pkt_len = RTE_MIN(
>>  		    dev_info.max_rx_pktlen,
>>  		    local_port_conf.rxmode.max_rx_pkt_len);
>> diff --git a/examples/l3fwd-power/main.c b/examples/l3fwd-
>power/main.c
>> index fd8d9528f..875d60c06 100644
>> --- a/examples/l3fwd-power/main.c
>> +++ b/examples/l3fwd-power/main.c
>> @@ -2261,6 +2261,14 @@ main(int argc, char **argv)
>>  		dev_rxq_num = dev_info.max_rx_queues;
>>  		dev_txq_num = dev_info.max_tx_queues;
>>
>> +		if (dev_info.rx_offload_capa &
>DEV_RX_OFFLOAD_PTYPE) {
>> +			if (!parse_ptype)
>> +				port_conf.rxmode.offloads |=
>> +					DEV_RX_OFFLOAD_PTYPE;
>> +		} else {
>> +			parse_ptype = 1;
>> +		}
>> +
>>  		nb_rx_queue = get_port_n_rx_queues(portid);
>>  		if (nb_rx_queue > dev_rxq_num)
>>  			rte_exit(EXIT_FAILURE,
>> diff --git a/examples/l3fwd/main.c b/examples/l3fwd/main.c
>> index 3800bad19..dfee880a0 100644
>> --- a/examples/l3fwd/main.c
>> +++ b/examples/l3fwd/main.c
>> @@ -875,6 +875,15 @@ main(int argc, char **argv)
>>  			nb_rx_queue, (unsigned)n_tx_queue );
>>
>>  		rte_eth_dev_info_get(portid, &dev_info);
>> +
>> +		if (dev_info.rx_offload_capa &
>DEV_RX_OFFLOAD_PTYPE) {
>> +			if (!parse_ptype)
>> +				local_port_conf.rxmode.offloads |=
>> +					DEV_RX_OFFLOAD_PTYPE;
>> +		} else {
>> +			parse_ptype = 1;
>> +		}
>> +
>>  		if (dev_info.tx_offload_capa &
>DEV_TX_OFFLOAD_MBUF_FAST_FREE)
>>  			local_port_conf.txmode.offloads |=
>>  				DEV_TX_OFFLOAD_MBUF_FAST_FREE;
>> diff --git a/examples/performance-thread/l3fwd-thread/main.c
>b/examples/performance-thread/l3fwd-thread/main.c
>> index 49d942407..f033326be 100644
>> --- a/examples/performance-thread/l3fwd-thread/main.c
>> +++ b/examples/performance-thread/l3fwd-thread/main.c
>> @@ -3560,6 +3560,15 @@ main(int argc, char **argv)
>>  		printf("Creating queues: nb_rxq=%d nb_txq=%u... ",
>>  			nb_rx_queue, (unsigned)n_tx_queue);
>>  		rte_eth_dev_info_get(portid, &dev_info);
>> +
>> +		if (dev_info.rx_offload_capa &
>DEV_RX_OFFLOAD_PTYPE) {
>> +			if (!parse_ptype_on)
>> +				port_conf.rxmode.offloads |=
>> +					DEV_RX_OFFLOAD_PTYPE;
>> +		} else {
>> +			parse_ptype_on = 1;
>> +		}
>> +
>>  		if (dev_info.tx_offload_capa &
>DEV_TX_OFFLOAD_MBUF_FAST_FREE)
>>  			local_port_conf.txmode.offloads |=
>>  				DEV_TX_OFFLOAD_MBUF_FAST_FREE;
>> diff --git a/examples/tep_termination/vxlan_setup.c
>b/examples/tep_termination/vxlan_setup.c
>> index 9a0880002..3d2acecd5 100644
>> --- a/examples/tep_termination/vxlan_setup.c
>> +++ b/examples/tep_termination/vxlan_setup.c
>> @@ -69,6 +69,7 @@ uint8_t tep_filter_type[] =
>{RTE_TUNNEL_FILTER_IMAC_TENID,
>>  static struct rte_eth_conf port_conf = {
>>  	.rxmode = {
>>  		.split_hdr_size = 0,
>> +		.offloads = DEV_RX_OFFLOAD_PTYPE,
>>  	},
>>  	.txmode = {
>>  		.mq_mode = ETH_MQ_TX_NONE,
>> --
>> 2.17.1



More information about the dev mailing list