[PATCH v7 1/4] ethdev: introduce protocol header API

Andrew Rybchenko andrew.rybchenko at oktetlabs.ru
Tue Oct 4 09:52:54 CEST 2022


On 10/4/22 05:21, Wang, YuanX wrote:
> Hi Andrew,
> 
>> -----Original Message-----
>> From: Andrew Rybchenko <andrew.rybchenko at oktetlabs.ru>
>> Sent: Monday, October 3, 2022 3:04 PM
>> To: Wang, YuanX <yuanx.wang at intel.com>; dev at dpdk.org; Thomas
>> Monjalon <thomas at monjalon.net>; Ferruh Yigit <ferruh.yigit at amd.com>;
>> Ray Kinsella <mdr at ashroe.eu>
>> Cc: ferruh.yigit at xilinx.com; Li, Xiaoyun <xiaoyun.li at intel.com>; Singh, Aman
>> Deep <aman.deep.singh at intel.com>; Zhang, Yuying
>> <yuying.zhang at intel.com>; Zhang, Qi Z <qi.z.zhang at intel.com>; Yang,
>> Qiming <qiming.yang at intel.com>; jerinjacobk at gmail.com;
>> viacheslavo at nvidia.com; stephen at networkplumber.org; Ding, Xuan
>> <xuan.ding at intel.com>; hpothula at marvell.com; Tang, Yaqi
>> <yaqi.tang at intel.com>; Wenxuan Wu <wenxuanx.wu at intel.com>
>> Subject: Re: [PATCH v7 1/4] ethdev: introduce protocol header API
>>
>> On 10/2/22 00:05, Yuan Wang wrote:
>>> Add a new ethdev API to retrieve supported protocol headers of a PMD,
>>> which helps to configure protocol header based buffer split.
>>>
>>> Signed-off-by: Yuan Wang <yuanx.wang at intel.com>
>>> Signed-off-by: Xuan Ding <xuan.ding at intel.com>
>>> Signed-off-by: Wenxuan Wu <wenxuanx.wu at intel.com>
>>> Reviewed-by: Andrew Rybchenko <andrew.rybchenko at oktetlabs.ru>
>>> ---
>>>    doc/guides/rel_notes/release_22_11.rst |  5 ++++
>>>    lib/ethdev/ethdev_driver.h             | 15 ++++++++++++
>>>    lib/ethdev/rte_ethdev.c                | 33 ++++++++++++++++++++++++++
>>>    lib/ethdev/rte_ethdev.h                | 30 +++++++++++++++++++++++
>>>    lib/ethdev/version.map                 |  3 +++
>>>    5 files changed, 86 insertions(+)
>>>
>>> diff --git a/doc/guides/rel_notes/release_22_11.rst
>>> b/doc/guides/rel_notes/release_22_11.rst
>>> index 0231959874..6a7474a3d6 100644
>>> --- a/doc/guides/rel_notes/release_22_11.rst
>>> +++ b/doc/guides/rel_notes/release_22_11.rst
>>> @@ -96,6 +96,11 @@ New Features
>>>      * Added ``rte_event_eth_tx_adapter_queue_stop`` to stop the Tx
>> Adapter
>>>        from enqueueing any packets to the Tx queue.
>>>
>>> +* **Added new ethdev API for PMD to get buffer split supported
>>> +protocol types.**
>>> +
>>> +  * Added ``rte_eth_buffer_split_get_supported_hdr_ptypes()``, to get
>> supported
>>> +    header protocols of a PMD to split.
>>> +
>>
>> ethdev features should be grouped together in release notes.
>> I'll fix it on applying if a new version is not required.
> 
> We will send a new version. For the doc changes, I don't understand your point very well.
> Since will be no new changes to the code within this patch, could you help to adjust the doc?
> Thanks very much.

Please, read a comment just after 'New Features' section start.
Hopefully it will make my note clearer.
Anyway, don't worry about it a lot. I can easily fix it on
applying.

> 
>>
>> [snip]
>>
>>> diff --git a/lib/ethdev/rte_ethdev.c b/lib/ethdev/rte_ethdev.c index
>>> 0c2c1088c0..1f0a7f8f3f 100644
>>> --- a/lib/ethdev/rte_ethdev.c
>>> +++ b/lib/ethdev/rte_ethdev.c
>>> @@ -6002,6 +6002,39 @@ rte_eth_dev_priv_dump(uint16_t port_id, FILE
>> *file)
>>>    	return eth_err(port_id, (*dev->dev_ops->eth_dev_priv_dump)(dev,
>> file));
>>>    }
>>>
>>> +int
>>> +rte_eth_buffer_split_get_supported_hdr_ptypes(uint16_t port_id,
>>> +uint32_t *ptypes, int num) {
>>> +	int i, j;
>>> +	struct rte_eth_dev *dev;
>>> +	const uint32_t *all_types;
>>> +
>>> +	RTE_ETH_VALID_PORTID_OR_ERR_RET(port_id, -ENODEV);
>>> +	dev = &rte_eth_devices[port_id];
>>> +
>>> +	if (ptypes == NULL && num > 0) {
>>> +		RTE_ETHDEV_LOG(ERR,
>>> +			"Cannot get ethdev port %u supported header
>> protocol types to NULL when array size is non zero\n",
>>> +			port_id);
>>> +		return -EINVAL;
>>> +	}
>>> +
>>> +	if (*dev->dev_ops->buffer_split_supported_hdr_ptypes_get == NULL)
>>> +		return -ENOTSUP;
>>> +	all_types =
>>> +(*dev->dev_ops->buffer_split_supported_hdr_ptypes_get)(dev);
>>> +
>>> +	if (!all_types)
>>
>> Should be compared with NULL explicitly as coding standard says. I can fix it
>> on applying as well.
> 
> Sure, I will fix in v8.
> 
>>
>> [snip]



More information about the dev mailing list