|
Revision tags: v22.03, v22.03-rc4, v22.03-rc3, v22.03-rc2 |
|
| #
4ff58b73 |
| 23-Feb-2022 |
Alexander Kozyrev <[email protected]> |
ethdev: introduce flow engine configuration
The flow rules creation/destruction at a large scale incurs a performance penalty and may negatively impact the packet processing when used as part of the
ethdev: introduce flow engine configuration
The flow rules creation/destruction at a large scale incurs a performance penalty and may negatively impact the packet processing when used as part of the datapath logic. This is mainly because software/hardware resources are allocated and prepared during the flow rule creation.
In order to optimize the insertion rate, PMD may use some hints provided by the application at the initialization phase. The rte_flow_configure() function allows to pre-allocate all the needed resources beforehand. These resources can be used at a later stage without costly allocations. Every PMD may use only the subset of hints and ignore unused ones or fail in case the requested configuration is not supported.
The rte_flow_info_get() is available to retrieve the information about supported pre-configurable resources. Both these functions must be called before any other usage of the flow API engine.
Signed-off-by: Alexander Kozyrev <[email protected]> Acked-by: Ori Kam <[email protected]> Reviewed-by: Andrew Rybchenko <[email protected]>
show more ...
|
| #
dbf9fc1d |
| 16-Feb-2022 |
Brian Dooley <[email protected]> |
ethdev: add missing C++ guards
Some public header files were missing 'extern "C"' C++ guards, and couldn't be used by C++ applications. Add the missing guards.
Fixes: 7a3f27cbf59b ("ethdev: add acc
ethdev: add missing C++ guards
Some public header files were missing 'extern "C"' C++ guards, and couldn't be used by C++ applications. Add the missing guards.
Fixes: 7a3f27cbf59b ("ethdev: add access to specific device info") Fixes: dcd5c8112bc3 ("ethdev: add PCI driver helpers") Fixes: 7f0a669e7b04 ("ethdev: add allocation helper for virtual drivers") Fixes: 7a3357205755 ("lib: remove C++ include guard from private headers") Cc: [email protected]
Signed-off-by: Brian Dooley <[email protected]> Acked-by: Bruce Richardson <[email protected]> Acked-by: Tyler Retzlaff <[email protected]>
show more ...
|
|
Revision tags: v22.03-rc1 |
|
| #
a41f593f |
| 11-Feb-2022 |
Ferruh Yigit <[email protected]> |
ethdev: introduce generic dummy packet burst function
Multiple PMDs have dummy/noop Rx/Tx packet burst functions.
These dummy functions are very simple, introduce a common function in the ethdev an
ethdev: introduce generic dummy packet burst function
Multiple PMDs have dummy/noop Rx/Tx packet burst functions.
These dummy functions are very simple, introduce a common function in the ethdev and update drivers to use it instead of each driver having its own functions.
Signed-off-by: Ferruh Yigit <[email protected]> Acked-by: Morten Brørup <[email protected]> Acked-by: Viacheslav Ovsiienko <[email protected]> Acked-by: Thomas Monjalon <[email protected]>
show more ...
|
| #
edcf22c6 |
| 11-Feb-2022 |
Min Hu (Connor) <[email protected]> |
ethdev: introduce dump API
Added the ethdev dump API which provides querying private info from device. There exists many private properties in different PMD drivers, such as adapter state, Rx/Tx fun
ethdev: introduce dump API
Added the ethdev dump API which provides querying private info from device. There exists many private properties in different PMD drivers, such as adapter state, Rx/Tx func algorithm in hns3 PMD. The information of these properties is important for debug. As the information is private, the new API is introduced.
Signed-off-by: Min Hu (Connor) <[email protected]> Acked-by: Morten Brørup <[email protected]> Acked-by: Ray Kinsella <[email protected]> Acked-by: Ajit Khaparde <[email protected]> Acked-by: Ferruh Yigit <[email protected]>
show more ...
|
| #
3c059b2c |
| 08-Feb-2022 |
Akhil Goyal <[email protected]> |
ethdev: add mbuf dynfield for incomplete IP reassembly
Hardware IP reassembly may be incomplete for multiple reasons like reassembly timeout reached, duplicate fragments, etc. To save application cy
ethdev: add mbuf dynfield for incomplete IP reassembly
Hardware IP reassembly may be incomplete for multiple reasons like reassembly timeout reached, duplicate fragments, etc. To save application cycles to process these packets again, a new mbuf dynflag is added to show that the mbuf received is not reassembled properly.
Now if this dynflag is set, application can retrieve corresponding chain of mbufs using mbuf dynfield set by the PMD. Now, it will be up to application to either drop those fragments or wait for more time.
Signed-off-by: Akhil Goyal <[email protected]>
show more ...
|
| #
a75ab6e5 |
| 08-Feb-2022 |
Akhil Goyal <[email protected]> |
ethdev: introduce IP reassembly offload
IP Reassembly is a costly operation if it is done in software. The operation becomes even more costlier if IP fragments are encrypted. However, if it is offlo
ethdev: introduce IP reassembly offload
IP Reassembly is a costly operation if it is done in software. The operation becomes even more costlier if IP fragments are encrypted. However, if it is offloaded to HW, it can considerably save application cycles.
Hence, a new offload feature is exposed in eth_dev ops for devices which can attempt IP reassembly of packets in hardware. - rte_eth_ip_reassembly_capability_get() - to get the maximum values of reassembly configuration which can be set. - rte_eth_ip_reassembly_conf_set() - to set IP reassembly configuration and to enable the feature in the PMD (to be called before rte_eth_dev_start()). - rte_eth_ip_reassembly_conf_get() - to get the current configuration set in PMD.
Now when the offload is enabled using rte_eth_ip_reassembly_conf_set(), the resulting reassembled IP packet would be a typical segmented mbuf in case of success.
And if reassembly of IP fragments is failed or is incomplete (if fragments do not come before the reass_timeout, overlap, etc), the mbuf dynamic flags can be updated by the PMD. This is updated in a subsequent patch.
Signed-off-by: Akhil Goyal <[email protected]>
show more ...
|
| #
0de345e9 |
| 08-Feb-2022 |
Jerin Jacob <[email protected]> |
ethdev: support queue-based priority flow control
Based on device support and use-case need, there are two different ways to enable PFC. The first case is the port level PFC configuration, in this c
ethdev: support queue-based priority flow control
Based on device support and use-case need, there are two different ways to enable PFC. The first case is the port level PFC configuration, in this case, rte_eth_dev_priority_flow_ctrl_set() API shall be used to configure the PFC, and PFC frames will be generated using based on VLAN TC value.
The second case is the queue level PFC configuration, in this case, Any packet field content can be used to steer the packet to the specific queue using rte_flow or RSS and then use rte_eth_dev_priority_flow_ctrl_queue_configure() to configure the TC mapping on each queue. Based on congestion selected on the specific queue, configured TC shall be used to generate PFC frames.
Signed-off-by: Jerin Jacob <[email protected]> Signed-off-by: Sunil Kumar Kori <[email protected]> Reviewed-by: Ferruh Yigit <[email protected]>
show more ...
|
| #
961fb402 |
| 31-Jan-2022 |
Kumara Parameshwaran <[email protected]> |
ethdev: add internal function to device struct from name
The PMDs would need a function to access the rte_eth_devices without accessing the global rte_eth_device array.
Cc: [email protected]
Signed-
ethdev: add internal function to device struct from name
The PMDs would need a function to access the rte_eth_devices without accessing the global rte_eth_device array.
Cc: [email protected]
Signed-off-by: Kumara Parameshwaran <[email protected]> Reviewed-by: Ferruh Yigit <[email protected]>
show more ...
|
|
Revision tags: v21.11, v21.11-rc4, v21.11-rc3 |
|
| #
51395027 |
| 12-Nov-2021 |
Ferruh Yigit <[email protected]> |
ethdev: fix typos
Fixes: 9039c8125730 ("ethdev: change promiscuous callbacks to return status") Fixes: 12e6e3e78fe0 ("ethdev: add API to dump device internal flow info") Fixes: 44bf3c796be3 ("ethdev
ethdev: fix typos
Fixes: 9039c8125730 ("ethdev: change promiscuous callbacks to return status") Fixes: 12e6e3e78fe0 ("ethdev: add API to dump device internal flow info") Fixes: 44bf3c796be3 ("ethdev: support flow aging") Cc: [email protected]
Signed-off-by: Ferruh Yigit <[email protected]> Acked-by: Ori Kam <[email protected]>
show more ...
|
|
Revision tags: v21.11-rc2, v21.11-rc1 |
|
| #
295968d1 |
| 22-Oct-2021 |
Ferruh Yigit <[email protected]> |
ethdev: add namespace
Add 'RTE_ETH' namespace to all enums & macros in a backward compatible way. The macros for backward compatibility can be removed in next LTS. Also updated some struct names to
ethdev: add namespace
Add 'RTE_ETH' namespace to all enums & macros in a backward compatible way. The macros for backward compatibility can be removed in next LTS. Also updated some struct names to have 'rte_eth' prefix.
All internal components switched to using new names.
Syntax fixed on lines that this patch touches.
Signed-off-by: Ferruh Yigit <[email protected]> Acked-by: Tyler Retzlaff <[email protected]> Acked-by: Andrew Rybchenko <[email protected]> Acked-by: Ajit Khaparde <[email protected]> Acked-by: Jerin Jacob <[email protected]> Acked-by: Wisam Jaddo <[email protected]> Acked-by: Rosen Xu <[email protected]> Acked-by: Chenbo Xia <[email protected]> Acked-by: Hemant Agrawal <[email protected]> Acked-by: Somnath Kotur <[email protected]>
show more ...
|
| #
55645ee6 |
| 20-Oct-2021 |
Andrew Rybchenko <[email protected]> |
ethdev: remove full stop after short comments
Full stop at the end of short comment just make line longer. It should be either everywhere or nowhere to be consistent.
Signed-off-by: Andrew Rybchenk
ethdev: remove full stop after short comments
Full stop at the end of short comment just make line longer. It should be either everywhere or nowhere to be consistent.
Signed-off-by: Andrew Rybchenko <[email protected]> Reviewed-by: Ferruh Yigit <[email protected]>
show more ...
|
| #
cc0a6444 |
| 20-Oct-2021 |
Andrew Rybchenko <[email protected]> |
ethdev: make device and data structures readable
Add empty lines to separate fields commented using different styles.
Signed-off-by: Andrew Rybchenko <[email protected]> Reviewed-by: Fe
ethdev: make device and data structures readable
Add empty lines to separate fields commented using different styles.
Signed-off-by: Andrew Rybchenko <[email protected]> Reviewed-by: Ferruh Yigit <[email protected]>
show more ...
|
| #
32ec9c6b |
| 20-Oct-2021 |
Andrew Rybchenko <[email protected]> |
ethdev: remove reserved fields from internal structures
Fixes: f9bdee267ab8 ("ethdev: hide internal structures")
Signed-off-by: Andrew Rybchenko <[email protected]> Reviewed-by: Ferruh
ethdev: remove reserved fields from internal structures
Fixes: f9bdee267ab8 ("ethdev: hide internal structures")
Signed-off-by: Andrew Rybchenko <[email protected]> Reviewed-by: Ferruh Yigit <[email protected]>
show more ...
|
| #
bf73419d |
| 20-Oct-2021 |
Andrew Rybchenko <[email protected]> |
ethdev: fix EEPROM spelling
Signed-off-by: Andrew Rybchenko <[email protected]> Reviewed-by: Ferruh Yigit <[email protected]>
|
| #
5906be5a |
| 20-Oct-2021 |
Andrew Rybchenko <[email protected]> |
ethdev: fix ID spelling in comments and log messages
Signed-off-by: Andrew Rybchenko <[email protected]> Acked-by: Ori Kam <[email protected]> Reviewed-by: Ferruh Yigit <ferruh.yigit@inte
ethdev: fix ID spelling in comments and log messages
Signed-off-by: Andrew Rybchenko <[email protected]> Acked-by: Ori Kam <[email protected]> Reviewed-by: Ferruh Yigit <[email protected]>
show more ...
|
| #
064e90c4 |
| 20-Oct-2021 |
Andrew Rybchenko <[email protected]> |
ethdev: fix DCB and VMDq spelling
Fix both in one changeset since they share line in a number of cases.
Signed-off-by: Andrew Rybchenko <[email protected]> Reviewed-by: Ferruh Yigit <fe
ethdev: fix DCB and VMDq spelling
Fix both in one changeset since they share line in a number of cases.
Signed-off-by: Andrew Rybchenko <[email protected]> Reviewed-by: Ferruh Yigit <[email protected]>
show more ...
|
| #
0d9f56a8 |
| 20-Oct-2021 |
Andrew Rybchenko <[email protected]> |
ethdev: fix Ethernet spelling
Signed-off-by: Andrew Rybchenko <[email protected]> Reviewed-by: Ferruh Yigit <[email protected]>
|
| #
09fd4227 |
| 20-Oct-2021 |
Andrew Rybchenko <[email protected]> |
ethdev: fix Rx/Tx spelling
Fix it everywhere in ethdev including log messages.
Signed-off-by: Andrew Rybchenko <[email protected]> Reviewed-by: Ferruh Yigit <[email protected]>
|
| #
3c2ca0a9 |
| 20-Oct-2021 |
Andrew Rybchenko <[email protected]> |
ethdev: avoid documentation in next lines
Documentation in the next separate line is confusing. If documentation requires own line it should be before, not after.
Move documentation to the previous
ethdev: avoid documentation in next lines
Documentation in the next separate line is confusing. If documentation requires own line it should be before, not after.
Move documentation to the previous line if documentation on the same line makes it too long.
Fix a number of incorrect markups on the way.
When a lines is touched by the patch anyway, do other cosmetics changes to avoid changes in next patches.
Signed-off-by: Andrew Rybchenko <[email protected]> Acked-by: Ori Kam <[email protected]> Reviewed-by: Ferruh Yigit <[email protected]>
show more ...
|
| #
f9bdee26 |
| 13-Oct-2021 |
Konstantin Ananyev <[email protected]> |
ethdev: hide internal structures
Move rte_eth_dev, rte_eth_dev_data, rte_eth_rxtx_callback and related data into private header (ethdev_driver.h). Few minor changes to keep DPDK building after that.
ethdev: hide internal structures
Move rte_eth_dev, rte_eth_dev_data, rte_eth_rxtx_callback and related data into private header (ethdev_driver.h). Few minor changes to keep DPDK building after that.
Signed-off-by: Konstantin Ananyev <[email protected]> Acked-by: Andrew Rybchenko <[email protected]> Reviewed-by: Ferruh Yigit <[email protected]> Tested-by: Feifei Wang <[email protected]>
show more ...
|
| #
f6d8a6d3 |
| 12-Oct-2021 |
Ivan Malov <[email protected]> |
ethdev: negotiate delivery of packet metadata from HW to PMD
Provide an API to let the application control the NIC's ability to deliver specific kinds of per-packet metadata to the PMD.
Checks for
ethdev: negotiate delivery of packet metadata from HW to PMD
Provide an API to let the application control the NIC's ability to deliver specific kinds of per-packet metadata to the PMD.
Checks for the NIC's ability to set these kinds of metadata in the first place (support for the flow actions) belong in flow API responsibility domain (flow validate mechanism). This topic is out of scope of the new API in question.
The PMD's ability to deliver received metadata to the user by virtue of mbuf fields should be covered by mbuf library. It is also out of scope of the new API in question.
Signed-off-by: Ivan Malov <[email protected]> Reviewed-by: Andrew Rybchenko <[email protected]> Reviewed-by: Andy Moreton <[email protected]> Acked-by: Ray Kinsella <[email protected]> Acked-by: Jerin Jacob <[email protected]> Acked-by: Ajit Khaparde <[email protected]> Acked-by: Somnath Kotur <[email protected]> Acked-by: Ori Kam <[email protected]> Acked-by: Wisam Jaddo <[email protected]>
show more ...
|
| #
ff4e52ef |
| 11-Oct-2021 |
Viacheslav Galaktionov <[email protected]> |
ethdev: fix representor port ID search by name
The patch is required for all PMDs which do not provide representors info on the representor itself.
The function, rte_eth_representor_id_get(), is us
ethdev: fix representor port ID search by name
The patch is required for all PMDs which do not provide representors info on the representor itself.
The function, rte_eth_representor_id_get(), is used in eth_representor_cmp() which is required in ethdev class iterator to search ethdev port ID by name (representor case). Before the patch the function is called on the representor itself and tries to get representors info to match.
Search of port ID by name is used after hotplug to find out port ID of the just plugged device.
Getting a list of representors from a representor does not make sense. Instead, a backer device should be used.
To this end, extend the rte_eth_dev_data structure to include the port ID of the backing device for representors.
Signed-off-by: Viacheslav Galaktionov <[email protected]> Signed-off-by: Andrew Rybchenko <[email protected]> Acked-by: Haiyue Wang <[email protected]> Acked-by: Beilei Xing <[email protected]> Reviewed-by: Xueming Li <[email protected]> Acked-by: Viacheslav Ovsiienko <[email protected]>
show more ...
|
| #
b225783d |
| 29-Sep-2021 |
Andrew Rybchenko <[email protected]> |
ethdev: remove legacy mirroring API
A more fine-grain flow API action RTE_FLOW_ACTION_TYPE_SAMPLE should be used instead of it.
Signed-off-by: Andrew Rybchenko <[email protected]> Acked
ethdev: remove legacy mirroring API
A more fine-grain flow API action RTE_FLOW_ACTION_TYPE_SAMPLE should be used instead of it.
Signed-off-by: Andrew Rybchenko <[email protected]> Acked-by: Thomas Monjalon <[email protected]> Acked-by: Jerin Jacob <[email protected]> Acked-by: Haiyue Wang <[email protected]> Reviewed-by: Ferruh Yigit <[email protected]>
show more ...
|
| #
7483341a |
| 06-Oct-2021 |
Xueming Li <[email protected]> |
ethdev: change queue release callback
Currently, most ethdev callback API use queue ID as parameter, but Rx and Tx queue release callback use queue object which is used by Rx and Tx burst data plane
ethdev: change queue release callback
Currently, most ethdev callback API use queue ID as parameter, but Rx and Tx queue release callback use queue object which is used by Rx and Tx burst data plane callback.
To align with other eth device queue configuration callbacks: - queue release callbacks are changed to use queue ID - all drivers are adapted
Signed-off-by: Xueming Li <[email protected]> Reviewed-by: Andrew Rybchenko <[email protected]> Acked-by: Ajit Khaparde <[email protected]> Acked-by: Somnath Kotur <[email protected]> Acked-by: Ferruh Yigit <[email protected]>
show more ...
|
| #
8c9f976f |
| 01-Oct-2021 |
Andrew Rybchenko <[email protected]> |
ethdev: improve xstats names by IDs get prototype
Adjust parameters order to eth_xstats_get_by_id_t prototype. Make ids the second parameter similar to eth_xstats_get_by_id_t.
Signed-off-by: Andrew
ethdev: improve xstats names by IDs get prototype
Adjust parameters order to eth_xstats_get_by_id_t prototype. Make ids the second parameter similar to eth_xstats_get_by_id_t.
Signed-off-by: Andrew Rybchenko <[email protected]> Acked-by: Ferruh Yigit <[email protected]>
show more ...
|