]> git.baikalelectronics.ru Git - kernel.git/commit
net/mlx5: E-Switch, Optimize HW steering tables in switchdev mode
authorMark Bloch <markb@mellanox.com>
Tue, 30 Jan 2018 10:46:34 +0000 (10:46 +0000)
committerSaeed Mahameed <saeedm@mellanox.com>
Fri, 23 Feb 2018 20:36:38 +0000 (12:36 -0800)
commitfde167489ce78e97592e30dbaceb092042855591
tree2c2ddba5eb70320e4dac6e81429babdd8c3ee29a
parentd3df4862a28d7591a213c01c2d1fc1b0ccdf6a3f
net/mlx5: E-Switch, Optimize HW steering tables in switchdev mode

Under switchdev mode we insert an eswitch miss rule causing any
unmatched traffic to be sent towards the PF vport. This miss rule can
be optimized if we break it to two, one case is for multicast traffic and
the other for unicast.

Breaking the miss rule into two (unicast and multicast) allows the firmware
to program the hardware in a more efficient way.

Using ConncetX-5 Ex with IXIA and testpmd (which use IB representors):

IXIA -> NIC -> PF -> IB representor -> NIC -> VF:
    - Without this optimization: 9.2 MPPS.
    - With this optimization: 18 MPPS.

VF -> NIC -> IB representor-> PF -> NIC -> IXIA:
    - Without this optimization: 17 MPPS.
    - With this optimization: 23.4 MPPS.

Signed-off-by: Mark Bloch <markb@mellanox.com>
Reviewed-by: Or Gerlitz <ogerlitz@mellanox.com>
Signed-off-by: Leon Romanovsky <leon@kernel.org>
Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
drivers/net/ethernet/mellanox/mlx5/core/eswitch.h
drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c