mbox series

[net-next,v2,00/10] Adding Sparx5 ES0 VCAP support

Message ID 20230214104049.1553059-1-steen.hegelund@microchip.com (mailing list archive)
Headers show
Series Adding Sparx5 ES0 VCAP support | expand

Message

Steen Hegelund Feb. 14, 2023, 10:40 a.m. UTC
This provides the Egress Stage 0 (ES0) VCAP (Versatile Content-Aware
Processor) support for the Sparx5 platform.

The ES0 VCAP is an Egress Access Control VCAP that uses frame keyfields and
previously classified keyfields to add, rewrite or remove VLAN tags on the
egress frames, and is therefore often referred to as the rewriter.

The ES0 VCAP also supports trapping frames to the host.

The ES0 VCAP has 1 lookup accessible with this chain id:

- chain 10000000: ES0 Lookup 0

The ES0 VCAP does not do traffic classification to select a keyset, but it
does have two keysets that can be used on all traffic.  For now only the
ISDX keyset is used.

The ES0 VCAP can match on an ISDX key (Ingress Service Index) as one of the
frame metadata keyfields, similar to the ES2 VCAP.

The ES0 VCAP uses external counters in the XQS (statistics) group.

Version History:
================
v2      Added corrections suggested by Dan Carpenter:

        - Added a "Fixes" tag on patch 2
        - Using roundup/down macros provided by math.h
        - Check return value in sparx5_tc_action_vlan_modify()

v1      Initial version


Steen Hegelund (10):
  net: microchip: sparx5: Discard frames with SMAC multicast addresses
  net: microchip: sparx5: Clear rule counter even if lookup is disabled
  net: microchip: sparx5: Egress VLAN TPID configuration follows IFH
  net: microchip: sparx5: Use chain ids without offsets when enabling
    rules
  net: microchip: sparx5: Improve the error handling for linked rules
  net: microchip: sparx5: Add ES0 VCAP model and updated KUNIT VCAP
    model
  net: microchip: sparx5: Updated register interface with VCAP ES0
    access
  net: microchip: sparx5: Add ES0 VCAP keyset configuration for Sparx5
  net: microchip: sparx5: Add TC support for the ES0 VCAP
  net: microchip: sparx5: Add TC vlan action support for the ES0 VCAP

 .../ethernet/microchip/sparx5/sparx5_main.c   |    1 +
 .../microchip/sparx5/sparx5_main_regs.h       | 1829 ++++++++++++-----
 .../ethernet/microchip/sparx5/sparx5_port.c   |    5 +
 .../net/ethernet/microchip/sparx5/sparx5_tc.h |   74 +
 .../microchip/sparx5/sparx5_tc_flower.c       |  370 +++-
 .../microchip/sparx5/sparx5_vcap_ag_api.c     |  385 +++-
 .../microchip/sparx5/sparx5_vcap_debugfs.c    |   41 +
 .../microchip/sparx5/sparx5_vcap_impl.c       |  274 +++
 .../microchip/sparx5/sparx5_vcap_impl.h       |   25 +
 .../ethernet/microchip/sparx5/sparx5_vlan.c   |    4 +-
 .../net/ethernet/microchip/vcap/vcap_ag_api.h |  174 +-
 .../net/ethernet/microchip/vcap/vcap_api.c    |   18 +-
 .../microchip/vcap/vcap_api_debugfs_kunit.c   |    4 +-
 .../ethernet/microchip/vcap/vcap_api_kunit.c  |    4 +-
 .../microchip/vcap/vcap_model_kunit.c         |  270 ++-
 .../microchip/vcap/vcap_model_kunit.h         |   10 +-
 drivers/net/ethernet/microchip/vcap/vcap_tc.c |    3 +
 drivers/net/ethernet/microchip/vcap/vcap_tc.h |    1 +
 18 files changed, 2749 insertions(+), 743 deletions(-)

Comments

patchwork-bot+netdevbpf@kernel.org Feb. 16, 2023, 8:30 a.m. UTC | #1
Hello:

This series was applied to netdev/net-next.git (master)
by Paolo Abeni <pabeni@redhat.com>:

On Tue, 14 Feb 2023 11:40:39 +0100 you wrote:
> This provides the Egress Stage 0 (ES0) VCAP (Versatile Content-Aware
> Processor) support for the Sparx5 platform.
> 
> The ES0 VCAP is an Egress Access Control VCAP that uses frame keyfields and
> previously classified keyfields to add, rewrite or remove VLAN tags on the
> egress frames, and is therefore often referred to as the rewriter.
> 
> [...]

Here is the summary with links:
  - [net-next,v2,01/10] net: microchip: sparx5: Discard frames with SMAC multicast addresses
    https://git.kernel.org/netdev/net-next/c/65b6625069a4
  - [net-next,v2,02/10] net: microchip: sparx5: Clear rule counter even if lookup is disabled
    https://git.kernel.org/netdev/net-next/c/d7953da4f293
  - [net-next,v2,03/10] net: microchip: sparx5: Egress VLAN TPID configuration follows IFH
    https://git.kernel.org/netdev/net-next/c/38f6408c6071
  - [net-next,v2,04/10] net: microchip: sparx5: Use chain ids without offsets when enabling rules
    https://git.kernel.org/netdev/net-next/c/0518e914f34a
  - [net-next,v2,05/10] net: microchip: sparx5: Improve the error handling for linked rules
    https://git.kernel.org/netdev/net-next/c/b5b0c3645988
  - [net-next,v2,06/10] net: microchip: sparx5: Add ES0 VCAP model and updated KUNIT VCAP model
    https://git.kernel.org/netdev/net-next/c/a5cc98adf3cb
  - [net-next,v2,07/10] net: microchip: sparx5: Updated register interface with VCAP ES0 access
    https://git.kernel.org/netdev/net-next/c/f2a77dd69f51
  - [net-next,v2,08/10] net: microchip: sparx5: Add ES0 VCAP keyset configuration for Sparx5
    https://git.kernel.org/netdev/net-next/c/3cbe7537a7f1
  - [net-next,v2,09/10] net: microchip: sparx5: Add TC support for the ES0 VCAP
    https://git.kernel.org/netdev/net-next/c/52b28a93c45d
  - [net-next,v2,10/10] net: microchip: sparx5: Add TC vlan action support for the ES0 VCAP
    https://git.kernel.org/netdev/net-next/c/ebf44ded76e9

You are awesome, thank you!