linux-stable/include/linux/mlx5
Eli Cohen 94db331778 net/mlx5: Support multiport eswitch mode
Multiport eswitch mode is a LAG mode that allows to add rules that
forward traffic to a specific physical port without being affected by LAG
affinity configuration.

This mode of operation is mutual exclusive with the other LAG modes used
by multipath and bonding.

To make the transition between the modes, we maintain a counter on the
number of rules specifying one of the uplink representors as the target
of mirred egress redirect action.

An example of such rule would be:

$ tc filter add dev enp8s0f0_0 prot all root flower dst_mac \
  00:11:22:33:44:55 action mirred egress redirect dev enp8s0f0

If the reference count just grows to one and LAG is not in use, we
create the LAG in multiport eswitch mode. Other mode changes are not
allowed while in this mode. When the reference count reaches zero, we
destroy the LAG and let other modes be used if needed.

logic also changed such that if forwarding to some uplink destination
cannot be guaranteed, we fail the operation so the rule will eventually
be in software and not in hardware.

Signed-off-by: Eli Cohen <elic@nvidia.com>
Reviewed-by: Mark Bloch <mbloch@nvidia.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
2022-05-17 23:41:51 -07:00
..
cq.h net/mlx5: Use mlx5_cmd_do() in core create_{cq,dct} 2022-02-23 15:21:59 -08:00
device.h net/mlx5: Add misc5 flow table match parameters 2021-12-31 00:17:23 -08:00
doorbell.h
driver.h net/mlx5: Inline db alloc API function 2022-05-17 23:41:45 -07:00
eq.h net/mlx5: Introduce API for bulk request and release of IRQs 2022-01-06 16:22:52 -08:00
eswitch.h net/mlx5: E-Switch, Fix resetting of encap mode when entering switchdev 2021-11-16 12:20:19 -08:00
fs.h net/mlx5: fs, add unused destination type 2022-05-02 21:21:14 -07:00
fs_helpers.h
mlx5_ifc.h net/mlx5: Support multiport eswitch mode 2022-05-17 23:41:51 -07:00
mlx5_ifc_fpga.h net/mlx5_fpga: Drop INNOVA IPsec support 2022-04-09 08:23:47 +03:00
mlx5_ifc_vdpa.h vdpa/mlx5: Fix queue type selection logic 2021-08-11 06:44:43 -04:00
mpfs.h
port.h IB/mlx5: Fix undefined behavior due to shift overflowing the constant 2022-04-06 10:15:03 +03:00
qp.h net/mlx5e: Fix build warning, detected write beyond size of field 2022-03-22 16:48:56 -07:00
rsc_dump.h
transobj.h
vport.h