OpenCloudOS-Kernel/drivers/net/ethernet/mellanox
Hadar Hen Zion a54e20b4fc net/mlx5e: Add basic TC tunnel set action for SRIOV offloads
In mlx5 HW, encapsulation is offloaded by the steering rule having
index into an encapsulation table containing the entire set of headers
to be added by the HW. The driver sets these headers in a buffer when we
are offloading the action.

The code maintains mlx5_encap_entry for each encap header it has
encountered when attempted to offload TC tunnel set action.

This entry maintains a linked list of all the flows sharing the same
encap header, when the last flow is removed from the list the encap
entry is removed.

The actual encap_header is allocated by the driver in the hardware only
if we have layer two neighbour info when the encap entry is created.
While the flow is in the driver, the driver holds a reference on the
neighbour.

When a new flow with encap action is inserted, the code first checks if
the required encap entry exists according to the tunnel set parameters.
If it does the encap is shared, otherwise a new mlx5_encap_entry is
created.

TC action parsing implementation in the driver assumes that tunnel set
action is provided in the same order set by the user, e.g before the
mirred_redirect action.

Signed-off-by: Hadar Hen Zion <hadarh@mellanox.com>
Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2016-11-09 13:41:57 -05:00
..
mlx4 net/mlx4_en: Add ethtool statistics for XDP cases 2016-11-02 15:07:11 -04:00
mlx5/core net/mlx5e: Add basic TC tunnel set action for SRIOV offloads 2016-11-09 13:41:57 -05:00
mlxsw mlxsw: Remove unused including <generated/utsrelease.h> 2016-11-05 16:22:57 -04:00
Kconfig mlxsw: Introduce Mellanox switch driver core 2015-07-30 00:04:59 -07:00
Makefile mlxsw: Introduce Mellanox switch driver core 2015-07-30 00:04:59 -07:00