#
6e3a4595 |
| 06-May-2020 |
Asaf Penso <asafp@mellanox.com> |
net/mlx5: support 200G link speed
Signed-off-by: Asaf Penso <asafp@mellanox.com> Acked-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com>
|
#
b689a781 |
| 09-Feb-2020 |
Thomas Monjalon <thomas@monjalon.net> |
net/mlx: replace hardcoded value with macro
Replace checking against 65535 limit, with a simpler form using RTE_MIN and UINT16_MAX macros.
Signed-off-by: Thomas Monjalon <thomas@monjalon.net> Acked
net/mlx: replace hardcoded value with macro
Replace checking against 65535 limit, with a simpler form using RTE_MIN and UINT16_MAX macros.
Signed-off-by: Thomas Monjalon <thomas@monjalon.net> Acked-by: Matan Azrad <matan@mellanox.com>
show more ...
|
#
8e46d4e1 |
| 30-Jan-2020 |
Alexander Kozyrev <akozyrev@mellanox.com> |
common/mlx5: improve assert control
Use the MLX5_ASSERT macros instead of the standard assert clause. Depends on the RTE_LIBRTE_MLX5_DEBUG configuration option to define it. If RTE_LIBRTE_MLX5_DEBUG
common/mlx5: improve assert control
Use the MLX5_ASSERT macros instead of the standard assert clause. Depends on the RTE_LIBRTE_MLX5_DEBUG configuration option to define it. If RTE_LIBRTE_MLX5_DEBUG is enabled MLX5_ASSERT is equal to RTE_VERIFY to bypass the global CONFIG_RTE_ENABLE_ASSERT option. If RTE_LIBRTE_MLX5_DEBUG is disabled, the global CONFIG_RTE_ENABLE_ASSERT can still make this assert active by calling RTE_VERIFY inside RTE_ASSERT.
Signed-off-by: Alexander Kozyrev <akozyrev@mellanox.com> Acked-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com>
show more ...
|
#
654810b5 |
| 29-Jan-2020 |
Matan Azrad <matan@mellanox.com> |
common/mlx5: share Netlink commands
Move Netlink mechanism and its dependencies from net/mlx5 to common/mlx5 in order to be ready to use by other mlx5 drivers.
The dependencies are BITFIELD defines
common/mlx5: share Netlink commands
Move Netlink mechanism and its dependencies from net/mlx5 to common/mlx5 in order to be ready to use by other mlx5 drivers.
The dependencies are BITFIELD defines, the ppc64 compilation workaround for bool type and the function mlx5_translate_port_name.
Update build mechanism accordingly.
Signed-off-by: Matan Azrad <matan@mellanox.com> Acked-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com>
show more ...
|
#
f22442cb |
| 29-Jan-2020 |
Matan Azrad <matan@mellanox.com> |
net/mlx5: reduce Netlink commands dependencies
As an arrangment for Netlink command moving to the common library, reduce the net/mlx5 dependencies.
Replace ethdev class command parameters.
Improve
net/mlx5: reduce Netlink commands dependencies
As an arrangment for Netlink command moving to the common library, reduce the net/mlx5 dependencies.
Replace ethdev class command parameters.
Improve Netlink sequence number mechanism to be controlled by the mlx5 Netlink mechanism.
Move mlx5_nl_check_switch_info to mlx5_nl.c since it is the only one which uses it.
Signed-off-by: Matan Azrad <matan@mellanox.com> Acked-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com>
show more ...
|
#
93e30982 |
| 29-Jan-2020 |
Matan Azrad <matan@mellanox.com> |
common/mlx5: share PCI device detection
Move PCI detection by IB device from mlx5 PMD to the common code.
Signed-off-by: Matan Azrad <matan@mellanox.com> Acked-by: Viacheslav Ovsiienko <viacheslavo
common/mlx5: share PCI device detection
Move PCI detection by IB device from mlx5 PMD to the common code.
Signed-off-by: Matan Azrad <matan@mellanox.com> Acked-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com>
show more ...
|
#
7b4f1e6b |
| 29-Jan-2020 |
Matan Azrad <matan@mellanox.com> |
common/mlx5: introduce common library
A new Mellanox vdpa PMD will be added to support vdpa operations by Mellanox adapters.
This vdpa PMD design includes mlx5_glue and mlx5_devx operations and lar
common/mlx5: introduce common library
A new Mellanox vdpa PMD will be added to support vdpa operations by Mellanox adapters.
This vdpa PMD design includes mlx5_glue and mlx5_devx operations and large parts of them are shared with the net/mlx5 PMD.
Create a new common library in drivers/common for mlx5 PMDs. Move mlx5_glue, mlx5_devx_cmds and their dependencies to the new mlx5 common library in drivers/common.
The files mlx5_devx_cmds.c, mlx5_devx_cmds.h, mlx5_glue.c, mlx5_glue.h and mlx5_prm.h are moved as is from drivers/net/mlx5 to drivers/common/mlx5.
Share the log mechanism macros. Separate also the log mechanism to allow different log level control to the common library.
Build files and version files are adjusted accordingly. Include lines are adjusted accordingly.
Signed-off-by: Matan Azrad <matan@mellanox.com> Acked-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com>
show more ...
|
#
543e218f |
| 29-Jan-2020 |
Matan Azrad <matan@mellanox.com> |
net/mlx5: separate DevX commands interface
The DevX commands interface is included in the mlx5.h file with a lot of other PMD interfaces.
As an arrangement to make the DevX commands shared with dif
net/mlx5: separate DevX commands interface
The DevX commands interface is included in the mlx5.h file with a lot of other PMD interfaces.
As an arrangement to make the DevX commands shared with different PMDs, this patch moves the DevX interface to a new file called mlx5_devx_cmds.h.
Also remove shared device structure dependency on DevX commands.
Replace the DevX commands log mechanism from the mlx5 driver log mechanism to the EAL log mechanism.
Signed-off-by: Matan Azrad <matan@mellanox.com> Acked-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com>
show more ...
|
#
bf864e82 |
| 27-Nov-2019 |
Tonghao Zhang <xiangxia.m.yue@gmail.com> |
net/mlx5: fix crash when setting hairpin queues
If configuring the number of tx/rx queue with rte_eth_dev_configure to nr_queues + hairpin_nr_queues, and setting tx/rx queues to nr_queues with rte_e
net/mlx5: fix crash when setting hairpin queues
If configuring the number of tx/rx queue with rte_eth_dev_configure to nr_queues + hairpin_nr_queues, and setting tx/rx queues to nr_queues with rte_eth_tx/rx_queue_setup. But not configuring the hairpin queues via rte_eth_tx/rx_hairpin_queue_setup.
When starting the netdev, there is a crash because of NULL accessing.
Fixes: cf5516696d77 ("ethdev: add hairpin queue") Cc: stable@dpdk.org
Signed-off-by: Tonghao Zhang <xiangxia.m.yue@gmail.com> Acked-by: Ori Kam <orika@mellanox.com>
show more ...
|
#
f078ceb6 |
| 15-Nov-2019 |
Viacheslav Ovsiienko <viacheslavo@mellanox.com> |
net/mlx5: fix Tx doorbell write memory barrier
As the result of testing it was found that some hosts have the performance penalty imposed by required write memory barrier after doorbell writing. Bef
net/mlx5: fix Tx doorbell write memory barrier
As the result of testing it was found that some hosts have the performance penalty imposed by required write memory barrier after doorbell writing. Before 19.08 release there was some heuristics to decide whether write memory barrier should be performed. For the bursts of recommended size (or multiple) it was supposed there were some extra ongoing packets in the next burst and write memory barrier may be skipped (supposed to be performed in the next burst, at least after descriptor writing).
This patch restores that behaviour, the devargs tx_db_nc=2 must be specified to engage this performance tuning feature.
Fixes: 8409a28573d3 ("net/mlx5: control transmit doorbell register mapping") Cc: stable@dpdk.org
Signed-off-by: Viacheslav Ovsiienko <viacheslavo@mellanox.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 ...
|
#
1c7e57f9 |
| 11-Nov-2019 |
Dekel Peled <dekelp@mellanox.com> |
net/mlx5: set maximum LRO packet size
This patch implements use of the API for LRO aggregated packet max size. Rx queue create is updated to use the relevant configuration. Documentation is updated
net/mlx5: set maximum LRO packet size
This patch implements use of the API for LRO aggregated packet max size. Rx queue create is updated to use the relevant configuration. Documentation is updated accordingly.
Signed-off-by: Dekel Peled <dekelp@mellanox.com> Acked-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com> Acked-by: Matan Azrad <matan@mellanox.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 ...
|
#
5e61bcdd |
| 07-Nov-2019 |
Viacheslav Ovsiienko <viacheslavo@mellanox.com> |
net/mlx5: check metadata registers availability
The metadata registers reg_c provide support for TAG and SET_TAG features. Although there are 8 registers are available on the current mlx5 devices, s
net/mlx5: check metadata registers availability
The metadata registers reg_c provide support for TAG and SET_TAG features. Although there are 8 registers are available on the current mlx5 devices, some of them can be reserved. The availability should be queried by iterative trial-and-error implemented by mlx5_flow_discover_mreg_c() routine.
If reg_c is available, it can be regarded inclusively that the extensive metadata support is possible. E.g. metadata register copy action, supporting 16 modify header actions (instead of 8 by default) preserving register across different domains (FDB and NIC) and so on.
Signed-off-by: Yongseok Koh <yskoh@mellanox.com> Signed-off-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com> Acked-by: Matan Azrad <matan@mellanox.com>
show more ...
|
#
63bd1629 |
| 30-Oct-2019 |
Ori Kam <orika@mellanox.com> |
net/mlx5: support RSS on hairpin
Add support for rss on hairpin queues.
Signed-off-by: Ori Kam <orika@mellanox.com> Acked-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com>
|
#
b6b3bf86 |
| 30-Oct-2019 |
Ori Kam <orika@mellanox.com> |
net/mlx5: get hairpin capabilities
This commits adds the hairpin get capabilities function.
Signed-off-by: Ori Kam <orika@mellanox.com> Acked-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com>
|
#
23242063 |
| 22-Oct-2019 |
Matan Azrad <matan@mellanox.com> |
net/mlx5: fix DevX event registration timing
The DevX counter management triggers an asynchronous event to get back the new counters values from the HW.
The counter management doesn't trigger 2 par
net/mlx5: fix DevX event registration timing
The DevX counter management triggers an asynchronous event to get back the new counters values from the HW.
The counter management doesn't trigger 2 parallel events for the same pool, hence, the pool cannot be updated again in the event waiting time.
When the port is stopped, the DevX event mechanism wrongly was destroyed what remained all the waiting pools in waiting state forever.
As a result, the counters of the stuck pools were never updated again.
Separate the DevX interrupt installation from the dev installation and remove the DevX interrupt unregistration\registration from the stop\start operations.
Now, the DevX interrupt should be installed in probe and uninstalled in close.
Cc: stable@dpdk.org Fixes: f15db67df09c ("net/mlx5: accelerate DV flow counter query")
Signed-off-by: Matan Azrad <matan@mellanox.com> Acked-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com>
show more ...
|
#
06ee1578 |
| 16-Oct-2019 |
Moti Haimovsky <motih@mellanox.com> |
net/mlx5: retry on link update failure
mlx5_link_update immediately returns when called with no-wait parameter and its call for retrieving the link status returns with EAGAIN error. This is too hars
net/mlx5: retry on link update failure
mlx5_link_update immediately returns when called with no-wait parameter and its call for retrieving the link status returns with EAGAIN error. This is too harsh on busy systems where a first call fails with EAGAIN from time to time. This patch adds a (very limited) retry on such cases in order to allow retrieving the link status.
Signed-off-by: Moti Haimovsky <motih@mellanox.com> Acked-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com>
show more ...
|
#
fbc83412 |
| 07-Oct-2019 |
Viacheslav Ovsiienko <viacheslavo@mellanox.com> |
net/mlx5: fix device scan within switch domain
In LAG configuration the devices in the same switch domain might be spawned on the base of different PCI devices, so we should check all devices backed
net/mlx5: fix device scan within switch domain
In LAG configuration the devices in the same switch domain might be spawned on the base of different PCI devices, so we should check all devices backed by mlx5 PMD whether they belong to specified switch domain. When the new devices are being created it is not possible to detect whether the sibling devices created in the current probe() loop belong to the driver, driver field is not filled yet (it will be done on returned success of current probe()). This patch updates the device scanning, allowing extra match on current backing PCI device, is being used to create siblings.
Fixes: f7e95215ac7c ("net/mlx5: extend switch domain searching range")
Signed-off-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com>
show more ...
|
#
bee57a0a |
| 25-Sep-2019 |
Viacheslav Ovsiienko <viacheslavo@mellanox.com> |
net/mlx5: update switch port id in bonding configuration
With bonding configuration multiple PFs may represent the single switching device with multiple ports as representors. To distinguish represe
net/mlx5: update switch port id in bonding configuration
With bonding configuration multiple PFs may represent the single switching device with multiple ports as representors. To distinguish representors belonging to different PFs we should generated unique port ID. It is proposed to use the PF index in bonding configuration to generate this unique port IDs.
Signed-off-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com> Acked-by: Matan Azrad <matan@mellanox.com>
show more ...
|
#
f7e95215 |
| 25-Sep-2019 |
Viacheslav Ovsiienko <viacheslavo@mellanox.com> |
net/mlx5: extend switch domain searching range
With bonding configurations the switch domain may be shared between multiple PCI devices, we should search the switch sibling devices within the entire
net/mlx5: extend switch domain searching range
With bonding configurations the switch domain may be shared between multiple PCI devices, we should search the switch sibling devices within the entire set of present ethernet devices backed by the mlx5 PMD.
Signed-off-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com> Acked-by: Matan Azrad <matan@mellanox.com>
show more ...
|
#
09a16bca |
| 25-Sep-2019 |
Viacheslav Ovsiienko <viacheslavo@mellanox.com> |
net/mlx5: elaborate E-Switch port parameters query
The routine mlx5_port_to_eswitch_info() is elaborated to two ones (get E-Switch port parameters by port and by device pointer) and simplified to re
net/mlx5: elaborate E-Switch port parameters query
The routine mlx5_port_to_eswitch_info() is elaborated to two ones (get E-Switch port parameters by port and by device pointer) and simplified to returning structure containing all parameters instead of copying.
Signed-off-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com> Acked-by: Matan Azrad <matan@mellanox.com>
show more ...
|
#
5cf5f710 |
| 25-Sep-2019 |
Viacheslav Ovsiienko <viacheslavo@mellanox.com> |
net/mlx5: update PCI address retrieving routine
The routine mlx5_ibv_device_to_pci_addr() takes Infiniband device list object, takes the device sysfs path from there and retrieves PCI address. The r
net/mlx5: update PCI address retrieving routine
The routine mlx5_ibv_device_to_pci_addr() takes Infiniband device list object, takes the device sysfs path from there and retrieves PCI address. The routine may be implemented in more generic way by taking sysfs path directly as parameter and can be used for getting PCI address of netdevs.
The generic routine is renamed to mlx5_dev_to_pci_addr()
Signed-off-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com> Acked-by: Matan Azrad <matan@mellanox.com>
show more ...
|
#
bdad90d1 |
| 12-Sep-2019 |
Ivan Ilchenko <ivan.ilchenko@oktetlabs.ru> |
ethdev: change device info get callback to return int
Change eth_dev_infos_get_t return value from void to int. Make eth_dev_infos_get_t implementations across all drivers to return negative errno v
ethdev: change device info get callback to return int
Change eth_dev_infos_get_t return value from void to int. Make eth_dev_infos_get_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 ...
|
#
8a6a09f8 |
| 09-Sep-2019 |
Dekel Peled <dekelp@mellanox.com> |
net/mlx5: support reading module EEPROM data
This patch implements ethdev operations get_module_info and get_module_eeprom, to support ethtool commands ETHTOOL_GMODULEINFO and ETHTOOL_GMODULEEEPROM.
net/mlx5: support reading module EEPROM data
This patch implements ethdev operations get_module_info and get_module_eeprom, to support ethtool commands ETHTOOL_GMODULEINFO and ETHTOOL_GMODULEEEPROM.
New functions mlx5_get_module_info() and mlx5_get_module_eeprom() added in mlx5_ethdev.c.
Signed-off-by: Dekel Peled <dekelp@mellanox.com> Acked-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com>
show more ...
|