net: marvell: Implement TC flower offload
authorSerhiy Boiko <serhiy.boiko@plvision.eu>
Wed, 16 Jun 2021 16:01:44 +0000 (19:01 +0300)
committerDavid S. Miller <davem@davemloft.net>
Wed, 16 Jun 2021 19:58:27 +0000 (12:58 -0700)
commit8b474a9f6b3793480392bbdfcc546bb8e21b3735
tree1f7b5e50005e1dfacdee6a9f67b0a8a98e3da1ff
parent220e898dd0db995f32fa6e2a6e28aa2d8b5f8dd0
net: marvell: Implement TC flower offload

Add ACL infrastructure for Prestera Switch ASICs family devices to
offload cls_flower rules to be processed in the HW.

ACL implementation is based on tc filter api. The flower classifier
is supported to configure ACL rules/matches/action.

Supported actions:

    - drop
    - trap
    - pass

Supported dissector keys:

    - indev
    - src_mac
    - dst_mac
    - src_ip
    - dst_ip
    - ip_proto
    - src_port
    - dst_port
    - vlan_id
    - vlan_ethtype
    - icmp type/code

Co-developed-by: Volodymyr Mytnyk <vmytnyk@marvell.com>
Signed-off-by: Volodymyr Mytnyk <vmytnyk@marvell.com>
Signed-off-by: Serhiy Boiko <serhiy.boiko@plvision.eu>
Signed-off-by: Vadym Kochan <vkochan@marvell.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/marvell/prestera/Makefile
drivers/net/ethernet/marvell/prestera/prestera.h
drivers/net/ethernet/marvell/prestera/prestera_acl.c [new file with mode: 0644]
drivers/net/ethernet/marvell/prestera/prestera_acl.h [new file with mode: 0644]
drivers/net/ethernet/marvell/prestera/prestera_flow.c [new file with mode: 0644]
drivers/net/ethernet/marvell/prestera/prestera_flow.h [new file with mode: 0644]
drivers/net/ethernet/marvell/prestera/prestera_flower.c [new file with mode: 0644]
drivers/net/ethernet/marvell/prestera/prestera_flower.h [new file with mode: 0644]
drivers/net/ethernet/marvell/prestera/prestera_hw.c
drivers/net/ethernet/marvell/prestera/prestera_hw.h
drivers/net/ethernet/marvell/prestera/prestera_main.c