IB/uverbs: Introduce a MPLS steering match filter
authorAriel Levkovich <lariel@mellanox.com>
Sun, 13 May 2018 11:33:32 +0000 (14:33 +0300)
committerJason Gunthorpe <jgg@mellanox.com>
Thu, 17 May 2018 03:32:55 +0000 (21:32 -0600)
commitb04f0f036ac17b879e4d8c83f6503a19322ddde4
treee4398796d0440906816656827eb9df18e69362ab
parent0d86bbec71b283803f844b35d50dba977be2db4a
IB/uverbs: Introduce a MPLS steering match filter

Add a new MPLS steering match filter that can match against
a single MPLS tag field.

Since the MPLS header can reside in different locations in the packet's
protocol stack as well as be encapsulated with a tunnel protocol, it
is required to know the exact location of the header in the protocol
stack.

Therefore, when including the MPLS protocol spec in the specs list,
it is mandatory to provide the list in an ordered manner, so
that it represents the actual header order in a matching packet.

Drivers that process the spec list and apply the matching rule
should treat the position of the MPLS spec in the spec list as the
actual location of the MPLS label in the packet's protocol stack.

Reviewed-by: Mark Bloch <markb@mellanox.com>
Signed-off-by: Ariel Levkovich <lariel@mellanox.com>
Signed-off-by: Leon Romanovsky <leonro@mellanox.com>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
drivers/infiniband/core/uverbs_cmd.c
include/rdma/ib_verbs.h