Commit 9d712b8d authored by Steen Hegelund's avatar Steen Hegelund Committed by David S. Miller
Browse files

net: microchip: sparx5: Add ES2 VCAP model and updated KUNIT VCAP model



This provides the VCAP model for the Sparx5 ES2 (Egress Stage 2) VCAP.

This VCAP provides tagging and remarking functionality

This also renames a VCAP keyfield: VCAP_KF_MIRROR_ENA becomes
VCAP_KF_MIRROR_PROBE, as the first name was caused by a mistake in the
model transformation.

Signed-off-by: default avatarSteen Hegelund <steen.hegelund@microchip.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent a5300724
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -198,6 +198,7 @@ static const struct sparx5_main_io_resource sparx5_main_iomap[] = {
	{ TARGET_QSYS,               0x110a0000, 2 }, /* 0x6110a0000 */
	{ TARGET_QFWD,               0x110b0000, 2 }, /* 0x6110b0000 */
	{ TARGET_XQS,                0x110c0000, 2 }, /* 0x6110c0000 */
	{ TARGET_VCAP_ES2,           0x110d0000, 2 }, /* 0x6110d0000 */
	{ TARGET_CLKGEN,             0x11100000, 2 }, /* 0x611100000 */
	{ TARGET_ANA_AC_POL,         0x11200000, 2 }, /* 0x611200000 */
	{ TARGET_QRES,               0x11280000, 2 }, /* 0x611280000 */
+225 −2
Original line number Diff line number Diff line
@@ -4,8 +4,8 @@
 * Copyright (c) 2021 Microchip Technology Inc.
 */

/* This file is autogenerated by cml-utils 2022-12-06 15:28:38 +0100.
 * Commit ID: 3db2ac730f134c160496f2b9f10915e347d871cb
/* This file is autogenerated by cml-utils 2023-01-17 17:04:43 +0100.
 * Commit ID: cc027a9bd71002aebf074df5ad8584fe1545e05e
 */

#ifndef _SPARX5_MAIN_REGS_H_
@@ -46,6 +46,7 @@ enum sparx5_target {
	TARGET_QS = 177,
	TARGET_QSYS = 178,
	TARGET_REW = 179,
	TARGET_VCAP_ES2 = 324,
	TARGET_VCAP_SUPER = 326,
	TARGET_VOP = 327,
	TARGET_XQS = 331,
@@ -3120,6 +3121,36 @@ enum sparx5_target {
#define DSM_TAXI_CAL_CFG_CAL_PGM_ENA_GET(x)\
	FIELD_GET(DSM_TAXI_CAL_CFG_CAL_PGM_ENA, x)

/*      EACL:ES2_KEY_SELECT_PROFILE:VCAP_ES2_KEY_SEL */
#define EACL_VCAP_ES2_KEY_SEL(g, r) __REG(TARGET_EACL, 0, 1, 149504, g, 138, 8, 0, r, 2, 4)

#define EACL_VCAP_ES2_KEY_SEL_IP6_KEY_SEL        GENMASK(7, 5)
#define EACL_VCAP_ES2_KEY_SEL_IP6_KEY_SEL_SET(x)\
	FIELD_PREP(EACL_VCAP_ES2_KEY_SEL_IP6_KEY_SEL, x)
#define EACL_VCAP_ES2_KEY_SEL_IP6_KEY_SEL_GET(x)\
	FIELD_GET(EACL_VCAP_ES2_KEY_SEL_IP6_KEY_SEL, x)

#define EACL_VCAP_ES2_KEY_SEL_IP4_KEY_SEL        GENMASK(4, 2)
#define EACL_VCAP_ES2_KEY_SEL_IP4_KEY_SEL_SET(x)\
	FIELD_PREP(EACL_VCAP_ES2_KEY_SEL_IP4_KEY_SEL, x)
#define EACL_VCAP_ES2_KEY_SEL_IP4_KEY_SEL_GET(x)\
	FIELD_GET(EACL_VCAP_ES2_KEY_SEL_IP4_KEY_SEL, x)

#define EACL_VCAP_ES2_KEY_SEL_ARP_KEY_SEL        BIT(1)
#define EACL_VCAP_ES2_KEY_SEL_ARP_KEY_SEL_SET(x)\
	FIELD_PREP(EACL_VCAP_ES2_KEY_SEL_ARP_KEY_SEL, x)
#define EACL_VCAP_ES2_KEY_SEL_ARP_KEY_SEL_GET(x)\
	FIELD_GET(EACL_VCAP_ES2_KEY_SEL_ARP_KEY_SEL, x)

#define EACL_VCAP_ES2_KEY_SEL_KEY_ENA            BIT(0)
#define EACL_VCAP_ES2_KEY_SEL_KEY_ENA_SET(x)\
	FIELD_PREP(EACL_VCAP_ES2_KEY_SEL_KEY_ENA, x)
#define EACL_VCAP_ES2_KEY_SEL_KEY_ENA_GET(x)\
	FIELD_GET(EACL_VCAP_ES2_KEY_SEL_KEY_ENA, x)

/*      EACL:CNT_TBL:ES2_CNT */
#define EACL_ES2_CNT(g)           __REG(TARGET_EACL, 0, 1, 122880, g, 2048, 4, 0, 0, 1, 4)

/*      EACL:POL_CFG:POL_EACL_CFG */
#define EACL_POL_EACL_CFG         __REG(TARGET_EACL, 0, 1, 150608, 0, 1, 780, 768, 0, 1, 4)

@@ -3159,6 +3190,57 @@ enum sparx5_target {
#define EACL_POL_EACL_CFG_EACL_FORCE_INIT_GET(x)\
	FIELD_GET(EACL_POL_EACL_CFG_EACL_FORCE_INIT, x)

/*      EACL:ES2_STICKY:SEC_LOOKUP_STICKY */
#define EACL_SEC_LOOKUP_STICKY(r) __REG(TARGET_EACL, 0, 1, 118696, 0, 1, 8, 0, r, 2, 4)

#define EACL_SEC_LOOKUP_STICKY_SEC_TYPE_IP_7TUPLE_STICKY BIT(7)
#define EACL_SEC_LOOKUP_STICKY_SEC_TYPE_IP_7TUPLE_STICKY_SET(x)\
	FIELD_PREP(EACL_SEC_LOOKUP_STICKY_SEC_TYPE_IP_7TUPLE_STICKY, x)
#define EACL_SEC_LOOKUP_STICKY_SEC_TYPE_IP_7TUPLE_STICKY_GET(x)\
	FIELD_GET(EACL_SEC_LOOKUP_STICKY_SEC_TYPE_IP_7TUPLE_STICKY, x)

#define EACL_SEC_LOOKUP_STICKY_SEC_TYPE_IP6_VID_STICKY BIT(6)
#define EACL_SEC_LOOKUP_STICKY_SEC_TYPE_IP6_VID_STICKY_SET(x)\
	FIELD_PREP(EACL_SEC_LOOKUP_STICKY_SEC_TYPE_IP6_VID_STICKY, x)
#define EACL_SEC_LOOKUP_STICKY_SEC_TYPE_IP6_VID_STICKY_GET(x)\
	FIELD_GET(EACL_SEC_LOOKUP_STICKY_SEC_TYPE_IP6_VID_STICKY, x)

#define EACL_SEC_LOOKUP_STICKY_SEC_TYPE_IP6_STD_STICKY BIT(5)
#define EACL_SEC_LOOKUP_STICKY_SEC_TYPE_IP6_STD_STICKY_SET(x)\
	FIELD_PREP(EACL_SEC_LOOKUP_STICKY_SEC_TYPE_IP6_STD_STICKY, x)
#define EACL_SEC_LOOKUP_STICKY_SEC_TYPE_IP6_STD_STICKY_GET(x)\
	FIELD_GET(EACL_SEC_LOOKUP_STICKY_SEC_TYPE_IP6_STD_STICKY, x)

#define EACL_SEC_LOOKUP_STICKY_SEC_TYPE_IP4_TCPUDP_STICKY BIT(4)
#define EACL_SEC_LOOKUP_STICKY_SEC_TYPE_IP4_TCPUDP_STICKY_SET(x)\
	FIELD_PREP(EACL_SEC_LOOKUP_STICKY_SEC_TYPE_IP4_TCPUDP_STICKY, x)
#define EACL_SEC_LOOKUP_STICKY_SEC_TYPE_IP4_TCPUDP_STICKY_GET(x)\
	FIELD_GET(EACL_SEC_LOOKUP_STICKY_SEC_TYPE_IP4_TCPUDP_STICKY, x)

#define EACL_SEC_LOOKUP_STICKY_SEC_TYPE_IP4_VID_STICKY BIT(3)
#define EACL_SEC_LOOKUP_STICKY_SEC_TYPE_IP4_VID_STICKY_SET(x)\
	FIELD_PREP(EACL_SEC_LOOKUP_STICKY_SEC_TYPE_IP4_VID_STICKY, x)
#define EACL_SEC_LOOKUP_STICKY_SEC_TYPE_IP4_VID_STICKY_GET(x)\
	FIELD_GET(EACL_SEC_LOOKUP_STICKY_SEC_TYPE_IP4_VID_STICKY, x)

#define EACL_SEC_LOOKUP_STICKY_SEC_TYPE_IP4_OTHER_STICKY BIT(2)
#define EACL_SEC_LOOKUP_STICKY_SEC_TYPE_IP4_OTHER_STICKY_SET(x)\
	FIELD_PREP(EACL_SEC_LOOKUP_STICKY_SEC_TYPE_IP4_OTHER_STICKY, x)
#define EACL_SEC_LOOKUP_STICKY_SEC_TYPE_IP4_OTHER_STICKY_GET(x)\
	FIELD_GET(EACL_SEC_LOOKUP_STICKY_SEC_TYPE_IP4_OTHER_STICKY, x)

#define EACL_SEC_LOOKUP_STICKY_SEC_TYPE_ARP_STICKY BIT(1)
#define EACL_SEC_LOOKUP_STICKY_SEC_TYPE_ARP_STICKY_SET(x)\
	FIELD_PREP(EACL_SEC_LOOKUP_STICKY_SEC_TYPE_ARP_STICKY, x)
#define EACL_SEC_LOOKUP_STICKY_SEC_TYPE_ARP_STICKY_GET(x)\
	FIELD_GET(EACL_SEC_LOOKUP_STICKY_SEC_TYPE_ARP_STICKY, x)

#define EACL_SEC_LOOKUP_STICKY_SEC_TYPE_MAC_ETYPE_STICKY BIT(0)
#define EACL_SEC_LOOKUP_STICKY_SEC_TYPE_MAC_ETYPE_STICKY_SET(x)\
	FIELD_PREP(EACL_SEC_LOOKUP_STICKY_SEC_TYPE_MAC_ETYPE_STICKY, x)
#define EACL_SEC_LOOKUP_STICKY_SEC_TYPE_MAC_ETYPE_STICKY_GET(x)\
	FIELD_GET(EACL_SEC_LOOKUP_STICKY_SEC_TYPE_MAC_ETYPE_STICKY, x)

/*      EACL:RAM_CTRL:RAM_INIT */
#define EACL_RAM_INIT             __REG(TARGET_EACL, 0, 1, 118736, 0, 1, 4, 0, 0, 1, 4)

@@ -5612,6 +5694,147 @@ enum sparx5_target {
#define REW_RAM_INIT_RAM_CFG_HOOK_GET(x)\
	FIELD_GET(REW_RAM_INIT_RAM_CFG_HOOK, x)

/*      VCAP_ES2:VCAP_CORE_CFG:VCAP_UPDATE_CTRL */
#define VCAP_ES2_CTRL             __REG(TARGET_VCAP_ES2, 0, 1, 0, 0, 1, 8, 0, 0, 1, 4)

#define VCAP_ES2_CTRL_UPDATE_CMD                 GENMASK(24, 22)
#define VCAP_ES2_CTRL_UPDATE_CMD_SET(x)\
	FIELD_PREP(VCAP_ES2_CTRL_UPDATE_CMD, x)
#define VCAP_ES2_CTRL_UPDATE_CMD_GET(x)\
	FIELD_GET(VCAP_ES2_CTRL_UPDATE_CMD, x)

#define VCAP_ES2_CTRL_UPDATE_ENTRY_DIS           BIT(21)
#define VCAP_ES2_CTRL_UPDATE_ENTRY_DIS_SET(x)\
	FIELD_PREP(VCAP_ES2_CTRL_UPDATE_ENTRY_DIS, x)
#define VCAP_ES2_CTRL_UPDATE_ENTRY_DIS_GET(x)\
	FIELD_GET(VCAP_ES2_CTRL_UPDATE_ENTRY_DIS, x)

#define VCAP_ES2_CTRL_UPDATE_ACTION_DIS          BIT(20)
#define VCAP_ES2_CTRL_UPDATE_ACTION_DIS_SET(x)\
	FIELD_PREP(VCAP_ES2_CTRL_UPDATE_ACTION_DIS, x)
#define VCAP_ES2_CTRL_UPDATE_ACTION_DIS_GET(x)\
	FIELD_GET(VCAP_ES2_CTRL_UPDATE_ACTION_DIS, x)

#define VCAP_ES2_CTRL_UPDATE_CNT_DIS             BIT(19)
#define VCAP_ES2_CTRL_UPDATE_CNT_DIS_SET(x)\
	FIELD_PREP(VCAP_ES2_CTRL_UPDATE_CNT_DIS, x)
#define VCAP_ES2_CTRL_UPDATE_CNT_DIS_GET(x)\
	FIELD_GET(VCAP_ES2_CTRL_UPDATE_CNT_DIS, x)

#define VCAP_ES2_CTRL_UPDATE_ADDR                GENMASK(18, 3)
#define VCAP_ES2_CTRL_UPDATE_ADDR_SET(x)\
	FIELD_PREP(VCAP_ES2_CTRL_UPDATE_ADDR, x)
#define VCAP_ES2_CTRL_UPDATE_ADDR_GET(x)\
	FIELD_GET(VCAP_ES2_CTRL_UPDATE_ADDR, x)

#define VCAP_ES2_CTRL_UPDATE_SHOT                BIT(2)
#define VCAP_ES2_CTRL_UPDATE_SHOT_SET(x)\
	FIELD_PREP(VCAP_ES2_CTRL_UPDATE_SHOT, x)
#define VCAP_ES2_CTRL_UPDATE_SHOT_GET(x)\
	FIELD_GET(VCAP_ES2_CTRL_UPDATE_SHOT, x)

#define VCAP_ES2_CTRL_CLEAR_CACHE                BIT(1)
#define VCAP_ES2_CTRL_CLEAR_CACHE_SET(x)\
	FIELD_PREP(VCAP_ES2_CTRL_CLEAR_CACHE, x)
#define VCAP_ES2_CTRL_CLEAR_CACHE_GET(x)\
	FIELD_GET(VCAP_ES2_CTRL_CLEAR_CACHE, x)

#define VCAP_ES2_CTRL_MV_TRAFFIC_IGN             BIT(0)
#define VCAP_ES2_CTRL_MV_TRAFFIC_IGN_SET(x)\
	FIELD_PREP(VCAP_ES2_CTRL_MV_TRAFFIC_IGN, x)
#define VCAP_ES2_CTRL_MV_TRAFFIC_IGN_GET(x)\
	FIELD_GET(VCAP_ES2_CTRL_MV_TRAFFIC_IGN, x)

/*      VCAP_ES2:VCAP_CORE_CFG:VCAP_MV_CFG */
#define VCAP_ES2_CFG              __REG(TARGET_VCAP_ES2, 0, 1, 0, 0, 1, 8, 4, 0, 1, 4)

#define VCAP_ES2_CFG_MV_NUM_POS                  GENMASK(31, 16)
#define VCAP_ES2_CFG_MV_NUM_POS_SET(x)\
	FIELD_PREP(VCAP_ES2_CFG_MV_NUM_POS, x)
#define VCAP_ES2_CFG_MV_NUM_POS_GET(x)\
	FIELD_GET(VCAP_ES2_CFG_MV_NUM_POS, x)

#define VCAP_ES2_CFG_MV_SIZE                     GENMASK(15, 0)
#define VCAP_ES2_CFG_MV_SIZE_SET(x)\
	FIELD_PREP(VCAP_ES2_CFG_MV_SIZE, x)
#define VCAP_ES2_CFG_MV_SIZE_GET(x)\
	FIELD_GET(VCAP_ES2_CFG_MV_SIZE, x)

/*      VCAP_ES2:VCAP_CORE_CACHE:VCAP_ENTRY_DAT */
#define VCAP_ES2_VCAP_ENTRY_DAT(r) __REG(TARGET_VCAP_ES2, 0, 1, 8, 0, 1, 904, 0, r, 64, 4)

/*      VCAP_ES2:VCAP_CORE_CACHE:VCAP_MASK_DAT */
#define VCAP_ES2_VCAP_MASK_DAT(r) __REG(TARGET_VCAP_ES2, 0, 1, 8, 0, 1, 904, 256, r, 64, 4)

/*      VCAP_ES2:VCAP_CORE_CACHE:VCAP_ACTION_DAT */
#define VCAP_ES2_VCAP_ACTION_DAT(r) __REG(TARGET_VCAP_ES2, 0, 1, 8, 0, 1, 904, 512, r, 64, 4)

/*      VCAP_ES2:VCAP_CORE_CACHE:VCAP_CNT_DAT */
#define VCAP_ES2_VCAP_CNT_DAT(r)  __REG(TARGET_VCAP_ES2, 0, 1, 8, 0, 1, 904, 768, r, 32, 4)

/*      VCAP_ES2:VCAP_CORE_CACHE:VCAP_CNT_FW_DAT */
#define VCAP_ES2_VCAP_CNT_FW_DAT  __REG(TARGET_VCAP_ES2, 0, 1, 8, 0, 1, 904, 896, 0, 1, 4)

/*      VCAP_ES2:VCAP_CORE_CACHE:VCAP_TG_DAT */
#define VCAP_ES2_VCAP_TG_DAT      __REG(TARGET_VCAP_ES2, 0, 1, 8, 0, 1, 904, 900, 0, 1, 4)

/*      VCAP_ES2:VCAP_CORE_MAP:VCAP_CORE_IDX */
#define VCAP_ES2_IDX              __REG(TARGET_VCAP_ES2, 0, 1, 912, 0, 1, 8, 0, 0, 1, 4)

#define VCAP_ES2_IDX_CORE_IDX                    GENMASK(3, 0)
#define VCAP_ES2_IDX_CORE_IDX_SET(x)\
	FIELD_PREP(VCAP_ES2_IDX_CORE_IDX, x)
#define VCAP_ES2_IDX_CORE_IDX_GET(x)\
	FIELD_GET(VCAP_ES2_IDX_CORE_IDX, x)

/*      VCAP_ES2:VCAP_CORE_MAP:VCAP_CORE_MAP */
#define VCAP_ES2_MAP              __REG(TARGET_VCAP_ES2, 0, 1, 912, 0, 1, 8, 4, 0, 1, 4)

#define VCAP_ES2_MAP_CORE_MAP                    GENMASK(2, 0)
#define VCAP_ES2_MAP_CORE_MAP_SET(x)\
	FIELD_PREP(VCAP_ES2_MAP_CORE_MAP, x)
#define VCAP_ES2_MAP_CORE_MAP_GET(x)\
	FIELD_GET(VCAP_ES2_MAP_CORE_MAP, x)

/*      VCAP_ES2:VCAP_CORE_STICKY:VCAP_STICKY */
#define VCAP_ES2_VCAP_STICKY      __REG(TARGET_VCAP_ES2, 0, 1, 920, 0, 1, 4, 0, 0, 1, 4)

#define VCAP_ES2_VCAP_STICKY_VCAP_ROW_DELETED_STICKY BIT(0)
#define VCAP_ES2_VCAP_STICKY_VCAP_ROW_DELETED_STICKY_SET(x)\
	FIELD_PREP(VCAP_ES2_VCAP_STICKY_VCAP_ROW_DELETED_STICKY, x)
#define VCAP_ES2_VCAP_STICKY_VCAP_ROW_DELETED_STICKY_GET(x)\
	FIELD_GET(VCAP_ES2_VCAP_STICKY_VCAP_ROW_DELETED_STICKY, x)

/*      VCAP_ES2:VCAP_CONST:VCAP_VER */
#define VCAP_ES2_VCAP_VER         __REG(TARGET_VCAP_ES2, 0, 1, 924, 0, 1, 40, 0, 0, 1, 4)

/*      VCAP_ES2:VCAP_CONST:ENTRY_WIDTH */
#define VCAP_ES2_ENTRY_WIDTH      __REG(TARGET_VCAP_ES2, 0, 1, 924, 0, 1, 40, 4, 0, 1, 4)

/*      VCAP_ES2:VCAP_CONST:ENTRY_CNT */
#define VCAP_ES2_ENTRY_CNT        __REG(TARGET_VCAP_ES2, 0, 1, 924, 0, 1, 40, 8, 0, 1, 4)

/*      VCAP_ES2:VCAP_CONST:ENTRY_SWCNT */
#define VCAP_ES2_ENTRY_SWCNT      __REG(TARGET_VCAP_ES2, 0, 1, 924, 0, 1, 40, 12, 0, 1, 4)

/*      VCAP_ES2:VCAP_CONST:ENTRY_TG_WIDTH */
#define VCAP_ES2_ENTRY_TG_WIDTH   __REG(TARGET_VCAP_ES2, 0, 1, 924, 0, 1, 40, 16, 0, 1, 4)

/*      VCAP_ES2:VCAP_CONST:ACTION_DEF_CNT */
#define VCAP_ES2_ACTION_DEF_CNT   __REG(TARGET_VCAP_ES2, 0, 1, 924, 0, 1, 40, 20, 0, 1, 4)

/*      VCAP_ES2:VCAP_CONST:ACTION_WIDTH */
#define VCAP_ES2_ACTION_WIDTH     __REG(TARGET_VCAP_ES2, 0, 1, 924, 0, 1, 40, 24, 0, 1, 4)

/*      VCAP_ES2:VCAP_CONST:CNT_WIDTH */
#define VCAP_ES2_CNT_WIDTH        __REG(TARGET_VCAP_ES2, 0, 1, 924, 0, 1, 40, 28, 0, 1, 4)

/*      VCAP_ES2:VCAP_CONST:CORE_CNT */
#define VCAP_ES2_CORE_CNT         __REG(TARGET_VCAP_ES2, 0, 1, 924, 0, 1, 40, 32, 0, 1, 4)

/*      VCAP_ES2:VCAP_CONST:IF_CNT */
#define VCAP_ES2_IF_CNT           __REG(TARGET_VCAP_ES2, 0, 1, 924, 0, 1, 40, 36, 0, 1, 4)

/*      VCAP_SUPER:VCAP_CORE_CFG:VCAP_UPDATE_CTRL */
#define VCAP_SUPER_CTRL           __REG(TARGET_VCAP_SUPER, 0, 1, 0, 0, 1, 8, 0, 0, 1, 4)

+1162 −4

File changed.

Preview size limit exceeded, changes collapsed.

+6 −5
Original line number Diff line number Diff line
/* SPDX-License-Identifier: BSD-3-Clause */
/* Copyright (C) 2022 Microchip Technology Inc. and its subsidiaries.
/* Copyright (C) 2023 Microchip Technology Inc. and its subsidiaries.
 * Microchip VCAP API
 */

/* This file is autogenerated by cml-utils 2022-12-06 09:49:28 +0100.
 * Commit ID: cd9451f1b9d8cafa58f845de66a6e373658019ef
/* This file is autogenerated by cml-utils 2023-01-17 16:52:16 +0100.
 * Commit ID: 229ec79be5df142c1f335a01d0e63232d4feb2ba
 */

#ifndef __VCAP_AG_API__
@@ -276,7 +276,8 @@ enum vcap_keyfield_set {
 *   Select the mode of the Generic Index
 * VCAP_KF_LOOKUP_PAG: W8, sparx5: is2, lan966x: is2
 *   Classified Policy Association Group: chains rules from IS1/CLM to IS2
 * VCAP_KF_MIRROR_ENA: *** No docstring ***
 * VCAP_KF_MIRROR_PROBE: W2, sparx5: es2
 *   Identifies frame copies generated as a result of mirroring
 * VCAP_KF_OAM_CCM_CNTS_EQ0: W1, sparx5: is2/es2, lan966x: is2
 *   Dual-ended loss measurement counters in CCM frames are all zero
 * VCAP_KF_OAM_DETECTED: W1, lan966x: is2
@@ -407,7 +408,7 @@ enum vcap_key_field {
	VCAP_KF_LOOKUP_GEN_IDX,
	VCAP_KF_LOOKUP_GEN_IDX_SEL,
	VCAP_KF_LOOKUP_PAG,
	VCAP_KF_MIRROR_ENA,
	VCAP_KF_MIRROR_PROBE,
	VCAP_KF_OAM_CCM_CNTS_EQ0,
	VCAP_KF_OAM_DETECTED,
	VCAP_KF_OAM_FLAGS,
+7 −7
Original line number Diff line number Diff line
@@ -1709,7 +1709,7 @@ static const struct vcap_field es2_mac_etype_keyfield[] = {
		.offset = 96,
		.width = 1,
	},
	[VCAP_KF_MIRROR_ENA] = {
	[VCAP_KF_MIRROR_PROBE] = {
		.type = VCAP_FIELD_U32,
		.offset = 97,
		.width = 2,
@@ -1847,7 +1847,7 @@ static const struct vcap_field es2_arp_keyfield[] = {
		.offset = 95,
		.width = 1,
	},
	[VCAP_KF_MIRROR_ENA] = {
	[VCAP_KF_MIRROR_PROBE] = {
		.type = VCAP_FIELD_U32,
		.offset = 96,
		.width = 2,
@@ -2010,7 +2010,7 @@ static const struct vcap_field es2_ip4_tcp_udp_keyfield[] = {
		.offset = 96,
		.width = 1,
	},
	[VCAP_KF_MIRROR_ENA] = {
	[VCAP_KF_MIRROR_PROBE] = {
		.type = VCAP_FIELD_U32,
		.offset = 97,
		.width = 2,
@@ -2223,7 +2223,7 @@ static const struct vcap_field es2_ip4_other_keyfield[] = {
		.offset = 96,
		.width = 1,
	},
	[VCAP_KF_MIRROR_ENA] = {
	[VCAP_KF_MIRROR_PROBE] = {
		.type = VCAP_FIELD_U32,
		.offset = 97,
		.width = 2,
@@ -2376,7 +2376,7 @@ static const struct vcap_field es2_ip_7tuple_keyfield[] = {
		.offset = 93,
		.width = 1,
	},
	[VCAP_KF_MIRROR_ENA] = {
	[VCAP_KF_MIRROR_PROBE] = {
		.type = VCAP_FIELD_U32,
		.offset = 94,
		.width = 2,
@@ -2569,7 +2569,7 @@ static const struct vcap_field es2_ip4_vid_keyfield[] = {
		.offset = 48,
		.width = 1,
	},
	[VCAP_KF_MIRROR_ENA] = {
	[VCAP_KF_MIRROR_PROBE] = {
		.type = VCAP_FIELD_U32,
		.offset = 49,
		.width = 2,
@@ -3847,7 +3847,7 @@ static const char * const vcap_keyfield_names[] = {
	[VCAP_KF_LOOKUP_GEN_IDX]                 =  "LOOKUP_GEN_IDX",
	[VCAP_KF_LOOKUP_GEN_IDX_SEL]             =  "LOOKUP_GEN_IDX_SEL",
	[VCAP_KF_LOOKUP_PAG]                     =  "LOOKUP_PAG",
	[VCAP_KF_MIRROR_ENA]                     =  "MIRROR_ENA",
	[VCAP_KF_MIRROR_PROBE]                   =  "MIRROR_PROBE",
	[VCAP_KF_OAM_CCM_CNTS_EQ0]               =  "OAM_CCM_CNTS_EQ0",
	[VCAP_KF_OAM_DETECTED]                   =  "OAM_DETECTED",
	[VCAP_KF_OAM_FLAGS]                      =  "OAM_FLAGS",