Thread (2 messages) 2 messages, 2 authors, 2017-06-29

Re: [PATCH] app/testpmd: fix io fwd mode to forward VLAN packets

From: Wu, Jingjing <hidden>
Date: 2017-06-29 05:36:28

quoted hunk ↗ jump to hunk
-----Original Message-----
From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Ajit Khaparde
Sent: Thursday, June 29, 2017 11:06 AM
To: dev@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@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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help