[dpdk-dev] [PATCH v7 1/1] app/testpmd: fix max rx packet length for VLAN packets
Ferruh Yigit
ferruh.yigit at intel.com
Thu Oct 29 09:41:05 CET 2020
On 10/28/2020 3:03 AM, SteveX Yang wrote:
> When the max rx packet length is smaller than the sum of mtu size and
> ether overhead size, it should be enlarged, otherwise the VLAN packets
> will be dropped.
>
> Fixes: 35b2d13fd6fd ("net: add rte prefix to ether defines")
>
> Signed-off-by: SteveX Yang <stevex.yang at intel.com>
> ---
> app/test-pmd/testpmd.c | 20 ++++++++++++++++++++
> 1 file changed, 20 insertions(+)
>
> diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c
> index 33fc0fddf..754066950 100644
> --- a/app/test-pmd/testpmd.c
> +++ b/app/test-pmd/testpmd.c
> @@ -1421,6 +1421,7 @@ 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;
> @@ -1457,6 +1458,25 @@ 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;
> +
> + /*
> + * Workaround: only adapt to RTE_ETHER_MAX_LEN as
> + * jumbo frame condition.
> + */
> + if (port->dev_conf.rxmode.max_rx_pkt_len > RTE_ETHER_MAX_LEN) {
> + port->dev_conf.rxmode.offloads |=
> + DEV_RX_OFFLOAD_JUMBO_FRAME;
> + }
I think this jumbo frame set can be dropped, above just set the frame size as
"RTE_ETHER_MTU + overhead_len", so it can't be jumbo frame, right?
More information about the dev
mailing list