[dpdk-dev] [PATCH] app/testpmd: fix io fwd mode to forward VLAN packets

Wu, Jingjing jingjing.wu at intel.com
Thu Jun 29 07:36:24 CEST 2017



> -----Original Message-----
> From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of Ajit Khaparde
> Sent: Thursday, June 29, 2017 11:06 AM
> To: dev at dpdk.org
> Subject: [dpdk-dev] [PATCH] app/testpmd: fix io fwd mode to forward VLAN
> packets
> 
> In io fwd mode, while the received VLAN packets are forwarded for transmit,
> the ol_flags are not updated appropriately to indicate presence of VLAN tags in
> the Tx path. This patch fixes that.
> 
> Signed-off-by: Ajit Khaparde <ajit.khaparde at broadcom.com>
> ---
>  app/test-pmd/iofwd.c | 15 +++++++++++++++
>  1 file changed, 15 insertions(+)
> 
> diff --git a/app/test-pmd/iofwd.c b/app/test-pmd/iofwd.c index
> 15cb4a2..997d3c3 100644
> --- a/app/test-pmd/iofwd.c
> +++ b/app/test-pmd/iofwd.c
> @@ -91,6 +91,7 @@ pkt_burst_io_forward(struct fwd_stream *fs)  #ifdef
> RTE_TEST_PMD_RECORD_CORE_CYCLES
>  	start_tsc = rte_rdtsc();
>  #endif
> +	int i;
> 
>  	/*
>  	 * Receive a burst of packets and forward them.
> @@ -104,6 +105,20 @@ pkt_burst_io_forward(struct fwd_stream *fs)  #ifdef
> RTE_TEST_PMD_RECORD_BURST_STATS
>  	fs->rx_burst_stats.pkt_burst_spread[nb_rx]++;
>  #endif
> +
> +	for (i = 0; i < nb_rx; i++) {
> +		uint64_t tx_ol_flags = 0, rx_ol_flags = pkts_burst[i]->ol_flags;
> +
> +		if (rx_ol_flags & PKT_RX_VLAN_PKT)
> +			tx_ol_flags |= PKT_TX_VLAN_PKT;
> +		else if (rx_ol_flags & PKT_RX_QINQ_PKT)
> +			tx_ol_flags |= PKT_TX_QINQ_PKT;
> +
> +		pkts_burst[i]->ol_flags = 0;
> +		pkts_burst[i]->ol_flags = tx_ol_flags;
> +
> +	}
> +

The iofwd engine is an fwd engine what just calls tx_burst and rx_burst,
it is purely fwd without carrying any offload features. 
If you'd like to demonstrate the vlan offload feature, you can other fwd engine
Such as txonly, macfwd......

Thanks
Jingjing


More information about the dev mailing list