| #
7483341a |
| 06-Oct-2021 |
Xueming Li <xuemingl@nvidia.com> |
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 <xuemingl@nvidia.com> Reviewed-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru> Acked-by: Ajit Khaparde <ajit.khaparde@broadcom.com> Acked-by: Somnath Kotur <somnath.kotur@broadcom.com> Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
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, v21.05-rc2 |
|
| #
eeded204 |
| 26-Apr-2021 |
David Marchand <david.marchand@redhat.com> |
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 <david.marchand@redhat.com> Signed-off-by: Thomas Monjalon <thomas@monjalon.net> Acked-by: Bruce Richardson <bruce.richardson@intel.com>
show more ...
|
|
Revision tags: v21.05-rc1, v21.02, v21.02-rc4, v21.02-rc3, v21.02-rc2 |
|
| #
82a752e3 |
| 26-Jan-2021 |
Sunil Kumar Kori <skori@marvell.com> |
net/octeontx: fix max Rx packet length
Maximum Rx packet length is getting updated twice which corrupts actual value.
Fixes: 3151e6a687a3 ("net/octeontx: support MTU") Cc: stable@dpdk.org
Signed-o
net/octeontx: fix max Rx packet length
Maximum Rx packet length is getting updated twice which corrupts actual value.
Fixes: 3151e6a687a3 ("net/octeontx: support MTU") Cc: stable@dpdk.org
Signed-off-by: Sunil Kumar Kori <skori@marvell.com> Acked-by: Harman Kalra <hkalra@marvell.com>
show more ...
|
|
Revision tags: v21.02-rc1 |
|
| #
e6ad69e4 |
| 18-Jan-2021 |
Steve Yang <stevex.yang@intel.com> |
net/octeontx: fix jumbo frame flag condition for MTU set
The jumbo frame uses the 'RTE_ETHER_MAX_LEN' as boundary condition, but the Ether overhead is larger than 18 when it supports dual VLAN tags.
net/octeontx: fix jumbo frame flag condition for MTU set
The jumbo frame uses the 'RTE_ETHER_MAX_LEN' as boundary condition, but the Ether overhead is larger than 18 when it supports dual VLAN tags. That will cause the jumbo flag rx offload is wrong when MTU size is 'RTE_ETHER_MTU'.
This fix will change the boundary condition with 'RTE_ETHER_MTU' and overhead, that perhaps impacts the cases of the jumbo frame related.
Fixes: 3151e6a687a3 ("net/octeontx: support MTU") Cc: stable@dpdk.org
Signed-off-by: Steve Yang <stevex.yang@intel.com> Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com> Acked-by: Harman Kalra <hkalra@marvell.com>
show more ...
|
|
Revision tags: v20.11, v20.11-rc5, v20.11-rc4, v20.11-rc3, v20.11-rc2, v20.11-rc1 |
|
| #
f30e69b4 |
| 14-Oct-2020 |
Ferruh Yigit <ferruh.yigit@intel.com> |
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 <ferruh.yigit@intel.com> Acked-by: Haiyue Wang <haiyue.wang@intel.com> Acked-by: Xiao Wang <xiao.w.wang@intel.com> Acked-by: Thomas Monjalon <thomas@monjalon.net>
show more ...
|
| #
62024eb8 |
| 15-Oct-2020 |
Ivan Ilchenko <ivan.ilchenko@oktetlabs.ru> |
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 <ivan.ilchenko@oktetlabs.ru> Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com> Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
show more ...
|
| #
0607dadf |
| 16-Oct-2020 |
Thomas Monjalon <thomas@monjalon.net> |
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 <thomas@monjalon.net> Acked-by: Stephen Hemminger <stephen@networkplumber.org> Reviewed-by: Haiyue Wang <haiyue.wang@intel.com> Acked-by: Jeff Guo <jia.guo@intel.com> Reviewed-by: Andrew Rybchenko <arybchenko@solarflare.com> Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com> Acked-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
show more ...
|
| #
30410493 |
| 28-Sep-2020 |
Thomas Monjalon <thomas@monjalon.net> |
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 <thomas@monjalon.net> Reviewed-by: Rosen Xu <rosen.xu@intel.com> Reviewed-by: Sachin Saxena <sachin.saxena@oss.nxp.com> Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com> Reviewed-by: Liron Himi <lironh@marvell.com> Reviewed-by: Haiyue Wang <haiyue.wang@intel.com> Acked-by: Jeff Guo <jia.guo@intel.com> Reviewed-by: Andrew Rybchenko <arybchenko@solarflare.com> Acked-by: Stephen Hemminger <stephen@networkplumber.org>
show more ...
|
| #
fbd19135 |
| 28-Sep-2020 |
Thomas Monjalon <thomas@monjalon.net> |
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 <thomas@monjalon.net> Reviewed-by: Liron Himi <lironh@marvell.com> Reviewed-by: Haiyue Wang <haiyue.wang@intel.com> Acked-by: Jeff Guo <jia.guo@intel.com> Acked-by: Andrew Rybchenko <arybchenko@solarflare.com> Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com> Acked-by: Stephen Hemminger <stephen@networkplumber.org>
show more ...
|
| #
90629946 |
| 28-Sep-2020 |
Thomas Monjalon <thomas@monjalon.net> |
net/octeontx: release port upon close
The flag RTE_ETH_DEV_CLOSE_REMOVE is set so all port resources can be freed by rte_eth_dev_close().
The callback ".dev_close(port)" is called also from the ".r
net/octeontx: release port upon close
The flag RTE_ETH_DEV_CLOSE_REMOVE is set so all port resources can be freed by rte_eth_dev_close().
The callback ".dev_close(port)" is called also from the ".remove(device)" operation.
Signed-off-by: Thomas Monjalon <thomas@monjalon.net> Acked-by: Stephen Hemminger <stephen@networkplumber.org>
show more ...
|
| #
b142387b |
| 28-Sep-2020 |
Thomas Monjalon <thomas@monjalon.net> |
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 <thomas@monjalon.net> Reviewed-by: Rosen Xu <rosen.xu@intel.com> Reviewed-by: Sachin Saxena <sachin.saxena@oss.nxp.com> Reviewed-by: Liron Himi <lironh@marvell.com> Reviewed-by: Haiyue Wang <haiyue.wang@intel.com> Acked-by: Jeff Guo <jia.guo@intel.com> Reviewed-by: Andrew Rybchenko <arybchenko@solarflare.com> Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com> Acked-by: Stephen Hemminger <stephen@networkplumber.org>
show more ...
|
| #
5723fbed |
| 09-Sep-2020 |
Ferruh Yigit <ferruh.yigit@intel.com> |
ethdev: remove underscore prefix from internal API
'_rte_eth_dev_callback_process()' & '_rte_eth_dev_reset()' internal APIs has unconventional underscore ('_') prefix. Although this is not documente
ethdev: remove underscore prefix from internal API
'_rte_eth_dev_callback_process()' & '_rte_eth_dev_reset()' internal APIs has unconventional underscore ('_') prefix. Although this is not documented most probably this is to mark them as internal. Since we have '__rte_internal' flag to mark this, removing '_' from API names.
For '_rte_eth_dev_reset()', there is already a public API named 'rte_eth_dev_reset()', so renaming '_rte_eth_dev_reset()' to 'rte_eth_dev_internal_reset'.
Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com> Acked-by: Andrew Rybchenko <arybchenko@solarflare.com> Acked-by: David Marchand <david.marchand@redhat.com> Acked-by: Sachin Saxena <sachin.saxena@nxp.com>
show more ...
|
| #
dbd38092 |
| 17-Sep-2020 |
David Marchand <david.marchand@redhat.com> |
ethdev: remove unused kernel driver field
This field was not generic as it was filled with PCI kernel drivers only. It has no known in-tree user (and I could not find opensource projects using it).
ethdev: remove unused kernel driver field
This field was not generic as it was filled with PCI kernel drivers only. It has no known in-tree user (and I could not find opensource projects using it).
Signed-off-by: David Marchand <david.marchand@redhat.com> Acked-by: Andrew Rybchenko <arybchenko@solarflare.com>
show more ...
|
|
Revision tags: v20.08, v20.08-rc4, v20.08-rc3, v20.08-rc2, v20.08-rc1 |
|
| #
9c99878a |
| 01-Jul-2020 |
Jerin Jacob <jerinj@marvell.com> |
log: introduce logtype register macro
Introduce the RTE_LOG_REGISTER macro to avoid the code duplication in the logtype registration process.
It is a wrapper macro for declaring the logtype, regist
log: introduce logtype register macro
Introduce the RTE_LOG_REGISTER macro to avoid the code duplication in the logtype registration process.
It is a wrapper macro for declaring the logtype, registering it and setting its level in the constructor context.
Signed-off-by: Jerin Jacob <jerinj@marvell.com> Acked-by: Adam Dybkowski <adamx.dybkowski@intel.com> Acked-by: Sachin Saxena <sachin.saxena@nxp.com> Acked-by: Akhil Goyal <akhil.goyal@nxp.com>
show more ...
|
|
Revision tags: v20.05, v20.05-rc4, v20.05-rc3, v20.05-rc2, v20.05-rc1 |
|
| #
5ed5df80 |
| 07-Apr-2020 |
Yunjian Wang <wangyunjian@huawei.com> |
net/octeontx: fix dangling pointer on init failure
When octeontx_create() is cleaning up, it does not correctly set the mac_addrs variable to NULL, which will lead to a double free.
Fixes: 9e399b88
net/octeontx: fix dangling pointer on init failure
When octeontx_create() is cleaning up, it does not correctly set the mac_addrs variable to NULL, which will lead to a double free.
Fixes: 9e399b88ce2f ("net/octeontx: fix memory leak of MAC address table") Cc: stable@dpdk.org
Signed-off-by: Yunjian Wang <wangyunjian@huawei.com> Acked-by: Harman Kalra <hkalra@marvell.com>
show more ...
|
| #
100f6992 |
| 16-Mar-2020 |
Harman Kalra <hkalra@marvell.com> |
net/octeontx: support Rx/Tx checksum offload
This patch implements rx/tx checksum offload. In case of wrong checksum received (inner/outer l3/l4) it reports the corresponding layer which has bad che
net/octeontx: support Rx/Tx checksum offload
This patch implements rx/tx checksum offload. In case of wrong checksum received (inner/outer l3/l4) it reports the corresponding layer which has bad checksum and also corrects it if hw checksum is enabled on tx side.
Signed-off-by: Harman Kalra <hkalra@marvell.com>
show more ...
|
| #
241a6500 |
| 16-Mar-2020 |
Vamsi Attunuru <vattunuru@marvell.com> |
net/octeontx: support flow control
Patch adds ethdev flow control set/get callback ops, pmd enables modifying flow control attributes like rx_pause, tx_pause, high & low water mark.
Signed-off-by:
net/octeontx: support flow control
Patch adds ethdev flow control set/get callback ops, pmd enables modifying flow control attributes like rx_pause, tx_pause, high & low water mark.
Signed-off-by: Vamsi Attunuru <vattunuru@marvell.com> Acked-by: Harman Kalra <hkalra@marvell.com>
show more ...
|
| #
8b42b07e |
| 16-Mar-2020 |
Harman Kalra <hkalra@marvell.com> |
net/octeontx: support set link up/down
Adding support for setting link up/down eth operation. It is used to enable disable lmac. Also implemented a poll function for getting the link status at regu
net/octeontx: support set link up/down
Adding support for setting link up/down eth operation. It is used to enable disable lmac. Also implemented a poll function for getting the link status at regular intervals.
Signed-off-by: Harman Kalra <hkalra@marvell.com>
show more ...
|
| #
56139e85 |
| 16-Mar-2020 |
Vamsi Attunuru <vattunuru@marvell.com> |
net/octeontx: support VLAN filter offload
Patch adds support for vlan filter offload support. MBOX messages for vlan filter on/off and vlan filter entry add/rm are added to configure PCAM entries to
net/octeontx: support VLAN filter offload
Patch adds support for vlan filter offload support. MBOX messages for vlan filter on/off and vlan filter entry add/rm are added to configure PCAM entries to filter out the vlan traffic on a given port.
Patch also defines rx_offload_flag for vlan filtering.
Signed-off-by: Vamsi Attunuru <vattunuru@marvell.com> Acked-by: Harman Kalra <hkalra@marvell.com>
show more ...
|
| #
3151e6a6 |
| 16-Mar-2020 |
Harman Kalra <hkalra@marvell.com> |
net/octeontx: support MTU
Adding support for mtu eth operation which configures mtu based on max pkt len.
Signed-off-by: Harman Kalra <hkalra@marvell.com>
|
| #
5cbe1848 |
| 16-Mar-2020 |
Harman Kalra <hkalra@marvell.com> |
net/octeontx: support fast mbuf free
This patch adds capability to fast release of mbuf following successful transmission.
Signed-off-by: Harman Kalra <hkalra@marvell.com>
|
| #
7f4116bd |
| 16-Mar-2020 |
Harman Kalra <hkalra@marvell.com> |
net/octeontx: add framework for Rx/Tx offloads
Adding macro based framework to hook rx/tx burst function pointers to the appropriate function based on rx/tx offloads.
Signed-off-by: Harman Kalra <h
net/octeontx: add framework for Rx/Tx offloads
Adding macro based framework to hook rx/tx burst function pointers to the appropriate function based on rx/tx offloads.
Signed-off-by: Harman Kalra <hkalra@marvell.com>
show more ...
|
| #
85221a0c |
| 16-Mar-2020 |
Harman Kalra <hkalra@marvell.com> |
net/octeontx: support multi segment
Adding multi segment support to the octeontx PMD. Also adding the logic to share rx/tx ofloads with the eventdev code.
Signed-off-by: Harman Kalra <hkalra@marvel
net/octeontx: support multi segment
Adding multi segment support to the octeontx PMD. Also adding the logic to share rx/tx ofloads with the eventdev code.
Signed-off-by: Harman Kalra <hkalra@marvell.com>
show more ...
|
|
Revision tags: v20.02, v20.02-rc4, v20.02-rc3, v20.02-rc2 |
|
| #
9614459b |
| 29-Jan-2020 |
Sunil Kumar Kori <skori@marvell.com> |
net/octeontx: fix user supplied MAC address index
Earlier after a successful mac_addr_add operation, index was returned by underlying layer which was unused but same as provided by DPDK API.
So API
net/octeontx: fix user supplied MAC address index
Earlier after a successful mac_addr_add operation, index was returned by underlying layer which was unused but same as provided by DPDK API.
So API is enhanced to use application provided index location to add MAC address entry.
Fixes: e4373bf1b3f5 ("net/octeontx: add unicast MAC filter")
Signed-off-by: Sunil Kumar Kori <skori@marvell.com> Acked-by: Harman Kalra <hkalra@marvell.com>
show more ...
|
| #
9e399b88 |
| 29-Jan-2020 |
Sunil Kumar Kori <skori@marvell.com> |
net/octeontx: fix memory leak of MAC address table
MAC address table is allocated during octeontx device create and same is used to maintain list of MAC address associated to port. This table is not
net/octeontx: fix memory leak of MAC address table
MAC address table is allocated during octeontx device create and same is used to maintain list of MAC address associated to port. This table is not getting freed niether in case of error nor during graceful shutdown of port.
Patch fixes memory required memory for both the cases as mentioned.
Fixes: f18b146c498d ("net/octeontx: create ethdev ports") Cc: stable@dpdk.org
Signed-off-by: Sunil Kumar Kori <skori@marvell.com> Acked-by: Harman Kalra <hkalra@marvell.com>
show more ...
|