* [dpdk-dev] [PATCH] net/mlx5: fix port domain_id initialization
@ 2021-08-02 14:55 Gregory Etelson
2021-08-03 12:34 ` Thomas Monjalon
0 siblings, 1 reply; 2+ messages in thread
From: Gregory Etelson @ 2021-08-02 14:55 UTC (permalink / raw)
To: dev
Cc: getelson, matan, rasland, Viacheslav Ovsiienko, Shahaf Shuler,
Xueming Li
All active ports that belong to the same E-switch share domain_id
value.
Port initialization procedure searches through a database for existing
port with matching properties. New domain_id allocated if match was
not located. Otherwise, new port inherits existing domain_id.
Port initialization did not pass enough info to search procedure to
find existing matches. Therefore, each port was created with a private
domain_id value. As the result, port_id flow action failed because it
could not match ports in a rule to E-switch.
The patch adds dpdk_dev with port properties to device search.
Fixes: 56bb3c84e982 ("net/mlx5: reduce PCI dependency")
Signed-off-by: Gregory Etelson <getelson@nvidia.com>
Acked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
---
drivers/net/mlx5/linux/mlx5_os.c | 13 ++++++++++++-
1 file changed, 12 insertions(+), 1 deletion(-)
diff --git a/drivers/net/mlx5/linux/mlx5_os.c b/drivers/net/mlx5/linux/mlx5_os.c
index 8f98cf1716..c15a44de86 100644
--- a/drivers/net/mlx5/linux/mlx5_os.c
+++ b/drivers/net/mlx5/linux/mlx5_os.c
@@ -1181,6 +1181,13 @@ mlx5_dev_spawn(struct rte_device *dpdk_dev,
priv->vport_meta_tag = 0;
priv->vport_meta_mask = 0;
priv->pf_bond = spawn->pf_bond;
+
+ DRV_LOG(DEBUG,
+ "dev_port=%u bus=%s pci=%s master=%d representor=%d pf_bond=%d\n",
+ priv->dev_port, dpdk_dev->bus->name,
+ priv->pci_dev ? priv->pci_dev->name : "NONE",
+ priv->master, priv->representor, priv->pf_bond);
+
/*
* If we have E-Switch we should determine the vport attributes.
* E-Switch may use either source vport field or reg_c[0] metadata
@@ -1253,7 +1260,7 @@ mlx5_dev_spawn(struct rte_device *dpdk_dev,
* Look for sibling devices in order to reuse their switch domain
* if any, otherwise allocate one.
*/
- MLX5_ETH_FOREACH_DEV(port_id, NULL) {
+ MLX5_ETH_FOREACH_DEV(port_id, dpdk_dev) {
const struct mlx5_priv *opriv =
rte_eth_devices[port_id].data->dev_private;
@@ -1263,6 +1270,8 @@ mlx5_dev_spawn(struct rte_device *dpdk_dev,
RTE_ETH_DEV_SWITCH_DOMAIN_ID_INVALID)
continue;
priv->domain_id = opriv->domain_id;
+ DRV_LOG(DEBUG, "dev_port-%u inherit domain_id=%u\n",
+ priv->dev_port, priv->domain_id);
break;
}
if (priv->domain_id == RTE_ETH_DEV_SWITCH_DOMAIN_ID_INVALID) {
@@ -1274,6 +1283,8 @@ mlx5_dev_spawn(struct rte_device *dpdk_dev,
goto error;
}
own_domain_id = 1;
+ DRV_LOG(DEBUG, "dev_port-%u new domain_id=%u\n",
+ priv->dev_port, priv->domain_id);
}
/* Override some values set by hardware configuration. */
mlx5_args(config, dpdk_dev->devargs);
--
2.32.0
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [dpdk-dev] [PATCH] net/mlx5: fix port domain_id initialization
2021-08-02 14:55 [dpdk-dev] [PATCH] net/mlx5: fix port domain_id initialization Gregory Etelson
@ 2021-08-03 12:34 ` Thomas Monjalon
0 siblings, 0 replies; 2+ messages in thread
From: Thomas Monjalon @ 2021-08-03 12:34 UTC (permalink / raw)
To: Gregory Etelson; +Cc: dev, matan, rasland, Viacheslav Ovsiienko, Xueming Li
Title proposal:
net/mlx5: fix port initialization of switch domain
02/08/2021 16:55, Gregory Etelson:
> All active ports that belong to the same E-switch share domain_id
> value.
> Port initialization procedure searches through a database for existing
> port with matching properties. New domain_id allocated if match was
> not located. Otherwise, new port inherits existing domain_id.
>
> Port initialization did not pass enough info to search procedure to
> find existing matches. Therefore, each port was created with a private
> domain_id value. As the result, port_id flow action failed because it
> could not match ports in a rule to E-switch.
>
> The patch adds dpdk_dev with port properties to device search.
>
> Fixes: 56bb3c84e982 ("net/mlx5: reduce PCI dependency")
>
> Signed-off-by: Gregory Etelson <getelson@nvidia.com>
> Acked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
Applied, thanks.
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2021-08-03 12:34 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-08-02 14:55 [dpdk-dev] [PATCH] net/mlx5: fix port domain_id initialization Gregory Etelson
2021-08-03 12:34 ` Thomas Monjalon
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).