|
Revision tags: v22.03, v22.03-rc4, v22.03-rc3 |
|
| #
3b358e33 |
| 08-Mar-2022 |
Ferruh Yigit <[email protected]> |
ethdev: fix doxygen comments for device info struct
API documentation for "struct rte_eth_dev_info" was missing some fields 'device' & 'max_hash_mac_addrs', because of syntax error in doxygen commen
ethdev: fix doxygen comments for device info struct
API documentation for "struct rte_eth_dev_info" was missing some fields 'device' & 'max_hash_mac_addrs', because of syntax error in doxygen comment, fixing it.
Bugzilla ID: 954 Fixes: 88ac4396ad29 ("ethdev: add VMDq support") Fixes: cd8c7c7ce241 ("ethdev: replace bus specific struct with generic dev") Cc: [email protected]
Reported-by: Bruce Merry <[email protected]> Signed-off-by: Ferruh Yigit <[email protected]>
show more ...
|
|
Revision tags: v22.03-rc2, v22.03-rc1 |
|
| #
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 ...
|
| #
f840cf77 |
| 09-Feb-2022 |
Jie Wang <[email protected]> |
ethdev: add L2TPv2 RSS offload type
This patch defines new RSS offload type for L2TPv2, which is required when users want to distribute packets based on the L2TPv2 session ID field.
Signed-off-by:
ethdev: add L2TPv2 RSS offload type
This patch defines new RSS offload type for L2TPv2, which is required when users want to distribute packets based on the L2TPv2 session ID field.
Signed-off-by: Jie Wang <[email protected]> Reviewed-by: Ferruh Yigit <[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 ...
|
| #
b1cb3035 |
| 12-Jan-2022 |
Ferruh Yigit <[email protected]> |
ethdev: mark old macros as deprecated
Old macros kept for backward compatibility, but this cause old macro usage to sneak in silently.
Marking old macros as deprecated. Downside is this will cause
ethdev: mark old macros as deprecated
Old macros kept for backward compatibility, but this cause old macro usage to sneak in silently.
Marking old macros as deprecated. Downside is this will cause some noise for applications that are using old macros.
Fixes: 295968d17407 ("ethdev: add namespace")
Signed-off-by: Ferruh Yigit <[email protected]> Acked-by: Stephen Hemminger <[email protected]>
show more ...
|
|
Revision tags: v21.11, v21.11-rc4 |
|
| #
f8dbaebb |
| 22-Nov-2021 |
Sean Morrissey <[email protected]> |
fix PMD wording
Removing the use of driver following PMD as its unnecessary.
Cc: [email protected]
Signed-off-by: Sean Morrissey <[email protected]> Signed-off-by: Conor Fogarty <conor.fogart
fix PMD wording
Removing the use of driver following PMD as its unnecessary.
Cc: [email protected]
Signed-off-by: Sean Morrissey <[email protected]> Signed-off-by: Conor Fogarty <[email protected]> Acked-by: John McNamara <[email protected]> Reviewed-by: Conor Walsh <[email protected]> Reviewed-by: Ferruh Yigit <[email protected]>
show more ...
|
|
Revision tags: v21.11-rc3, v21.11-rc2 |
|
| #
285725d9 |
| 28-Oct-2021 |
Thomas Monjalon <[email protected]> |
ethdev: promote device removal check function as stable
The function rte_eth_dev_is_removed() was introduced in DPDK 18.02, and is integrated in error checks of ethdev library.
It is promoted as st
ethdev: promote device removal check function as stable
The function rte_eth_dev_is_removed() was introduced in DPDK 18.02, and is integrated in error checks of ethdev library.
It is promoted as stable ABI.
Signed-off-by: Thomas Monjalon <[email protected]> Acked-by: Ray Kinsella <[email protected]> Acked-by: Andrew Rybchenko <[email protected]> Acked-by: Ferruh Yigit <[email protected]>
show more ...
|
| #
2c9cd45d |
| 02-Nov-2021 |
Dmitry Kozlyuk <[email protected]> |
ethdev: add capability to keep shared objects on restart
rte_flow_action_handle_create() did not mention what happens with an indirect action when a device is stopped and started again. It is natura
ethdev: add capability to keep shared objects on restart
rte_flow_action_handle_create() did not mention what happens with an indirect action when a device is stopped and started again. It is natural for some indirect actions, like counter, to be persistent. Keeping others at least saves application time and complexity. However, not all PMDs can support it, or the support may be limited by particular action kinds, that is, combinations of action type and the value of the transfer bit in its configuration.
Add a device capability to indicate if at least some indirect actions are kept across the above sequence. Without this capability the behavior is still unspecified, and application is required to destroy the indirect actions before stopping the device. In the future, indirect actions may not be the only type of objects shared between flow rules. The capability bit intends to cover all possible types of such objects, hence its name.
Declare that the application can test for the persistence of a particular indirect action kind by attempting to create an indirect action of that kind when the device is stopped and checking for the specific error type. This is logical because if the PMD can to create an indirect action when the device is not started and use it after the start happens, it is natural that it can move its internal flow shared object to the same state when the device is stopped and restore the state when the device is started.
Indirect action persistence across a reconfigurations is not required. In case a PMD cannot keep the indirect actions across reconfiguration, it is allowed just to report an error. Application must then flush the indirect actions before attempting it.
Signed-off-by: Dmitry Kozlyuk <[email protected]> Acked-by: Ori Kam <[email protected]> Acked-by: Andrew Rybchenko <[email protected]>
show more ...
|
| #
1d5a3d68 |
| 02-Nov-2021 |
Dmitry Kozlyuk <[email protected]> |
ethdev: add capability to keep flow rules on restart
Previously, it was not specified what happens to the flow rules when the device is stopped, possibly reconfigured, then started. If flow rules we
ethdev: add capability to keep flow rules on restart
Previously, it was not specified what happens to the flow rules when the device is stopped, possibly reconfigured, then started. If flow rules were kept, it could be convenient for application developers, because they wouldn't need to save and restore them. However, due to the number of flows and possible creation rate it is impractical to save all flow rules in DPDK layer. This means that flow rules persistence really depends on whether PMD and HW can implement it efficiently. It can also be limited by the rule item and action types, and its attributes transfer bit (a combination of an item/action type and a value of the transfer bit is called a rule feature).
Add a device capability bit for PMDs that can keep at least some of the flow rules across restart. Without this capability behavior is still unspecified and it is declared that the application must flush the rules before stopping the device. Allow the application to test for persistence of rules using a particular feature by attempting to create a flow rule using that feature when the device is stopped and checking for the specific error. This is logical because if the PMD can to create the flow rule when the device is not started and use it after the start happens, it is natural that it can move its internal flow rule object to the same state when the device is stopped and restore the state when the device is started.
Rule persistence across a reconfigurations is not required, because tracking all the rules and configuration-dependent resources they use may be infeasible. In case a PMD cannot keep the rules across reconfiguration, it is allowed just to report an error. Application must then flush the rules before attempting it.
Signed-off-by: Dmitry Kozlyuk <[email protected]> Acked-by: Ori Kam <[email protected]> Acked-by: Andrew Rybchenko <[email protected]>
show more ...
|
|
Revision tags: v21.11-rc1 |
|
| #
daa02b5c |
| 15-Oct-2021 |
Olivier Matz <[email protected]> |
mbuf: add namespace to offload flags
Fix the mbuf offload flags namespace by adding an RTE_ prefix to the name. The old flags remain usable, but a deprecation warning is issued at compilation.
Sign
mbuf: add namespace to offload flags
Fix the mbuf offload flags namespace by adding an RTE_ prefix to the name. The old flags remain usable, but a deprecation warning is issued at compilation.
Signed-off-by: Olivier Matz <[email protected]> Acked-by: Andrew Rybchenko <[email protected]> Acked-by: Ajit Khaparde <[email protected]> Acked-by: Somnath Kotur <[email protected]>
show more ...
|
| #
68e8ca7b |
| 22-Oct-2021 |
Andrew Rybchenko <[email protected]> |
ethdev: avoid usage of ULL for 64-bit unsigned constants
Use UINT64_C() macro instead.
Signed-off-by: Andrew Rybchenko <[email protected]> Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.
ethdev: avoid usage of ULL for 64-bit unsigned constants
Use UINT64_C() macro instead.
Signed-off-by: Andrew Rybchenko <[email protected]> Reviewed-by: Ferruh Yigit <[email protected]>
show more ...
|
| #
4852c647 |
| 22-Oct-2021 |
Andrew Rybchenko <[email protected]> |
ethdev: replace single bit masks with macros
The macros RTE_BIT32 and RTE_BIT64 are used to replace single bit masks.
Do not switch VLAN offload flags since type is not fixed size.
Signed-off-by:
ethdev: replace single bit masks with macros
The macros RTE_BIT32 and RTE_BIT64 are used to replace single bit masks.
Do not switch VLAN offload flags since type is not fixed size.
Signed-off-by: Andrew Rybchenko <[email protected]> Reviewed-by: Ferruh Yigit <[email protected]>
show more ...
|
| #
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 ...
|
| #
9ce1717d |
| 22-Oct-2021 |
Andrew Rybchenko <[email protected]> |
ethdev: remove unused L2 tunnel mask defines
Fixes: cf47acc0f9ba ("ethdev: remove L2 tunnel offload control API") Cc: [email protected]
Signed-off-by: Andrew Rybchenko <[email protected]>
ethdev: remove unused L2 tunnel mask defines
Fixes: cf47acc0f9ba ("ethdev: remove L2 tunnel offload control API") Cc: [email protected]
Signed-off-by: Andrew Rybchenko <[email protected]> Reviewed-by: Ferruh Yigit <[email protected]>
show more ...
|
| #
93e441c9 |
| 21-Oct-2021 |
Xueming Li <[email protected]> |
ethdev: get device capability name as string
This patch adds API to return name of device capability.
Signed-off-by: Xueming Li <[email protected]> Reviewed-by: Andrew Rybchenko <andrew.rybchenko
ethdev: get device capability name as string
This patch adds API to return name of device capability.
Signed-off-by: Xueming Li <[email protected]> Reviewed-by: Andrew Rybchenko <[email protected]> Acked-by: Ajit Khaparde <[email protected]> Acked-by: Thomas Monjalon <[email protected]>
show more ...
|
| #
dd22740c |
| 21-Oct-2021 |
Xueming Li <[email protected]> |
ethdev: introduce shared Rx queue
In current DPDK framework, each Rx queue is pre-loaded with mbufs to save incoming packets. For some PMDs, when number of representors scale out in a switch domain,
ethdev: introduce shared Rx queue
In current DPDK framework, each Rx queue is pre-loaded with mbufs to save incoming packets. For some PMDs, when number of representors scale out in a switch domain, the memory consumption became significant. Polling all ports also leads to high cache miss, high latency and low throughput.
This patch introduces shared Rx queue. Ports in same Rx domain and switch domain could share Rx queue set by specifying non-zero sharing group in Rx queue configuration.
Shared Rx queue is identified by share_rxq field of Rx queue configuration. Port A RxQ X can share RxQ with Port B RxQ Y by using same shared Rx queue ID.
No special API is defined to receive packets from shared Rx queue. Polling any member port of a shared Rx queue receives packets of that queue for all member ports, port_id is identified by mbuf->port. PMD is responsible to resolve shared Rx queue from device and queue data.
Shared Rx queue must be polled in same thread or core, polling a queue ID of any member port is essentially same.
Multiple share groups are supported. PMD should support mixed configuration by allowing multiple share groups and non-shared Rx queue on one port.
Example grouping and polling model to reflect service priority: Group1, 2 shared Rx queues per port: PF, rep0, rep1 Group2, 1 shared Rx queue per port: rep2, rep3, ... rep127 Core0: poll PF queue0 Core1: poll PF queue1 Core2: poll rep2 queue0
PMD advertise shared Rx queue capability via RTE_ETH_DEV_CAPA_RXQ_SHARE.
PMD is responsible for shared Rx queue consistency checks to avoid member port's configuration contradict each other.
Signed-off-by: Xueming Li <[email protected]> Reviewed-by: Andrew Rybchenko <[email protected]> Acked-by: Ajit Khaparde <[email protected]>
show more ...
|
| #
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 ...
|
| #
5b49ba65 |
| 20-Oct-2021 |
Andrew Rybchenko <[email protected]> |
ethdev: fix VLAN spelling including VLAN ID case
Signed-off-by: Andrew Rybchenko <[email protected]> Acked-by: Ori Kam <[email protected]> Reviewed-by: Ferruh Yigit <[email protected]
ethdev: fix VLAN spelling including VLAN ID case
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 ...
|
| #
e1823e08 |
| 20-Oct-2021 |
Thomas Monjalon <[email protected]> |
ethdev: replace bit shifts with macros
The macros RTE_BIT32 and RTE_BIT64 are used to replace bit shifts. The macro UINT64C is also used to replace remaining occurrences of ULL.
The bit shifts of E
ethdev: replace bit shifts with macros
The macros RTE_BIT32 and RTE_BIT64 are used to replace bit shifts. The macro UINT64C is also used to replace remaining occurrences of ULL.
The bit shifts of ETH_RSS_LEVEL_* are kept for aesthetic reason.
The API of rte_mtr and rte_tm is using enums for 64-bit variables. As they are enums, unsigned bit cannot be used.
Signed-off-by: Thomas Monjalon <[email protected]> Reviewed-by: Andrew Rybchenko <[email protected]>
show more ...
|