From: Andrew Rybchenko <arybchenko@solarflare.com> To: Dekel Peled <dekelp@mellanox.com>, <john.mcnamara@intel.com>, <marko.kovacevic@intel.com>, <nhorman@tuxdriver.com>, <ajit.khaparde@broadcom.com>, <somnath.kotur@broadcom.com>, <anatoly.burakov@intel.com>, <xuanziyang2@huawei.com>, <cloud.wangxiaoyun@huawei.com>, <zhouguoyang@huawei.com>, <wenzhuo.lu@intel.com>, <konstantin.ananyev@intel.com>, <matan@mellanox.com>, <shahafs@mellanox.com>, <viacheslavo@mellanox.com>, <rmody@marvell.com>, <shshaikh@marvell.com>, <maxime.coquelin@redhat.com>, <tiwei.bie@intel.com>, <zhihong.wang@intel.com>, <yongwang@vmware.com>, <thomas@monjalon.net>, <ferruh.yigit@intel.com>, <jingjing.wu@intel.com>, <bernard.iremonger@intel.com> Cc: <dev@dpdk.org> Subject: Re: [dpdk-dev] [PATCH 1/3] ethdev: support API to set max LRO packet size Date: Tue, 5 Nov 2019 15:39:30 +0300 Message-ID: <974efb0f-c450-8f1c-f378-91b34a71f286@solarflare.com> (raw) In-Reply-To: <325fd4151ea28e25a9c12ae028650fe3d6d022c0.1572943006.git.dekelp@mellanox.com> On 11/5/19 11:40 AM, Dekel Peled wrote: > This patch implements [1], to support API for configuration and > validation of max size for LRO aggregated packet. > API change notice [2] is removed, and release notes for 19.11 > are updated accordingly. > > Various PMDs using LRO offload are updated, the new data members are > initialized to ensure they don't fail validation. > > [1] http://patches.dpdk.org/patch/58217/ > [2] http://patches.dpdk.org/patch/57492/ > > Signed-off-by: Dekel Peled <dekelp@mellanox.com> Few comments below, otherwise Reviewed-by: Andrew Rybchenko <arybchenko@solarflare.com> [snip] > diff --git a/lib/librte_ethdev/rte_ethdev.c b/lib/librte_ethdev/rte_ethdev.c > index 85ab5f0..2f52090 100644 > --- a/lib/librte_ethdev/rte_ethdev.c > +++ b/lib/librte_ethdev/rte_ethdev.c > @@ -1156,6 +1156,26 @@ struct rte_eth_dev * > return name; > } > > +static inline int > +rte_eth_check_lro_pkt_size(uint16_t port_id, uint32_t config_size, > + uint32_t dev_info_size) As I understand Thomas prefers static functions without rte_eth_ prefix. I think it is reasonable. > +{ > + int ret = 0; > + > + if (config_size > dev_info_size) { > + RTE_ETHDEV_LOG(ERR, "Ethdev port_id=%d max_lro_pkt_size %u > " > + "max allowed value %u\n", > + port_id, config_size, dev_info_size); > + ret = -EINVAL; > + } else if (config_size < RTE_ETHER_MIN_LEN) { Shouldn't config_size == 0 fallback to maximum? (I don't know and I simply would like to get comments on it) > + RTE_ETHDEV_LOG(ERR, "Ethdev port_id=%d max_lro_pkt_size %u < " > + "min allowed value %u\n", port_id, config_size, > + (unsigned int)RTE_ETHER_MIN_LEN); > + ret = -EINVAL; > + } > + return ret; > +} > + > int > rte_eth_dev_configure(uint16_t port_id, uint16_t nb_rx_q, uint16_t nb_tx_q, > const struct rte_eth_conf *dev_conf) > @@ -1286,6 +1306,18 @@ struct rte_eth_dev * > RTE_ETHER_MAX_LEN; > } > > + /* > + * If LRO is enabled, check that the maximum aggregated packet > + * size is supported by the configured device. > + */ > + if (dev_conf->rxmode.offloads & DEV_RX_OFFLOAD_TCP_LRO) { > + ret = rte_eth_check_lro_pkt_size( > + port_id, dev_conf->rxmode.max_lro_pkt_size, > + dev_info.max_lro_pkt_size); > + if (ret) if (ret != 0) https://doc.dpdk.org/guides/contributing/coding_style.html#function-calls and the style dominates in rte_ethdev.c > + goto rollback; > + } > + > /* Any requested offloading must be within its device capabilities */ > if ((dev_conf->rxmode.offloads & dev_info.rx_offload_capa) != > dev_conf->rxmode.offloads) { > @@ -1790,6 +1822,18 @@ struct rte_eth_dev * > return -EINVAL; > } > > + /* > + * If LRO is enabled, check that the maximum aggregated packet > + * size is supported by the configured device. > + */ > + if (local_conf.offloads & DEV_RX_OFFLOAD_TCP_LRO) { > + int ret = rte_eth_check_lro_pkt_size(port_id, > + dev->data->dev_conf.rxmode.max_lro_pkt_size, > + dev_info.max_lro_pkt_size); > + if (ret) if (ret != 0) https://doc.dpdk.org/guides/contributing/coding_style.html#function-calls and the style dominates in rte_ethdev.c > + return ret; > + } > + > ret = (*dev->dev_ops->rx_queue_setup)(dev, rx_queue_id, nb_rx_desc, > socket_id, &local_conf, mp); > if (!ret) { > [snip]
next prev parent reply index Thread overview: 79+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-11-05 8:40 [dpdk-dev] [PATCH 0/3] " Dekel Peled 2019-11-05 8:40 ` [dpdk-dev] [PATCH 1/3] ethdev: " Dekel Peled 2019-11-05 12:39 ` Andrew Rybchenko [this message] 2019-11-05 13:09 ` Thomas Monjalon 2019-11-05 14:18 ` Dekel Peled 2019-11-05 14:27 ` Andrew Rybchenko 2019-11-05 14:51 ` Dekel Peled 2019-11-05 8:40 ` [dpdk-dev] [PATCH 2/3] net/mlx5: use " Dekel Peled 2019-11-05 8:40 ` [dpdk-dev] [PATCH 3/3] app/testpmd: " Dekel Peled 2019-11-05 9:35 ` [dpdk-dev] [PATCH 0/3] support " Matan Azrad 2019-11-06 11:34 ` [dpdk-dev] [PATCH v2 " Dekel Peled 2019-11-06 11:34 ` [dpdk-dev] [PATCH v2 1/3] ethdev: " Dekel Peled 2019-11-06 12:26 ` Thomas Monjalon 2019-11-06 12:39 ` Dekel Peled 2019-11-06 11:34 ` [dpdk-dev] [PATCH v2 2/3] net/mlx5: use " Dekel Peled 2019-11-06 11:34 ` [dpdk-dev] [PATCH v2 3/3] app/testpmd: " Dekel Peled 2019-11-06 12:35 ` Iremonger, Bernard 2019-11-06 13:14 ` Dekel Peled 2019-11-06 14:28 ` [dpdk-dev] [PATCH v3 0/3] support " Dekel Peled 2019-11-06 14:28 ` [dpdk-dev] [PATCH v3 1/3] ethdev: " Dekel Peled 2019-11-07 11:57 ` [dpdk-dev] [EXT] " Shahed Shaikh 2019-11-07 12:18 ` Dekel Peled 2019-11-06 14:28 ` [dpdk-dev] [PATCH v3 2/3] net/mlx5: use " Dekel Peled 2019-11-06 14:28 ` [dpdk-dev] [PATCH v3 3/3] app/testpmd: " Dekel Peled 2019-11-06 16:41 ` [dpdk-dev] [PATCH v3 0/3] support " Iremonger, Bernard 2019-11-07 6:10 ` Dekel Peled 2019-11-07 12:35 ` [dpdk-dev] [PATCH v4 " Dekel Peled 2019-11-07 12:35 ` [dpdk-dev] [PATCH v4 1/3] ethdev: " Dekel Peled 2019-11-07 20:15 ` Ferruh Yigit 2019-11-08 6:54 ` Matan Azrad 2019-11-08 9:19 ` Ferruh Yigit 2019-11-08 10:10 ` Matan Azrad 2019-11-08 11:37 ` Ferruh Yigit 2019-11-08 11:56 ` Matan Azrad 2019-11-08 12:51 ` Ferruh Yigit 2019-11-08 16:11 ` Dekel Peled 2019-11-08 16:53 ` Ferruh Yigit 2019-11-09 18:20 ` Matan Azrad 2019-11-10 23:40 ` Ananyev, Konstantin 2019-11-11 8:01 ` Matan Azrad 2019-11-12 18:31 ` Ananyev, Konstantin 2019-11-11 11:15 ` Ferruh Yigit 2019-11-11 11:33 ` Matan Azrad 2019-11-11 12:21 ` Ferruh Yigit 2019-11-11 13:32 ` Matan Azrad 2019-11-08 13:11 ` Ananyev, Konstantin 2019-11-08 14:10 ` Dekel Peled 2019-11-08 14:52 ` Ananyev, Konstantin 2019-11-08 16:08 ` Dekel Peled 2019-11-08 16:28 ` Ananyev, Konstantin 2019-11-09 18:26 ` Matan Azrad 2019-11-10 22:51 ` Ananyev, Konstantin 2019-11-11 6:53 ` Matan Azrad 2019-11-07 12:35 ` [dpdk-dev] [PATCH v4 2/3] net/mlx5: use " Dekel Peled 2019-11-08 9:12 ` Slava Ovsiienko 2019-11-08 9:23 ` Ferruh Yigit 2019-11-07 12:35 ` [dpdk-dev] [PATCH v4 3/3] app/testpmd: " Dekel Peled 2019-11-07 14:20 ` Iremonger, Bernard 2019-11-07 20:25 ` Ferruh Yigit 2019-11-08 6:56 ` Matan Azrad 2019-11-08 13:58 ` Dekel Peled 2019-11-08 6:28 ` [dpdk-dev] [PATCH v4 0/3] support " Matan Azrad 2019-11-08 16:42 ` [dpdk-dev] [PATCH v5 " Dekel Peled 2019-11-08 16:42 ` [dpdk-dev] [PATCH v5 1/3] ethdev: " Dekel Peled 2019-11-10 23:07 ` Ananyev, Konstantin 2019-11-11 7:40 ` Dekel Peled 2019-11-08 16:42 ` [dpdk-dev] [PATCH v5 2/3] net/mlx5: use " Dekel Peled 2019-11-08 16:42 ` [dpdk-dev] [PATCH v5 3/3] app/testpmd: " Dekel Peled 2019-11-10 23:11 ` Ananyev, Konstantin 2019-11-11 7:40 ` Dekel Peled 2019-11-08 23:07 ` [dpdk-dev] [PATCH v6] ethdev: add " Thomas Monjalon 2019-11-10 22:47 ` Ananyev, Konstantin 2019-11-11 17:47 ` [dpdk-dev] [PATCH v7 0/3] support API to set " Dekel Peled 2019-11-11 17:47 ` [dpdk-dev] [PATCH v7 1/3] ethdev: " Dekel Peled 2019-11-12 0:46 ` Ferruh Yigit 2019-11-11 17:47 ` [dpdk-dev] [PATCH v7 2/3] net/mlx5: use " Dekel Peled 2019-11-11 17:47 ` [dpdk-dev] [PATCH v7 3/3] app/testpmd: " Dekel Peled 2019-11-12 0:46 ` Ferruh Yigit 2019-11-12 0:47 ` [dpdk-dev] [PATCH v7 0/3] support " Ferruh Yigit
Reply instructions: You may reply publically 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=974efb0f-c450-8f1c-f378-91b34a71f286@solarflare.com \ --to=arybchenko@solarflare.com \ --cc=ajit.khaparde@broadcom.com \ --cc=anatoly.burakov@intel.com \ --cc=bernard.iremonger@intel.com \ --cc=cloud.wangxiaoyun@huawei.com \ --cc=dekelp@mellanox.com \ --cc=dev@dpdk.org \ --cc=ferruh.yigit@intel.com \ --cc=jingjing.wu@intel.com \ --cc=john.mcnamara@intel.com \ --cc=konstantin.ananyev@intel.com \ --cc=marko.kovacevic@intel.com \ --cc=matan@mellanox.com \ --cc=maxime.coquelin@redhat.com \ --cc=nhorman@tuxdriver.com \ --cc=rmody@marvell.com \ --cc=shahafs@mellanox.com \ --cc=shshaikh@marvell.com \ --cc=somnath.kotur@broadcom.com \ --cc=thomas@monjalon.net \ --cc=tiwei.bie@intel.com \ --cc=viacheslavo@mellanox.com \ --cc=wenzhuo.lu@intel.com \ --cc=xuanziyang2@huawei.com \ --cc=yongwang@vmware.com \ --cc=zhihong.wang@intel.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
DPDK-dev Archive on lore.kernel.org Archives are clonable: git clone --mirror https://lore.kernel.org/dpdk-dev/0 dpdk-dev/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 dpdk-dev dpdk-dev/ https://lore.kernel.org/dpdk-dev \ dev@dpdk.org public-inbox-index dpdk-dev Example config snippet for mirrors Newsgroup available over NNTP: nntp://nntp.lore.kernel.org/org.dpdk.dev AGPL code for this site: git clone https://public-inbox.org/public-inbox.git