mirror of
https://github.com/torvalds/linux.git
synced 2024-12-01 16:41:39 +00:00
IB/uverbs: Expose MPLS flow spec to the user-kernel ABI header
Add ib_uverbs_flow_spec_mpls to define a rule to match the MPLS protocol. The spec includes the generic specs header, type, size and reserved fields while the filter itself is defined as ib_uverbs_flow_mpls_filter and includes a single 32bit field named 'label' which consists of: Bits 0:19 - The MPLS label. Bits 20:22 - Traffic class field. Bit 23 - Bottom of stack bit. Bits 24:31 - Time to live (TTL) field. 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>
This commit is contained in:
parent
d90e5e5038
commit
0d86bbec71
@ -1060,6 +1060,29 @@ struct ib_uverbs_flow_spec_gre {
|
||||
struct ib_uverbs_flow_gre_filter mask;
|
||||
};
|
||||
|
||||
struct ib_uverbs_flow_mpls_filter {
|
||||
/* The field includes the entire MPLS label:
|
||||
* bits 0:19 - label field.
|
||||
* bits 20:22 - traffic class field.
|
||||
* bits 23 - bottom of stack bit.
|
||||
* bits 24:31 - ttl field.
|
||||
*/
|
||||
__be32 label;
|
||||
};
|
||||
|
||||
struct ib_uverbs_flow_spec_mpls {
|
||||
union {
|
||||
struct ib_uverbs_flow_spec_hdr hdr;
|
||||
struct {
|
||||
__u32 type;
|
||||
__u16 size;
|
||||
__u16 reserved;
|
||||
};
|
||||
};
|
||||
struct ib_uverbs_flow_mpls_filter val;
|
||||
struct ib_uverbs_flow_mpls_filter mask;
|
||||
};
|
||||
|
||||
struct ib_uverbs_flow_attr {
|
||||
__u32 type;
|
||||
__u16 size;
|
||||
|
Loading…
Reference in New Issue
Block a user