IB/core: Introduce inner flow steering
authorMoses Reuben <mosesr@mellanox.com>
Mon, 14 Nov 2016 17:04:51 +0000 (19:04 +0200)
committerDoug Ledford <dledford@redhat.com>
Tue, 13 Dec 2016 18:34:23 +0000 (13:34 -0500)
commitfbf46860b19ddb485f00bef1ad1a43aabc9f71ad
tree8a74ed4c00e8cdb12c17976b328a91c798d3547c
parentffb30d8f107b27820a069ae6772ab48e58cc0b2f
IB/core: Introduce inner flow steering

For a tunneled packet which contains external and internal headers,
we refer to the external headers as "outer fields" and the internal
headers as "inner fields".

Example of a tunneled packet:

{ L2 | L3 | L4 | tunnel header | L2 | L3 | l4 | data }
  |     |    |         |         |    |    |
{       outer fields           }{ inner fields }

This patch introduces a new flag for flow steering rules
- IB_FLOW_SPEC_INNER - which specifies that the rule applies
to the inner fields, rather than to the outer fields of the packet.

Signed-off-by: Moses Reuben <mosesr@mellanox.com>
Reviewed-by: Maor Gottlieb <maorg@mellanox.com>
Signed-off-by: Leon Romanovsky <leon@kernel.org>
Signed-off-by: Doug Ledford <dledford@redhat.com>
drivers/infiniband/core/uverbs_cmd.c
include/rdma/ib_verbs.h