net/mlx5e: Support RSS for IP-in-IP and IPv6 tunneled packets
authorAya Levin <ayal@mellanox.com>
Mon, 29 Apr 2019 14:45:52 +0000 (17:45 +0300)
committerSaeed Mahameed <saeedm@mellanox.com>
Wed, 28 Aug 2019 18:49:04 +0000 (11:49 -0700)
commita795d8db2a6d3c6f80e7002dd6357e6736dad1b6
tree3b75229be513585cc66a269a81788156905e3a03
parenta49e1f31ae155d64355d0cd0e0afa5b2bc8544cd
net/mlx5e: Support RSS for IP-in-IP and IPv6 tunneled packets

Add support for inner header RSS on IP-in-IP and IPv6 tunneled packets.

Add rules to the steering table regarding outer IP header, with
IPv4/6->IP-in-IP. Tunneled packets with protocol numbers: 0x4 (IP-in-IP)
and 0x29 (IPv6) are RSS-ed on the inner IP header.
Separate FW dependencies between flow table inner IP capabilities and
GRE offload support. Allowing this feature even if GRE offload is not
supported.  Tested with multi stream TCP traffic tunneled with IPnIP.
Verified that:
Without this patch, only a single RX ring was processing the traffic.
With this patch, multiple RX rings were processing the traffic.
Verified with and without GRE offload support.

Signed-off-by: Aya Levin <ayal@mellanox.com>
Reviewed-by: Tariq Toukan <tariqt@mellanox.com>
Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
drivers/net/ethernet/mellanox/mlx5/core/en/fs.h
drivers/net/ethernet/mellanox/mlx5/core/en_fs.c