net/mlx5: add conditional hairpin auto bind
authorBing Zhao <bingz@nvidia.com>
Mon, 26 Oct 2020 16:37:44 +0000 (00:37 +0800)
committerFerruh Yigit <ferruh.yigit@intel.com>
Tue, 3 Nov 2020 22:35:04 +0000 (23:35 +0100)
commitaa8bea0e3455bf4b741e7878b2fe44f800a25ed1
tree494f7709b16afa14fb01bff1f4376b92b6fcb6c0
parent02109eaeacceeb8b2ea6fadea33bf334a805fa8e
net/mlx5: add conditional hairpin auto bind

In single port hairpin mode, after the queues are configured during
start up. The binding process will be enabled automatically in the
port start phase and the default control flow for egress will be
created.

When switching to two ports hairpin mode, the auto binding process
should be skipped if there is no TX queue with the peer RX queue on
the same device, and it should be skipped also if the queues are
configured with manual bind attribute.

If the explicit TX flow rule mode is configured or hairpin is
between two ports, the default control flows for TX queues should
not be created.

Signed-off-by: Bing Zhao <bingz@nvidia.com>
Acked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
drivers/net/mlx5/mlx5_trigger.c