From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 6F0D442C2C; Mon, 5 Jun 2023 03:24:27 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 486B040DF6; Mon, 5 Jun 2023 03:24:27 +0200 (CEST) Received: from szxga03-in.huawei.com (szxga03-in.huawei.com [45.249.212.189]) by mails.dpdk.org (Postfix) with ESMTP id F20B64003C for ; Mon, 5 Jun 2023 03:24:24 +0200 (CEST) Received: from dggpeml500011.china.huawei.com (unknown [172.30.72.56]) by szxga03-in.huawei.com (SkyGuard) with ESMTP id 4QZG7M6mM2zLmXL; Mon, 5 Jun 2023 09:22:39 +0800 (CST) Received: from [10.67.101.191] (10.67.101.191) by dggpeml500011.china.huawei.com (7.185.36.84) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.23; Mon, 5 Jun 2023 09:24:20 +0800 Message-ID: <357cf3d6-debe-54a6-6b34-4d3a9140b7ec@huawei.com> Date: Mon, 5 Jun 2023 09:24:19 +0800 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.11.0 Subject: Re: [PATCH v4 1/2] ethdev: add API to check if queue is valid Content-Language: en-US To: Ferruh Yigit , CC: , , , , , , , , References: <20230516110021.1801443-1-huangdengdui@huawei.com> <20230602075211.3628165-1-huangdengdui@huawei.com> <20230602075211.3628165-2-huangdengdui@huawei.com> From: huangdengdui In-Reply-To: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit X-Originating-IP: [10.67.101.191] X-ClientProxiedBy: dggems702-chm.china.huawei.com (10.3.19.179) To dggpeml500011.china.huawei.com (7.185.36.84) X-CFilter-Loop: Reflected X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org On 2023/6/2 20:47, Ferruh Yigit wrote: > On 6/2/2023 8:52 AM, Dengdui Huang wrote: >> The API rte_eth_dev_is_valid_rxq/txq which >> is used to check if Rx/Tx queue is valid. >> If the queue has been setup, it is considered valid. >> >> Signed-off-by: Dengdui Huang >> --- >> doc/guides/rel_notes/release_23_07.rst | 6 ++++ >> lib/ethdev/rte_ethdev.c | 22 +++++++++++++++ >> lib/ethdev/rte_ethdev.h | 38 ++++++++++++++++++++++++++ >> lib/ethdev/version.map | 2 ++ >> 4 files changed, 68 insertions(+) >> >> diff --git a/doc/guides/rel_notes/release_23_07.rst b/doc/guides/rel_notes/release_23_07.rst >> index 0d3cada5d0..1332fa3a5a 100644 >> --- a/doc/guides/rel_notes/release_23_07.rst >> +++ b/doc/guides/rel_notes/release_23_07.rst >> @@ -83,6 +83,12 @@ New Features >> for new capability registers, large passthrough BAR and some >> performance enhancements for UPT. >> >> +* **Added ethdev Rx/Tx queue ID check API.** >> + >> + Added ethdev Rx/Tx queue ID check API which provides functions >> + for check if Rx/Tx queue is valid. If the queue has been setup, >> + it is considered valid. >> + >> > > Can you please move the release note update to up, before rte_flow > updates, the expected order is documented in section comment. > >> Removed Items >> ------------- >> diff --git a/lib/ethdev/rte_ethdev.c b/lib/ethdev/rte_ethdev.c >> index d46e74504e..a134928c8a 100644 >> --- a/lib/ethdev/rte_ethdev.c >> +++ b/lib/ethdev/rte_ethdev.c >> @@ -771,6 +771,28 @@ eth_dev_validate_tx_queue(const struct rte_eth_dev *dev, uint16_t tx_queue_id) >> return 0; >> } >> >> +int >> +rte_eth_dev_is_valid_rxq(uint16_t port_id, uint16_t queue_id) >> +{ >> + struct rte_eth_dev *dev; >> + >> + RTE_ETH_VALID_PORTID_OR_ERR_RET(port_id, -ENODEV); >> + dev = &rte_eth_devices[port_id]; >> + >> + return eth_dev_validate_rx_queue(dev, queue_id); >> +} >> + >> +int >> +rte_eth_dev_is_valid_txq(uint16_t port_id, uint16_t queue_id) >> +{ >> + struct rte_eth_dev *dev; >> + >> + RTE_ETH_VALID_PORTID_OR_ERR_RET(port_id, -ENODEV); >> + dev = &rte_eth_devices[port_id]; >> + >> + return eth_dev_validate_tx_queue(dev, queue_id); >> +} >> + >> int >> rte_eth_dev_rx_queue_start(uint16_t port_id, uint16_t rx_queue_id) >> { >> diff --git a/lib/ethdev/rte_ethdev.h b/lib/ethdev/rte_ethdev.h >> index 9932413c33..4ef803c244 100644 >> --- a/lib/ethdev/rte_ethdev.h >> +++ b/lib/ethdev/rte_ethdev.h >> @@ -2666,6 +2666,44 @@ int rte_eth_dev_socket_id(uint16_t port_id); >> */ >> int rte_eth_dev_is_valid_port(uint16_t port_id); >> >> +/** >> + * @warning >> + * @b EXPERIMENTAL: this API may change, or be removed, without prior notice >> + * >> + * Check if Rx queue is valid. If the queue has been setup, >> + * it is considered valid. >> + * >> + * @param port_id >> + * The port identifier of the Ethernet device. >> + * @param queue_id >> + * The index of the receive queue. >> + * @return >> + * - -ENODEV: if *port_id* is valid. > > s/valid/invalid ? > >> + * - -EINVAL: if queue is out of range or not been setup. > > "if queue_id is out of range or queue is not been setup" ? > >> + * - 0 if Rx queue is valid. >> + */ >> +__rte_experimental >> +int rte_eth_dev_is_valid_rxq(uint16_t port_id, uint16_t queue_id); >> + >> +/** >> + * @warning >> + * @b EXPERIMENTAL: this API may change, or be removed, without prior notice >> + * >> + * Check if Tx queue is valid. If the queue has been setup, >> + * it is considered valid. >> + * >> + * @param port_id >> + * The port identifier of the Ethernet device. >> + * @param queue_id >> + * The index of the transmit queue. >> + * @return >> + * - -ENODEV: if *port_id* is valid. > > s/valid/invalid ? > >> + * - -EINVAL: if queue is out of range or not been setup. > > "if queue_id is out of range or queue is not been setup" ? > >> + * - 0 if Tx queue is valid. >> + */ >> +__rte_experimental >> +int rte_eth_dev_is_valid_txq(uint16_t port_id, uint16_t queue_id); >> + >> /** >> * Start specified Rx queue of a port. It is used when rx_deferred_start >> * flag of the specified queue is true. >> diff --git a/lib/ethdev/version.map b/lib/ethdev/version.map >> index 9d418091ef..3aa6bce156 100644 >> --- a/lib/ethdev/version.map >> +++ b/lib/ethdev/version.map >> @@ -309,6 +309,8 @@ EXPERIMENTAL { >> rte_flow_async_action_list_handle_destroy; >> rte_flow_async_action_list_handle_query_update; >> rte_flow_async_actions_update; >> + rte_eth_dev_is_valid_rxq; >> + rte_eth_dev_is_valid_txq; > > Can you please sort '23.07' block alphabetically? > >> }; >> >> INTERNAL { > Hi Ferruh, Thanks for your review, I will do in v5.