#
b8f5d2ae |
| 16-Oct-2020 |
Thomas Monjalon <thomas@monjalon.net> |
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 <thomas@monjalon.net> Acked-by: Stephen Hemminger <stephen@networkplumber.org> Reviewed-by: Andrew Rybchenko <arybchenko@solarflare.com>
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 ...
|
#
1df1bb52 |
| 28-Sep-2020 |
Rasesh Mody <rmody@marvell.com> |
net/qede: release port upon close
Set RTE_ETH_DEV_CLOSE_REMOVE upon probe so all the private resources for the port can be freed by rte_eth_dev_close(). With this change the private port resources a
net/qede: release port upon close
Set RTE_ETH_DEV_CLOSE_REMOVE upon probe so all the private resources for the port can be freed by rte_eth_dev_close(). With this change the private port resources are released in the .dev_close callback.
Signed-off-by: Rasesh Mody <rmody@marvell.com> 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 ...
|
#
c176fd86 |
| 25-Sep-2020 |
Manish Chopra <manishc@marvell.com> |
net/qede: initialize VF MAC and link
This patch configures VFs with random mac if no MAC is provided by the PF/bulletin. This also adds required bulletin APIs by PF-PMD driver to communicate LINK pr
net/qede: initialize VF MAC and link
This patch configures VFs with random mac if no MAC is provided by the PF/bulletin. This also adds required bulletin APIs by PF-PMD driver to communicate LINK properties/changes to the VFs through bulletin update mechanism.
With these changes, VF-PMD instance is able to run fastpath over PF-PMD driver instance.
Signed-off-by: Manish Chopra <manishc@marvell.com> Signed-off-by: Igor Russkikh <irusskikh@marvell.com> Signed-off-by: Rasesh Mody <rmody@marvell.com>
show more ...
|
#
d459b043 |
| 25-Sep-2020 |
Manish Chopra <manishc@marvell.com> |
net/qede: add infrastructure support for VF load
This patch adds necessary infrastructure support (required to handle messages from VF and sending ramrod on behalf of VF's configuration request from
net/qede: add infrastructure support for VF load
This patch adds necessary infrastructure support (required to handle messages from VF and sending ramrod on behalf of VF's configuration request from alarm handler context) to start/load the VF-PMD driver instance on top of PF-PMD driver instance.
Signed-off-by: Manish Chopra <manishc@marvell.com> Signed-off-by: Igor Russkikh <irusskikh@marvell.com> Signed-off-by: Rasesh Mody <rmody@marvell.com>
show more ...
|
#
9ffe2a15 |
| 25-Sep-2020 |
Manish Chopra <manishc@marvell.com> |
net/qede: configure VFs on hardware
Based on number of VFs enabled at PCI, PF-PMD driver instance enables/configures those VFs from hardware perspective, such that in later patches they could get re
net/qede: configure VFs on hardware
Based on number of VFs enabled at PCI, PF-PMD driver instance enables/configures those VFs from hardware perspective, such that in later patches they could get required HW access to communicate with PFs for slowpath configuration and run the fastpath themselves.
This patch also add two new qede IOV files [qede_sriov(.c|.h)] under qede directory to add non-base driver IOV APIs/contents there.
Signed-off-by: Manish Chopra <manishc@marvell.com> Signed-off-by: Igor Russkikh <irusskikh@marvell.com> Signed-off-by: Rasesh Mody <rmody@marvell.com>
show more ...
|
#
cbfc6111 |
| 09-Sep-2020 |
Ferruh Yigit <ferruh.yigit@intel.com> |
ethdev: move inline device operations
This patch is a preparation to hide the 'struct eth_dev_ops' from applications by moving some device operations from 'struct eth_dev_ops' to 'struct rte_eth_dev
ethdev: move inline device operations
This patch is a preparation to hide the 'struct eth_dev_ops' from applications by moving some device operations from 'struct eth_dev_ops' to 'struct rte_eth_dev'.
Mentioned ethdev APIs are in the data path and implemented as inline because of performance reasons.
Exposing 'struct eth_dev_ops' to applications is bad because it is a contract between ethdev and PMDs, not really needs to be known by applications, also changes in the struct causing ABI breakages which shouldn't.
To be able to both keep APIs inline and hide the 'struct eth_dev_ops', moving device operations used in ethdev inline APIs to 'struct rte_eth_dev' to the same level with Rx/Tx burst functions.
The list of dev_ops moved: eth_rx_queue_count_t rx_queue_count; eth_rx_descriptor_done_t rx_descriptor_done; eth_rx_descriptor_status_t rx_descriptor_status; eth_tx_descriptor_status_t tx_descriptor_status;
Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com> Reviewed-by: Andrew Rybchenko <arybchenko@solarflare.com> Acked-by: David Marchand <david.marchand@redhat.com> Acked-by: Sachin Saxena <sachin.saxena@nxp.com>
show more ...
|
#
50ce3e7a |
| 09-Jul-2020 |
Wei Hu (Xavier) <xavier.huwei@huawei.com> |
ethdev: fix VLAN offloads set if no relative capabilities
Currently, there is a potential problem that calling the API function rte_eth_dev_set_vlan_offload to start VLAN hardware offloads which the
ethdev: fix VLAN offloads set if no relative capabilities
Currently, there is a potential problem that calling the API function rte_eth_dev_set_vlan_offload to start VLAN hardware offloads which the driver does not support. If the PMD driver does not support certain VLAN hardware offloads and does not check for it, the hardware setting will not change, but the VLAN offloads in dev->data->dev_conf.rxmode.offloads will be turned on.
It is supposed to check the hardware capabilities to decide whether the relative callback needs to be called just like the behavior in the API function named rte_eth_dev_configure. And it is also needed to cleanup duplicated checks which are done in some PMDs. Also, note that it is behaviour change for some PMDs which simply ignore (with error/warning log message) unsupported VLAN offloads, but now it will fail.
Fixes: a4996bd89c42 ("ethdev: new Rx/Tx offloads API") Fixes: 0ebce6129bc6 ("net/dpaa2: support new ethdev offload APIs") Fixes: f9416bbafd98 ("net/enic: remove VLAN filter handler") Fixes: 4f7d9e383e5c ("fm10k: update vlan offload features") Fixes: fdba3bf15c7b ("net/hinic: add VLAN filter and offload") Fixes: b96fb2f0d22b ("net/i40e: handle QinQ strip") Fixes: d4a27a3b092a ("nfp: add basic features") Fixes: 56139e85abec ("net/octeontx: support VLAN filter offload") Fixes: ba1b3b081edf ("net/octeontx2: support VLAN offloads") Fixes: d87246a43759 ("net/qede: enable and disable VLAN filtering") Cc: stable@dpdk.org
Signed-off-by: Chengchang Tang <tangchengchang@huawei.com> Signed-off-by: Wei Hu (Xavier) <xavier.huwei@huawei.com> Acked-by: Andrew Rybchenko <arybchenko@solarflare.com> Acked-by: Hyong Youb Kim <hyonkim@cisco.com> Acked-by: Sachin Saxena <sachin.saxena@nxp.com> Acked-by: Xiaoyun Wang <cloud.wangxiaoyun@huawei.com> Acked-by: Harman Kalra <hkalra@marvell.com> Acked-by: Jeff Guo <jia.guo@intel.com> Acked-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com>
show more ...
|
#
a50d7cbb |
| 08-Jul-2020 |
Rasesh Mody <rmody@marvell.com> |
net/qede: support registers dump
Add support for .get_reg eth_dev ops which will be used to collect the firmware debug data.
PMD on detecting on some HW errors will collect the FW/HW Dump to a buff
net/qede: support registers dump
Add support for .get_reg eth_dev ops which will be used to collect the firmware debug data.
PMD on detecting on some HW errors will collect the FW/HW Dump to a buffer and then it will save it to a file implemented in qede_save_fw_dump().
Dump file location and name: Location: <RTE_SDK> or DPDK root Name: qede_pmd_dump_mm-dd-yy_hh-mm-ss.bin
DPDK applications can initiate a debug data collection by invoking DPDK library’s rte_eth_dev_get_reg_info() API. This API invokes .get_reg() interface in the PMD.
PMD implementation of .get_reg() collects the FW/HW Dump, saves it to data field of rte_dev_reg_info and passes it to the application. It’s the responsibility of the application to save the FW/HW Dump to a file. We recommendation using the file name format used by qede_save_fw_dump().
Signed-off-by: Rasesh Mody <rmody@marvell.com> Signed-off-by: Igor Russkikh <irusskikh@marvell.com>
show more ...
|
#
2352f348 |
| 08-Jul-2020 |
Rasesh Mody <rmody@marvell.com> |
net/qede/base: add changes for debug data collection
This patch adds base driver APIs required for debug data collection. It adds support for dumping internal lookup tables(ilt), reading nvram image
net/qede/base: add changes for debug data collection
This patch adds base driver APIs required for debug data collection. It adds support for dumping internal lookup tables(ilt), reading nvram image, register definitions.
Signed-off-by: Rasesh Mody <rmody@marvell.com> Signed-off-by: Igor Russkikh <irusskikh@marvell.com>
show more ...
|
#
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 ...
|
#
b10231ae |
| 18-Jun-2020 |
Devendra Singh Rawat <dsinghrawat@marvell.com> |
net/qede: fix multicast drop in promiscuous mode
After enabling promiscuous mode all packets whose destination MAC address is a multicast address were being dropped. This fix configures H/W to recei
net/qede: fix multicast drop in promiscuous mode
After enabling promiscuous mode all packets whose destination MAC address is a multicast address were being dropped. This fix configures H/W to receive all traffic in promiscuous mode. Promiscuous mode also overrides allmulticast mode on/off status.
Fixes: 40e9f6fc1558 ("net/qede: enable VF-VF traffic with unmatched dest address") Cc: stable@dpdk.org
Signed-off-by: Devendra Singh Rawat <dsinghrawat@marvell.com> Signed-off-by: Igor Russkikh <irusskikh@marvell.com> Signed-off-by: Rasesh Mody <rmody@marvell.com>
show more ...
|
#
05ccc9d8 |
| 15-May-2020 |
Rasesh Mody <rmody@marvell.com> |
net/qede: fix port reconfiguration
This patch fixes deallocation of all fastpath resources unconditionally, when re-configuring the device. When re-allocating resources PMD depends on application to
net/qede: fix port reconfiguration
This patch fixes deallocation of all fastpath resources unconditionally, when re-configuring the device. When re-allocating resources PMD depends on application to explicitly setup the Rx/Tx queue.
Deallocation of all the resources is only required if the Rx/Tx queue configuration changes. For other scenarios like KNI MTU change we'd keep existing configuration.
Fixes: 8de0c4201926 ("net/qede: fix odd number of queues usage in 100G mode") Fixes: dd28bc8c6ef4 ("net/qede: fix VF port creation sequence") Cc: stable@dpdk.org
Signed-off-by: Rasesh Mody <rmody@marvell.com> Signed-off-by: Igor Russkikh <irusskikh@marvell.com>
show more ...
|
#
a60704d1 |
| 15-May-2020 |
Rasesh Mody <rmody@marvell.com> |
net/qede: fix assignment of Rx/Tx handlers
Fix to assign dummy Rx/Tx handlers in dev_stop. For MTU set, assignment of the appropriate Rx/Tx handlers will be handled by dev_start/dev_stop.
Fixes: 81
net/qede: fix assignment of Rx/Tx handlers
Fix to assign dummy Rx/Tx handlers in dev_stop. For MTU set, assignment of the appropriate Rx/Tx handlers will be handled by dev_start/dev_stop.
Fixes: 81f8804992c9 ("net/qede: enhance Rx CPU utilization") Fixes: 8de0c4201926 ("net/qede: fix odd number of queues usage in 100G mode") Cc: stable@dpdk.org
Signed-off-by: Rasesh Mody <rmody@marvell.com> Signed-off-by: Igor Russkikh <irusskikh@marvell.com>
show more ...
|
#
d7897058 |
| 14-May-2020 |
Rasesh Mody <rmody@marvell.com> |
net/qede: fix link state configuration
Move link state enable/disable to dev_start() and dev_stop() respectively. This will ensure when devices are stopped, link status will be appropriately shown a
net/qede: fix link state configuration
Move link state enable/disable to dev_start() and dev_stop() respectively. This will ensure when devices are stopped, link status will be appropriately shown as down.
Fixes: dd28bc8c6ef4 ("net/qede: fix VF port creation sequence") Cc: stable@dpdk.org
Signed-off-by: Shahed Shaikh <shshaikh@marvell.com> Signed-off-by: Rasesh Mody <rmody@marvell.com> Signed-off-by: Igor Russkikh <irusskikh@marvell.com>
show more ...
|
#
f97b56f9 |
| 25-Apr-2020 |
Rasesh Mody <rmody@marvell.com> |
net/qede: support FW version query
Add support for get firmware version operation.
Get and dump multi boot image (MBI) version as part of get firmware version string along with Management firmware
net/qede: support FW version query
Add support for get firmware version operation.
Get and dump multi boot image (MBI) version as part of get firmware version string along with Management firmware (MFW) version. Use qede_fw_version_get() for PMD info logs.
Signed-off-by: Yash Sharma <ysharma@marvell.com> Signed-off-by: Rasesh Mody <rmody@marvell.com> Signed-off-by: Igor Russkikh <irusskikh@marvell.com>
show more ...
|
#
611faa5f |
| 29-Feb-2020 |
Luca Boccassi <bluca@debian.org> |
fix various typos found by Lintian
Cc: stable@dpdk.org
Signed-off-by: Luca Boccassi <bluca@debian.org>
|
#
bf44e27a |
| 06-Feb-2020 |
Manish Chopra <manishc@marvell.com> |
net/qede: do not stop vport if not started
Stopping an already disabled vport leads to firmware assert. Stop the vport only if it was started.
Fixes: 2ea6f76aff40 ("qede: add core driver") Cc: stab
net/qede: do not stop vport if not started
Stopping an already disabled vport leads to firmware assert. Stop the vport only if it was started.
Fixes: 2ea6f76aff40 ("qede: add core driver") Cc: stable@dpdk.org
Signed-off-by: Manish Chopra <manishc@marvell.com> Signed-off-by: Rasesh Mody <rmody@marvell.com>
show more ...
|
#
74e5a25d |
| 02-Jan-2020 |
Shahed Shaikh <shshaikh@marvell.com> |
net/qede: enhance Tx CPU utilization
Use lightweight transmit handler which handles non-offloaded Tx data path. We get CPU utilization improvement of ~8%.
Signed-off-by: Shahed Shaikh <shshaikh@mar
net/qede: enhance Tx CPU utilization
Use lightweight transmit handler which handles non-offloaded Tx data path. We get CPU utilization improvement of ~8%.
Signed-off-by: Shahed Shaikh <shshaikh@marvell.com>
show more ...
|
#
81f88049 |
| 02-Jan-2020 |
Shahed Shaikh <shshaikh@marvell.com> |
net/qede: enhance Rx CPU utilization
Use light weight receive packet handler for non-LRO and non-scatter packets to improve CPU utilization in receive data path. We achieved ~18% CPU cycles improvem
net/qede: enhance Rx CPU utilization
Use light weight receive packet handler for non-LRO and non-scatter packets to improve CPU utilization in receive data path. We achieved ~18% CPU cycles improvement using this handler.
Signed-off-by: Shahed Shaikh <shshaikh@marvell.com>
show more ...
|
#
d0ef40a1 |
| 10-Jan-2020 |
Dharmik Thakkar <dharmik.thakkar@arm.com> |
net/qede: remove local bool type
Replace 'typedef int bool' with 'stdbool.h' to avoid possible multiple definitions of 'bool'.
(Not sure if the previous code is checking for true/false condition. R
net/qede: remove local bool type
Replace 'typedef int bool' with 'stdbool.h' to avoid possible multiple definitions of 'bool'.
(Not sure if the previous code is checking for true/false condition. Recommend careful review on this patch.)
Signed-off-by: Dharmik Thakkar <dharmik.thakkar@arm.com> Reviewed-by: Phil Yang <phil.yang@arm.com> Reviewed-by: Ruifeng Wang <ruifeng.wang@arm.com> Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
show more ...
|
#
73fb89dd |
| 14-Nov-2019 |
Andrew Rybchenko <arybchenko@solarflare.com> |
drivers/net: fix RSS hash offload flag if no RSS
By default RSS hash delivery (offload) is bound to RSS mode and it is incorrect to advertise it as enabled if Rx multi-queue mode has no RSS.
Fixes:
drivers/net: fix RSS hash offload flag if no RSS
By default RSS hash delivery (offload) is bound to RSS mode and it is incorrect to advertise it as enabled if Rx multi-queue mode has no RSS.
Fixes: 8b945a7f7dcb ("drivers/net: update Rx RSS hash offload capabilities")
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com> Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
show more ...
|
#
8b945a7f |
| 11-Nov-2019 |
Pavan Nikhilesh <pbhagavatula@marvell.com> |
drivers/net: update Rx RSS hash offload capabilities
Add DEV_RX_OFFLOAD_RSS_HASH flag for all PMDs that support RSS hash delivery.
Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com> Reviewed
drivers/net: update Rx RSS hash offload capabilities
Add DEV_RX_OFFLOAD_RSS_HASH flag for all PMDs that support RSS hash delivery.
Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com> Reviewed-by: Andrew Rybchenko <arybchenko@solarflare.com> Reviewed-by: Hemant Agrawal <hemant.agrawal@nxp.com> Acked-by: Jerin Jacob <jerinj@marvell.com> Acked-by: Ajit Khaparde <ajit.khaparde@broadcom.com> Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
show more ...
|
#
30b170b4 |
| 20-Oct-2019 |
Shahed Shaikh <shshaikh@marvell.com> |
net/qede: fix setting VLAN strip mode
Commit 9a6d30ae6d46 ("net/qede: refactoring vport handling code") deleted the code as part of refactoring which sets vlan strip mode. Revert it back and fix vla
net/qede: fix setting VLAN strip mode
Commit 9a6d30ae6d46 ("net/qede: refactoring vport handling code") deleted the code as part of refactoring which sets vlan strip mode. Revert it back and fix vlan strip feature.
Fixes: 9a6d30ae6d46 ("net/qede: refactoring vport handling code") Cc: stable@dpdk.org
Signed-off-by: Shahed Shaikh <shshaikh@marvell.com> Reviewed-by: Rasesh Mody <rmody@marvell.com>
show more ...
|