[1/1] app/testpmd: revert max Rx packet length adjustment

Message ID 20201105174424.4131345-1-thomas@monjalon.net (mailing list archive)
State Accepted, archived
Headers
Series [1/1] app/testpmd: revert max Rx packet length adjustment |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation success Compilation OK
ci/travis-robot success Travis build: passed
ci/iol-broadcom-Functional success Functional Testing PASS
ci/iol-broadcom-Performance success Performance Testing PASS
ci/iol-testing success Testing PASS
ci/iol-intel-Functional success Functional Testing PASS
ci/iol-intel-Performance success Performance Testing PASS
ci/iol-mellanox-Performance success Performance Testing PASS

Commit Message

Thomas Monjalon Nov. 5, 2020, 5:44 p.m. UTC
  The fix of max_rx_pkt_len for allowing VLAN packets in all cases
was breaking configuration of some drivers. Example with virtio:

	Ethdev port_id=0 max_rx_pkt_len 11229 > max valid value 9728
	Fail to configure port 0

Trying to fix the logic was revealing other issues in some drivers.
That's why it is decided to revert.

The workaround for the original issue would be
to set the MTU explicitly from the application
with rte_eth_dev_set_mtu().

Fixes: f6870a7ed6b3 ("app/testpmd: fix max Rx packet length for VLAN packet")
Cc: stable@dpdk.org

Reported-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
---
 app/test-pmd/testpmd.c | 23 -----------------------
 1 file changed, 23 deletions(-)
  

Comments

Lance Richardson Nov. 5, 2020, 6:02 p.m. UTC | #1
On Thu, Nov 5, 2020 at 12:51 PM Thomas Monjalon <thomas@monjalon.net> wrote:
>
> The fix of max_rx_pkt_len for allowing VLAN packets in all cases
> was breaking configuration of some drivers. Example with virtio:
>
>         Ethdev port_id=0 max_rx_pkt_len 11229 > max valid value 9728
>         Fail to configure port 0
>
> Trying to fix the logic was revealing other issues in some drivers.
> That's why it is decided to revert.
>
> The workaround for the original issue would be
> to set the MTU explicitly from the application
> with rte_eth_dev_set_mtu().
>
> Fixes: f6870a7ed6b3 ("app/testpmd: fix max Rx packet length for VLAN packet")
> Cc: stable@dpdk.org
>
> Reported-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
> Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
> ---
Acked-by: Lance Richardson <lance.richardson@broadcom.com>
  
Ferruh Yigit Nov. 5, 2020, 6:11 p.m. UTC | #2
On 11/5/2020 5:44 PM, Thomas Monjalon wrote:
> The fix of max_rx_pkt_len for allowing VLAN packets in all cases
> was breaking configuration of some drivers. Example with virtio:
> 
> 	Ethdev port_id=0 max_rx_pkt_len 11229 > max valid value 9728
> 	Fail to configure port 0
> 
> Trying to fix the logic was revealing other issues in some drivers.
> That's why it is decided to revert.
> 
> The workaround for the original issue would be
> to set the MTU explicitly from the application
> with rte_eth_dev_set_mtu().
> 

Sent this option as RFC:
https://patches.dpdk.org/patch/83756/

> Fixes: f6870a7ed6b3 ("app/testpmd: fix max Rx packet length for VLAN packet")
> Cc: stable@dpdk.org
> 
> Reported-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
> Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
  
Thomas Monjalon Nov. 5, 2020, 6:18 p.m. UTC | #3
05/11/2020 19:11, Ferruh Yigit:
> On 11/5/2020 5:44 PM, Thomas Monjalon wrote:
> > The fix of max_rx_pkt_len for allowing VLAN packets in all cases
> > was breaking configuration of some drivers. Example with virtio:
> > 
> > 	Ethdev port_id=0 max_rx_pkt_len 11229 > max valid value 9728
> > 	Fail to configure port 0
> > 
> > Trying to fix the logic was revealing other issues in some drivers.
> > That's why it is decided to revert.
> > 
> > The workaround for the original issue would be
> > to set the MTU explicitly from the application
> > with rte_eth_dev_set_mtu().
> > 
> 
> Sent this option as RFC:
> https://patches.dpdk.org/patch/83756/
> 
> > Fixes: f6870a7ed6b3 ("app/testpmd: fix max Rx packet length for VLAN packet")
> > Cc: stable@dpdk.org
> > 
> > Reported-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
> > Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
> Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>

Applied
  

Patch

diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c
index c263121a9a..33fc0fddf5 100644
--- a/app/test-pmd/testpmd.c
+++ b/app/test-pmd/testpmd.c
@@ -1421,7 +1421,6 @@  init_config(void)
 	struct rte_gro_param gro_param;
 	uint32_t gso_types;
 	uint16_t data_size;
-	uint16_t overhead_len;
 	bool warning = 0;
 	int k;
 	int ret;
@@ -1458,28 +1457,6 @@  init_config(void)
 			rte_exit(EXIT_FAILURE,
 				 "rte_eth_dev_info_get() failed\n");
 
-		/* Update the max_rx_pkt_len to have MTU as RTE_ETHER_MTU */
-		if (port->dev_info.max_rx_pktlen && port->dev_info.max_mtu)
-			overhead_len = port->dev_info.max_rx_pktlen -
-				port->dev_info.max_mtu;
-		else
-			overhead_len = RTE_ETHER_HDR_LEN + RTE_ETHER_CRC_LEN;
-
-		port->dev_conf.rxmode.max_rx_pkt_len =
-						RTE_ETHER_MTU + overhead_len;
-
-		/*
-		 * This is workaround to avoid resize max rx packet len.
-		 * Ethdev assumes jumbo frame size must be greater than
-		 * RTE_ETHER_MAX_LEN, and will resize 'max_rx_pkt_len' to
-		 * default value when it is greater than RTE_ETHER_MAX_LEN
-		 * for normal frame.
-		 */
-		if (port->dev_conf.rxmode.max_rx_pkt_len > RTE_ETHER_MAX_LEN) {
-			port->dev_conf.rxmode.offloads |=
-						DEV_RX_OFFLOAD_JUMBO_FRAME;
-		}
-
 		if (!(port->dev_info.tx_offload_capa &
 		      DEV_TX_OFFLOAD_MBUF_FAST_FREE))
 			port->dev_conf.txmode.offloads &=