#
6b5b3005 |
| 05-Nov-2021 |
Bing Zhao <bingz@nvidia.com> |
net/mlx5: fix RETA update without stopping device
The global redirection table is used to create the default flow rules for the ingress traffic with the lowest priority. It is also used to create th
net/mlx5: fix RETA update without stopping device
The global redirection table is used to create the default flow rules for the ingress traffic with the lowest priority. It is also used to create the default RSS rule in the destination table when there is a tunnel offload.
To update the RETA in-flight, there is no restriction in the ethdev API. In the previous implementation of mlx5, a port restart was needed to make the new configuration take effect.
The restart is heavy, e.g., all the queues will be released and reallocated, users' rules will be flushed. Since the restart is internal, there is a risk to crash the application when some change in the ethdev is introduced but no workaround is done in mlx5 PMD.
The users' rules, including the default miss rule for tunnel offload, should not be impacted by the RETA update. It is improper to flush all rules when updating RETA.
With this patch, only the default rules will be flushed and re-created with the new table configuration.
Fixes: 3f2fe392bd49 ("net/mlx5: fix crash during RETA update") Cc: stable@dpdk.org
Signed-off-by: Bing Zhao <bingz@nvidia.com> Acked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
show more ...
|
#
5cf0707f |
| 04-Nov-2021 |
Xueming Li <xuemingl@nvidia.com> |
net/mlx5: remove Rx queue data list from device
Rx queue data list(priv->rxqs) can be replaced by Rx queue list(priv->rxq_privs), removes it and replaces with universal wrapper API.
Signed-off-by:
net/mlx5: remove Rx queue data list from device
Rx queue data list(priv->rxqs) can be replaced by Rx queue list(priv->rxq_privs), removes it and replaces with universal wrapper API.
Signed-off-by: Xueming Li <xuemingl@nvidia.com> Acked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
show more ...
|
#
5aeb7fab |
| 27-Oct-2021 |
Maxime Coquelin <maxime.coquelin@redhat.com> |
net/mlx5: fix RSS RETA update
This patch fixes RETA updating for entries above 64. Without that, these entries are never updated as calculated mask value will always be 0.
Fixes: 634efbc2c8c0 ("mlx
net/mlx5: fix RSS RETA update
This patch fixes RETA updating for entries above 64. Without that, these entries are never updated as calculated mask value will always be 0.
Fixes: 634efbc2c8c0 ("mlx5: support RETA query and update") Cc: stable@dpdk.org
Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com> Acked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
show more ...
|
#
295968d1 |
| 22-Oct-2021 |
Ferruh Yigit <ferruh.yigit@intel.com> |
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 <ferruh.yigit@intel.com> Acked-by: Tyler Retzlaff <roretzla@linux.microsoft.com> Acked-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru> Acked-by: Ajit Khaparde <ajit.khaparde@broadcom.com> Acked-by: Jerin Jacob <jerinj@marvell.com> Acked-by: Wisam Jaddo <wisamm@nvidia.com> Acked-by: Rosen Xu <rosen.xu@intel.com> Acked-by: Chenbo Xia <chenbo.xia@intel.com> Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com> Acked-by: Somnath Kotur <somnath.kotur@broadcom.com>
show more ...
|
#
151cbe3a |
| 12-Apr-2021 |
Michael Baum <michaelba@nvidia.com> |
net/mlx5: separate Rx function declarations to another file
The mlx5_rxtx.c file contains a lot of Tx burst functions, each of those is performance-optimized for the specific set of requested offloa
net/mlx5: separate Rx function declarations to another file
The mlx5_rxtx.c file contains a lot of Tx burst functions, each of those is performance-optimized for the specific set of requested offloads. These ones are generated on the basis of the template function and it takes significant time to compile, just due to a large number of giant functions generated in the same file and this compilation is not being done in parallel with using multithreading.
Therefore we can split the mlx5_rxtx.c file into several separate files to allow different functions to be compiled simultaneously. In this patch, we separate Rx function declarations to different header file in preparation for removing them from the source file and as an optional preparation step for further consolidation of Rx burst functions.
Signed-off-by: Michael Baum <michaelba@nvidia.com> Acked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
show more ...
|
#
df96fd0d |
| 29-Jan-2021 |
Bruce Richardson <bruce.richardson@intel.com> |
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 <bruce.richardson@intel.com> Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com> Acked-by: Thomas Monjalon <thomas@monjalon.net> Acked-by: Steven Webster <steven.webster@windriver.com>
show more ...
|
#
e0d44951 |
| 16-Jul-2020 |
Maxime Leroy <maxime.leroy@6wind.com> |
net/mlx5: fix RSS RETA reset on start
The following sequences was working fine on mlx5: rte_eth_dev_configure(portid, ...);
for (queueid = 0; queueid < nb_txq; queueid++) rte_eth_tx_que
net/mlx5: fix RSS RETA reset on start
The following sequences was working fine on mlx5: rte_eth_dev_configure(portid, ...);
for (queueid = 0; queueid < nb_txq; queueid++) rte_eth_tx_queue_setup(portid, queueid, ...);
for (queueid = 0; queueid < nb_rxq; queueid++) rte_eth_rx_queue_setup(portid, queueid, ...);
// use a custom reta configuration rte_eth_dev_rss_reta_update(portid, reta_conf, reta_size); rte_eth_dev_start(portid);
We were able to configure a custom reta before starting the port.
The commit "net/mlx5: support RSS on hairpin" breaks this logic by moving the code initializing the RSS reta from rte_eth_dev_configure into rte_eth_dev_start.
To fix the issue, the skip_default_rss_reta is always set to 1 in rte_eth_dev_rss_reta to avoid reconfigure the rss reta when the device is started.
Fixes: 63bd16292c3a ("net/mlx5: support RSS on hairpin") Cc: stable@dpdk.org
Signed-off-by: Maxime Leroy <maxime.leroy@6wind.com> Acked-by: Ori Kam <orika@nvidia.com>
show more ...
|
#
9d60f545 |
| 19-Jul-2020 |
Ophir Munk <ophirmu@mellanox.com> |
common/mlx5: remove inclusion of Verbs header files
Several source files include Verbs header files as in (1). These source files will not compile under non-Linux operating systems. This commit remo
common/mlx5: remove inclusion of Verbs header files
Several source files include Verbs header files as in (1). These source files will not compile under non-Linux operating systems. This commit removes this inclusion in two cases:
Case 1: There is no usage of ibv_* or mlx5dv_* symbols in the source file so the inclusion in (1) can be safely removed.
Case 2: Verbs symbols are used. Please note the inclusion in (1) already appears in file linux/mlx5_glue.h (which represents the interface to the rdma-core library). Therefore, replace (1) in the source file with (2). Under non-Linux operating systems - file mlx5_glue.h will not include (1).
(1) #include <infiniband/verbs.h> #include <infiniband/mlx5dv.h>
(2) #include <mlx5_glue.h>
Signed-off-by: Ophir Munk <ophirmu@mellanox.com> Acked-by: Matan Azrad <matan@mellanox.com>
show more ...
|
#
83c2047c |
| 28-Jun-2020 |
Suanming Mou <suanmingm@mellanox.com> |
net/mlx5: convert control path memory to unified malloc
This commit allocates the control path memory from unified malloc function.
The objects be changed:
1. hlist; 2. rss key; 3. vlan vmwa; 4. i
net/mlx5: convert control path memory to unified malloc
This commit allocates the control path memory from unified malloc function.
The objects be changed:
1. hlist; 2. rss key; 3. vlan vmwa; 4. indexed pool; 5. fdir objects; 6. meter profile; 7. flow counter pool; 8. hrxq and indirect table; 9. flow object cache resources; 10. temporary resources in flow create;
Signed-off-by: Suanming Mou <suanmingm@mellanox.com> 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 ...
|
#
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 ...
|
#
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>
|
#
dbeba4cf |
| 21-Feb-2019 |
Thomas Monjalon <thomas@monjalon.net> |
net/mlx: prefix private structure
The private structure stored in rte_eth_dev->data->dev_private was named "struct priv". In order to ease code browsing, the structure is renamed "struct mlx[45]_pri
net/mlx: prefix private structure
The private structure stored in rte_eth_dev->data->dev_private was named "struct priv". In order to ease code browsing, the structure is renamed "struct mlx[45]_priv".
Cc: stable@dpdk.org
Signed-off-by: Thomas Monjalon <thomas@monjalon.net> Acked-by: Yongseok Koh <yskoh@mellanox.com>
show more ...
|
#
c388a2f6 |
| 12-Jul-2018 |
Nelio Laranjeiro <nelio.laranjeiro@6wind.com> |
net/mlx5: use a macro for the RSS key size
ConnectX 4-5 support only 40 bytes of RSS key, using a compiled size hash key is not necessary.
Signed-off-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.co
net/mlx5: use a macro for the RSS key size
ConnectX 4-5 support only 40 bytes of RSS key, using a compiled size hash key is not necessary.
Signed-off-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com> Acked-by: Yongseok Koh <yskoh@mellanox.com>
show more ...
|
#
5feecc57 |
| 20-Mar-2018 |
Shahaf Shuler <shahafs@mellanox.com> |
align SPDX Mellanox copyrights
Aligning Mellanox SPDX copyrights to a single format. In addition replace to SPDX licence files which were missed.
Signed-off-by: Shahaf Shuler <shahafs@mellanox.com>
align SPDX Mellanox copyrights
Aligning Mellanox SPDX copyrights to a single format. In addition replace to SPDX licence files which were missed.
Signed-off-by: Shahaf Shuler <shahafs@mellanox.com> Acked-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
show more ...
|
#
a1572312 |
| 26-Mar-2018 |
Shahaf Shuler <shahafs@mellanox.com> |
net/mlx5: enforce RSS key length limitation
RSS hash key must be 40 Bytes long.
Cc: stable@dpdk.org
Signed-off-by: Shahaf Shuler <shahafs@mellanox.com> Acked-by: Nelio Laranjeiro <nelio.laranjeiro
net/mlx5: enforce RSS key length limitation
RSS hash key must be 40 Bytes long.
Cc: stable@dpdk.org
Signed-off-by: Shahaf Shuler <shahafs@mellanox.com> Acked-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>
show more ...
|
#
66669155 |
| 21-Mar-2018 |
Dahir Osman <dahir.osman@windriver.com> |
net/mlx5: setup RSS regardless of queue count
In some environments it is desirable to have the NIC perform RSS normally on the packet regardless of the number of queues configured. The RSS hash resu
net/mlx5: setup RSS regardless of queue count
In some environments it is desirable to have the NIC perform RSS normally on the packet regardless of the number of queues configured. The RSS hash result that is stored in the mbuf can then be used by the application to make decisions about how to distribute workloads to threads, secondary processes, or even virtual machines if the application is a virtual switch. This change to the mlx5 driver aligns with how other drivers in the Intel family work.
Signed-off-by: Allain Legacy <allain.legacy@windriver.com> Signed-off-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com> Acked-by: Yongseok Koh <yskoh@mellanox.com> Tested-by: Allain Legacy <allain.legacy@windriver.com>
show more ...
|
#
a6d83b6a |
| 05-Mar-2018 |
Nélio Laranjeiro <nelio.laranjeiro@6wind.com> |
net/mlx5: standardize on negative errno values
Set rte_errno systematically as well.
Signed-off-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com> Acked-by: Adrien Mazarguil <adrien.mazarguil@6wind.
net/mlx5: standardize on negative errno values
Set rte_errno systematically as well.
Signed-off-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com> Acked-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
show more ...
|
#
af4f09f2 |
| 05-Mar-2018 |
Nélio Laranjeiro <nelio.laranjeiro@6wind.com> |
net/mlx5: prefix all functions with mlx5
This change removes the need to distinguish unlocked priv_*() functions which are therefore renamed using a mlx5_*() prefix for consistency.
At the same tim
net/mlx5: prefix all functions with mlx5
This change removes the need to distinguish unlocked priv_*() functions which are therefore renamed using a mlx5_*() prefix for consistency.
At the same time, all functions from mlx5 uses a pointer to the ETH device instead of the one to the PMD private data.
Signed-off-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com> Acked-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
show more ...
|
#
7b2423cd |
| 05-Mar-2018 |
Nélio Laranjeiro <nelio.laranjeiro@6wind.com> |
net/mlx5: remove control path locks
In priv struct only the memory region needs to be protected against concurrent access between the control plane and the data plane.
Signed-off-by: Nelio Laranjei
net/mlx5: remove control path locks
In priv struct only the memory region needs to be protected against concurrent access between the control plane and the data plane.
Signed-off-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com> Acked-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
show more ...
|
#
0b3456e3 |
| 05-Mar-2018 |
Nélio Laranjeiro <nelio.laranjeiro@6wind.com> |
net/mlx5: remove useless empty lines
Some empty lines have been added in the middle of the code without any reason. This commit removes them.
Signed-off-by: Nelio Laranjeiro <nelio.laranjeiro@6win
net/mlx5: remove useless empty lines
Some empty lines have been added in the middle of the code without any reason. This commit removes them.
Signed-off-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com> Acked-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
show more ...
|
#
8fd92a66 |
| 29-Jan-2018 |
Olivier Matz <olivier.matz@6wind.com> |
net/mlx5: use SPDX tags in 6WIND copyrighted files
Signed-off-by: Olivier Matz <olivier.matz@6wind.com> Acked-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com> Acked-by: Bruce Richardson <bruce.rich
net/mlx5: use SPDX tags in 6WIND copyrighted files
Signed-off-by: Olivier Matz <olivier.matz@6wind.com> Acked-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com> Acked-by: Bruce Richardson <bruce.richardson@intel.com> Acked-by: Thomas Monjalon <thomas@monjalon.net>
show more ...
|
#
ffc905f3 |
| 22-Jan-2018 |
Ferruh Yigit <ferruh.yigit@intel.com> |
ethdev: separate driver APIs
Create a rte_ethdev_driver.h file and move PMD specific APIs here. Drivers updated to include this new header file.
There is no update in header content and since ethde
ethdev: separate driver APIs
Create a rte_ethdev_driver.h file and move PMD specific APIs here. Drivers updated to include this new header file.
There is no update in header content and since ethdev.h included by ethdev_driver.h, nothing changed from driver point of view, only logically grouping of APIs. From applications point of view they can't access to driver specific APIs anymore and they shouldn't.
More PMD specific data structures still remain in ethdev.h because of inline functions in header use them. Those will be handled separately.
Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com> Acked-by: Shreyansh Jain <shreyansh.jain@nxp.com> Acked-by: Andrew Rybchenko <arybchenko@solarflare.com> Acked-by: Thomas Monjalon <thomas@monjalon.net>
show more ...
|
#
b365799b |
| 03-Jan-2018 |
Nélio Laranjeiro <nelio.laranjeiro@6wind.com> |
net/mlx5: fix un-supported RSS hash fields use
MLX5 NIC does not support all hash fields, this patch limit by refusing impossible RSS combination to avoid errors.
Fixes: 2f97422e7759 ("mlx5: suppor
net/mlx5: fix un-supported RSS hash fields use
MLX5 NIC does not support all hash fields, this patch limit by refusing impossible RSS combination to avoid errors.
Fixes: 2f97422e7759 ("mlx5: support RSS hash update and get") Cc: stable@dpdk.org
Signed-off-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com> Acked-by: Yongseok Koh <yskoh@mellanox.com>
show more ...
|
#
51e7fa8d |
| 23-Nov-2017 |
Nélio Laranjeiro <nelio.laranjeiro@6wind.com> |
net/mlx5: fix secondary process verification
Since the secondary process has its own devops, function which cannot be called by the secondary don't need anymore to verify which process is calling it
net/mlx5: fix secondary process verification
Since the secondary process has its own devops, function which cannot be called by the secondary don't need anymore to verify which process is calling it.
Fixes: 87ec44ce1651 ("net/mlx5: add operations for secondary process") Cc: stable@dpdk.org
Signed-off-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com> Acked-by: Yongseok Koh <yskoh@mellanox.com>
show more ...
|