mbox series

[net-next,0/5] net: lan966x: Add support for IS1 VCAP

Message ID 20230307220929.834219-1-horatiu.vultur@microchip.com (mailing list archive)
Headers show
Series net: lan966x: Add support for IS1 VCAP | expand

Message

Horatiu Vultur March 7, 2023, 10:09 p.m. UTC
Provide the Ingress Stage 1 (IS1) VCAP (Versatile Content-Aware
Processor) support for the Lan966x platform.

The IS1 VCAP has 3 lookups and they are accessible with a TC chain id:
- chain 1000000: IS1 Lookup 0
- chain 1100000: IS1 Lookup 1
- chain 1200000: IS1 Lookup 2

The IS1 is capable of different actions like rewrite VLAN tags, change
priority of the frames, police the traffic, etc. These features will be
added at a later point.

The IS1 currently implements the action that allows setting the value
of a PAG (Policy Association Group) key field in the frame metadata and
this can be used for matching in an IS2 VCAP rule. In this way a rule in
IS0 VCAP can be linked to rules in the IS2 VCAP. The linking is exposed
by using the TC "goto chain" action with an offset from the IS2 chain ids.
For example "goto chain 8000001" will use a PAG value of 1 to chain to a
rule in IS2 lookup 0.

Horatiu Vultur (5):
  net: lan966x: Add IS1 VCAP model
  net: lan966x: Add IS1 VCAP keyset configuration for lan966x
  net: lan966x: Add TC support for IS1 VCAP
  net: lan966x: Add TC filter chaining support for IS1 and IS2 VCAPs
  net: lan966x: Add support for IS1 VCAP ethernet protocol types

 .../ethernet/microchip/lan966x/lan966x_main.h |   38 +
 .../ethernet/microchip/lan966x/lan966x_regs.h |   36 +
 .../microchip/lan966x/lan966x_tc_flower.c     |  221 ++-
 .../microchip/lan966x/lan966x_vcap_ag_api.c   | 1402 ++++++++++++++++-
 .../microchip/lan966x/lan966x_vcap_debugfs.c  |  133 +-
 .../microchip/lan966x/lan966x_vcap_impl.c     |  192 ++-
 .../net/ethernet/microchip/vcap/vcap_ag_api.h |  217 ++-
 .../microchip/vcap/vcap_api_debugfs_kunit.c   |    4 +-
 8 files changed, 2156 insertions(+), 87 deletions(-)

Comments

patchwork-bot+netdevbpf@kernel.org March 11, 2023, 12:50 a.m. UTC | #1
Hello:

This series was applied to netdev/net-next.git (main)
by Jakub Kicinski <kuba@kernel.org>:

On Tue, 7 Mar 2023 23:09:24 +0100 you wrote:
> Provide the Ingress Stage 1 (IS1) VCAP (Versatile Content-Aware
> Processor) support for the Lan966x platform.
> 
> The IS1 VCAP has 3 lookups and they are accessible with a TC chain id:
> - chain 1000000: IS1 Lookup 0
> - chain 1100000: IS1 Lookup 1
> - chain 1200000: IS1 Lookup 2
> 
> [...]

Here is the summary with links:
  - [net-next,1/5] net: lan966x: Add IS1 VCAP model
    https://git.kernel.org/netdev/net-next/c/99ce286d2d30
  - [net-next,2/5] net: lan966x: Add IS1 VCAP keyset configuration for lan966x
    https://git.kernel.org/netdev/net-next/c/a4d9b3ec63de
  - [net-next,3/5] net: lan966x: Add TC support for IS1 VCAP
    https://git.kernel.org/netdev/net-next/c/135c2116fd03
  - [net-next,4/5] net: lan966x: Add TC filter chaining support for IS1 and IS2 VCAPs
    https://git.kernel.org/netdev/net-next/c/b3762a9db39c
  - [net-next,5/5] net: lan966x: Add support for IS1 VCAP ethernet protocol types
    https://git.kernel.org/netdev/net-next/c/44d706fde755

You are awesome, thank you!