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 939ACA054F; Mon, 15 Mar 2021 10:15:20 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 569142425E7; Mon, 15 Mar 2021 10:15:20 +0100 (CET) Received: from new2-smtp.messagingengine.com (new2-smtp.messagingengine.com [66.111.4.224]) by mails.dpdk.org (Postfix) with ESMTP id 795DE4003C for ; Mon, 15 Mar 2021 10:15:18 +0100 (CET) Received: from compute1.internal (compute1.nyi.internal [10.202.2.41]) by mailnew.nyi.internal (Postfix) with ESMTP id 0E01F580977; Mon, 15 Mar 2021 05:15:18 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute1.internal (MEProxy); Mon, 15 Mar 2021 05:15:18 -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=fm3; bh= mcUdW541U34HLumwqGveTrZPmK1DUCXNrUb+fcpNBN8=; b=X8y42fCXYeoiA1sK JgotYIhFlUlcBH/FC0+g3psBc/DjlrNIHhPyM11HZEBzO1nMHfiYtyxbiKIBFwv/ 0KFDY5y+kQgwPb32z3sgktdhGcnYfFoGuYdC/wmODC5po9maicNpHOpt8kHM8Btw mkC89GhDuFh0WlRskwAzfD60nX3qfMdtZpcfsdEkEvrjlKFO4TTih5ZHyZGIpzUt SqkZxhFOrXzdJG3OnfOjnxk0lppEzXu4XYrOIyW9qTeJ7HyBmG9Nqjpy6wf7/IXz KyqEoOQz5y8fbs7xoe87licC9Ld+nIMqtMUteVbicCT7u/lDhY+1E2hsfSEr5znY VkvFXA== 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=fm2; bh=mcUdW541U34HLumwqGveTrZPmK1DUCXNrUb+fcpNB N8=; b=bEB/8R2NZsBAPaegdGFKeOWZfj2TZcm/ZzdzC0RmzfT9UwYM7Q4yIm+hb 0n4eBLvDa+qfcBmImeXbP0vDtPzhVj0iun80u0VAyv6AhdTYIdMmIQZlQ0DtoEH2 +BLB1ioZ4vLAIMs6yAXwYwoeIOG1tE6mSiQanRekUz2G5g9byg96b/7NVbW6pSNO M4z8KLLLNCkVhtefZlJP6giJy/62IOwLIceqCFSKDhNxXW33W4YEYwKpkeltbftl ZB7F5xf6YChhcrs6MEGoSd5BSoOFj37Wc7zN2g5W2tcsmBhZ6polIzJGezcuitvy mtJ7knXwM8Zd2SUDvCpyiygYoNeXw== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduledruddvlecutefuodetggdotefrodftvfcurf hrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecuuegr ihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenucfjug hrpefhvffufffkjghfggfgtgesthfuredttddtvdenucfhrhhomhepvfhhohhmrghsucfo ohhnjhgrlhhonhcuoehthhhomhgrshesmhhonhhjrghlohhnrdhnvghtqeenucggtffrrg htthgvrhhnpedugefgvdefudfftdefgeelgffhueekgfffhfeujedtteeutdejueeiiedv ffegheenucfkphepjeejrddufeegrddvtdefrddukeegnecuvehluhhsthgvrhfuihiivg eptdenucfrrghrrghmpehmrghilhhfrhhomhepthhhohhmrghssehmohhnjhgrlhhonhdr nhgvth 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 315D124005C; Mon, 15 Mar 2021 05:15:12 -0400 (EDT) From: Thomas Monjalon To: Andrew Rybchenko Cc: dev@dpdk.org, Ori Kam , Ajit Khaparde , Somnath Kotur , Chas Williams , "Min Hu (Connor)" , Rahul Lakkireddy , Hemant Agrawal , Sachin Saxena , Jeff Guo , Haiyue Wang , John Daley , Hyong Youb Kim , Gaetan Rivet , Ziyang Xuan , Xiaoyun Wang , Guoyang Zhou , Yisen Zhuang , Lijun Ou , Beilei Xing , Jingjing Wu , Qiming Yang , Qi Zhang , Rosen Xu , Matan Azrad , Shahaf Shuler , Viacheslav Ovsiienko , Liron Himi , Jerin Jacob , Nithin Dabilpuram , Kiran Kumar K , Rasesh Mody , Shahed Shaikh , Jasvinder Singh , Cristian Dumitrescu , Keith Wiles , Jiawen Wu , Jian Wang , Ferruh Yigit Date: Mon, 15 Mar 2021 10:15:10 +0100 Message-ID: <2840810.IV2kjoNJqS@thomas> In-Reply-To: References: <20210311221742.3750589-1-thomas@monjalon.net> <48964683.5Cnftzig0A@thomas> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" Subject: Re: [dpdk-dev] [PATCH v2 1/2] ethdev: replace callback getting filter operations 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 Sender: "dev" 15/03/2021 10:08, Andrew Rybchenko: > On 3/15/21 11:55 AM, Thomas Monjalon wrote: > > 15/03/2021 09:43, Andrew Rybchenko: > >> On 3/15/21 10:54 AM, Thomas Monjalon wrote: > >>> 15/03/2021 08:18, Andrew Rybchenko: > >>>> On 3/12/21 8:46 PM, Thomas Monjalon wrote: > >>>>> --- a/lib/librte_ethdev/rte_flow.c > >>>>> +++ b/lib/librte_ethdev/rte_flow.c > >>>>> @@ -255,18 +255,19 @@ rte_flow_ops_get(uint16_t port_id, struct rte_flow_error *error) > >>>>> > >>>>> if (unlikely(!rte_eth_dev_is_valid_port(port_id))) > >>>>> code = ENODEV; > >>>>> - else if (unlikely(!dev->dev_ops->filter_ctrl || > >>>>> - dev->dev_ops->filter_ctrl(dev, > >>>>> - RTE_ETH_FILTER_GENERIC, > >>>>> - RTE_ETH_FILTER_GET, > >>>>> - &ops) || > >>>>> - !ops)) > >>>>> - code = ENOSYS; > >>>>> + else if (unlikely(dev->dev_ops->flow_ops_get == NULL)) > >>>>> + code = ENOTSUP; > > It is described as: > -ENOTSUP: valid but unsupported rule specification (e.g. > partial bit-masks are unsupported). > So, it looks different. May be it is really better to keep > ENOSYS. > > >>>>> else > >>>>> - return ops; > >>>>> - rte_flow_error_set(error, code, RTE_FLOW_ERROR_TYPE_UNSPECIFIED, > >>>>> - NULL, rte_strerror(code)); > >>>>> - return NULL; > >>>>> + code = dev->dev_ops->flow_ops_get(dev, &ops); > >>>>> + if (code == 0 && ops == NULL) > >>>>> + code = EACCES; > >>>> It looks something new. I think it should be mentioned in flow_ops_get > >>>> type documentation (similar to eth_promiscuous_enable_t) and > >>>> rte_flow_validate() etc functions > >>>> return values description. > >>> > >>> It is an internal function used only in rte_flow.c. > >>> The real consequence is to set rte_errno in a lot of rte_flow API. > >>> Not sure there is a good way to document the code details. > >>> Other codes are not documented in rte_flow.h > >> > >> First of all it is a behaviour of the flow_ops_get callback and > >> driver developers should know that it is a legal to return 0 and > >> ops==NULL and know what it means. > > > > The combination code 0 and ops NULL is not new. > > Previously, it was returning ENOSYS. > > I've just given a more meaningful error code: EACCES, > > while replacing ENOSYS with ENOTSUP for the other case. > > Yes, exactly. What I'm trying to say that it would be > helpful to make it a bit more transparent to PMD developers. > Yes, it was not documented before, I agree. I think it is > a good time to improve documentation. > > >> Second, it is visible as rte_flow_validate() (and other functions > >> which use rte_flow_ops_get()) return value value which has > >> special meaning. So, should be documented. > > > > Yes, I should update the API doc where ENOSYS was mentioned. > > Or probably better: I should keep the error code ENOSYS > > and do not break API. > > Preference? > > Good question. I think we should not distinguish NULL callback > and NULL ops returned by not-NULL callback. So, I think > keeping ENOSYS is the best option here. OK, thank you for the review. So the conclusion is: keep ENOSYS and document NULL ops case.