linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH net-next v2 0/8] Adding Sparx5 IS0 VCAP support
@ 2023-01-24 10:45 Steen Hegelund
  2023-01-24 10:45 ` [PATCH net-next v2 1/8] net: microchip: sparx5: Add IS0 VCAP model and updated KUNIT VCAP model Steen Hegelund
                   ` (9 more replies)
  0 siblings, 10 replies; 11+ messages in thread
From: Steen Hegelund @ 2023-01-24 10:45 UTC (permalink / raw)
  To: David S . Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni
  Cc: Steen Hegelund, UNGLinuxDriver, Randy Dunlap, Casper Andersson,
	Russell King, Wan Jiabing, Nathan Huckleberry, linux-kernel,
	netdev, linux-arm-kernel, Steen Hegelund, Daniel Machon,
	Horatiu Vultur, Lars Povlsen, Dan Carpenter, Michael Walle

This provides the Ingress Stage 0 (IS0) VCAP (Versatile Content-Aware
Processor) support for the Sparx5 platform.

The IS0 VCAP (also known in the datasheet as CLM) is a classifier VCAP that
mainly extracts frame information to metadata that follows the frame in the
Sparx5 processing flow all the way to the egress port.

The IS0 VCAP has 4 lookups and they are accessible with a TC chain id:

- chain 1000000: IS0 Lookup 0
- chain 1100000: IS0 Lookup 1
- chain 1200000: IS0 Lookup 2
- chain 1300000: IS0 Lookup 3
- chain 1400000: IS0 Lookup 4
- chain 1500000: IS0 Lookup 5

Each of these lookups have their own port keyset configuration that decides
which keys will be used for matching on which traffic type.

The IS0 VCAP has these traffic classifications:

- IPv4 frames
- IPv6 frames
- Unicast MPLS frames (ethertype = 0x8847)
- Multicast MPLS frames (ethertype = 0x8847)
- Other frame types than MPLS, IPv4 and IPv6

The IS0 VCAP has an 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.

This allow rules in the IS0 VCAP to 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.

As an example a "goto chain 8000001" will use a PAG value of 1 to chain to
a rule in IS2 Lookup 0.

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

v1      Initial version

Steen Hegelund (8):
  net: microchip: sparx5: Add IS0 VCAP model and updated KUNIT VCAP
    model
  net: microchip: sparx5: Add IS0 VCAP keyset configuration for Sparx5
  net: microchip: sparx5: Add actionset type id information to rule
  net: microchip: sparx5: Add TC support for IS0 VCAP
  net: microchip: sparx5: Add TC filter chaining support for IS0 and IS2
    VCAPs
  net: microchip: sparx5: Add automatic selection of VCAP rule actionset
  net: microchip: sparx5: Add support for IS0 VCAP ethernet protocol
    types
  net: microchip: sparx5: Add support for IS0 VCAP CVLAN TC keys

 .../microchip/sparx5/sparx5_main_regs.h       |   64 +-
 .../microchip/sparx5/sparx5_tc_flower.c       |  227 +-
 .../microchip/sparx5/sparx5_vcap_ag_api.c     | 1110 ++++++++-
 .../microchip/sparx5/sparx5_vcap_debugfs.c    |  131 +-
 .../microchip/sparx5/sparx5_vcap_impl.c       |  401 +++-
 .../microchip/sparx5/sparx5_vcap_impl.h       |   61 +
 .../net/ethernet/microchip/vcap/vcap_ag_api.h |  336 +--
 .../net/ethernet/microchip/vcap/vcap_api.c    |  184 +-
 .../net/ethernet/microchip/vcap/vcap_api.h    |    7 +
 .../ethernet/microchip/vcap/vcap_api_client.h |    2 +
 .../ethernet/microchip/vcap/vcap_api_kunit.c  |    2 +-
 .../microchip/vcap/vcap_model_kunit.c         | 1994 ++---------------
 12 files changed, 2360 insertions(+), 2159 deletions(-)

-- 
2.39.1


^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2023-01-26  9:30 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-01-24 10:45 [PATCH net-next v2 0/8] Adding Sparx5 IS0 VCAP support Steen Hegelund
2023-01-24 10:45 ` [PATCH net-next v2 1/8] net: microchip: sparx5: Add IS0 VCAP model and updated KUNIT VCAP model Steen Hegelund
2023-01-24 10:45 ` [PATCH net-next v2 2/8] net: microchip: sparx5: Add IS0 VCAP keyset configuration for Sparx5 Steen Hegelund
2023-01-24 10:45 ` [PATCH net-next v2 3/8] net: microchip: sparx5: Add actionset type id information to rule Steen Hegelund
2023-01-24 10:45 ` [PATCH net-next v2 4/8] net: microchip: sparx5: Add TC support for IS0 VCAP Steen Hegelund
2023-01-24 10:45 ` [PATCH net-next v2 5/8] net: microchip: sparx5: Add TC filter chaining support for IS0 and IS2 VCAPs Steen Hegelund
2023-01-24 10:45 ` [PATCH net-next v2 6/8] net: microchip: sparx5: Add automatic selection of VCAP rule actionset Steen Hegelund
2023-01-24 10:45 ` [PATCH net-next v2 7/8] net: microchip: sparx5: Add support for IS0 VCAP ethernet protocol types Steen Hegelund
2023-01-24 10:45 ` [PATCH net-next v2 8/8] net: microchip: sparx5: Add support for IS0 VCAP CVLAN TC keys Steen Hegelund
2023-01-24 10:57 ` [PATCH net-next v2 0/8] Adding Sparx5 IS0 VCAP support Dan Carpenter
2023-01-26  9:30 ` patchwork-bot+netdevbpf

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).