From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by dpdk.org (Postfix) with ESMTP id 6EE5B376E for ; Fri, 25 Mar 2016 08:48:22 +0100 (CET) Received: from orsmga001.jf.intel.com ([10.7.209.18]) by fmsmga103.fm.intel.com with ESMTP; 25 Mar 2016 00:48:22 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.24,389,1455004800"; d="scan'208";a="918532049" Received: from dpdk06.sh.intel.com ([10.239.128.225]) by orsmga001.jf.intel.com with ESMTP; 25 Mar 2016 00:48:20 -0700 From: Jianfeng Tan To: dev@dpdk.org Cc: Jianfeng Tan , konstantin.ananyev@intel.com, helin.zhang@intel.com, bruce.richardson@intel.com Date: Fri, 25 Mar 2016 08:47:45 +0800 Message-Id: <1458866867-39582-2-git-send-email-jianfeng.tan@intel.com> X-Mailer: git-send-email 2.1.4 In-Reply-To: <1458866867-39582-1-git-send-email-jianfeng.tan@intel.com> References: <1456795416-118189-1-git-send-email-jianfeng.tan@intel.com> <1458866867-39582-1-git-send-email-jianfeng.tan@intel.com> Subject: [dpdk-dev] [PATCH v4 1/3] ethdev: refine API to query supported packet types X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 25 Mar 2016 07:48:23 -0000 Return 0 instead of -ENOTSUP for those which do not fill any packet types, with some note and doc updated. Signed-off-by: Jianfeng Tan Acked-by: Konstantin Ananyev --- doc/guides/nics/overview.rst | 2 +- lib/librte_ether/rte_ethdev.c | 3 +-- lib/librte_ether/rte_ethdev.h | 9 ++++++--- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/doc/guides/nics/overview.rst b/doc/guides/nics/overview.rst index 542479a..e7504da 100644 --- a/doc/guides/nics/overview.rst +++ b/doc/guides/nics/overview.rst @@ -124,7 +124,7 @@ Most of these differences are summarized below. L4 checksum offload X X X X inner L3 checksum X X X inner L4 checksum X X X - packet type parsing X X X + packet type parsing X X X X X X X X X X X X X X X timesync X X basic stats X X X X X X X X extended stats X X X X X diff --git a/lib/librte_ether/rte_ethdev.c b/lib/librte_ether/rte_ethdev.c index a328027..1ee79d2 100644 --- a/lib/librte_ether/rte_ethdev.c +++ b/lib/librte_ether/rte_ethdev.c @@ -1636,8 +1636,7 @@ rte_eth_dev_get_supported_ptypes(uint8_t port_id, uint32_t ptype_mask, RTE_ETH_VALID_PORTID_OR_ERR_RET(port_id, -ENODEV); dev = &rte_eth_devices[port_id]; - RTE_FUNC_PTR_OR_ERR_RET(*dev->dev_ops->dev_supported_ptypes_get, - -ENOTSUP); + RTE_FUNC_PTR_OR_ERR_RET(*dev->dev_ops->dev_supported_ptypes_get, 0); all_ptypes = (*dev->dev_ops->dev_supported_ptypes_get)(dev); if (!all_ptypes) diff --git a/lib/librte_ether/rte_ethdev.h b/lib/librte_ether/rte_ethdev.h index e7de34a..5167750 100644 --- a/lib/librte_ether/rte_ethdev.h +++ b/lib/librte_ether/rte_ethdev.h @@ -2326,6 +2326,9 @@ void rte_eth_dev_info_get(uint8_t port_id, struct rte_eth_dev_info *dev_info); * @note * Better to invoke this API after the device is already started or rx burst * function is decided, to obtain correct supported ptypes. + * @note + * if a given PMD does not report what ptypes it supports, then the supported + * ptype count is reported as 0. * @param port_id * The port identifier of the Ethernet device. * @param ptype_mask @@ -2335,9 +2338,9 @@ void rte_eth_dev_info_get(uint8_t port_id, struct rte_eth_dev_info *dev_info); * @param num * Size of the array pointed by param ptypes. * @return - * - (>0) Number of supported ptypes. If it exceeds param num, exceeding - * packet types will not be filled in the given array. - * - (0 or -ENOTSUP) if PMD does not fill the specified ptype. + * - (>=0) Number of supported ptypes. If the number of types exceeds num, + only num entries will be filled into the ptypes array, but the full + count of supported ptypes will be returned. * - (-ENODEV) if *port_id* invalid. */ int rte_eth_dev_get_supported_ptypes(uint8_t port_id, uint32_t ptype_mask, -- 2.1.4