From: Ferruh Yigit <ferruh.yigit@intel.com>
To: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>,
Steve Yang <stevex.yang@intel.com>,
dev@dpdk.org
Cc: wenzhuo.lu@intel.com, beilei.xing@intel.com,
bernard.iremonger@intel.com, asomalap@amd.com,
rahul.lakkireddy@chelsio.com, hemant.agrawal@nxp.com,
sachin.saxena@oss.nxp.com, jia.guo@intel.com,
haiyue.wang@intel.com, g.singh@nxp.com, xuanziyang2@huawei.com,
cloud.wangxiaoyun@huawei.com, zhouguoyang@huawei.com,
xavier.huwei@huawei.com, humin29@huawei.com,
yisen.zhuang@huawei.com, oulijun@huawei.com,
jingjing.wu@intel.com, qiming.yang@intel.com,
qi.z.zhang@intel.com, rosen.xu@intel.com, sthotton@marvell.com,
srinivasan@marvell.com, heinrich.kuhn@netronome.com,
hkalra@marvell.com, jerinj@marvell.com, ndabilpuram@marvell.com,
kirankumark@marvell.com, rmody@marvell.com, shshaikh@marvell.com,
mczekaj@marvell.com, thomas@monjalon.net, ivan.boule@6wind.com,
konstantin.ananyev@intel.com, samuel.gauthier@6wind.com,
david.marchand@6wind.com, shahafs@mellanox.com,
stephen@networkplumber.org, maxime.coquelin@redhat.com,
olivier.matz@6wind.com, lihuisong@huawei.com,
shreyansh.jain@nxp.com, wei.dai@intel.com,
fengchunsong@huawei.com, chenhao164@huawei.com,
tangchengchang@hisilicon.com, helin.zhang@intel.com,
yanglong.wu@intel.com, xiaolong.ye@intel.com, ting.xu@intel.com,
xiaoyun.li@intel.com, dan.wei@intel.com, andy.pei@intel.com,
vattunuru@marvell.com, skori@marvell.com, sony.chacko@qlogic.com,
bruce.richardson@intel.com, ivan.malov@oktetlabs.ru,
rad@semihalf.com, slawomir.rosek@semihalf.com,
kamil.rytarowski@caviumnetworks.com, wei.zhao1@intel.com,
junyux.jiang@intel.com, kumaras@chelsio.com,
girish.nandibasappa@amd.com, rolf.neugebauer@netronome.com,
alejandro.lucero@netronome.com
Subject: Re: [dpdk-dev] [PATCH v2 01/22] ethdev: fix MTU size exceeds max rx packet length
Date: Wed, 13 Jan 2021 10:32:12 +0000 [thread overview]
Message-ID: <00150f49-8778-579d-e6f2-bb2b09fdf243@intel.com> (raw)
In-Reply-To: <a6cd02c0-fb48-6ab7-794d-dd70e24f2493@oktetlabs.ru>
On 12/28/2020 2:51 PM, Andrew Rybchenko wrote:
> On 12/17/20 12:22 PM, Steve Yang wrote:
>> If max rx packet length is smaller then MTU + Ether overhead, that will
>> drop all MTU size packets.
>>
>> Update the MTU size according to the max rx packet and Ether overhead.
>>
>> Fixes: 59d0ecdbf0e1 ("ethdev: MTU accessors")
>>
>> Signed-off-by: Steve Yang <stevex.yang@intel.com>
>> ---
>> lib/librte_ethdev/rte_ethdev.c | 21 ++++++++++++++++++---
>> 1 file changed, 18 insertions(+), 3 deletions(-)
>>
>> diff --git a/lib/librte_ethdev/rte_ethdev.c b/lib/librte_ethdev/rte_ethdev.c
>> index 17ddacc78d..ff6a1e675f 100644
>> --- a/lib/librte_ethdev/rte_ethdev.c
>> +++ b/lib/librte_ethdev/rte_ethdev.c
>> @@ -1292,6 +1292,7 @@ rte_eth_dev_configure(uint16_t port_id, uint16_t nb_rx_q, uint16_t nb_tx_q,
>> struct rte_eth_dev *dev;
>> struct rte_eth_dev_info dev_info;
>> struct rte_eth_conf orig_conf;
>> + uint16_t overhead_len;
>> int diag;
>> int ret;
>>
>> @@ -1323,6 +1324,15 @@ rte_eth_dev_configure(uint16_t port_id, uint16_t nb_rx_q, uint16_t nb_tx_q,
>> if (ret != 0)
>> goto rollback;
>>
>> + /* Get the real Ethernet overhead length */
>> + if (dev_info.max_mtu &&
>
> First of all I'm not sure that we need to handle 0 value
> separately. Or it should be checked separately and trigger
> an error since it is a driver mis-behaviour.
>
Agree. Most probably we can drop it, "dev_info.max_mtu != UINT16_MAX" covers the
case driver doesn't provide any value.
> If kept, it should be compared vs 0 explicitly in accordance
> with DPDK coding style.
>
>> + dev_info.max_mtu != UINT16_MAX &&
>> + dev_info.max_rx_pktlen &&
>
> It should be compared vs 0 explicitly in accordance
> with DPDK coding style.
>
>> + dev_info.max_rx_pktlen > dev_info.max_mtu)
>> + overhead_len = dev_info.max_rx_pktlen - dev_info.max_mtu;
>> + else
>> + overhead_len = RTE_ETHER_HDR_LEN + RTE_ETHER_CRC_LEN;
>> +
>> /* If number of queues specified by application for both Rx and Tx is
>> * zero, use driver preferred values. This cannot be done individually
>> * as it is valid for either Tx or Rx (but not both) to be zero.
>> @@ -1410,13 +1420,18 @@ rte_eth_dev_configure(uint16_t port_id, uint16_t nb_rx_q, uint16_t nb_tx_q,
>> goto rollback;
>> }
>> } else {
>> - if (dev_conf->rxmode.max_rx_pkt_len < RTE_ETHER_MIN_LEN ||
>> - dev_conf->rxmode.max_rx_pkt_len > RTE_ETHER_MAX_LEN)
>> + uint16_t pktlen = dev_conf->rxmode.max_rx_pkt_len;
>> + if (pktlen < RTE_ETHER_MIN_MTU + overhead_len ||
>> + pktlen > RTE_ETHER_MTU + overhead_len)
>
> Alignment looks misleading. Either two tabs or just 4 spaces.
>
>> /* Use default value */
>> dev->data->dev_conf.rxmode.max_rx_pkt_len =
>> - RTE_ETHER_MAX_LEN;
>> + RTE_ETHER_MTU + overhead_len;
>> }
>>
>> + /* Scale the MTU size to adapt max_rx_pkt_len */
>> + dev->data->mtu = dev->data->dev_conf.rxmode.max_rx_pkt_len -
>> + overhead_len;
>> +
>
> Is it expected side effect that re-configure always resets
> previously set MTU. I.e.:
> configure -> set_mtu -> start -> stop -> re-configure
> and set MTU is lost.
>
This is the problem of two APIs updating same/related values, when device
re-configure with a given 'max_rx_pkt_len', can we know if the intentions is
update to the value to new provided 'max_rx_pkt_len' or not?
For this case if user want to keep the MTU value, can read the MTU from device
first and set 'max_rx_pkt_len' according it.
And we can reduce to updating the MTU in the configure() only when JUMBO frame
offload is requested, that should be when the 'max_rx_pkt_len' is valid only.
>> /*
>> * If LRO is enabled, check that the maximum aggregated packet
>> * size is supported by the configured device.
>>
>
next prev parent reply other threads:[~2021-01-13 10:32 UTC|newest]
Thread overview: 115+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-12-09 3:16 [dpdk-dev] [PATCH v1 00/12] fix rx packets dropped issue Steve Yang
2020-12-09 3:16 ` [dpdk-dev] [PATCH v1 01/12] net/dpaa2: fix the jumbo frame flag condition for mtu set Steve Yang
2020-12-09 3:16 ` [dpdk-dev] [PATCH v1 02/12] net/e1000: " Steve Yang
2020-12-09 3:16 ` [dpdk-dev] [PATCH v1 03/12] net/hns3: " Steve Yang
2020-12-09 3:16 ` [dpdk-dev] [PATCH v1 04/12] net/i40e: fix the jumbo frame flag condition Steve Yang
2020-12-09 3:16 ` [dpdk-dev] [PATCH v1 05/12] net/iavf: " Steve Yang
2020-12-09 3:16 ` [dpdk-dev] [PATCH v1 06/12] net/ice: " Steve Yang
2020-12-09 3:16 ` [dpdk-dev] [PATCH v1 07/12] net/ipn3ke: fix the jumbo frame flag condition for mtu set Steve Yang
2020-12-09 3:16 ` [dpdk-dev] [PATCH v1 08/12] net/octeontx: " Steve Yang
2020-12-09 3:16 ` [dpdk-dev] [PATCH v1 09/12] net/octeontx2: fix the jumbo frame flag condition for mtu Steve Yang
2020-12-21 7:16 ` [dpdk-dev] [EXT] " Sunil Kumar Kori
2020-12-09 3:16 ` [dpdk-dev] [PATCH v1 10/12] net/qede: fix the jumbo frame flag condition for mtu set Steve Yang
2020-12-09 3:16 ` [dpdk-dev] [PATCH v1 11/12] net/sfc: " Steve Yang
2020-12-09 3:16 ` [dpdk-dev] [PATCH v1 12/12] net/thunderx: " Steve Yang
2020-12-11 4:31 ` [dpdk-dev] [PATCH v1 00/12] fix rx packets dropped issue Guo, Jia
2020-12-14 17:44 ` Ferruh Yigit
2020-12-17 9:22 ` [dpdk-dev] [PATCH v2 00/22] " Steve Yang
2020-12-17 9:22 ` [dpdk-dev] [PATCH v2 01/22] ethdev: fix MTU size exceeds max rx packet length Steve Yang
2020-12-28 14:51 ` Andrew Rybchenko
2021-01-13 10:32 ` Ferruh Yigit [this message]
2020-12-30 10:19 ` oulijun
[not found] ` <DM6PR11MB43627F10DDAFC9801816FF5BF9D00@DM6PR11MB4362.namprd11.prod.outlook.com>
2021-01-13 10:25 ` Ferruh Yigit
2021-01-13 11:04 ` Ferruh Yigit
2020-12-17 9:22 ` [dpdk-dev] [PATCH v2 02/22] app/testpmd: fix max rx packet length for VLAN packets Steve Yang
2021-01-13 11:26 ` Ferruh Yigit
2020-12-17 9:22 ` [dpdk-dev] [PATCH v2 03/22] net/dpaa: fix the jumbo frame flag condition for mtu set Steve Yang
2020-12-17 9:22 ` [dpdk-dev] [PATCH v2 04/22] net/dpaa2: " Steve Yang
2020-12-17 9:22 ` [dpdk-dev] [PATCH v2 05/22] net/e1000: " Steve Yang
2020-12-18 2:42 ` Guo, Jia
2020-12-17 9:22 ` [dpdk-dev] [PATCH v2 06/22] net/hns3: " Steve Yang
2020-12-17 9:22 ` [dpdk-dev] [PATCH v2 07/22] net/i40e: fix the jumbo frame flag condition Steve Yang
2020-12-18 2:44 ` Guo, Jia
2020-12-17 9:22 ` [dpdk-dev] [PATCH v2 08/22] net/iavf: " Steve Yang
2020-12-17 9:22 ` [dpdk-dev] [PATCH v2 09/22] net/ice: " Steve Yang
2020-12-17 9:23 ` [dpdk-dev] [PATCH v2 10/22] net/ipn3ke: fix the jumbo frame flag condition for mtu set Steve Yang
2020-12-19 0:54 ` Xu, Rosen
2020-12-17 9:23 ` [dpdk-dev] [PATCH v2 11/22] net/octeontx: " Steve Yang
2020-12-21 15:04 ` [dpdk-dev] [EXT] " Harman Kalra
2020-12-17 9:23 ` [dpdk-dev] [PATCH v2 12/22] net/octeontx2: fix the jumbo frame flag condition for mtu Steve Yang
2020-12-18 10:15 ` Nithin Dabilpuram
2020-12-21 7:19 ` [dpdk-dev] [EXT] " Sunil Kumar Kori
2020-12-17 9:23 ` [dpdk-dev] [PATCH v2 13/22] net/qede: fix the jumbo frame flag condition for mtu set Steve Yang
2020-12-17 9:23 ` [dpdk-dev] [PATCH v2 14/22] net/sfc: " Steve Yang
2020-12-17 9:23 ` [dpdk-dev] [PATCH v2 15/22] net/thunderx: " Steve Yang
2020-12-17 9:23 ` [dpdk-dev] [PATCH v2 16/22] net/ixgbe: fix the jumbo frame flag condition Steve Yang
2020-12-18 2:43 ` Guo, Jia
2020-12-17 9:23 ` [dpdk-dev] [PATCH v2 17/22] net/cxgbe: " Steve Yang
2020-12-17 9:23 ` [dpdk-dev] [PATCH v2 18/22] net/axgbe: fix the jumbo frame flag condition for mtu set Steve Yang
2020-12-17 9:23 ` [dpdk-dev] [PATCH v2 19/22] net/enetc: " Steve Yang
2020-12-17 9:23 ` [dpdk-dev] [PATCH v2 20/22] net/hinic: " Steve Yang
2020-12-17 9:23 ` [dpdk-dev] [PATCH v2 21/22] net/nfp: " Steve Yang
2020-12-17 9:23 ` [dpdk-dev] [PATCH v2 22/22] net/liquidio: " Steve Yang
2021-01-13 11:32 ` [dpdk-dev] [PATCH v2 00/22] fix rx packets dropped issue Ferruh Yigit
2021-01-14 9:45 ` [dpdk-dev] [PATCH v3 " Steve Yang
2021-01-14 9:45 ` [dpdk-dev] [PATCH v3 01/22] ethdev: fix MTU size exceeds max rx packet length Steve Yang
2021-01-14 16:36 ` Ferruh Yigit
2021-01-14 17:13 ` Ferruh Yigit
2021-01-14 17:29 ` Andrew Boyer
2021-01-14 20:44 ` Ferruh Yigit
2021-01-15 10:44 ` oulijun
2021-01-18 10:42 ` Ferruh Yigit
2021-01-19 8:46 ` oulijun
2021-01-23 9:05 ` oulijun
2021-01-25 12:22 ` Ferruh Yigit
2021-01-18 7:04 ` [dpdk-dev] [PATCH v4 00/22] fix rx packets dropped issue Steve Yang
2021-01-18 7:04 ` [dpdk-dev] [PATCH v4 01/22] ethdev: fix MTU size exceeds max rx packet length Steve Yang
2021-01-18 7:04 ` [dpdk-dev] [PATCH v4 02/22] app/testpmd: fix max rx packet length for VLAN packets Steve Yang
2021-01-21 15:27 ` Lance Richardson
2021-01-22 14:26 ` Lance Richardson
2021-01-25 12:14 ` Ferruh Yigit
2021-01-18 7:04 ` [dpdk-dev] [PATCH v4 03/22] net/dpaa: fix the jumbo frame flag condition for mtu set Steve Yang
2021-01-18 7:04 ` [dpdk-dev] [PATCH v4 04/22] net/dpaa2: " Steve Yang
2021-01-18 7:04 ` [dpdk-dev] [PATCH v4 05/22] net/e1000: " Steve Yang
2021-01-18 7:04 ` [dpdk-dev] [PATCH v4 06/22] net/hns3: " Steve Yang
2021-01-18 7:04 ` [dpdk-dev] [PATCH v4 07/22] net/i40e: fix the jumbo frame flag condition Steve Yang
2021-01-18 7:04 ` [dpdk-dev] [PATCH v4 08/22] net/iavf: " Steve Yang
2021-01-18 7:04 ` [dpdk-dev] [PATCH v4 09/22] net/ice: " Steve Yang
2021-01-18 7:04 ` [dpdk-dev] [PATCH v4 10/22] net/ipn3ke: fix the jumbo frame flag condition for mtu set Steve Yang
2021-01-18 7:04 ` [dpdk-dev] [PATCH v4 11/22] net/octeontx: " Steve Yang
2021-01-18 7:04 ` [dpdk-dev] [PATCH v4 12/22] net/octeontx2: fix the jumbo frame flag condition for mtu Steve Yang
2021-01-18 7:04 ` [dpdk-dev] [PATCH v4 13/22] net/qede: fix the jumbo frame flag condition for mtu set Steve Yang
2021-01-18 7:04 ` [dpdk-dev] [PATCH v4 14/22] net/sfc: " Steve Yang
2021-01-18 7:04 ` [dpdk-dev] [PATCH v4 15/22] net/thunderx: " Steve Yang
2021-01-18 7:04 ` [dpdk-dev] [PATCH v4 16/22] net/ixgbe: fix the jumbo frame flag condition Steve Yang
2021-01-18 7:04 ` [dpdk-dev] [PATCH v4 17/22] net/cxgbe: " Steve Yang
2021-01-18 7:04 ` [dpdk-dev] [PATCH v4 18/22] net/axgbe: fix the jumbo frame flag condition for mtu set Steve Yang
2021-01-18 7:04 ` [dpdk-dev] [PATCH v4 19/22] net/enetc: " Steve Yang
2021-01-18 7:04 ` [dpdk-dev] [PATCH v4 20/22] net/hinic: " Steve Yang
2021-01-18 7:04 ` [dpdk-dev] [PATCH v4 21/22] net/nfp: " Steve Yang
2021-01-18 7:04 ` [dpdk-dev] [PATCH v4 22/22] net/liquidio: " Steve Yang
2021-01-18 11:54 ` [dpdk-dev] [PATCH v4 00/22] fix rx packets dropped issue Ferruh Yigit
2021-01-14 9:45 ` [dpdk-dev] [PATCH v3 02/22] app/testpmd: fix max rx packet length for VLAN packets Steve Yang
2021-01-14 9:45 ` [dpdk-dev] [PATCH v3 03/22] net/dpaa: fix the jumbo frame flag condition for mtu set Steve Yang
2021-01-14 10:26 ` Hemant Agrawal
2021-01-14 9:46 ` [dpdk-dev] [PATCH v3 04/22] net/dpaa2: " Steve Yang
2021-01-14 10:27 ` Hemant Agrawal
2021-01-14 9:46 ` [dpdk-dev] [PATCH v3 05/22] net/e1000: " Steve Yang
2021-01-14 9:46 ` [dpdk-dev] [PATCH v3 06/22] net/hns3: " Steve Yang
2021-01-18 1:30 ` oulijun
2021-01-14 9:46 ` [dpdk-dev] [PATCH v3 07/22] net/i40e: fix the jumbo frame flag condition Steve Yang
2021-01-14 9:46 ` [dpdk-dev] [PATCH v3 08/22] net/iavf: " Steve Yang
2021-01-14 9:46 ` [dpdk-dev] [PATCH v3 09/22] net/ice: " Steve Yang
2021-01-14 9:46 ` [dpdk-dev] [PATCH v3 10/22] net/ipn3ke: fix the jumbo frame flag condition for mtu set Steve Yang
2021-01-14 9:46 ` [dpdk-dev] [PATCH v3 11/22] net/octeontx: " Steve Yang
2021-01-14 9:46 ` [dpdk-dev] [PATCH v3 12/22] net/octeontx2: fix the jumbo frame flag condition for mtu Steve Yang
2021-01-14 9:46 ` [dpdk-dev] [PATCH v3 13/22] net/qede: fix the jumbo frame flag condition for mtu set Steve Yang
2021-01-14 9:47 ` [dpdk-dev] [PATCH v3 14/22] net/sfc: " Steve Yang
2021-01-14 9:47 ` [dpdk-dev] [PATCH v3 15/22] net/thunderx: " Steve Yang
2021-01-14 9:47 ` [dpdk-dev] [PATCH v3 16/22] net/ixgbe: fix the jumbo frame flag condition Steve Yang
2021-01-14 9:47 ` [dpdk-dev] [PATCH v3 17/22] net/cxgbe: " Steve Yang
2021-01-14 9:47 ` [dpdk-dev] [PATCH v3 18/22] net/axgbe: fix the jumbo frame flag condition for mtu set Steve Yang
2021-01-14 9:47 ` [dpdk-dev] [PATCH v3 19/22] net/enetc: " Steve Yang
2021-01-14 9:47 ` [dpdk-dev] [PATCH v3 20/22] net/hinic: " Steve Yang
2021-01-14 9:47 ` [dpdk-dev] [PATCH v3 21/22] net/nfp: " Steve Yang
2021-01-14 9:47 ` [dpdk-dev] [PATCH v3 22/22] net/liquidio: " Steve Yang
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=00150f49-8778-579d-e6f2-bb2b09fdf243@intel.com \
--to=ferruh.yigit@intel.com \
--cc=alejandro.lucero@netronome.com \
--cc=andrew.rybchenko@oktetlabs.ru \
--cc=andy.pei@intel.com \
--cc=asomalap@amd.com \
--cc=beilei.xing@intel.com \
--cc=bernard.iremonger@intel.com \
--cc=bruce.richardson@intel.com \
--cc=chenhao164@huawei.com \
--cc=cloud.wangxiaoyun@huawei.com \
--cc=dan.wei@intel.com \
--cc=david.marchand@6wind.com \
--cc=dev@dpdk.org \
--cc=fengchunsong@huawei.com \
--cc=g.singh@nxp.com \
--cc=girish.nandibasappa@amd.com \
--cc=haiyue.wang@intel.com \
--cc=heinrich.kuhn@netronome.com \
--cc=helin.zhang@intel.com \
--cc=hemant.agrawal@nxp.com \
--cc=hkalra@marvell.com \
--cc=humin29@huawei.com \
--cc=ivan.boule@6wind.com \
--cc=ivan.malov@oktetlabs.ru \
--cc=jerinj@marvell.com \
--cc=jia.guo@intel.com \
--cc=jingjing.wu@intel.com \
--cc=junyux.jiang@intel.com \
--cc=kamil.rytarowski@caviumnetworks.com \
--cc=kirankumark@marvell.com \
--cc=konstantin.ananyev@intel.com \
--cc=kumaras@chelsio.com \
--cc=lihuisong@huawei.com \
--cc=maxime.coquelin@redhat.com \
--cc=mczekaj@marvell.com \
--cc=ndabilpuram@marvell.com \
--cc=olivier.matz@6wind.com \
--cc=oulijun@huawei.com \
--cc=qi.z.zhang@intel.com \
--cc=qiming.yang@intel.com \
--cc=rad@semihalf.com \
--cc=rahul.lakkireddy@chelsio.com \
--cc=rmody@marvell.com \
--cc=rolf.neugebauer@netronome.com \
--cc=rosen.xu@intel.com \
--cc=sachin.saxena@oss.nxp.com \
--cc=samuel.gauthier@6wind.com \
--cc=shahafs@mellanox.com \
--cc=shreyansh.jain@nxp.com \
--cc=shshaikh@marvell.com \
--cc=skori@marvell.com \
--cc=slawomir.rosek@semihalf.com \
--cc=sony.chacko@qlogic.com \
--cc=srinivasan@marvell.com \
--cc=stephen@networkplumber.org \
--cc=stevex.yang@intel.com \
--cc=sthotton@marvell.com \
--cc=tangchengchang@hisilicon.com \
--cc=thomas@monjalon.net \
--cc=ting.xu@intel.com \
--cc=vattunuru@marvell.com \
--cc=wei.dai@intel.com \
--cc=wei.zhao1@intel.com \
--cc=wenzhuo.lu@intel.com \
--cc=xavier.huwei@huawei.com \
--cc=xiaolong.ye@intel.com \
--cc=xiaoyun.li@intel.com \
--cc=xuanziyang2@huawei.com \
--cc=yanglong.wu@intel.com \
--cc=yisen.zhuang@huawei.com \
--cc=zhouguoyang@huawei.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).