|
Revision tags: v22.03, v22.03-rc4, v22.03-rc3 |
|
| #
c7ff3d78 |
| 02-Mar-2022 |
John Miller <[email protected]> |
net/ark: support multi-port packet generation
Added support for packet generation in multi-port Arkville implementations. The packet generator is a singleton within the device but is capable of gene
net/ark: support multi-port packet generation
Added support for packet generation in multi-port Arkville implementations. The packet generator is a singleton within the device but is capable of generating packets for any port within one device.
Signed-off-by: John Miller <[email protected]>
show more ...
|
|
Revision tags: v22.03-rc2 |
|
| #
2f27ef73 |
| 15-Feb-2022 |
John Miller <[email protected]> |
net/ark: support arbitrary mbuf size
Added arbitrary mbuf size per queue capability. Updated ARK_UDM_CONST3 value to reflect the version number read from the HW that is required to support this chan
net/ark: support arbitrary mbuf size
Added arbitrary mbuf size per queue capability. Updated ARK_UDM_CONST3 value to reflect the version number read from the HW that is required to support this change.
Signed-off-by: John Miller <[email protected]>
show more ...
|
| #
51ec6c74 |
| 15-Feb-2022 |
John Miller <[email protected]> |
net/ark: support new devices
Add two new supported device ID's. Add documentation for new devices.
Signed-off-by: John Miller <[email protected]>
|
| #
c5314a53 |
| 15-Feb-2022 |
John Miller <[email protected]> |
net/ark: add device capabilities record
Add a device capabilities record for supported features. Certain variants require that PCIe read-requests be correctly throttled. This is called "rqpacing" in
net/ark: add device capabilities record
Add a device capabilities record for supported features. Certain variants require that PCIe read-requests be correctly throttled. This is called "rqpacing" in Arkville, and has to do with credit and flow control on certain Arkville implementations.
Signed-off-by: John Miller <[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 ...
|
|
Revision tags: v21.11, v21.11-rc4, v21.11-rc3, 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 ...
|
|
Revision tags: v21.08, v21.08-rc4, v21.08-rc3, v21.08-rc2, v21.08-rc1, v21.05, v21.05-rc4, v21.05-rc3 |
|
| #
4b42104c |
| 11-May-2021 |
Ed Czeck <[email protected]> |
net/ark: fix control thread argument
Thread argument changed to wrong value during thread name addition, fixing that bug.
Fixes: fdefe038eb9b ("net/ark: set generator delay thread name")
Signed-of
net/ark: fix control thread argument
Thread argument changed to wrong value during thread name addition, fixing that bug.
Fixes: fdefe038eb9b ("net/ark: set generator delay thread name")
Signed-off-by: Ed Czeck <[email protected]> Acked-by: Ferruh Yigit <[email protected]>
show more ...
|
|
Revision tags: v21.05-rc2 |
|
| #
eeded204 |
| 26-Apr-2021 |
David Marchand <[email protected]> |
log: register with standardized names
Let's try to enforce the convention where most drivers use a pmd. logtype with their class reflected in it, and libraries use a lib. logtype.
Introduce two new
log: register with standardized names
Let's try to enforce the convention where most drivers use a pmd. logtype with their class reflected in it, and libraries use a lib. logtype.
Introduce two new macros: - RTE_LOG_REGISTER_DEFAULT can be used when a single logtype is used in a component. It is associated to the default name provided by the build system, - RTE_LOG_REGISTER_SUFFIX can be used when multiple logtypes are used, and then the passed name is appended to the default name,
RTE_LOG_REGISTER is left untouched for existing external users and for components that do not comply with the convention.
There is a new Meson variable log_prefix to adapt the default name for baseband (pmd.bb.), bus (no pmd.) and mempool (no pmd.) classes.
Note: achieved with below commands + reverted change on net/bonding + edits on crypto/virtio, compress/mlx5, regex/mlx5
$ git grep -l RTE_LOG_REGISTER drivers/ | while read file; do pattern=${file##drivers/}; class=${pattern%%/*}; pattern=${pattern#$class/}; drv=${pattern%%/*}; case "$class" in baseband) pattern=pmd.bb.$drv;; bus) pattern=bus.$drv;; mempool) pattern=mempool.$drv;; *) pattern=pmd.$class.$drv;; esac sed -i -e 's/RTE_LOG_REGISTER(\(.*\), '$pattern',/RTE_LOG_REGISTER_DEFAULT(\1,/' $file; sed -i -e 's/RTE_LOG_REGISTER(\(.*\), '$pattern'\.\(.*\),/RTE_LOG_REGISTER_SUFFIX(\1, \2,/' $file; done
$ git grep -l RTE_LOG_REGISTER lib/ | while read file; do pattern=${file##lib/}; pattern=lib.${pattern%%/*}; sed -i -e 's/RTE_LOG_REGISTER(\(.*\), '$pattern',/RTE_LOG_REGISTER_DEFAULT(\1,/' $file; sed -i -e 's/RTE_LOG_REGISTER(\(.*\), '$pattern'\.\(.*\),/RTE_LOG_REGISTER_SUFFIX(\1, \2,/' $file; done
Signed-off-by: David Marchand <[email protected]> Signed-off-by: Thomas Monjalon <[email protected]> Acked-by: Bruce Richardson <[email protected]>
show more ...
|
|
Revision tags: v21.05-rc1 |
|
| #
fdefe038 |
| 17-Apr-2021 |
Chengwen Feng <[email protected]> |
net/ark: set generator delay thread name
This patch supports set delay packet generator start thread name which is helpful for debugging.
Signed-off-by: Chengwen Feng <[email protected]> Sign
net/ark: set generator delay thread name
This patch supports set delay packet generator start thread name which is helpful for debugging.
Signed-off-by: Chengwen Feng <[email protected]> Signed-off-by: Min Hu (Connor) <[email protected]>
show more ...
|
| #
2b88daf7 |
| 18-Mar-2021 |
Ed Czeck <[email protected]> |
net/ark: localize internal packet generator
Remove unnecessary includes, no functional changes
Signed-off-by: Ed Czeck <[email protected]>
|
| #
6c7f491e |
| 18-Mar-2021 |
Ed Czeck <[email protected]> |
net/ark: generalize meta data between FPGA and PMD
In this commit we generalize the movement of user-specified meta data between mbufs and FPGA AXIS tuser fields using user-defined hook functions.
net/ark: generalize meta data between FPGA and PMD
In this commit we generalize the movement of user-specified meta data between mbufs and FPGA AXIS tuser fields using user-defined hook functions.
- Previous use of PMD dynfields are removed - Remove emptied rte_pmd_ark.h - Hook function added to ark_user_ext - Add hook function calls in Rx and Tx paths - Update guide with example of hook function use
Signed-off-by: Ed Czeck <[email protected]>
show more ...
|
| #
f2764c36 |
| 18-Mar-2021 |
Ed Czeck <[email protected]> |
net/ark: cleanup dynamic extension interface
- Rename extension functions with rte_pmd_ark prefix - Update local function documentation
Signed-off-by: Ed Czeck <[email protected]>
|
| #
9ee9e0d3 |
| 18-Mar-2021 |
Ed Czeck <[email protected]> |
net/ark: update to reflect FPGA updates
- New PCIe IDs using net/ark driver - Update Version IDs and structures specified by hardware - New internal descriptor status for TX - Adjust data placement
net/ark: update to reflect FPGA updates
- New PCIe IDs using net/ark driver - Update Version IDs and structures specified by hardware - New internal descriptor status for TX - Adjust data placement in RX operations, headroom in retained for segmented mbufs
Signed-off-by: Ed Czeck <[email protected]>
show more ...
|
| #
3b4f34f6 |
| 18-Mar-2021 |
Ed Czeck <[email protected]> |
net/ark: update packet director initial state
Fixes: b33ccdb17f55 ("net/ark: provide API for hardware modules MPU RQP and pktdir") Cc: [email protected]
Signed-off-by: Ed Czeck <ed.czeck@atomicrules.
net/ark: update packet director initial state
Fixes: b33ccdb17f55 ("net/ark: provide API for hardware modules MPU RQP and pktdir") Cc: [email protected]
Signed-off-by: Ed Czeck <[email protected]>
show more ...
|
|
Revision tags: v21.02, v21.02-rc4, v21.02-rc3, v21.02-rc2 |
|
| #
df96fd0d |
| 29-Jan-2021 |
Bruce Richardson <[email protected]> |
ethdev: make driver-only headers private
The rte_ethdev_driver.h, rte_ethdev_vdev.h and rte_ethdev_pci.h files are for drivers only and should be a private to DPDK and not installed.
Signed-off-by:
ethdev: make driver-only headers private
The rte_ethdev_driver.h, rte_ethdev_vdev.h and rte_ethdev_pci.h files are for drivers only and should be a private to DPDK and not installed.
Signed-off-by: Bruce Richardson <[email protected]> Reviewed-by: Maxime Coquelin <[email protected]> Acked-by: Thomas Monjalon <[email protected]> Acked-by: Steven Webster <[email protected]>
show more ...
|
|
Revision tags: v21.02-rc1, v20.11, v20.11-rc5, v20.11-rc4, v20.11-rc3, v20.11-rc2 |
|
| #
a926951a |
| 29-Oct-2020 |
Thomas Monjalon <[email protected]> |
net/ark: switch Rx timestamp to dynamic mbuf field
The mbuf timestamp is moved to a dynamic field in order to allow removal of the deprecated static field. The related dynamic mbuf flag is set, alth
net/ark: switch Rx timestamp to dynamic mbuf field
The mbuf timestamp is moved to a dynamic field in order to allow removal of the deprecated static field. The related dynamic mbuf flag is set, although was missing previously.
The timestamp is set if configured for at least one device.
Signed-off-by: Thomas Monjalon <[email protected]> Acked-by: David Marchand <[email protected]> Acked-by: Olivier Matz <[email protected]>
show more ...
|
| #
1abc7209 |
| 27-Oct-2020 |
Ed Czeck <[email protected]> |
net/ark: switch user data to dynamic mbuf fields
The second field of metadata is reserved for user data which was using a deprecated mbuf field. It is moved to dynamic fields in order to allow remov
net/ark: switch user data to dynamic mbuf fields
The second field of metadata is reserved for user data which was using a deprecated mbuf field. It is moved to dynamic fields in order to allow removal of udata64.
The use of meta data must be enabled with a compile-time flag RTE_PMD_ARK_{TX,RX}_USERDATA_ENABLE. User data on Tx and Rx paths can be defined and used separately.
Signed-off-by: Thomas Monjalon <[email protected]> Signed-off-by: Ed Czeck <[email protected]>
show more ...
|
|
Revision tags: v20.11-rc1 |
|
| #
f30e69b4 |
| 14-Oct-2020 |
Ferruh Yigit <[email protected]> |
ethdev: add device flag to bypass auto-filled queue xstats
Queue stats are stored in 'struct rte_eth_stats' as array and array size is defined by 'RTE_ETHDEV_QUEUE_STAT_CNTRS' compile time flag.
As
ethdev: add device flag to bypass auto-filled queue xstats
Queue stats are stored in 'struct rte_eth_stats' as array and array size is defined by 'RTE_ETHDEV_QUEUE_STAT_CNTRS' compile time flag.
As a result of technical board discussion, decided to remove the queue statistics from 'struct rte_eth_stats' in the long term.
Instead PMDs should represent the queue statistics via xstats, this gives more flexibility on the number of the queues supported.
Currently queue stats in the xstats are filled by ethdev layer, using some basic stats, when queue stats removed from basic stats the responsibility to fill the relevant xstats will be pushed to the PMDs.
During the switch period, temporary 'RTE_ETH_DEV_AUTOFILL_QUEUE_XSTATS' device flag is created. Initially all PMDs using xstats set this flag. The PMDs implemented queue stats in the xstats should clear the flag.
When all PMDs switch to the xstats for the queue stats, queue stats related fields from 'struct rte_eth_stats' will be removed, as well as 'RTE_ETH_DEV_AUTOFILL_QUEUE_XSTATS' flag. Later 'RTE_ETHDEV_QUEUE_STAT_CNTRS' compile time flag also can be removed.
Signed-off-by: Ferruh Yigit <[email protected]> Acked-by: Haiyue Wang <[email protected]> Acked-by: Xiao Wang <[email protected]> Acked-by: Thomas Monjalon <[email protected]>
show more ...
|
| #
62024eb8 |
| 15-Oct-2020 |
Ivan Ilchenko <[email protected]> |
ethdev: change stop operation callback to return int
Change eth_dev_stop_t return value from void to int. Make eth_dev_stop_t implementations across all drivers to return negative errno values if ca
ethdev: change stop operation callback to return int
Change eth_dev_stop_t return value from void to int. Make eth_dev_stop_t implementations across all drivers to return negative errno values if case of error conditions.
Signed-off-by: Ivan Ilchenko <[email protected]> Signed-off-by: Andrew Rybchenko <[email protected]> Reviewed-by: Ferruh Yigit <[email protected]>
show more ...
|
| #
0607dadf |
| 16-Oct-2020 |
Thomas Monjalon <[email protected]> |
ethdev: reset all when releasing a port
The function rte_eth_dev_release_port() is partially resetting the struct rte_eth_dev. The drivers were completing this reset with more pointers set to NULL i
ethdev: reset all when releasing a port
The function rte_eth_dev_release_port() is partially resetting the struct rte_eth_dev. The drivers were completing this reset with more pointers set to NULL in the close or remove operations.
More pointers are reset at ethdev level, and some redundant assignments are removed from PMDs.
Signed-off-by: Thomas Monjalon <[email protected]> Acked-by: Stephen Hemminger <[email protected]> Reviewed-by: Haiyue Wang <[email protected]> Acked-by: Jeff Guo <[email protected]> Reviewed-by: Andrew Rybchenko <[email protected]> Reviewed-by: Ferruh Yigit <[email protected]> Acked-by: Ajit Khaparde <[email protected]>
show more ...
|
| #
b8f5d2ae |
| 16-Oct-2020 |
Thomas Monjalon <[email protected]> |
ethdev: remove forcing stopped state upon close
When closing a port, it is supposed to be already stopped, and marked as such with "dev_started" state zeroed by the stop API.
Resetting "dev_started
ethdev: remove forcing stopped state upon close
When closing a port, it is supposed to be already stopped, and marked as such with "dev_started" state zeroed by the stop API.
Resetting "dev_started" before calling the driver close operation was hiding the case of not properly stopped port being closed. The flag "dev_started" is not changed anymore in "rte_eth_dev_close()".
In case the "dev_stop" function is called from "dev_close", bypassing "rte_eth_dev_stop()" API, the "dev_started" state must be explicitly reset in the PMD in order to keep the same behaviour.
Signed-off-by: Thomas Monjalon <[email protected]> Acked-by: Stephen Hemminger <[email protected]> Reviewed-by: Andrew Rybchenko <[email protected]>
show more ...
|
| #
f820adfc |
| 28-Sep-2020 |
Thomas Monjalon <[email protected]> |
drivers/net: remove redundant MAC addresses freeing
The MAC addresses array is already freed by rte_eth_dev_release_port(). The redundant freeing can be removed from the PMD port closing functions.
drivers/net: remove redundant MAC addresses freeing
The MAC addresses array is already freed by rte_eth_dev_release_port(). The redundant freeing can be removed from the PMD port closing functions.
Signed-off-by: Thomas Monjalon <[email protected]> Reviewed-by: Ferruh Yigit <[email protected]> Acked-by: Stephen Hemminger <[email protected]>
show more ...
|
| #
30410493 |
| 28-Sep-2020 |
Thomas Monjalon <[email protected]> |
drivers/net: check process type in close operation
The secondary processes are not allowed to release shared resources. Only process-private resources should be freed in a secondary process. Most of
drivers/net: check process type in close operation
The secondary processes are not allowed to release shared resources. Only process-private resources should be freed in a secondary process. Most of the time, there is no process-private resource, so the close operation is just forbidden in a secondary process.
After adding proper check in the port close functions, some redundant checks in the device remove functions are dropped.
Signed-off-by: Thomas Monjalon <[email protected]> Reviewed-by: Rosen Xu <[email protected]> Reviewed-by: Sachin Saxena <[email protected]> Reviewed-by: Ajit Khaparde <[email protected]> Reviewed-by: Liron Himi <[email protected]> Reviewed-by: Haiyue Wang <[email protected]> Acked-by: Jeff Guo <[email protected]> Reviewed-by: Andrew Rybchenko <[email protected]> Acked-by: Stephen Hemminger <[email protected]>
show more ...
|
| #
fbd19135 |
| 28-Sep-2020 |
Thomas Monjalon <[email protected]> |
ethdev: remove old close behaviour
The temporary flag RTE_ETH_DEV_CLOSE_REMOVE is removed. It was introduced in DPDK 18.11 in order to give time for PMDs to migrate.
The old behaviour was to free o
ethdev: remove old close behaviour
The temporary flag RTE_ETH_DEV_CLOSE_REMOVE is removed. It was introduced in DPDK 18.11 in order to give time for PMDs to migrate.
The old behaviour was to free only queues when closing a port. The new behaviour is calling rte_eth_dev_release_port() which does three more tasks: - trigger event callback - reset state and few pointers - free all generic port resources
The private port resources must be released in the .dev_close callback.
The .remove callback should: - call .dev_close callback - call rte_eth_dev_release_port() - free multi-port device shared resources
Despite waiting two years, some drivers have not migrated, so they may hit issues with the incompatible new behaviour. After sending emails, adding logs, and announcing the deprecation, the only last solution is to declare these drivers as unmaintained: ionic, liquidio, nfp Below is a summary of what to implement in those drivers.
* The freeing of private port resources must be moved from the ".remove(device)" function to the ".dev_close(port)" function.
* If a generic resource (.mac_addrs or .hash_mac_addrs) cannot be freed, it must be set to NULL in ".dev_close" function to protect from subsequent rte_eth_dev_release_port() freeing.
* Note 1: The generic resources are freed in rte_eth_dev_release_port(), after ".dev_close" is called in rte_eth_dev_close(), but not when calling ".dev_close" directly from the ".remove" PMD function. That's why rte_eth_dev_release_port() must still be called explicitly from ".remove(device)" after calling the ".dev_close" PMD function.
* Note 2: If a device can have multiple ports, the common resources must be freed only in the ".remove(device)" function.
* Note 3: The port is supposed to be in a stopped state when it is closed. If it is not the case, it is free to the PMD implementation how to react when trying to close a non-stopped port: either try to stop it automatically or just return an error.
Signed-off-by: Thomas Monjalon <[email protected]> Reviewed-by: Liron Himi <[email protected]> Reviewed-by: Haiyue Wang <[email protected]> Acked-by: Jeff Guo <[email protected]> Acked-by: Andrew Rybchenko <[email protected]> Reviewed-by: Ferruh Yigit <[email protected]> Acked-by: Stephen Hemminger <[email protected]>
show more ...
|
| #
b142387b |
| 28-Sep-2020 |
Thomas Monjalon <[email protected]> |
ethdev: allow drivers to return error on close
The device operation .dev_close was returning void. This driver interface is changed to return an int.
Note that the API rte_eth_dev_close() is still
ethdev: allow drivers to return error on close
The device operation .dev_close was returning void. This driver interface is changed to return an int.
Note that the API rte_eth_dev_close() is still returning void, although a deprecation notice is pending to change it as well.
Signed-off-by: Thomas Monjalon <[email protected]> Reviewed-by: Rosen Xu <[email protected]> Reviewed-by: Sachin Saxena <[email protected]> Reviewed-by: Liron Himi <[email protected]> Reviewed-by: Haiyue Wang <[email protected]> Acked-by: Jeff Guo <[email protected]> Reviewed-by: Andrew Rybchenko <[email protected]> Reviewed-by: Ferruh Yigit <[email protected]> Acked-by: Stephen Hemminger <[email protected]>
show more ...
|