mbox

[v5,00/28] Support ingress policer

Message ID 20211012070612.352164-1-skori@marvell.com (mailing list archive)
Headers

Message

Sunil Kumar Kori Oct. 12, 2021, 7:05 a.m. UTC
  From: Sunil Kumar Kori <skori@marvell.com>

Series adds support for ingress meter for CN10K platform. Series is divided
in following two logical implementation:

 - common/cnxk: It implements RoC APIs over MBOX interfaces which are by network drivers.

	common/cnxk: update policer MBOX APIs and HW definitions
	common/cnxk: support RoC API to get level to index
	common/cnxk: support RoC API to get profile count
	common/cnxk: support RoC API to alloc bandwidth profiles
	common/cnxk: support RoC API to free bandwidth profiles
	common/cnxk: support RoC API to configure bandwidth profile
	common/cnxk: support RoC API to toggle profile state
	common/cnxk: support RoC API to dump bandwidth profile
	common/cnxk: support RoC API to setup precolor table
	common/cnxk: support RoC API to connect bandwidth profiles
	common/cnxk: support RoC API to get stats to index
	common/cnxk: support RoC API to read profile statistics
	common/cnxk: support RoC API to reset profile stats
	common/cnxk: support meter in action list

 - net/cnxk: It implenets ethdev ops for various metering operations.
	For cn9k platform, ops are registerded as NULL because cn9k does
	not support metering.

	net/cnxk: support meter ops get API
	net/cnxk: support ops to get meter capabilities
	net/cnxk: support ops to create meter profile
	net/cnxk: support ops to delete meter profile
	net/cnxk: support ops to validate meter policy
	net/cnxk: support ops to create meter policy
	net/cnxk: support ops to delete meter policy
	net/cnxk: support ops to create meter
	net/cnxk: support ops to delete meter
	net/cnxk: support ops to enable/disable meter
	net/cnxk: support ops to update precolor DSCP table
	net/cnxk: support ops to read/update meter stats
	net/cnxk: support meter action to flow create
	net/cnxk: support meter action to flow destroy

 doc/guides/nics/features/cnxk.ini      |    1 +
 doc/guides/nics/features/cnxk_vf.ini   |    1 +
 doc/guides/rel_notes/release_21_11.rst |    1 +
 drivers/common/cnxk/hw/nix.h           |   62 +-
 drivers/common/cnxk/meson.build        |    1 +
 drivers/common/cnxk/roc_mbox.h         |   34 +-
 drivers/common/cnxk/roc_nix.h          |  164 +++
 drivers/common/cnxk/roc_nix_bpf.c      | 1149 ++++++++++++++++++++
 drivers/common/cnxk/roc_nix_priv.h     |    1 +
 drivers/common/cnxk/roc_npc.c          |    7 +
 drivers/common/cnxk/roc_npc.h          |    8 +-
 drivers/common/cnxk/roc_platform.h     |    1 +
 drivers/common/cnxk/roc_utils.c        |    3 +
 drivers/common/cnxk/version.map        |   15 +
 drivers/net/cnxk/cn10k_rte_flow.c      |  193 +++-
 drivers/net/cnxk/cnxk_ethdev.c         |   57 +
 drivers/net/cnxk/cnxk_ethdev.h         |   92 ++
 drivers/net/cnxk/cnxk_ethdev_mtr.c     | 1341 ++++++++++++++++++++++++
 drivers/net/cnxk/cnxk_rte_flow.c       |    4 +
 drivers/net/cnxk/meson.build           |    1 +
 20 files changed, 3129 insertions(+), 7 deletions(-)
 create mode 100644 drivers/common/cnxk/roc_nix_bpf.c
 create mode 100644 drivers/net/cnxk/cnxk_ethdev_mtr.c