From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id DF222A04B7; Wed, 14 Oct 2020 16:36:03 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 781A51DE49; Wed, 14 Oct 2020 16:36:01 +0200 (CEST) Received: from wout4-smtp.messagingengine.com (wout4-smtp.messagingengine.com [64.147.123.20]) by dpdk.org (Postfix) with ESMTP id 2FEAA1BDBD for ; Wed, 14 Oct 2020 16:36:00 +0200 (CEST) Received: from compute2.internal (compute2.nyi.internal [10.202.2.42]) by mailout.west.internal (Postfix) with ESMTP id 2F2DCFA5; Wed, 14 Oct 2020 10:35:57 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute2.internal (MEProxy); Wed, 14 Oct 2020 10:35:57 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=monjalon.net; h= from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding:content-type; s=fm2; bh= NHTHnG1tRdjR5tt0AMxxqvegWYycpZt0Y/QqfTZrhxo=; b=tlxQwTKqi/UcjP6O lGVOxFlIre8ClA1g9wpfz5BS8ZuK6a3elx2XHSRsYdnG50j3fV56Vd4x37XtYxw4 vf9gVdYblJc/D0QnN3V+0aYbNo06RrIu77WW73I9ZpcZLH/gOsh0GZEykEFjvByu ZdbkTj/Z49x+Eb1EmFeQd2+QJTOoLb3wiwEb4QtphS0dIEpx6uzCAvMsY6gU9k42 YOJrh6isIqDNzMqTCki3b4iTvI0v3+jOqFEjwwGM6cnLKaVgfMWusSWu8Pq3TD0V nH3PBXKKOJaixzwUoScNdbIPXjMAUvr6jDk1l+e3LSWMnM3bj3R4968PAX9J/+pB 3NbAzw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:content-type :date:from:in-reply-to:message-id:mime-version:references :subject:to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender :x-sasl-enc; s=fm1; bh=NHTHnG1tRdjR5tt0AMxxqvegWYycpZt0Y/QqfTZrh xo=; b=NcrOmVOTxYuVMdVtsB4ZFWzT3eOa9a+GI5hfUgdfPEdkxslM2aSeIpklk XUVYfawbwWJRBu1FUNNKhEARjfIgCOf/qKFxug/jmMvBQ+cSWJPHGRU1PvyvOjiL 3wg1MfX2iC9DjStQXVEL999b8F1udrBpySXXcejcAfhiiXGJZDDF5MUjQfyGGO3m NE9Q7O23i7ulzAdQqW1+ZXHG52eVzIsAKLwHJMbCUlg8VcZRRDGYjS9Xx1ukxeu1 BRT5NzTzDKCw84qOHxqxzun7PVKzfmh6Cdpk6z9ohZ3FyN2uiha/Wy5PLQhZc1Yb 7CvLRf9Hx6SzSkcTPspCpd0uW1HyA== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedujedriedugdejjecutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu uegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenuc fjughrpefhvffufffkjghfggfgtgesthfuredttddtvdenucfhrhhomhepvfhhohhmrghs ucfoohhnjhgrlhhonhcuoehthhhomhgrshesmhhonhhjrghlohhnrdhnvghtqeenucggtf frrghtthgvrhhnpedugefgvdefudfftdefgeelgffhueekgfffhfeujedtteeutdejueei iedvffegheenucfkphepjeejrddufeegrddvtdefrddukeegnecuvehluhhsthgvrhfuih iivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepthhhohhmrghssehmohhnjhgrlhho nhdrnhgvth X-ME-Proxy: Received: from xps.localnet (184.203.134.77.rev.sfr.net [77.134.203.184]) by mail.messagingengine.com (Postfix) with ESMTPA id 7C5AA328005E; Wed, 14 Oct 2020 10:35:54 -0400 (EDT) From: Thomas Monjalon To: Bing Zhao Cc: orika@nvidia.com, ferruh.yigit@intel.com, arybchenko@solarflare.com, mdr@ashroe.eu, nhorman@tuxdriver.com, bernard.iremonger@intel.com, beilei.xing@intel.com, wenzhuo.lu@intel.com, dev@dpdk.org Date: Wed, 14 Oct 2020 16:35:52 +0200 Message-ID: <3492876.G95Fza0IFT@thomas> In-Reply-To: <1602158717-32038-2-git-send-email-bingz@nvidia.com> References: <1602147098-9768-1-git-send-email-bingz@nvidia.com> <1602158717-32038-1-git-send-email-bingz@nvidia.com> <1602158717-32038-2-git-send-email-bingz@nvidia.com> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" Subject: Re: [dpdk-dev] [PATCH v3 1/6] ethdev: add hairpin bind and unbind APIs X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Hi, Cosmetic comments below: 08/10/2020 14:05, Bing Zhao: > +int > +rte_eth_hairpin_bind(uint16_t tx_port, uint16_t rx_port) > +{ > + struct rte_eth_dev *dev; > + int ret; > + > + RTE_ETH_VALID_PORTID_OR_ERR_RET(tx_port, -EINVAL); It should be -ENODEV > + dev = &rte_eth_devices[tx_port]; > + if (!dev->data->dev_started) { > + RTE_ETHDEV_LOG(ERR, "TX port %d is not started", tx_port); > + return -EBUSY; > + } > + > + RTE_FUNC_PTR_OR_ERR_RET(*dev->dev_ops->hairpin_bind, -ENOTSUP); > + ret = (*dev->dev_ops->hairpin_bind)(dev, rx_port); > + if (ret) > + RTE_ETHDEV_LOG(ERR, "Failed to bind hairpin TX %d " > + "to RX %d (%d - all ports)", tx_port, > + rx_port, RTE_MAX_ETHPORTS); Looks like \n is missing. > + > + return ret; > +} > + > +int > +rte_eth_hairpin_unbind(uint16_t tx_port, uint16_t rx_port) Same comments as for bind function. [...] > /** > + * @warning > + * @b EXPERIMENTAL: this API may change, or be removed, without prior notice > + * > + * Bind all hairpin TX queues of one port to the RX queues of the peer port. > + * It is only allowed to call this API after all hairpin queues are configured > + * properly and the devices of TX and peer RX are in started state. "call this API" -> "call this function" "devices of TX" is a strange wording. I would make it simpler: "the devices of TX and peer RX" -> "the devices" > + * > + * @param tx_port > + * The TX port identifier of the Ethernet device. A device does not have a TX port. I think you mean "The identifier of the TX port." > + * @param rx_port > + * The peer RX port identifier of the Ethernet device. Remove "of the Ethernet device" > + * RTE_MAX_ETHPORTS is allowed for the traversal of all devices. > + * RX port ID could have the same value with TX port ID. "same value as" > + * > + * @return > + * - (0) if successful. > + * - (-EINVAL) if bad parameter. > + * - (-EBUSY) if device is not in started state. > + * - (-ENOTSUP) if hardware doesn't support. > + * - Others detailed errors from PMD drivers. Please add ENODEV case, maybe instead of EINVAL. > + */ > +__rte_experimental > +int rte_eth_hairpin_bind(uint16_t tx_port, uint16_t rx_port); > + > +/** > + * @warning > + * @b EXPERIMENTAL: this API may change, or be removed, without prior notice > + * > + * Unbind all hairpin TX queues of one port from the RX queues of the peer port. > + * This should be called before closing the TX or RX devices (optional). After Split the line after the end of sentence and start next one on a fresh line. > + * unbind the hairpin ports pair, it is allowed to bind them again. "unbind" -> "unbinding" > + * Changing queues configuration should be after stopping the device. > + * > + * @param tx_port > + * The TX port identifier of the Ethernet device. > + * @param rx_port > + * The peer RX port identifier of the Ethernet device. > + * RTE_MAX_ETHPORTS is allowed for traversal of all devices. > + * RX port ID could have the same value with TX port ID. > + * > + * @return > + * - (0) if successful. > + * - (-EINVAL) if bad parameter. > + * - (-EBUSY) if device is in stopped state. > + * - (-ENOTSUP) if hardware doesn't support. > + * - Others detailed errors from PMD drivers. Same comments as for the bind function. > + */ > +__rte_experimental > +int rte_eth_hairpin_unbind(uint16_t tx_port, uint16_t rx_port);