]> git.baikalelectronics.ru Git - kernel.git/commit
net: prestera: flower template support
authorVolodymyr Mytnyk <vmytnyk@marvell.com>
Wed, 15 Dec 2021 10:07:30 +0000 (12:07 +0200)
committerDavid S. Miller <davem@davemloft.net>
Thu, 16 Dec 2021 10:52:53 +0000 (10:52 +0000)
commit1c011ec7c572190fcc9608897381a5a314f0c8cd
tree502615009b513064045b88055796a71a5a3a5d6e
parent429c9b4ea3d382767408ed973e87af19d299fcc5
net: prestera: flower template support

Add user template explicit support. At this moment, max
TCAM rule size is utilized for all rules, doesn't matter
which and how much flower matches are provided by user. It
means that some of TCAM space is wasted, which impacts
the number of filters that can be offloaded.

Introducing the template, allows to have more HW offloaded
filters by specifying the template explicitly.

Example:
  tc qd add dev PORT clsact
  tc chain add dev PORT ingress protocol ip \
    flower dst_ip 0.0.0.0/16
  tc filter add dev PORT ingress protocol ip \
    flower skip_sw dst_ip 1.2.3.4/16 action drop

NOTE: chain 0 is the default chain id for "tc chain" & "tc filter"
      command, so it is omitted in the example above.

This patch adds only template support for default chain 0 suppoerted
by prestera driver at this moment. Chains are not supported yet,
and will be added later.

Signed-off-by: Volodymyr Mytnyk <vmytnyk@marvell.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/marvell/prestera/prestera_acl.c
drivers/net/ethernet/marvell/prestera/prestera_acl.h
drivers/net/ethernet/marvell/prestera/prestera_flow.c
drivers/net/ethernet/marvell/prestera/prestera_flow.h
drivers/net/ethernet/marvell/prestera/prestera_flower.c
drivers/net/ethernet/marvell/prestera/prestera_flower.h