]> git.baikalelectronics.ru Git - kernel.git/commit
mlxsw: core: Introduce flexible keys support
authorJiri Pirko <jiri@mellanox.com>
Fri, 3 Feb 2017 09:29:01 +0000 (10:29 +0100)
committerDavid S. Miller <davem@davemloft.net>
Fri, 3 Feb 2017 21:35:41 +0000 (16:35 -0500)
commit77d4ca104ee7de4ac8d5eabd60fe59f65eaa7214
treec30098df0efe495629aa62c078b8c6282d54bf3f
parentddc5bbe5df5fe41710a9407502fbd10d4c177893
mlxsw: core: Introduce flexible keys support

Hardware supports matching on so called "flexible keys". The idea is to
assemble an optimal key to use for matching according to the fields in
packet (elements) requested by user. Certain sets of elements are
combined into pre-defined blocks. There is a picker to find needed blocks.
Keys consist of 1..n blocks.

Alongside with that, an initial portion of elements is introduced in order
to be able to offload basic cls_flower rules.

Picked keys are cached so multiple rules could share them.

There is an encode function provided that takes care of encoding key and
mask values according to given key.

Signed-off-by: Jiri Pirko <jiri@mellanox.com>
Reviewed-by: Ido Schimmel <idosch@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/mellanox/mlxsw/Makefile
drivers/net/ethernet/mellanox/mlxsw/core_acl_flex_keys.c [new file with mode: 0644]
drivers/net/ethernet/mellanox/mlxsw/core_acl_flex_keys.h [new file with mode: 0644]