NACK. I'll send an independent patchset for this.
Thanks, Jianfeng > -----Original Message----- > From: Tan, Jianfeng > Sent: Friday, March 25, 2016 8:48 AM > To: dev at dpdk.org > Cc: Tan, Jianfeng; Ananyev, Konstantin; Zhang, Helin; Richardson, Bruce > Subject: [PATCH v4 1/3] ethdev: refine API to query supported packet types > > 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 <jianfeng.tan at intel.com> > Acked-by: Konstantin Ananyev <konstantin.ananyev at intel.com> > --- > 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