139bedc16SHoratiu Vultur // SPDX-License-Identifier: (GPL-2.0 OR MIT)
239bedc16SHoratiu Vultur 
339bedc16SHoratiu Vultur #include <linux/types.h>
439bedc16SHoratiu Vultur #include <linux/kernel.h>
539bedc16SHoratiu Vultur 
639bedc16SHoratiu Vultur #include "lan966x_vcap_ag_api.h"
739bedc16SHoratiu Vultur 
839bedc16SHoratiu Vultur /* keyfields */
999ce286dSHoratiu Vultur static const struct vcap_field is1_normal_keyfield[] = {
1099ce286dSHoratiu Vultur 	[VCAP_KF_TYPE] = {
1199ce286dSHoratiu Vultur 		.type = VCAP_FIELD_BIT,
1299ce286dSHoratiu Vultur 		.offset = 0,
1399ce286dSHoratiu Vultur 		.width = 1,
1499ce286dSHoratiu Vultur 	},
1599ce286dSHoratiu Vultur 	[VCAP_KF_LOOKUP_INDEX] = {
1699ce286dSHoratiu Vultur 		.type = VCAP_FIELD_U32,
1799ce286dSHoratiu Vultur 		.offset = 1,
1899ce286dSHoratiu Vultur 		.width = 2,
1999ce286dSHoratiu Vultur 	},
2099ce286dSHoratiu Vultur 	[VCAP_KF_IF_IGR_PORT_MASK] = {
2199ce286dSHoratiu Vultur 		.type = VCAP_FIELD_U32,
2299ce286dSHoratiu Vultur 		.offset = 3,
2399ce286dSHoratiu Vultur 		.width = 9,
2499ce286dSHoratiu Vultur 	},
2599ce286dSHoratiu Vultur 	[VCAP_KF_L2_MC_IS] = {
2699ce286dSHoratiu Vultur 		.type = VCAP_FIELD_BIT,
2799ce286dSHoratiu Vultur 		.offset = 12,
2899ce286dSHoratiu Vultur 		.width = 1,
2999ce286dSHoratiu Vultur 	},
3099ce286dSHoratiu Vultur 	[VCAP_KF_L2_BC_IS] = {
3199ce286dSHoratiu Vultur 		.type = VCAP_FIELD_BIT,
3299ce286dSHoratiu Vultur 		.offset = 13,
3399ce286dSHoratiu Vultur 		.width = 1,
3499ce286dSHoratiu Vultur 	},
3599ce286dSHoratiu Vultur 	[VCAP_KF_IP_MC_IS] = {
3699ce286dSHoratiu Vultur 		.type = VCAP_FIELD_BIT,
3799ce286dSHoratiu Vultur 		.offset = 14,
3899ce286dSHoratiu Vultur 		.width = 1,
3999ce286dSHoratiu Vultur 	},
4099ce286dSHoratiu Vultur 	[VCAP_KF_8021CB_R_TAGGED_IS] = {
4199ce286dSHoratiu Vultur 		.type = VCAP_FIELD_BIT,
4299ce286dSHoratiu Vultur 		.offset = 15,
4399ce286dSHoratiu Vultur 		.width = 1,
4499ce286dSHoratiu Vultur 	},
4599ce286dSHoratiu Vultur 	[VCAP_KF_8021Q_VLAN_TAGGED_IS] = {
4699ce286dSHoratiu Vultur 		.type = VCAP_FIELD_BIT,
4799ce286dSHoratiu Vultur 		.offset = 16,
4899ce286dSHoratiu Vultur 		.width = 1,
4999ce286dSHoratiu Vultur 	},
5099ce286dSHoratiu Vultur 	[VCAP_KF_8021Q_VLAN_DBL_TAGGED_IS] = {
5199ce286dSHoratiu Vultur 		.type = VCAP_FIELD_BIT,
5299ce286dSHoratiu Vultur 		.offset = 17,
5399ce286dSHoratiu Vultur 		.width = 1,
5499ce286dSHoratiu Vultur 	},
5599ce286dSHoratiu Vultur 	[VCAP_KF_8021Q_TPID0] = {
5699ce286dSHoratiu Vultur 		.type = VCAP_FIELD_BIT,
5799ce286dSHoratiu Vultur 		.offset = 18,
5899ce286dSHoratiu Vultur 		.width = 1,
5999ce286dSHoratiu Vultur 	},
6099ce286dSHoratiu Vultur 	[VCAP_KF_8021Q_VID0] = {
6199ce286dSHoratiu Vultur 		.type = VCAP_FIELD_U32,
6299ce286dSHoratiu Vultur 		.offset = 19,
6399ce286dSHoratiu Vultur 		.width = 12,
6499ce286dSHoratiu Vultur 	},
6599ce286dSHoratiu Vultur 	[VCAP_KF_8021Q_DEI0] = {
6699ce286dSHoratiu Vultur 		.type = VCAP_FIELD_BIT,
6799ce286dSHoratiu Vultur 		.offset = 31,
6899ce286dSHoratiu Vultur 		.width = 1,
6999ce286dSHoratiu Vultur 	},
7099ce286dSHoratiu Vultur 	[VCAP_KF_8021Q_PCP0] = {
7199ce286dSHoratiu Vultur 		.type = VCAP_FIELD_U32,
7299ce286dSHoratiu Vultur 		.offset = 32,
7399ce286dSHoratiu Vultur 		.width = 3,
7499ce286dSHoratiu Vultur 	},
7599ce286dSHoratiu Vultur 	[VCAP_KF_L2_SMAC] = {
7699ce286dSHoratiu Vultur 		.type = VCAP_FIELD_U48,
7799ce286dSHoratiu Vultur 		.offset = 35,
7899ce286dSHoratiu Vultur 		.width = 48,
7999ce286dSHoratiu Vultur 	},
8099ce286dSHoratiu Vultur 	[VCAP_KF_ETYPE_LEN_IS] = {
8199ce286dSHoratiu Vultur 		.type = VCAP_FIELD_BIT,
8299ce286dSHoratiu Vultur 		.offset = 83,
8399ce286dSHoratiu Vultur 		.width = 1,
8499ce286dSHoratiu Vultur 	},
8599ce286dSHoratiu Vultur 	[VCAP_KF_ETYPE] = {
8699ce286dSHoratiu Vultur 		.type = VCAP_FIELD_U32,
8799ce286dSHoratiu Vultur 		.offset = 84,
8899ce286dSHoratiu Vultur 		.width = 16,
8999ce286dSHoratiu Vultur 	},
9099ce286dSHoratiu Vultur 	[VCAP_KF_IP_SNAP_IS] = {
9199ce286dSHoratiu Vultur 		.type = VCAP_FIELD_BIT,
9299ce286dSHoratiu Vultur 		.offset = 100,
9399ce286dSHoratiu Vultur 		.width = 1,
9499ce286dSHoratiu Vultur 	},
9599ce286dSHoratiu Vultur 	[VCAP_KF_IP4_IS] = {
9699ce286dSHoratiu Vultur 		.type = VCAP_FIELD_BIT,
9799ce286dSHoratiu Vultur 		.offset = 101,
9899ce286dSHoratiu Vultur 		.width = 1,
9999ce286dSHoratiu Vultur 	},
10099ce286dSHoratiu Vultur 	[VCAP_KF_L3_FRAGMENT] = {
10199ce286dSHoratiu Vultur 		.type = VCAP_FIELD_BIT,
10299ce286dSHoratiu Vultur 		.offset = 102,
10399ce286dSHoratiu Vultur 		.width = 1,
10499ce286dSHoratiu Vultur 	},
10599ce286dSHoratiu Vultur 	[VCAP_KF_L3_FRAG_OFS_GT0] = {
10699ce286dSHoratiu Vultur 		.type = VCAP_FIELD_BIT,
10799ce286dSHoratiu Vultur 		.offset = 103,
10899ce286dSHoratiu Vultur 		.width = 1,
10999ce286dSHoratiu Vultur 	},
11099ce286dSHoratiu Vultur 	[VCAP_KF_L3_OPTIONS_IS] = {
11199ce286dSHoratiu Vultur 		.type = VCAP_FIELD_BIT,
11299ce286dSHoratiu Vultur 		.offset = 104,
11399ce286dSHoratiu Vultur 		.width = 1,
11499ce286dSHoratiu Vultur 	},
11599ce286dSHoratiu Vultur 	[VCAP_KF_L3_DSCP] = {
11699ce286dSHoratiu Vultur 		.type = VCAP_FIELD_U32,
11799ce286dSHoratiu Vultur 		.offset = 105,
11899ce286dSHoratiu Vultur 		.width = 6,
11999ce286dSHoratiu Vultur 	},
12099ce286dSHoratiu Vultur 	[VCAP_KF_L3_IP4_SIP] = {
12199ce286dSHoratiu Vultur 		.type = VCAP_FIELD_U32,
12299ce286dSHoratiu Vultur 		.offset = 111,
12399ce286dSHoratiu Vultur 		.width = 32,
12499ce286dSHoratiu Vultur 	},
12599ce286dSHoratiu Vultur 	[VCAP_KF_TCP_UDP_IS] = {
12699ce286dSHoratiu Vultur 		.type = VCAP_FIELD_BIT,
12799ce286dSHoratiu Vultur 		.offset = 143,
12899ce286dSHoratiu Vultur 		.width = 1,
12999ce286dSHoratiu Vultur 	},
13099ce286dSHoratiu Vultur 	[VCAP_KF_TCP_IS] = {
13199ce286dSHoratiu Vultur 		.type = VCAP_FIELD_BIT,
13299ce286dSHoratiu Vultur 		.offset = 144,
13399ce286dSHoratiu Vultur 		.width = 1,
13499ce286dSHoratiu Vultur 	},
13599ce286dSHoratiu Vultur 	[VCAP_KF_L4_SPORT] = {
13699ce286dSHoratiu Vultur 		.type = VCAP_FIELD_U32,
13799ce286dSHoratiu Vultur 		.offset = 145,
13899ce286dSHoratiu Vultur 		.width = 16,
13999ce286dSHoratiu Vultur 	},
14099ce286dSHoratiu Vultur 	[VCAP_KF_L4_RNG] = {
14199ce286dSHoratiu Vultur 		.type = VCAP_FIELD_U32,
14299ce286dSHoratiu Vultur 		.offset = 161,
14399ce286dSHoratiu Vultur 		.width = 8,
14499ce286dSHoratiu Vultur 	},
14599ce286dSHoratiu Vultur };
14699ce286dSHoratiu Vultur 
14799ce286dSHoratiu Vultur static const struct vcap_field is1_5tuple_ip4_keyfield[] = {
14899ce286dSHoratiu Vultur 	[VCAP_KF_TYPE] = {
14999ce286dSHoratiu Vultur 		.type = VCAP_FIELD_BIT,
15099ce286dSHoratiu Vultur 		.offset = 0,
15199ce286dSHoratiu Vultur 		.width = 1,
15299ce286dSHoratiu Vultur 	},
15399ce286dSHoratiu Vultur 	[VCAP_KF_LOOKUP_INDEX] = {
15499ce286dSHoratiu Vultur 		.type = VCAP_FIELD_U32,
15599ce286dSHoratiu Vultur 		.offset = 1,
15699ce286dSHoratiu Vultur 		.width = 2,
15799ce286dSHoratiu Vultur 	},
15899ce286dSHoratiu Vultur 	[VCAP_KF_IF_IGR_PORT_MASK] = {
15999ce286dSHoratiu Vultur 		.type = VCAP_FIELD_U32,
16099ce286dSHoratiu Vultur 		.offset = 3,
16199ce286dSHoratiu Vultur 		.width = 9,
16299ce286dSHoratiu Vultur 	},
16399ce286dSHoratiu Vultur 	[VCAP_KF_L2_MC_IS] = {
16499ce286dSHoratiu Vultur 		.type = VCAP_FIELD_BIT,
16599ce286dSHoratiu Vultur 		.offset = 12,
16699ce286dSHoratiu Vultur 		.width = 1,
16799ce286dSHoratiu Vultur 	},
16899ce286dSHoratiu Vultur 	[VCAP_KF_L2_BC_IS] = {
16999ce286dSHoratiu Vultur 		.type = VCAP_FIELD_BIT,
17099ce286dSHoratiu Vultur 		.offset = 13,
17199ce286dSHoratiu Vultur 		.width = 1,
17299ce286dSHoratiu Vultur 	},
17399ce286dSHoratiu Vultur 	[VCAP_KF_IP_MC_IS] = {
17499ce286dSHoratiu Vultur 		.type = VCAP_FIELD_BIT,
17599ce286dSHoratiu Vultur 		.offset = 14,
17699ce286dSHoratiu Vultur 		.width = 1,
17799ce286dSHoratiu Vultur 	},
17899ce286dSHoratiu Vultur 	[VCAP_KF_8021CB_R_TAGGED_IS] = {
17999ce286dSHoratiu Vultur 		.type = VCAP_FIELD_BIT,
18099ce286dSHoratiu Vultur 		.offset = 15,
18199ce286dSHoratiu Vultur 		.width = 1,
18299ce286dSHoratiu Vultur 	},
18399ce286dSHoratiu Vultur 	[VCAP_KF_8021Q_VLAN_TAGGED_IS] = {
18499ce286dSHoratiu Vultur 		.type = VCAP_FIELD_BIT,
18599ce286dSHoratiu Vultur 		.offset = 16,
18699ce286dSHoratiu Vultur 		.width = 1,
18799ce286dSHoratiu Vultur 	},
18899ce286dSHoratiu Vultur 	[VCAP_KF_8021Q_VLAN_DBL_TAGGED_IS] = {
18999ce286dSHoratiu Vultur 		.type = VCAP_FIELD_BIT,
19099ce286dSHoratiu Vultur 		.offset = 17,
19199ce286dSHoratiu Vultur 		.width = 1,
19299ce286dSHoratiu Vultur 	},
19399ce286dSHoratiu Vultur 	[VCAP_KF_8021Q_TPID0] = {
19499ce286dSHoratiu Vultur 		.type = VCAP_FIELD_BIT,
19599ce286dSHoratiu Vultur 		.offset = 18,
19699ce286dSHoratiu Vultur 		.width = 1,
19799ce286dSHoratiu Vultur 	},
19899ce286dSHoratiu Vultur 	[VCAP_KF_8021Q_VID0] = {
19999ce286dSHoratiu Vultur 		.type = VCAP_FIELD_U32,
20099ce286dSHoratiu Vultur 		.offset = 19,
20199ce286dSHoratiu Vultur 		.width = 12,
20299ce286dSHoratiu Vultur 	},
20399ce286dSHoratiu Vultur 	[VCAP_KF_8021Q_DEI0] = {
20499ce286dSHoratiu Vultur 		.type = VCAP_FIELD_BIT,
20599ce286dSHoratiu Vultur 		.offset = 31,
20699ce286dSHoratiu Vultur 		.width = 1,
20799ce286dSHoratiu Vultur 	},
20899ce286dSHoratiu Vultur 	[VCAP_KF_8021Q_PCP0] = {
20999ce286dSHoratiu Vultur 		.type = VCAP_FIELD_U32,
21099ce286dSHoratiu Vultur 		.offset = 32,
21199ce286dSHoratiu Vultur 		.width = 3,
21299ce286dSHoratiu Vultur 	},
21399ce286dSHoratiu Vultur 	[VCAP_KF_8021Q_TPID1] = {
21499ce286dSHoratiu Vultur 		.type = VCAP_FIELD_BIT,
21599ce286dSHoratiu Vultur 		.offset = 35,
21699ce286dSHoratiu Vultur 		.width = 1,
21799ce286dSHoratiu Vultur 	},
21899ce286dSHoratiu Vultur 	[VCAP_KF_8021Q_VID1] = {
21999ce286dSHoratiu Vultur 		.type = VCAP_FIELD_U32,
22099ce286dSHoratiu Vultur 		.offset = 36,
22199ce286dSHoratiu Vultur 		.width = 12,
22299ce286dSHoratiu Vultur 	},
22399ce286dSHoratiu Vultur 	[VCAP_KF_8021Q_DEI1] = {
22499ce286dSHoratiu Vultur 		.type = VCAP_FIELD_BIT,
22599ce286dSHoratiu Vultur 		.offset = 48,
22699ce286dSHoratiu Vultur 		.width = 1,
22799ce286dSHoratiu Vultur 	},
22899ce286dSHoratiu Vultur 	[VCAP_KF_8021Q_PCP1] = {
22999ce286dSHoratiu Vultur 		.type = VCAP_FIELD_U32,
23099ce286dSHoratiu Vultur 		.offset = 49,
23199ce286dSHoratiu Vultur 		.width = 3,
23299ce286dSHoratiu Vultur 	},
23399ce286dSHoratiu Vultur 	[VCAP_KF_IP4_IS] = {
23499ce286dSHoratiu Vultur 		.type = VCAP_FIELD_BIT,
23599ce286dSHoratiu Vultur 		.offset = 52,
23699ce286dSHoratiu Vultur 		.width = 1,
23799ce286dSHoratiu Vultur 	},
23899ce286dSHoratiu Vultur 	[VCAP_KF_L3_FRAGMENT] = {
23999ce286dSHoratiu Vultur 		.type = VCAP_FIELD_BIT,
24099ce286dSHoratiu Vultur 		.offset = 53,
24199ce286dSHoratiu Vultur 		.width = 1,
24299ce286dSHoratiu Vultur 	},
24399ce286dSHoratiu Vultur 	[VCAP_KF_L3_FRAG_OFS_GT0] = {
24499ce286dSHoratiu Vultur 		.type = VCAP_FIELD_BIT,
24599ce286dSHoratiu Vultur 		.offset = 54,
24699ce286dSHoratiu Vultur 		.width = 1,
24799ce286dSHoratiu Vultur 	},
24899ce286dSHoratiu Vultur 	[VCAP_KF_L3_OPTIONS_IS] = {
24999ce286dSHoratiu Vultur 		.type = VCAP_FIELD_BIT,
25099ce286dSHoratiu Vultur 		.offset = 55,
25199ce286dSHoratiu Vultur 		.width = 1,
25299ce286dSHoratiu Vultur 	},
25399ce286dSHoratiu Vultur 	[VCAP_KF_L3_DSCP] = {
25499ce286dSHoratiu Vultur 		.type = VCAP_FIELD_U32,
25599ce286dSHoratiu Vultur 		.offset = 56,
25699ce286dSHoratiu Vultur 		.width = 6,
25799ce286dSHoratiu Vultur 	},
25899ce286dSHoratiu Vultur 	[VCAP_KF_L3_IP4_DIP] = {
25999ce286dSHoratiu Vultur 		.type = VCAP_FIELD_U32,
26099ce286dSHoratiu Vultur 		.offset = 62,
26199ce286dSHoratiu Vultur 		.width = 32,
26299ce286dSHoratiu Vultur 	},
26399ce286dSHoratiu Vultur 	[VCAP_KF_L3_IP4_SIP] = {
26499ce286dSHoratiu Vultur 		.type = VCAP_FIELD_U32,
26599ce286dSHoratiu Vultur 		.offset = 94,
26699ce286dSHoratiu Vultur 		.width = 32,
26799ce286dSHoratiu Vultur 	},
26899ce286dSHoratiu Vultur 	[VCAP_KF_L3_IP_PROTO] = {
26999ce286dSHoratiu Vultur 		.type = VCAP_FIELD_U32,
27099ce286dSHoratiu Vultur 		.offset = 126,
27199ce286dSHoratiu Vultur 		.width = 8,
27299ce286dSHoratiu Vultur 	},
27399ce286dSHoratiu Vultur 	[VCAP_KF_TCP_UDP_IS] = {
27499ce286dSHoratiu Vultur 		.type = VCAP_FIELD_BIT,
27599ce286dSHoratiu Vultur 		.offset = 134,
27699ce286dSHoratiu Vultur 		.width = 1,
27799ce286dSHoratiu Vultur 	},
27899ce286dSHoratiu Vultur 	[VCAP_KF_TCP_IS] = {
27999ce286dSHoratiu Vultur 		.type = VCAP_FIELD_BIT,
28099ce286dSHoratiu Vultur 		.offset = 135,
28199ce286dSHoratiu Vultur 		.width = 1,
28299ce286dSHoratiu Vultur 	},
28399ce286dSHoratiu Vultur 	[VCAP_KF_L4_RNG] = {
28499ce286dSHoratiu Vultur 		.type = VCAP_FIELD_U32,
28599ce286dSHoratiu Vultur 		.offset = 136,
28699ce286dSHoratiu Vultur 		.width = 8,
28799ce286dSHoratiu Vultur 	},
28899ce286dSHoratiu Vultur 	[VCAP_KF_IP_PAYLOAD_5TUPLE] = {
28999ce286dSHoratiu Vultur 		.type = VCAP_FIELD_U32,
29099ce286dSHoratiu Vultur 		.offset = 144,
29199ce286dSHoratiu Vultur 		.width = 32,
29299ce286dSHoratiu Vultur 	},
29399ce286dSHoratiu Vultur };
29499ce286dSHoratiu Vultur 
29599ce286dSHoratiu Vultur static const struct vcap_field is1_normal_ip6_keyfield[] = {
29699ce286dSHoratiu Vultur 	[VCAP_KF_TYPE] = {
29799ce286dSHoratiu Vultur 		.type = VCAP_FIELD_U32,
29899ce286dSHoratiu Vultur 		.offset = 0,
29999ce286dSHoratiu Vultur 		.width = 2,
30099ce286dSHoratiu Vultur 	},
30199ce286dSHoratiu Vultur 	[VCAP_KF_LOOKUP_INDEX] = {
30299ce286dSHoratiu Vultur 		.type = VCAP_FIELD_U32,
30399ce286dSHoratiu Vultur 		.offset = 2,
30499ce286dSHoratiu Vultur 		.width = 2,
30599ce286dSHoratiu Vultur 	},
30699ce286dSHoratiu Vultur 	[VCAP_KF_IF_IGR_PORT_MASK] = {
30799ce286dSHoratiu Vultur 		.type = VCAP_FIELD_U32,
30899ce286dSHoratiu Vultur 		.offset = 4,
30999ce286dSHoratiu Vultur 		.width = 9,
31099ce286dSHoratiu Vultur 	},
31199ce286dSHoratiu Vultur 	[VCAP_KF_L2_MC_IS] = {
31299ce286dSHoratiu Vultur 		.type = VCAP_FIELD_BIT,
31399ce286dSHoratiu Vultur 		.offset = 13,
31499ce286dSHoratiu Vultur 		.width = 1,
31599ce286dSHoratiu Vultur 	},
31699ce286dSHoratiu Vultur 	[VCAP_KF_L2_BC_IS] = {
31799ce286dSHoratiu Vultur 		.type = VCAP_FIELD_BIT,
31899ce286dSHoratiu Vultur 		.offset = 14,
31999ce286dSHoratiu Vultur 		.width = 1,
32099ce286dSHoratiu Vultur 	},
32199ce286dSHoratiu Vultur 	[VCAP_KF_IP_MC_IS] = {
32299ce286dSHoratiu Vultur 		.type = VCAP_FIELD_BIT,
32399ce286dSHoratiu Vultur 		.offset = 15,
32499ce286dSHoratiu Vultur 		.width = 1,
32599ce286dSHoratiu Vultur 	},
32699ce286dSHoratiu Vultur 	[VCAP_KF_8021CB_R_TAGGED_IS] = {
32799ce286dSHoratiu Vultur 		.type = VCAP_FIELD_BIT,
32899ce286dSHoratiu Vultur 		.offset = 16,
32999ce286dSHoratiu Vultur 		.width = 1,
33099ce286dSHoratiu Vultur 	},
33199ce286dSHoratiu Vultur 	[VCAP_KF_8021Q_VLAN_TAGGED_IS] = {
33299ce286dSHoratiu Vultur 		.type = VCAP_FIELD_BIT,
33399ce286dSHoratiu Vultur 		.offset = 17,
33499ce286dSHoratiu Vultur 		.width = 1,
33599ce286dSHoratiu Vultur 	},
33699ce286dSHoratiu Vultur 	[VCAP_KF_8021Q_VLAN_DBL_TAGGED_IS] = {
33799ce286dSHoratiu Vultur 		.type = VCAP_FIELD_BIT,
33899ce286dSHoratiu Vultur 		.offset = 18,
33999ce286dSHoratiu Vultur 		.width = 1,
34099ce286dSHoratiu Vultur 	},
34199ce286dSHoratiu Vultur 	[VCAP_KF_8021Q_TPID0] = {
34299ce286dSHoratiu Vultur 		.type = VCAP_FIELD_BIT,
34399ce286dSHoratiu Vultur 		.offset = 19,
34499ce286dSHoratiu Vultur 		.width = 1,
34599ce286dSHoratiu Vultur 	},
34699ce286dSHoratiu Vultur 	[VCAP_KF_8021Q_VID0] = {
34799ce286dSHoratiu Vultur 		.type = VCAP_FIELD_U32,
34899ce286dSHoratiu Vultur 		.offset = 20,
34999ce286dSHoratiu Vultur 		.width = 12,
35099ce286dSHoratiu Vultur 	},
35199ce286dSHoratiu Vultur 	[VCAP_KF_8021Q_DEI0] = {
35299ce286dSHoratiu Vultur 		.type = VCAP_FIELD_BIT,
35399ce286dSHoratiu Vultur 		.offset = 32,
35499ce286dSHoratiu Vultur 		.width = 1,
35599ce286dSHoratiu Vultur 	},
35699ce286dSHoratiu Vultur 	[VCAP_KF_8021Q_PCP0] = {
35799ce286dSHoratiu Vultur 		.type = VCAP_FIELD_U32,
35899ce286dSHoratiu Vultur 		.offset = 33,
35999ce286dSHoratiu Vultur 		.width = 3,
36099ce286dSHoratiu Vultur 	},
36199ce286dSHoratiu Vultur 	[VCAP_KF_8021Q_TPID1] = {
36299ce286dSHoratiu Vultur 		.type = VCAP_FIELD_BIT,
36399ce286dSHoratiu Vultur 		.offset = 36,
36499ce286dSHoratiu Vultur 		.width = 1,
36599ce286dSHoratiu Vultur 	},
36699ce286dSHoratiu Vultur 	[VCAP_KF_8021Q_VID1] = {
36799ce286dSHoratiu Vultur 		.type = VCAP_FIELD_U32,
36899ce286dSHoratiu Vultur 		.offset = 37,
36999ce286dSHoratiu Vultur 		.width = 12,
37099ce286dSHoratiu Vultur 	},
37199ce286dSHoratiu Vultur 	[VCAP_KF_8021Q_DEI1] = {
37299ce286dSHoratiu Vultur 		.type = VCAP_FIELD_BIT,
37399ce286dSHoratiu Vultur 		.offset = 49,
37499ce286dSHoratiu Vultur 		.width = 1,
37599ce286dSHoratiu Vultur 	},
37699ce286dSHoratiu Vultur 	[VCAP_KF_8021Q_PCP1] = {
37799ce286dSHoratiu Vultur 		.type = VCAP_FIELD_U32,
37899ce286dSHoratiu Vultur 		.offset = 50,
37999ce286dSHoratiu Vultur 		.width = 3,
38099ce286dSHoratiu Vultur 	},
38199ce286dSHoratiu Vultur 	[VCAP_KF_L2_SMAC] = {
38299ce286dSHoratiu Vultur 		.type = VCAP_FIELD_U48,
38399ce286dSHoratiu Vultur 		.offset = 53,
38499ce286dSHoratiu Vultur 		.width = 48,
38599ce286dSHoratiu Vultur 	},
38699ce286dSHoratiu Vultur 	[VCAP_KF_L3_DSCP] = {
38799ce286dSHoratiu Vultur 		.type = VCAP_FIELD_U32,
38899ce286dSHoratiu Vultur 		.offset = 101,
38999ce286dSHoratiu Vultur 		.width = 6,
39099ce286dSHoratiu Vultur 	},
39199ce286dSHoratiu Vultur 	[VCAP_KF_L3_IP6_SIP] = {
39299ce286dSHoratiu Vultur 		.type = VCAP_FIELD_U128,
39399ce286dSHoratiu Vultur 		.offset = 107,
39499ce286dSHoratiu Vultur 		.width = 128,
39599ce286dSHoratiu Vultur 	},
39699ce286dSHoratiu Vultur 	[VCAP_KF_L3_IP_PROTO] = {
39799ce286dSHoratiu Vultur 		.type = VCAP_FIELD_U32,
39899ce286dSHoratiu Vultur 		.offset = 235,
39999ce286dSHoratiu Vultur 		.width = 8,
40099ce286dSHoratiu Vultur 	},
40199ce286dSHoratiu Vultur 	[VCAP_KF_TCP_UDP_IS] = {
40299ce286dSHoratiu Vultur 		.type = VCAP_FIELD_BIT,
40399ce286dSHoratiu Vultur 		.offset = 243,
40499ce286dSHoratiu Vultur 		.width = 1,
40599ce286dSHoratiu Vultur 	},
40699ce286dSHoratiu Vultur 	[VCAP_KF_L4_RNG] = {
40799ce286dSHoratiu Vultur 		.type = VCAP_FIELD_U32,
40899ce286dSHoratiu Vultur 		.offset = 244,
40999ce286dSHoratiu Vultur 		.width = 8,
41099ce286dSHoratiu Vultur 	},
41199ce286dSHoratiu Vultur 	[VCAP_KF_IP_PAYLOAD_S1_IP6] = {
41299ce286dSHoratiu Vultur 		.type = VCAP_FIELD_U112,
41399ce286dSHoratiu Vultur 		.offset = 252,
41499ce286dSHoratiu Vultur 		.width = 112,
41599ce286dSHoratiu Vultur 	},
41699ce286dSHoratiu Vultur };
41799ce286dSHoratiu Vultur 
41899ce286dSHoratiu Vultur static const struct vcap_field is1_7tuple_keyfield[] = {
41999ce286dSHoratiu Vultur 	[VCAP_KF_TYPE] = {
42099ce286dSHoratiu Vultur 		.type = VCAP_FIELD_U32,
42199ce286dSHoratiu Vultur 		.offset = 0,
42299ce286dSHoratiu Vultur 		.width = 2,
42399ce286dSHoratiu Vultur 	},
42499ce286dSHoratiu Vultur 	[VCAP_KF_LOOKUP_INDEX] = {
42599ce286dSHoratiu Vultur 		.type = VCAP_FIELD_U32,
42699ce286dSHoratiu Vultur 		.offset = 2,
42799ce286dSHoratiu Vultur 		.width = 2,
42899ce286dSHoratiu Vultur 	},
42999ce286dSHoratiu Vultur 	[VCAP_KF_IF_IGR_PORT_MASK] = {
43099ce286dSHoratiu Vultur 		.type = VCAP_FIELD_U32,
43199ce286dSHoratiu Vultur 		.offset = 4,
43299ce286dSHoratiu Vultur 		.width = 9,
43399ce286dSHoratiu Vultur 	},
43499ce286dSHoratiu Vultur 	[VCAP_KF_L2_MC_IS] = {
43599ce286dSHoratiu Vultur 		.type = VCAP_FIELD_BIT,
43699ce286dSHoratiu Vultur 		.offset = 13,
43799ce286dSHoratiu Vultur 		.width = 1,
43899ce286dSHoratiu Vultur 	},
43999ce286dSHoratiu Vultur 	[VCAP_KF_L2_BC_IS] = {
44099ce286dSHoratiu Vultur 		.type = VCAP_FIELD_BIT,
44199ce286dSHoratiu Vultur 		.offset = 14,
44299ce286dSHoratiu Vultur 		.width = 1,
44399ce286dSHoratiu Vultur 	},
44499ce286dSHoratiu Vultur 	[VCAP_KF_IP_MC_IS] = {
44599ce286dSHoratiu Vultur 		.type = VCAP_FIELD_BIT,
44699ce286dSHoratiu Vultur 		.offset = 15,
44799ce286dSHoratiu Vultur 		.width = 1,
44899ce286dSHoratiu Vultur 	},
44999ce286dSHoratiu Vultur 	[VCAP_KF_8021CB_R_TAGGED_IS] = {
45099ce286dSHoratiu Vultur 		.type = VCAP_FIELD_BIT,
45199ce286dSHoratiu Vultur 		.offset = 16,
45299ce286dSHoratiu Vultur 		.width = 1,
45399ce286dSHoratiu Vultur 	},
45499ce286dSHoratiu Vultur 	[VCAP_KF_8021Q_VLAN_TAGGED_IS] = {
45599ce286dSHoratiu Vultur 		.type = VCAP_FIELD_BIT,
45699ce286dSHoratiu Vultur 		.offset = 17,
45799ce286dSHoratiu Vultur 		.width = 1,
45899ce286dSHoratiu Vultur 	},
45999ce286dSHoratiu Vultur 	[VCAP_KF_8021Q_VLAN_DBL_TAGGED_IS] = {
46099ce286dSHoratiu Vultur 		.type = VCAP_FIELD_BIT,
46199ce286dSHoratiu Vultur 		.offset = 18,
46299ce286dSHoratiu Vultur 		.width = 1,
46399ce286dSHoratiu Vultur 	},
46499ce286dSHoratiu Vultur 	[VCAP_KF_8021Q_TPID0] = {
46599ce286dSHoratiu Vultur 		.type = VCAP_FIELD_BIT,
46699ce286dSHoratiu Vultur 		.offset = 19,
46799ce286dSHoratiu Vultur 		.width = 1,
46899ce286dSHoratiu Vultur 	},
46999ce286dSHoratiu Vultur 	[VCAP_KF_8021Q_VID0] = {
47099ce286dSHoratiu Vultur 		.type = VCAP_FIELD_U32,
47199ce286dSHoratiu Vultur 		.offset = 20,
47299ce286dSHoratiu Vultur 		.width = 12,
47399ce286dSHoratiu Vultur 	},
47499ce286dSHoratiu Vultur 	[VCAP_KF_8021Q_DEI0] = {
47599ce286dSHoratiu Vultur 		.type = VCAP_FIELD_BIT,
47699ce286dSHoratiu Vultur 		.offset = 32,
47799ce286dSHoratiu Vultur 		.width = 1,
47899ce286dSHoratiu Vultur 	},
47999ce286dSHoratiu Vultur 	[VCAP_KF_8021Q_PCP0] = {
48099ce286dSHoratiu Vultur 		.type = VCAP_FIELD_U32,
48199ce286dSHoratiu Vultur 		.offset = 33,
48299ce286dSHoratiu Vultur 		.width = 3,
48399ce286dSHoratiu Vultur 	},
48499ce286dSHoratiu Vultur 	[VCAP_KF_8021Q_TPID1] = {
48599ce286dSHoratiu Vultur 		.type = VCAP_FIELD_BIT,
48699ce286dSHoratiu Vultur 		.offset = 36,
48799ce286dSHoratiu Vultur 		.width = 1,
48899ce286dSHoratiu Vultur 	},
48999ce286dSHoratiu Vultur 	[VCAP_KF_8021Q_VID1] = {
49099ce286dSHoratiu Vultur 		.type = VCAP_FIELD_U32,
49199ce286dSHoratiu Vultur 		.offset = 37,
49299ce286dSHoratiu Vultur 		.width = 12,
49399ce286dSHoratiu Vultur 	},
49499ce286dSHoratiu Vultur 	[VCAP_KF_8021Q_DEI1] = {
49599ce286dSHoratiu Vultur 		.type = VCAP_FIELD_BIT,
49699ce286dSHoratiu Vultur 		.offset = 49,
49799ce286dSHoratiu Vultur 		.width = 1,
49899ce286dSHoratiu Vultur 	},
49999ce286dSHoratiu Vultur 	[VCAP_KF_8021Q_PCP1] = {
50099ce286dSHoratiu Vultur 		.type = VCAP_FIELD_U32,
50199ce286dSHoratiu Vultur 		.offset = 50,
50299ce286dSHoratiu Vultur 		.width = 3,
50399ce286dSHoratiu Vultur 	},
50499ce286dSHoratiu Vultur 	[VCAP_KF_L2_DMAC] = {
50599ce286dSHoratiu Vultur 		.type = VCAP_FIELD_U48,
50699ce286dSHoratiu Vultur 		.offset = 53,
50799ce286dSHoratiu Vultur 		.width = 48,
50899ce286dSHoratiu Vultur 	},
50999ce286dSHoratiu Vultur 	[VCAP_KF_L2_SMAC] = {
51099ce286dSHoratiu Vultur 		.type = VCAP_FIELD_U48,
51199ce286dSHoratiu Vultur 		.offset = 101,
51299ce286dSHoratiu Vultur 		.width = 48,
51399ce286dSHoratiu Vultur 	},
51499ce286dSHoratiu Vultur 	[VCAP_KF_ETYPE_LEN_IS] = {
51599ce286dSHoratiu Vultur 		.type = VCAP_FIELD_BIT,
51699ce286dSHoratiu Vultur 		.offset = 149,
51799ce286dSHoratiu Vultur 		.width = 1,
51899ce286dSHoratiu Vultur 	},
51999ce286dSHoratiu Vultur 	[VCAP_KF_ETYPE] = {
52099ce286dSHoratiu Vultur 		.type = VCAP_FIELD_U32,
52199ce286dSHoratiu Vultur 		.offset = 150,
52299ce286dSHoratiu Vultur 		.width = 16,
52399ce286dSHoratiu Vultur 	},
52499ce286dSHoratiu Vultur 	[VCAP_KF_IP_SNAP_IS] = {
52599ce286dSHoratiu Vultur 		.type = VCAP_FIELD_BIT,
52699ce286dSHoratiu Vultur 		.offset = 166,
52799ce286dSHoratiu Vultur 		.width = 1,
52899ce286dSHoratiu Vultur 	},
52999ce286dSHoratiu Vultur 	[VCAP_KF_IP4_IS] = {
53099ce286dSHoratiu Vultur 		.type = VCAP_FIELD_BIT,
53199ce286dSHoratiu Vultur 		.offset = 167,
53299ce286dSHoratiu Vultur 		.width = 1,
53399ce286dSHoratiu Vultur 	},
53499ce286dSHoratiu Vultur 	[VCAP_KF_L3_FRAGMENT] = {
53599ce286dSHoratiu Vultur 		.type = VCAP_FIELD_BIT,
53699ce286dSHoratiu Vultur 		.offset = 168,
53799ce286dSHoratiu Vultur 		.width = 1,
53899ce286dSHoratiu Vultur 	},
53999ce286dSHoratiu Vultur 	[VCAP_KF_L3_FRAG_OFS_GT0] = {
54099ce286dSHoratiu Vultur 		.type = VCAP_FIELD_BIT,
54199ce286dSHoratiu Vultur 		.offset = 169,
54299ce286dSHoratiu Vultur 		.width = 1,
54399ce286dSHoratiu Vultur 	},
54499ce286dSHoratiu Vultur 	[VCAP_KF_L3_OPTIONS_IS] = {
54599ce286dSHoratiu Vultur 		.type = VCAP_FIELD_BIT,
54699ce286dSHoratiu Vultur 		.offset = 170,
54799ce286dSHoratiu Vultur 		.width = 1,
54899ce286dSHoratiu Vultur 	},
54999ce286dSHoratiu Vultur 	[VCAP_KF_L3_DSCP] = {
55099ce286dSHoratiu Vultur 		.type = VCAP_FIELD_U32,
55199ce286dSHoratiu Vultur 		.offset = 171,
55299ce286dSHoratiu Vultur 		.width = 6,
55399ce286dSHoratiu Vultur 	},
55499ce286dSHoratiu Vultur 	[VCAP_KF_L3_IP6_DIP_MSB] = {
55599ce286dSHoratiu Vultur 		.type = VCAP_FIELD_U32,
55699ce286dSHoratiu Vultur 		.offset = 177,
55799ce286dSHoratiu Vultur 		.width = 16,
55899ce286dSHoratiu Vultur 	},
55999ce286dSHoratiu Vultur 	[VCAP_KF_L3_IP6_DIP] = {
56099ce286dSHoratiu Vultur 		.type = VCAP_FIELD_U64,
56199ce286dSHoratiu Vultur 		.offset = 193,
56299ce286dSHoratiu Vultur 		.width = 64,
56399ce286dSHoratiu Vultur 	},
56499ce286dSHoratiu Vultur 	[VCAP_KF_L3_IP6_SIP_MSB] = {
56599ce286dSHoratiu Vultur 		.type = VCAP_FIELD_U32,
56699ce286dSHoratiu Vultur 		.offset = 257,
56799ce286dSHoratiu Vultur 		.width = 16,
56899ce286dSHoratiu Vultur 	},
56999ce286dSHoratiu Vultur 	[VCAP_KF_L3_IP6_SIP] = {
57099ce286dSHoratiu Vultur 		.type = VCAP_FIELD_U64,
57199ce286dSHoratiu Vultur 		.offset = 273,
57299ce286dSHoratiu Vultur 		.width = 64,
57399ce286dSHoratiu Vultur 	},
57499ce286dSHoratiu Vultur 	[VCAP_KF_TCP_UDP_IS] = {
57599ce286dSHoratiu Vultur 		.type = VCAP_FIELD_BIT,
57699ce286dSHoratiu Vultur 		.offset = 337,
57799ce286dSHoratiu Vultur 		.width = 1,
57899ce286dSHoratiu Vultur 	},
57999ce286dSHoratiu Vultur 	[VCAP_KF_TCP_IS] = {
58099ce286dSHoratiu Vultur 		.type = VCAP_FIELD_BIT,
58199ce286dSHoratiu Vultur 		.offset = 338,
58299ce286dSHoratiu Vultur 		.width = 1,
58399ce286dSHoratiu Vultur 	},
58499ce286dSHoratiu Vultur 	[VCAP_KF_L4_SPORT] = {
58599ce286dSHoratiu Vultur 		.type = VCAP_FIELD_U32,
58699ce286dSHoratiu Vultur 		.offset = 339,
58799ce286dSHoratiu Vultur 		.width = 16,
58899ce286dSHoratiu Vultur 	},
58999ce286dSHoratiu Vultur 	[VCAP_KF_L4_RNG] = {
59099ce286dSHoratiu Vultur 		.type = VCAP_FIELD_U32,
59199ce286dSHoratiu Vultur 		.offset = 355,
59299ce286dSHoratiu Vultur 		.width = 8,
59399ce286dSHoratiu Vultur 	},
59499ce286dSHoratiu Vultur };
59599ce286dSHoratiu Vultur 
59699ce286dSHoratiu Vultur static const struct vcap_field is1_5tuple_ip6_keyfield[] = {
59799ce286dSHoratiu Vultur 	[VCAP_KF_TYPE] = {
59899ce286dSHoratiu Vultur 		.type = VCAP_FIELD_U32,
59999ce286dSHoratiu Vultur 		.offset = 0,
60099ce286dSHoratiu Vultur 		.width = 2,
60199ce286dSHoratiu Vultur 	},
60299ce286dSHoratiu Vultur 	[VCAP_KF_LOOKUP_INDEX] = {
60399ce286dSHoratiu Vultur 		.type = VCAP_FIELD_U32,
60499ce286dSHoratiu Vultur 		.offset = 2,
60599ce286dSHoratiu Vultur 		.width = 2,
60699ce286dSHoratiu Vultur 	},
60799ce286dSHoratiu Vultur 	[VCAP_KF_IF_IGR_PORT_MASK] = {
60899ce286dSHoratiu Vultur 		.type = VCAP_FIELD_U32,
60999ce286dSHoratiu Vultur 		.offset = 4,
61099ce286dSHoratiu Vultur 		.width = 9,
61199ce286dSHoratiu Vultur 	},
61299ce286dSHoratiu Vultur 	[VCAP_KF_L2_MC_IS] = {
61399ce286dSHoratiu Vultur 		.type = VCAP_FIELD_BIT,
61499ce286dSHoratiu Vultur 		.offset = 13,
61599ce286dSHoratiu Vultur 		.width = 1,
61699ce286dSHoratiu Vultur 	},
61799ce286dSHoratiu Vultur 	[VCAP_KF_L2_BC_IS] = {
61899ce286dSHoratiu Vultur 		.type = VCAP_FIELD_BIT,
61999ce286dSHoratiu Vultur 		.offset = 14,
62099ce286dSHoratiu Vultur 		.width = 1,
62199ce286dSHoratiu Vultur 	},
62299ce286dSHoratiu Vultur 	[VCAP_KF_IP_MC_IS] = {
62399ce286dSHoratiu Vultur 		.type = VCAP_FIELD_BIT,
62499ce286dSHoratiu Vultur 		.offset = 15,
62599ce286dSHoratiu Vultur 		.width = 1,
62699ce286dSHoratiu Vultur 	},
62799ce286dSHoratiu Vultur 	[VCAP_KF_8021CB_R_TAGGED_IS] = {
62899ce286dSHoratiu Vultur 		.type = VCAP_FIELD_BIT,
62999ce286dSHoratiu Vultur 		.offset = 16,
63099ce286dSHoratiu Vultur 		.width = 1,
63199ce286dSHoratiu Vultur 	},
63299ce286dSHoratiu Vultur 	[VCAP_KF_8021Q_VLAN_TAGGED_IS] = {
63399ce286dSHoratiu Vultur 		.type = VCAP_FIELD_BIT,
63499ce286dSHoratiu Vultur 		.offset = 17,
63599ce286dSHoratiu Vultur 		.width = 1,
63699ce286dSHoratiu Vultur 	},
63799ce286dSHoratiu Vultur 	[VCAP_KF_8021Q_VLAN_DBL_TAGGED_IS] = {
63899ce286dSHoratiu Vultur 		.type = VCAP_FIELD_BIT,
63999ce286dSHoratiu Vultur 		.offset = 18,
64099ce286dSHoratiu Vultur 		.width = 1,
64199ce286dSHoratiu Vultur 	},
64299ce286dSHoratiu Vultur 	[VCAP_KF_8021Q_TPID0] = {
64399ce286dSHoratiu Vultur 		.type = VCAP_FIELD_BIT,
64499ce286dSHoratiu Vultur 		.offset = 19,
64599ce286dSHoratiu Vultur 		.width = 1,
64699ce286dSHoratiu Vultur 	},
64799ce286dSHoratiu Vultur 	[VCAP_KF_8021Q_VID0] = {
64899ce286dSHoratiu Vultur 		.type = VCAP_FIELD_U32,
64999ce286dSHoratiu Vultur 		.offset = 20,
65099ce286dSHoratiu Vultur 		.width = 12,
65199ce286dSHoratiu Vultur 	},
65299ce286dSHoratiu Vultur 	[VCAP_KF_8021Q_DEI0] = {
65399ce286dSHoratiu Vultur 		.type = VCAP_FIELD_BIT,
65499ce286dSHoratiu Vultur 		.offset = 32,
65599ce286dSHoratiu Vultur 		.width = 1,
65699ce286dSHoratiu Vultur 	},
65799ce286dSHoratiu Vultur 	[VCAP_KF_8021Q_PCP0] = {
65899ce286dSHoratiu Vultur 		.type = VCAP_FIELD_U32,
65999ce286dSHoratiu Vultur 		.offset = 33,
66099ce286dSHoratiu Vultur 		.width = 3,
66199ce286dSHoratiu Vultur 	},
66299ce286dSHoratiu Vultur 	[VCAP_KF_8021Q_TPID1] = {
66399ce286dSHoratiu Vultur 		.type = VCAP_FIELD_BIT,
66499ce286dSHoratiu Vultur 		.offset = 36,
66599ce286dSHoratiu Vultur 		.width = 1,
66699ce286dSHoratiu Vultur 	},
66799ce286dSHoratiu Vultur 	[VCAP_KF_8021Q_VID1] = {
66899ce286dSHoratiu Vultur 		.type = VCAP_FIELD_U32,
66999ce286dSHoratiu Vultur 		.offset = 37,
67099ce286dSHoratiu Vultur 		.width = 12,
67199ce286dSHoratiu Vultur 	},
67299ce286dSHoratiu Vultur 	[VCAP_KF_8021Q_DEI1] = {
67399ce286dSHoratiu Vultur 		.type = VCAP_FIELD_BIT,
67499ce286dSHoratiu Vultur 		.offset = 49,
67599ce286dSHoratiu Vultur 		.width = 1,
67699ce286dSHoratiu Vultur 	},
67799ce286dSHoratiu Vultur 	[VCAP_KF_8021Q_PCP1] = {
67899ce286dSHoratiu Vultur 		.type = VCAP_FIELD_U32,
67999ce286dSHoratiu Vultur 		.offset = 50,
68099ce286dSHoratiu Vultur 		.width = 3,
68199ce286dSHoratiu Vultur 	},
68299ce286dSHoratiu Vultur 	[VCAP_KF_L3_DSCP] = {
68399ce286dSHoratiu Vultur 		.type = VCAP_FIELD_U32,
68499ce286dSHoratiu Vultur 		.offset = 53,
68599ce286dSHoratiu Vultur 		.width = 6,
68699ce286dSHoratiu Vultur 	},
68799ce286dSHoratiu Vultur 	[VCAP_KF_L3_IP6_DIP] = {
68899ce286dSHoratiu Vultur 		.type = VCAP_FIELD_U128,
68999ce286dSHoratiu Vultur 		.offset = 59,
69099ce286dSHoratiu Vultur 		.width = 128,
69199ce286dSHoratiu Vultur 	},
69299ce286dSHoratiu Vultur 	[VCAP_KF_L3_IP6_SIP] = {
69399ce286dSHoratiu Vultur 		.type = VCAP_FIELD_U128,
69499ce286dSHoratiu Vultur 		.offset = 187,
69599ce286dSHoratiu Vultur 		.width = 128,
69699ce286dSHoratiu Vultur 	},
69799ce286dSHoratiu Vultur 	[VCAP_KF_L3_IP_PROTO] = {
69899ce286dSHoratiu Vultur 		.type = VCAP_FIELD_U32,
69999ce286dSHoratiu Vultur 		.offset = 315,
70099ce286dSHoratiu Vultur 		.width = 8,
70199ce286dSHoratiu Vultur 	},
70299ce286dSHoratiu Vultur 	[VCAP_KF_TCP_UDP_IS] = {
70399ce286dSHoratiu Vultur 		.type = VCAP_FIELD_BIT,
70499ce286dSHoratiu Vultur 		.offset = 323,
70599ce286dSHoratiu Vultur 		.width = 1,
70699ce286dSHoratiu Vultur 	},
70799ce286dSHoratiu Vultur 	[VCAP_KF_L4_RNG] = {
70899ce286dSHoratiu Vultur 		.type = VCAP_FIELD_U32,
70999ce286dSHoratiu Vultur 		.offset = 324,
71099ce286dSHoratiu Vultur 		.width = 8,
71199ce286dSHoratiu Vultur 	},
71299ce286dSHoratiu Vultur 	[VCAP_KF_IP_PAYLOAD_5TUPLE] = {
71399ce286dSHoratiu Vultur 		.type = VCAP_FIELD_U32,
71499ce286dSHoratiu Vultur 		.offset = 332,
71599ce286dSHoratiu Vultur 		.width = 32,
71699ce286dSHoratiu Vultur 	},
71799ce286dSHoratiu Vultur };
71899ce286dSHoratiu Vultur 
71999ce286dSHoratiu Vultur static const struct vcap_field is1_dbl_vid_keyfield[] = {
72099ce286dSHoratiu Vultur 	[VCAP_KF_TYPE] = {
72199ce286dSHoratiu Vultur 		.type = VCAP_FIELD_U32,
72299ce286dSHoratiu Vultur 		.offset = 0,
72399ce286dSHoratiu Vultur 		.width = 2,
72499ce286dSHoratiu Vultur 	},
72599ce286dSHoratiu Vultur 	[VCAP_KF_LOOKUP_INDEX] = {
72699ce286dSHoratiu Vultur 		.type = VCAP_FIELD_U32,
72799ce286dSHoratiu Vultur 		.offset = 2,
72899ce286dSHoratiu Vultur 		.width = 2,
72999ce286dSHoratiu Vultur 	},
73099ce286dSHoratiu Vultur 	[VCAP_KF_IF_IGR_PORT_MASK] = {
73199ce286dSHoratiu Vultur 		.type = VCAP_FIELD_U32,
73299ce286dSHoratiu Vultur 		.offset = 4,
73399ce286dSHoratiu Vultur 		.width = 9,
73499ce286dSHoratiu Vultur 	},
73599ce286dSHoratiu Vultur 	[VCAP_KF_L2_MC_IS] = {
73699ce286dSHoratiu Vultur 		.type = VCAP_FIELD_BIT,
73799ce286dSHoratiu Vultur 		.offset = 13,
73899ce286dSHoratiu Vultur 		.width = 1,
73999ce286dSHoratiu Vultur 	},
74099ce286dSHoratiu Vultur 	[VCAP_KF_L2_BC_IS] = {
74199ce286dSHoratiu Vultur 		.type = VCAP_FIELD_BIT,
74299ce286dSHoratiu Vultur 		.offset = 14,
74399ce286dSHoratiu Vultur 		.width = 1,
74499ce286dSHoratiu Vultur 	},
74599ce286dSHoratiu Vultur 	[VCAP_KF_IP_MC_IS] = {
74699ce286dSHoratiu Vultur 		.type = VCAP_FIELD_BIT,
74799ce286dSHoratiu Vultur 		.offset = 15,
74899ce286dSHoratiu Vultur 		.width = 1,
74999ce286dSHoratiu Vultur 	},
75099ce286dSHoratiu Vultur 	[VCAP_KF_8021CB_R_TAGGED_IS] = {
75199ce286dSHoratiu Vultur 		.type = VCAP_FIELD_BIT,
75299ce286dSHoratiu Vultur 		.offset = 16,
75399ce286dSHoratiu Vultur 		.width = 1,
75499ce286dSHoratiu Vultur 	},
75599ce286dSHoratiu Vultur 	[VCAP_KF_8021Q_VLAN_TAGGED_IS] = {
75699ce286dSHoratiu Vultur 		.type = VCAP_FIELD_BIT,
75799ce286dSHoratiu Vultur 		.offset = 17,
75899ce286dSHoratiu Vultur 		.width = 1,
75999ce286dSHoratiu Vultur 	},
76099ce286dSHoratiu Vultur 	[VCAP_KF_8021Q_VLAN_DBL_TAGGED_IS] = {
76199ce286dSHoratiu Vultur 		.type = VCAP_FIELD_BIT,
76299ce286dSHoratiu Vultur 		.offset = 18,
76399ce286dSHoratiu Vultur 		.width = 1,
76499ce286dSHoratiu Vultur 	},
76599ce286dSHoratiu Vultur 	[VCAP_KF_8021Q_TPID0] = {
76699ce286dSHoratiu Vultur 		.type = VCAP_FIELD_BIT,
76799ce286dSHoratiu Vultur 		.offset = 19,
76899ce286dSHoratiu Vultur 		.width = 1,
76999ce286dSHoratiu Vultur 	},
77099ce286dSHoratiu Vultur 	[VCAP_KF_8021Q_VID0] = {
77199ce286dSHoratiu Vultur 		.type = VCAP_FIELD_U32,
77299ce286dSHoratiu Vultur 		.offset = 20,
77399ce286dSHoratiu Vultur 		.width = 12,
77499ce286dSHoratiu Vultur 	},
77599ce286dSHoratiu Vultur 	[VCAP_KF_8021Q_DEI0] = {
77699ce286dSHoratiu Vultur 		.type = VCAP_FIELD_BIT,
77799ce286dSHoratiu Vultur 		.offset = 32,
77899ce286dSHoratiu Vultur 		.width = 1,
77999ce286dSHoratiu Vultur 	},
78099ce286dSHoratiu Vultur 	[VCAP_KF_8021Q_PCP0] = {
78199ce286dSHoratiu Vultur 		.type = VCAP_FIELD_U32,
78299ce286dSHoratiu Vultur 		.offset = 33,
78399ce286dSHoratiu Vultur 		.width = 3,
78499ce286dSHoratiu Vultur 	},
78599ce286dSHoratiu Vultur 	[VCAP_KF_8021Q_TPID1] = {
78699ce286dSHoratiu Vultur 		.type = VCAP_FIELD_BIT,
78799ce286dSHoratiu Vultur 		.offset = 36,
78899ce286dSHoratiu Vultur 		.width = 1,
78999ce286dSHoratiu Vultur 	},
79099ce286dSHoratiu Vultur 	[VCAP_KF_8021Q_VID1] = {
79199ce286dSHoratiu Vultur 		.type = VCAP_FIELD_U32,
79299ce286dSHoratiu Vultur 		.offset = 37,
79399ce286dSHoratiu Vultur 		.width = 12,
79499ce286dSHoratiu Vultur 	},
79599ce286dSHoratiu Vultur 	[VCAP_KF_8021Q_DEI1] = {
79699ce286dSHoratiu Vultur 		.type = VCAP_FIELD_BIT,
79799ce286dSHoratiu Vultur 		.offset = 49,
79899ce286dSHoratiu Vultur 		.width = 1,
79999ce286dSHoratiu Vultur 	},
80099ce286dSHoratiu Vultur 	[VCAP_KF_8021Q_PCP1] = {
80199ce286dSHoratiu Vultur 		.type = VCAP_FIELD_U32,
80299ce286dSHoratiu Vultur 		.offset = 50,
80399ce286dSHoratiu Vultur 		.width = 3,
80499ce286dSHoratiu Vultur 	},
80599ce286dSHoratiu Vultur 	[VCAP_KF_ETYPE_LEN_IS] = {
80699ce286dSHoratiu Vultur 		.type = VCAP_FIELD_BIT,
80799ce286dSHoratiu Vultur 		.offset = 53,
80899ce286dSHoratiu Vultur 		.width = 1,
80999ce286dSHoratiu Vultur 	},
81099ce286dSHoratiu Vultur 	[VCAP_KF_ETYPE] = {
81199ce286dSHoratiu Vultur 		.type = VCAP_FIELD_U32,
81299ce286dSHoratiu Vultur 		.offset = 54,
81399ce286dSHoratiu Vultur 		.width = 16,
81499ce286dSHoratiu Vultur 	},
81599ce286dSHoratiu Vultur 	[VCAP_KF_IP_SNAP_IS] = {
81699ce286dSHoratiu Vultur 		.type = VCAP_FIELD_BIT,
81799ce286dSHoratiu Vultur 		.offset = 70,
81899ce286dSHoratiu Vultur 		.width = 1,
81999ce286dSHoratiu Vultur 	},
82099ce286dSHoratiu Vultur 	[VCAP_KF_IP4_IS] = {
82199ce286dSHoratiu Vultur 		.type = VCAP_FIELD_BIT,
82299ce286dSHoratiu Vultur 		.offset = 71,
82399ce286dSHoratiu Vultur 		.width = 1,
82499ce286dSHoratiu Vultur 	},
82599ce286dSHoratiu Vultur 	[VCAP_KF_L3_FRAGMENT] = {
82699ce286dSHoratiu Vultur 		.type = VCAP_FIELD_BIT,
82799ce286dSHoratiu Vultur 		.offset = 72,
82899ce286dSHoratiu Vultur 		.width = 1,
82999ce286dSHoratiu Vultur 	},
83099ce286dSHoratiu Vultur 	[VCAP_KF_L3_FRAG_OFS_GT0] = {
83199ce286dSHoratiu Vultur 		.type = VCAP_FIELD_BIT,
83299ce286dSHoratiu Vultur 		.offset = 73,
83399ce286dSHoratiu Vultur 		.width = 1,
83499ce286dSHoratiu Vultur 	},
83599ce286dSHoratiu Vultur 	[VCAP_KF_L3_OPTIONS_IS] = {
83699ce286dSHoratiu Vultur 		.type = VCAP_FIELD_BIT,
83799ce286dSHoratiu Vultur 		.offset = 74,
83899ce286dSHoratiu Vultur 		.width = 1,
83999ce286dSHoratiu Vultur 	},
84099ce286dSHoratiu Vultur 	[VCAP_KF_L3_DSCP] = {
84199ce286dSHoratiu Vultur 		.type = VCAP_FIELD_U32,
84299ce286dSHoratiu Vultur 		.offset = 75,
84399ce286dSHoratiu Vultur 		.width = 6,
84499ce286dSHoratiu Vultur 	},
84599ce286dSHoratiu Vultur 	[VCAP_KF_TCP_UDP_IS] = {
84699ce286dSHoratiu Vultur 		.type = VCAP_FIELD_BIT,
84799ce286dSHoratiu Vultur 		.offset = 81,
84899ce286dSHoratiu Vultur 		.width = 1,
84999ce286dSHoratiu Vultur 	},
85099ce286dSHoratiu Vultur 	[VCAP_KF_TCP_IS] = {
85199ce286dSHoratiu Vultur 		.type = VCAP_FIELD_BIT,
85299ce286dSHoratiu Vultur 		.offset = 82,
85399ce286dSHoratiu Vultur 		.width = 1,
85499ce286dSHoratiu Vultur 	},
85599ce286dSHoratiu Vultur };
85699ce286dSHoratiu Vultur 
85799ce286dSHoratiu Vultur static const struct vcap_field is1_rt_keyfield[] = {
85899ce286dSHoratiu Vultur 	[VCAP_KF_TYPE] = {
85999ce286dSHoratiu Vultur 		.type = VCAP_FIELD_U32,
86099ce286dSHoratiu Vultur 		.offset = 0,
86199ce286dSHoratiu Vultur 		.width = 2,
86299ce286dSHoratiu Vultur 	},
86399ce286dSHoratiu Vultur 	[VCAP_KF_LOOKUP_FIRST_IS] = {
86499ce286dSHoratiu Vultur 		.type = VCAP_FIELD_BIT,
86599ce286dSHoratiu Vultur 		.offset = 2,
86699ce286dSHoratiu Vultur 		.width = 1,
86799ce286dSHoratiu Vultur 	},
86899ce286dSHoratiu Vultur 	[VCAP_KF_IF_IGR_PORT] = {
86999ce286dSHoratiu Vultur 		.type = VCAP_FIELD_U32,
87099ce286dSHoratiu Vultur 		.offset = 3,
87199ce286dSHoratiu Vultur 		.width = 3,
87299ce286dSHoratiu Vultur 	},
87399ce286dSHoratiu Vultur 	[VCAP_KF_8021CB_R_TAGGED_IS] = {
87499ce286dSHoratiu Vultur 		.type = VCAP_FIELD_BIT,
87599ce286dSHoratiu Vultur 		.offset = 6,
87699ce286dSHoratiu Vultur 		.width = 1,
87799ce286dSHoratiu Vultur 	},
87899ce286dSHoratiu Vultur 	[VCAP_KF_8021Q_VLAN_TAGGED_IS] = {
87999ce286dSHoratiu Vultur 		.type = VCAP_FIELD_BIT,
88099ce286dSHoratiu Vultur 		.offset = 7,
88199ce286dSHoratiu Vultur 		.width = 1,
88299ce286dSHoratiu Vultur 	},
88399ce286dSHoratiu Vultur 	[VCAP_KF_8021Q_VLAN_DBL_TAGGED_IS] = {
88499ce286dSHoratiu Vultur 		.type = VCAP_FIELD_BIT,
88599ce286dSHoratiu Vultur 		.offset = 8,
88699ce286dSHoratiu Vultur 		.width = 1,
88799ce286dSHoratiu Vultur 	},
88899ce286dSHoratiu Vultur 	[VCAP_KF_L2_MAC] = {
88999ce286dSHoratiu Vultur 		.type = VCAP_FIELD_U48,
89099ce286dSHoratiu Vultur 		.offset = 9,
89199ce286dSHoratiu Vultur 		.width = 48,
89299ce286dSHoratiu Vultur 	},
89399ce286dSHoratiu Vultur 	[VCAP_KF_RT_VLAN_IDX] = {
89499ce286dSHoratiu Vultur 		.type = VCAP_FIELD_U32,
89599ce286dSHoratiu Vultur 		.offset = 57,
89699ce286dSHoratiu Vultur 		.width = 3,
89799ce286dSHoratiu Vultur 	},
89899ce286dSHoratiu Vultur 	[VCAP_KF_RT_TYPE] = {
89999ce286dSHoratiu Vultur 		.type = VCAP_FIELD_U32,
90099ce286dSHoratiu Vultur 		.offset = 60,
90199ce286dSHoratiu Vultur 		.width = 2,
90299ce286dSHoratiu Vultur 	},
90399ce286dSHoratiu Vultur 	[VCAP_KF_RT_FRMID] = {
90499ce286dSHoratiu Vultur 		.type = VCAP_FIELD_U32,
90599ce286dSHoratiu Vultur 		.offset = 62,
90699ce286dSHoratiu Vultur 		.width = 32,
90799ce286dSHoratiu Vultur 	},
90899ce286dSHoratiu Vultur };
90999ce286dSHoratiu Vultur 
91099ce286dSHoratiu Vultur static const struct vcap_field is1_dmac_vid_keyfield[] = {
91199ce286dSHoratiu Vultur 	[VCAP_KF_TYPE] = {
91299ce286dSHoratiu Vultur 		.type = VCAP_FIELD_U32,
91399ce286dSHoratiu Vultur 		.offset = 0,
91499ce286dSHoratiu Vultur 		.width = 2,
91599ce286dSHoratiu Vultur 	},
91699ce286dSHoratiu Vultur 	[VCAP_KF_LOOKUP_INDEX] = {
91799ce286dSHoratiu Vultur 		.type = VCAP_FIELD_U32,
91899ce286dSHoratiu Vultur 		.offset = 2,
91999ce286dSHoratiu Vultur 		.width = 2,
92099ce286dSHoratiu Vultur 	},
92199ce286dSHoratiu Vultur 	[VCAP_KF_IF_IGR_PORT_MASK] = {
92299ce286dSHoratiu Vultur 		.type = VCAP_FIELD_U32,
92399ce286dSHoratiu Vultur 		.offset = 4,
92499ce286dSHoratiu Vultur 		.width = 9,
92599ce286dSHoratiu Vultur 	},
92699ce286dSHoratiu Vultur 	[VCAP_KF_8021CB_R_TAGGED_IS] = {
92799ce286dSHoratiu Vultur 		.type = VCAP_FIELD_BIT,
92899ce286dSHoratiu Vultur 		.offset = 13,
92999ce286dSHoratiu Vultur 		.width = 1,
93099ce286dSHoratiu Vultur 	},
93199ce286dSHoratiu Vultur 	[VCAP_KF_8021Q_VLAN_TAGGED_IS] = {
93299ce286dSHoratiu Vultur 		.type = VCAP_FIELD_BIT,
93399ce286dSHoratiu Vultur 		.offset = 14,
93499ce286dSHoratiu Vultur 		.width = 1,
93599ce286dSHoratiu Vultur 	},
93699ce286dSHoratiu Vultur 	[VCAP_KF_8021Q_VLAN_DBL_TAGGED_IS] = {
93799ce286dSHoratiu Vultur 		.type = VCAP_FIELD_BIT,
93899ce286dSHoratiu Vultur 		.offset = 15,
93999ce286dSHoratiu Vultur 		.width = 1,
94099ce286dSHoratiu Vultur 	},
94199ce286dSHoratiu Vultur 	[VCAP_KF_8021Q_TPID0] = {
94299ce286dSHoratiu Vultur 		.type = VCAP_FIELD_BIT,
94399ce286dSHoratiu Vultur 		.offset = 16,
94499ce286dSHoratiu Vultur 		.width = 1,
94599ce286dSHoratiu Vultur 	},
94699ce286dSHoratiu Vultur 	[VCAP_KF_8021Q_VID0] = {
94799ce286dSHoratiu Vultur 		.type = VCAP_FIELD_U32,
94899ce286dSHoratiu Vultur 		.offset = 17,
94999ce286dSHoratiu Vultur 		.width = 12,
95099ce286dSHoratiu Vultur 	},
95199ce286dSHoratiu Vultur 	[VCAP_KF_8021Q_DEI0] = {
95299ce286dSHoratiu Vultur 		.type = VCAP_FIELD_BIT,
95399ce286dSHoratiu Vultur 		.offset = 29,
95499ce286dSHoratiu Vultur 		.width = 1,
95599ce286dSHoratiu Vultur 	},
95699ce286dSHoratiu Vultur 	[VCAP_KF_8021Q_PCP0] = {
95799ce286dSHoratiu Vultur 		.type = VCAP_FIELD_U32,
95899ce286dSHoratiu Vultur 		.offset = 30,
95999ce286dSHoratiu Vultur 		.width = 3,
96099ce286dSHoratiu Vultur 	},
96199ce286dSHoratiu Vultur 	[VCAP_KF_L2_DMAC] = {
96299ce286dSHoratiu Vultur 		.type = VCAP_FIELD_U48,
96399ce286dSHoratiu Vultur 		.offset = 33,
96499ce286dSHoratiu Vultur 		.width = 48,
96599ce286dSHoratiu Vultur 	},
96699ce286dSHoratiu Vultur };
96799ce286dSHoratiu Vultur 
96839bedc16SHoratiu Vultur static const struct vcap_field is2_mac_etype_keyfield[] = {
96939bedc16SHoratiu Vultur 	[VCAP_KF_TYPE] = {
97039bedc16SHoratiu Vultur 		.type = VCAP_FIELD_U32,
97139bedc16SHoratiu Vultur 		.offset = 0,
97239bedc16SHoratiu Vultur 		.width = 4,
97339bedc16SHoratiu Vultur 	},
97439bedc16SHoratiu Vultur 	[VCAP_KF_LOOKUP_FIRST_IS] = {
97539bedc16SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
97639bedc16SHoratiu Vultur 		.offset = 4,
97739bedc16SHoratiu Vultur 		.width = 1,
97839bedc16SHoratiu Vultur 	},
97939bedc16SHoratiu Vultur 	[VCAP_KF_LOOKUP_PAG] = {
98039bedc16SHoratiu Vultur 		.type = VCAP_FIELD_U32,
98139bedc16SHoratiu Vultur 		.offset = 5,
98239bedc16SHoratiu Vultur 		.width = 8,
98339bedc16SHoratiu Vultur 	},
98439bedc16SHoratiu Vultur 	[VCAP_KF_IF_IGR_PORT_MASK] = {
98539bedc16SHoratiu Vultur 		.type = VCAP_FIELD_U32,
98639bedc16SHoratiu Vultur 		.offset = 13,
98739bedc16SHoratiu Vultur 		.width = 9,
98839bedc16SHoratiu Vultur 	},
98939bedc16SHoratiu Vultur 	[VCAP_KF_ISDX_GT0_IS] = {
99039bedc16SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
99139bedc16SHoratiu Vultur 		.offset = 22,
99239bedc16SHoratiu Vultur 		.width = 1,
99339bedc16SHoratiu Vultur 	},
99439bedc16SHoratiu Vultur 	[VCAP_KF_HOST_MATCH] = {
99539bedc16SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
99639bedc16SHoratiu Vultur 		.offset = 23,
99739bedc16SHoratiu Vultur 		.width = 1,
99839bedc16SHoratiu Vultur 	},
99939bedc16SHoratiu Vultur 	[VCAP_KF_L2_MC_IS] = {
100039bedc16SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
100139bedc16SHoratiu Vultur 		.offset = 24,
100239bedc16SHoratiu Vultur 		.width = 1,
100339bedc16SHoratiu Vultur 	},
100439bedc16SHoratiu Vultur 	[VCAP_KF_L2_BC_IS] = {
100539bedc16SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
100639bedc16SHoratiu Vultur 		.offset = 25,
100739bedc16SHoratiu Vultur 		.width = 1,
100839bedc16SHoratiu Vultur 	},
100939bedc16SHoratiu Vultur 	[VCAP_KF_8021Q_VLAN_TAGGED_IS] = {
101039bedc16SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
101139bedc16SHoratiu Vultur 		.offset = 26,
101239bedc16SHoratiu Vultur 		.width = 1,
101339bedc16SHoratiu Vultur 	},
101439bedc16SHoratiu Vultur 	[VCAP_KF_8021Q_VID_CLS] = {
101539bedc16SHoratiu Vultur 		.type = VCAP_FIELD_U32,
101639bedc16SHoratiu Vultur 		.offset = 27,
101739bedc16SHoratiu Vultur 		.width = 12,
101839bedc16SHoratiu Vultur 	},
101939bedc16SHoratiu Vultur 	[VCAP_KF_8021Q_DEI_CLS] = {
102039bedc16SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
102139bedc16SHoratiu Vultur 		.offset = 39,
102239bedc16SHoratiu Vultur 		.width = 1,
102339bedc16SHoratiu Vultur 	},
102439bedc16SHoratiu Vultur 	[VCAP_KF_8021Q_PCP_CLS] = {
102539bedc16SHoratiu Vultur 		.type = VCAP_FIELD_U32,
102639bedc16SHoratiu Vultur 		.offset = 40,
102739bedc16SHoratiu Vultur 		.width = 3,
102839bedc16SHoratiu Vultur 	},
102939bedc16SHoratiu Vultur 	[VCAP_KF_L2_DMAC] = {
103039bedc16SHoratiu Vultur 		.type = VCAP_FIELD_U48,
103139bedc16SHoratiu Vultur 		.offset = 43,
103239bedc16SHoratiu Vultur 		.width = 48,
103339bedc16SHoratiu Vultur 	},
103439bedc16SHoratiu Vultur 	[VCAP_KF_L2_SMAC] = {
103539bedc16SHoratiu Vultur 		.type = VCAP_FIELD_U48,
103639bedc16SHoratiu Vultur 		.offset = 91,
103739bedc16SHoratiu Vultur 		.width = 48,
103839bedc16SHoratiu Vultur 	},
103939bedc16SHoratiu Vultur 	[VCAP_KF_ETYPE] = {
104039bedc16SHoratiu Vultur 		.type = VCAP_FIELD_U32,
104139bedc16SHoratiu Vultur 		.offset = 139,
104239bedc16SHoratiu Vultur 		.width = 16,
104339bedc16SHoratiu Vultur 	},
104439bedc16SHoratiu Vultur 	[VCAP_KF_L2_FRM_TYPE] = {
104539bedc16SHoratiu Vultur 		.type = VCAP_FIELD_U32,
104639bedc16SHoratiu Vultur 		.offset = 155,
104739bedc16SHoratiu Vultur 		.width = 4,
104839bedc16SHoratiu Vultur 	},
104939bedc16SHoratiu Vultur 	[VCAP_KF_L2_PAYLOAD0] = {
105039bedc16SHoratiu Vultur 		.type = VCAP_FIELD_U32,
105139bedc16SHoratiu Vultur 		.offset = 159,
105239bedc16SHoratiu Vultur 		.width = 16,
105339bedc16SHoratiu Vultur 	},
105439bedc16SHoratiu Vultur 	[VCAP_KF_L2_PAYLOAD1] = {
105539bedc16SHoratiu Vultur 		.type = VCAP_FIELD_U32,
105639bedc16SHoratiu Vultur 		.offset = 175,
105739bedc16SHoratiu Vultur 		.width = 8,
105839bedc16SHoratiu Vultur 	},
105939bedc16SHoratiu Vultur 	[VCAP_KF_L2_PAYLOAD2] = {
106039bedc16SHoratiu Vultur 		.type = VCAP_FIELD_U32,
106139bedc16SHoratiu Vultur 		.offset = 183,
106239bedc16SHoratiu Vultur 		.width = 3,
106339bedc16SHoratiu Vultur 	},
106439bedc16SHoratiu Vultur };
106539bedc16SHoratiu Vultur 
106639bedc16SHoratiu Vultur static const struct vcap_field is2_mac_llc_keyfield[] = {
106739bedc16SHoratiu Vultur 	[VCAP_KF_TYPE] = {
106839bedc16SHoratiu Vultur 		.type = VCAP_FIELD_U32,
106939bedc16SHoratiu Vultur 		.offset = 0,
107039bedc16SHoratiu Vultur 		.width = 4,
107139bedc16SHoratiu Vultur 	},
107239bedc16SHoratiu Vultur 	[VCAP_KF_LOOKUP_FIRST_IS] = {
107339bedc16SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
107439bedc16SHoratiu Vultur 		.offset = 4,
107539bedc16SHoratiu Vultur 		.width = 1,
107639bedc16SHoratiu Vultur 	},
107739bedc16SHoratiu Vultur 	[VCAP_KF_LOOKUP_PAG] = {
107839bedc16SHoratiu Vultur 		.type = VCAP_FIELD_U32,
107939bedc16SHoratiu Vultur 		.offset = 5,
108039bedc16SHoratiu Vultur 		.width = 8,
108139bedc16SHoratiu Vultur 	},
108239bedc16SHoratiu Vultur 	[VCAP_KF_IF_IGR_PORT_MASK] = {
108339bedc16SHoratiu Vultur 		.type = VCAP_FIELD_U32,
108439bedc16SHoratiu Vultur 		.offset = 13,
108539bedc16SHoratiu Vultur 		.width = 9,
108639bedc16SHoratiu Vultur 	},
108739bedc16SHoratiu Vultur 	[VCAP_KF_ISDX_GT0_IS] = {
108839bedc16SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
108939bedc16SHoratiu Vultur 		.offset = 22,
109039bedc16SHoratiu Vultur 		.width = 1,
109139bedc16SHoratiu Vultur 	},
109239bedc16SHoratiu Vultur 	[VCAP_KF_HOST_MATCH] = {
109339bedc16SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
109439bedc16SHoratiu Vultur 		.offset = 23,
109539bedc16SHoratiu Vultur 		.width = 1,
109639bedc16SHoratiu Vultur 	},
109739bedc16SHoratiu Vultur 	[VCAP_KF_L2_MC_IS] = {
109839bedc16SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
109939bedc16SHoratiu Vultur 		.offset = 24,
110039bedc16SHoratiu Vultur 		.width = 1,
110139bedc16SHoratiu Vultur 	},
110239bedc16SHoratiu Vultur 	[VCAP_KF_L2_BC_IS] = {
110339bedc16SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
110439bedc16SHoratiu Vultur 		.offset = 25,
110539bedc16SHoratiu Vultur 		.width = 1,
110639bedc16SHoratiu Vultur 	},
110739bedc16SHoratiu Vultur 	[VCAP_KF_8021Q_VLAN_TAGGED_IS] = {
110839bedc16SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
110939bedc16SHoratiu Vultur 		.offset = 26,
111039bedc16SHoratiu Vultur 		.width = 1,
111139bedc16SHoratiu Vultur 	},
111239bedc16SHoratiu Vultur 	[VCAP_KF_8021Q_VID_CLS] = {
111339bedc16SHoratiu Vultur 		.type = VCAP_FIELD_U32,
111439bedc16SHoratiu Vultur 		.offset = 27,
111539bedc16SHoratiu Vultur 		.width = 12,
111639bedc16SHoratiu Vultur 	},
111739bedc16SHoratiu Vultur 	[VCAP_KF_8021Q_DEI_CLS] = {
111839bedc16SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
111939bedc16SHoratiu Vultur 		.offset = 39,
112039bedc16SHoratiu Vultur 		.width = 1,
112139bedc16SHoratiu Vultur 	},
112239bedc16SHoratiu Vultur 	[VCAP_KF_8021Q_PCP_CLS] = {
112339bedc16SHoratiu Vultur 		.type = VCAP_FIELD_U32,
112439bedc16SHoratiu Vultur 		.offset = 40,
112539bedc16SHoratiu Vultur 		.width = 3,
112639bedc16SHoratiu Vultur 	},
112739bedc16SHoratiu Vultur 	[VCAP_KF_L2_DMAC] = {
112839bedc16SHoratiu Vultur 		.type = VCAP_FIELD_U48,
112939bedc16SHoratiu Vultur 		.offset = 43,
113039bedc16SHoratiu Vultur 		.width = 48,
113139bedc16SHoratiu Vultur 	},
113239bedc16SHoratiu Vultur 	[VCAP_KF_L2_SMAC] = {
113339bedc16SHoratiu Vultur 		.type = VCAP_FIELD_U48,
113439bedc16SHoratiu Vultur 		.offset = 91,
113539bedc16SHoratiu Vultur 		.width = 48,
113639bedc16SHoratiu Vultur 	},
113739bedc16SHoratiu Vultur 	[VCAP_KF_L2_LLC] = {
113839bedc16SHoratiu Vultur 		.type = VCAP_FIELD_U48,
113939bedc16SHoratiu Vultur 		.offset = 139,
114039bedc16SHoratiu Vultur 		.width = 40,
114139bedc16SHoratiu Vultur 	},
114239bedc16SHoratiu Vultur };
114339bedc16SHoratiu Vultur 
114439bedc16SHoratiu Vultur static const struct vcap_field is2_mac_snap_keyfield[] = {
114539bedc16SHoratiu Vultur 	[VCAP_KF_TYPE] = {
114639bedc16SHoratiu Vultur 		.type = VCAP_FIELD_U32,
114739bedc16SHoratiu Vultur 		.offset = 0,
114839bedc16SHoratiu Vultur 		.width = 4,
114939bedc16SHoratiu Vultur 	},
115039bedc16SHoratiu Vultur 	[VCAP_KF_LOOKUP_FIRST_IS] = {
115139bedc16SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
115239bedc16SHoratiu Vultur 		.offset = 4,
115339bedc16SHoratiu Vultur 		.width = 1,
115439bedc16SHoratiu Vultur 	},
115539bedc16SHoratiu Vultur 	[VCAP_KF_LOOKUP_PAG] = {
115639bedc16SHoratiu Vultur 		.type = VCAP_FIELD_U32,
115739bedc16SHoratiu Vultur 		.offset = 5,
115839bedc16SHoratiu Vultur 		.width = 8,
115939bedc16SHoratiu Vultur 	},
116039bedc16SHoratiu Vultur 	[VCAP_KF_IF_IGR_PORT_MASK] = {
116139bedc16SHoratiu Vultur 		.type = VCAP_FIELD_U32,
116239bedc16SHoratiu Vultur 		.offset = 13,
116339bedc16SHoratiu Vultur 		.width = 9,
116439bedc16SHoratiu Vultur 	},
116539bedc16SHoratiu Vultur 	[VCAP_KF_ISDX_GT0_IS] = {
116639bedc16SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
116739bedc16SHoratiu Vultur 		.offset = 22,
116839bedc16SHoratiu Vultur 		.width = 1,
116939bedc16SHoratiu Vultur 	},
117039bedc16SHoratiu Vultur 	[VCAP_KF_HOST_MATCH] = {
117139bedc16SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
117239bedc16SHoratiu Vultur 		.offset = 23,
117339bedc16SHoratiu Vultur 		.width = 1,
117439bedc16SHoratiu Vultur 	},
117539bedc16SHoratiu Vultur 	[VCAP_KF_L2_MC_IS] = {
117639bedc16SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
117739bedc16SHoratiu Vultur 		.offset = 24,
117839bedc16SHoratiu Vultur 		.width = 1,
117939bedc16SHoratiu Vultur 	},
118039bedc16SHoratiu Vultur 	[VCAP_KF_L2_BC_IS] = {
118139bedc16SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
118239bedc16SHoratiu Vultur 		.offset = 25,
118339bedc16SHoratiu Vultur 		.width = 1,
118439bedc16SHoratiu Vultur 	},
118539bedc16SHoratiu Vultur 	[VCAP_KF_8021Q_VLAN_TAGGED_IS] = {
118639bedc16SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
118739bedc16SHoratiu Vultur 		.offset = 26,
118839bedc16SHoratiu Vultur 		.width = 1,
118939bedc16SHoratiu Vultur 	},
119039bedc16SHoratiu Vultur 	[VCAP_KF_8021Q_VID_CLS] = {
119139bedc16SHoratiu Vultur 		.type = VCAP_FIELD_U32,
119239bedc16SHoratiu Vultur 		.offset = 27,
119339bedc16SHoratiu Vultur 		.width = 12,
119439bedc16SHoratiu Vultur 	},
119539bedc16SHoratiu Vultur 	[VCAP_KF_8021Q_DEI_CLS] = {
119639bedc16SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
119739bedc16SHoratiu Vultur 		.offset = 39,
119839bedc16SHoratiu Vultur 		.width = 1,
119939bedc16SHoratiu Vultur 	},
120039bedc16SHoratiu Vultur 	[VCAP_KF_8021Q_PCP_CLS] = {
120139bedc16SHoratiu Vultur 		.type = VCAP_FIELD_U32,
120239bedc16SHoratiu Vultur 		.offset = 40,
120339bedc16SHoratiu Vultur 		.width = 3,
120439bedc16SHoratiu Vultur 	},
120539bedc16SHoratiu Vultur 	[VCAP_KF_L2_DMAC] = {
120639bedc16SHoratiu Vultur 		.type = VCAP_FIELD_U48,
120739bedc16SHoratiu Vultur 		.offset = 43,
120839bedc16SHoratiu Vultur 		.width = 48,
120939bedc16SHoratiu Vultur 	},
121039bedc16SHoratiu Vultur 	[VCAP_KF_L2_SMAC] = {
121139bedc16SHoratiu Vultur 		.type = VCAP_FIELD_U48,
121239bedc16SHoratiu Vultur 		.offset = 91,
121339bedc16SHoratiu Vultur 		.width = 48,
121439bedc16SHoratiu Vultur 	},
121539bedc16SHoratiu Vultur 	[VCAP_KF_L2_SNAP] = {
121639bedc16SHoratiu Vultur 		.type = VCAP_FIELD_U48,
121739bedc16SHoratiu Vultur 		.offset = 139,
121839bedc16SHoratiu Vultur 		.width = 40,
121939bedc16SHoratiu Vultur 	},
122039bedc16SHoratiu Vultur };
122139bedc16SHoratiu Vultur 
122239bedc16SHoratiu Vultur static const struct vcap_field is2_arp_keyfield[] = {
122339bedc16SHoratiu Vultur 	[VCAP_KF_TYPE] = {
122439bedc16SHoratiu Vultur 		.type = VCAP_FIELD_U32,
122539bedc16SHoratiu Vultur 		.offset = 0,
122639bedc16SHoratiu Vultur 		.width = 4,
122739bedc16SHoratiu Vultur 	},
122839bedc16SHoratiu Vultur 	[VCAP_KF_LOOKUP_FIRST_IS] = {
122939bedc16SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
123039bedc16SHoratiu Vultur 		.offset = 4,
123139bedc16SHoratiu Vultur 		.width = 1,
123239bedc16SHoratiu Vultur 	},
123339bedc16SHoratiu Vultur 	[VCAP_KF_LOOKUP_PAG] = {
123439bedc16SHoratiu Vultur 		.type = VCAP_FIELD_U32,
123539bedc16SHoratiu Vultur 		.offset = 5,
123639bedc16SHoratiu Vultur 		.width = 8,
123739bedc16SHoratiu Vultur 	},
123839bedc16SHoratiu Vultur 	[VCAP_KF_IF_IGR_PORT_MASK] = {
123939bedc16SHoratiu Vultur 		.type = VCAP_FIELD_U32,
124039bedc16SHoratiu Vultur 		.offset = 13,
124139bedc16SHoratiu Vultur 		.width = 9,
124239bedc16SHoratiu Vultur 	},
124339bedc16SHoratiu Vultur 	[VCAP_KF_ISDX_GT0_IS] = {
124439bedc16SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
124539bedc16SHoratiu Vultur 		.offset = 22,
124639bedc16SHoratiu Vultur 		.width = 1,
124739bedc16SHoratiu Vultur 	},
124839bedc16SHoratiu Vultur 	[VCAP_KF_HOST_MATCH] = {
124939bedc16SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
125039bedc16SHoratiu Vultur 		.offset = 23,
125139bedc16SHoratiu Vultur 		.width = 1,
125239bedc16SHoratiu Vultur 	},
125339bedc16SHoratiu Vultur 	[VCAP_KF_L2_MC_IS] = {
125439bedc16SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
125539bedc16SHoratiu Vultur 		.offset = 24,
125639bedc16SHoratiu Vultur 		.width = 1,
125739bedc16SHoratiu Vultur 	},
125839bedc16SHoratiu Vultur 	[VCAP_KF_L2_BC_IS] = {
125939bedc16SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
126039bedc16SHoratiu Vultur 		.offset = 25,
126139bedc16SHoratiu Vultur 		.width = 1,
126239bedc16SHoratiu Vultur 	},
126339bedc16SHoratiu Vultur 	[VCAP_KF_8021Q_VLAN_TAGGED_IS] = {
126439bedc16SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
126539bedc16SHoratiu Vultur 		.offset = 26,
126639bedc16SHoratiu Vultur 		.width = 1,
126739bedc16SHoratiu Vultur 	},
126839bedc16SHoratiu Vultur 	[VCAP_KF_8021Q_VID_CLS] = {
126939bedc16SHoratiu Vultur 		.type = VCAP_FIELD_U32,
127039bedc16SHoratiu Vultur 		.offset = 27,
127139bedc16SHoratiu Vultur 		.width = 12,
127239bedc16SHoratiu Vultur 	},
127339bedc16SHoratiu Vultur 	[VCAP_KF_8021Q_DEI_CLS] = {
127439bedc16SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
127539bedc16SHoratiu Vultur 		.offset = 39,
127639bedc16SHoratiu Vultur 		.width = 1,
127739bedc16SHoratiu Vultur 	},
127839bedc16SHoratiu Vultur 	[VCAP_KF_8021Q_PCP_CLS] = {
127939bedc16SHoratiu Vultur 		.type = VCAP_FIELD_U32,
128039bedc16SHoratiu Vultur 		.offset = 40,
128139bedc16SHoratiu Vultur 		.width = 3,
128239bedc16SHoratiu Vultur 	},
128339bedc16SHoratiu Vultur 	[VCAP_KF_L2_SMAC] = {
128439bedc16SHoratiu Vultur 		.type = VCAP_FIELD_U48,
128539bedc16SHoratiu Vultur 		.offset = 43,
128639bedc16SHoratiu Vultur 		.width = 48,
128739bedc16SHoratiu Vultur 	},
128839bedc16SHoratiu Vultur 	[VCAP_KF_ARP_ADDR_SPACE_OK_IS] = {
128939bedc16SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
129039bedc16SHoratiu Vultur 		.offset = 91,
129139bedc16SHoratiu Vultur 		.width = 1,
129239bedc16SHoratiu Vultur 	},
129339bedc16SHoratiu Vultur 	[VCAP_KF_ARP_PROTO_SPACE_OK_IS] = {
129439bedc16SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
129539bedc16SHoratiu Vultur 		.offset = 92,
129639bedc16SHoratiu Vultur 		.width = 1,
129739bedc16SHoratiu Vultur 	},
129839bedc16SHoratiu Vultur 	[VCAP_KF_ARP_LEN_OK_IS] = {
129939bedc16SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
130039bedc16SHoratiu Vultur 		.offset = 93,
130139bedc16SHoratiu Vultur 		.width = 1,
130239bedc16SHoratiu Vultur 	},
130339bedc16SHoratiu Vultur 	[VCAP_KF_ARP_TGT_MATCH_IS] = {
130439bedc16SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
130539bedc16SHoratiu Vultur 		.offset = 94,
130639bedc16SHoratiu Vultur 		.width = 1,
130739bedc16SHoratiu Vultur 	},
130839bedc16SHoratiu Vultur 	[VCAP_KF_ARP_SENDER_MATCH_IS] = {
130939bedc16SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
131039bedc16SHoratiu Vultur 		.offset = 95,
131139bedc16SHoratiu Vultur 		.width = 1,
131239bedc16SHoratiu Vultur 	},
131339bedc16SHoratiu Vultur 	[VCAP_KF_ARP_OPCODE_UNKNOWN_IS] = {
131439bedc16SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
131539bedc16SHoratiu Vultur 		.offset = 96,
131639bedc16SHoratiu Vultur 		.width = 1,
131739bedc16SHoratiu Vultur 	},
131839bedc16SHoratiu Vultur 	[VCAP_KF_ARP_OPCODE] = {
131939bedc16SHoratiu Vultur 		.type = VCAP_FIELD_U32,
132039bedc16SHoratiu Vultur 		.offset = 97,
132139bedc16SHoratiu Vultur 		.width = 2,
132239bedc16SHoratiu Vultur 	},
132339bedc16SHoratiu Vultur 	[VCAP_KF_L3_IP4_DIP] = {
132439bedc16SHoratiu Vultur 		.type = VCAP_FIELD_U32,
132539bedc16SHoratiu Vultur 		.offset = 99,
132639bedc16SHoratiu Vultur 		.width = 32,
132739bedc16SHoratiu Vultur 	},
132839bedc16SHoratiu Vultur 	[VCAP_KF_L3_IP4_SIP] = {
132939bedc16SHoratiu Vultur 		.type = VCAP_FIELD_U32,
133039bedc16SHoratiu Vultur 		.offset = 131,
133139bedc16SHoratiu Vultur 		.width = 32,
133239bedc16SHoratiu Vultur 	},
133339bedc16SHoratiu Vultur 	[VCAP_KF_L3_DIP_EQ_SIP_IS] = {
133439bedc16SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
133539bedc16SHoratiu Vultur 		.offset = 163,
133639bedc16SHoratiu Vultur 		.width = 1,
133739bedc16SHoratiu Vultur 	},
133839bedc16SHoratiu Vultur };
133939bedc16SHoratiu Vultur 
134039bedc16SHoratiu Vultur static const struct vcap_field is2_ip4_tcp_udp_keyfield[] = {
134139bedc16SHoratiu Vultur 	[VCAP_KF_TYPE] = {
134239bedc16SHoratiu Vultur 		.type = VCAP_FIELD_U32,
134339bedc16SHoratiu Vultur 		.offset = 0,
134439bedc16SHoratiu Vultur 		.width = 4,
134539bedc16SHoratiu Vultur 	},
134639bedc16SHoratiu Vultur 	[VCAP_KF_LOOKUP_FIRST_IS] = {
134739bedc16SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
134839bedc16SHoratiu Vultur 		.offset = 4,
134939bedc16SHoratiu Vultur 		.width = 1,
135039bedc16SHoratiu Vultur 	},
135139bedc16SHoratiu Vultur 	[VCAP_KF_LOOKUP_PAG] = {
135239bedc16SHoratiu Vultur 		.type = VCAP_FIELD_U32,
135339bedc16SHoratiu Vultur 		.offset = 5,
135439bedc16SHoratiu Vultur 		.width = 8,
135539bedc16SHoratiu Vultur 	},
135639bedc16SHoratiu Vultur 	[VCAP_KF_IF_IGR_PORT_MASK] = {
135739bedc16SHoratiu Vultur 		.type = VCAP_FIELD_U32,
135839bedc16SHoratiu Vultur 		.offset = 13,
135939bedc16SHoratiu Vultur 		.width = 9,
136039bedc16SHoratiu Vultur 	},
136139bedc16SHoratiu Vultur 	[VCAP_KF_ISDX_GT0_IS] = {
136239bedc16SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
136339bedc16SHoratiu Vultur 		.offset = 22,
136439bedc16SHoratiu Vultur 		.width = 1,
136539bedc16SHoratiu Vultur 	},
136639bedc16SHoratiu Vultur 	[VCAP_KF_HOST_MATCH] = {
136739bedc16SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
136839bedc16SHoratiu Vultur 		.offset = 23,
136939bedc16SHoratiu Vultur 		.width = 1,
137039bedc16SHoratiu Vultur 	},
137139bedc16SHoratiu Vultur 	[VCAP_KF_L2_MC_IS] = {
137239bedc16SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
137339bedc16SHoratiu Vultur 		.offset = 24,
137439bedc16SHoratiu Vultur 		.width = 1,
137539bedc16SHoratiu Vultur 	},
137639bedc16SHoratiu Vultur 	[VCAP_KF_L2_BC_IS] = {
137739bedc16SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
137839bedc16SHoratiu Vultur 		.offset = 25,
137939bedc16SHoratiu Vultur 		.width = 1,
138039bedc16SHoratiu Vultur 	},
138139bedc16SHoratiu Vultur 	[VCAP_KF_8021Q_VLAN_TAGGED_IS] = {
138239bedc16SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
138339bedc16SHoratiu Vultur 		.offset = 26,
138439bedc16SHoratiu Vultur 		.width = 1,
138539bedc16SHoratiu Vultur 	},
138639bedc16SHoratiu Vultur 	[VCAP_KF_8021Q_VID_CLS] = {
138739bedc16SHoratiu Vultur 		.type = VCAP_FIELD_U32,
138839bedc16SHoratiu Vultur 		.offset = 27,
138939bedc16SHoratiu Vultur 		.width = 12,
139039bedc16SHoratiu Vultur 	},
139139bedc16SHoratiu Vultur 	[VCAP_KF_8021Q_DEI_CLS] = {
139239bedc16SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
139339bedc16SHoratiu Vultur 		.offset = 39,
139439bedc16SHoratiu Vultur 		.width = 1,
139539bedc16SHoratiu Vultur 	},
139639bedc16SHoratiu Vultur 	[VCAP_KF_8021Q_PCP_CLS] = {
139739bedc16SHoratiu Vultur 		.type = VCAP_FIELD_U32,
139839bedc16SHoratiu Vultur 		.offset = 40,
139939bedc16SHoratiu Vultur 		.width = 3,
140039bedc16SHoratiu Vultur 	},
140139bedc16SHoratiu Vultur 	[VCAP_KF_IP4_IS] = {
140239bedc16SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
140339bedc16SHoratiu Vultur 		.offset = 43,
140439bedc16SHoratiu Vultur 		.width = 1,
140539bedc16SHoratiu Vultur 	},
140639bedc16SHoratiu Vultur 	[VCAP_KF_L3_FRAGMENT] = {
140739bedc16SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
140839bedc16SHoratiu Vultur 		.offset = 44,
140939bedc16SHoratiu Vultur 		.width = 1,
141039bedc16SHoratiu Vultur 	},
141139bedc16SHoratiu Vultur 	[VCAP_KF_L3_FRAG_OFS_GT0] = {
141239bedc16SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
141339bedc16SHoratiu Vultur 		.offset = 45,
141439bedc16SHoratiu Vultur 		.width = 1,
141539bedc16SHoratiu Vultur 	},
141639bedc16SHoratiu Vultur 	[VCAP_KF_L3_OPTIONS_IS] = {
141739bedc16SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
141839bedc16SHoratiu Vultur 		.offset = 46,
141939bedc16SHoratiu Vultur 		.width = 1,
142039bedc16SHoratiu Vultur 	},
142139bedc16SHoratiu Vultur 	[VCAP_KF_L3_TTL_GT0] = {
142239bedc16SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
142339bedc16SHoratiu Vultur 		.offset = 47,
142439bedc16SHoratiu Vultur 		.width = 1,
142539bedc16SHoratiu Vultur 	},
142639bedc16SHoratiu Vultur 	[VCAP_KF_L3_TOS] = {
142739bedc16SHoratiu Vultur 		.type = VCAP_FIELD_U32,
142839bedc16SHoratiu Vultur 		.offset = 48,
142939bedc16SHoratiu Vultur 		.width = 8,
143039bedc16SHoratiu Vultur 	},
143139bedc16SHoratiu Vultur 	[VCAP_KF_L3_IP4_DIP] = {
143239bedc16SHoratiu Vultur 		.type = VCAP_FIELD_U32,
143339bedc16SHoratiu Vultur 		.offset = 56,
143439bedc16SHoratiu Vultur 		.width = 32,
143539bedc16SHoratiu Vultur 	},
143639bedc16SHoratiu Vultur 	[VCAP_KF_L3_IP4_SIP] = {
143739bedc16SHoratiu Vultur 		.type = VCAP_FIELD_U32,
143839bedc16SHoratiu Vultur 		.offset = 88,
143939bedc16SHoratiu Vultur 		.width = 32,
144039bedc16SHoratiu Vultur 	},
144139bedc16SHoratiu Vultur 	[VCAP_KF_L3_DIP_EQ_SIP_IS] = {
144239bedc16SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
144339bedc16SHoratiu Vultur 		.offset = 120,
144439bedc16SHoratiu Vultur 		.width = 1,
144539bedc16SHoratiu Vultur 	},
144639bedc16SHoratiu Vultur 	[VCAP_KF_TCP_IS] = {
144739bedc16SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
144839bedc16SHoratiu Vultur 		.offset = 121,
144939bedc16SHoratiu Vultur 		.width = 1,
145039bedc16SHoratiu Vultur 	},
145139bedc16SHoratiu Vultur 	[VCAP_KF_L4_DPORT] = {
145239bedc16SHoratiu Vultur 		.type = VCAP_FIELD_U32,
145339bedc16SHoratiu Vultur 		.offset = 122,
145439bedc16SHoratiu Vultur 		.width = 16,
145539bedc16SHoratiu Vultur 	},
145639bedc16SHoratiu Vultur 	[VCAP_KF_L4_SPORT] = {
145739bedc16SHoratiu Vultur 		.type = VCAP_FIELD_U32,
145839bedc16SHoratiu Vultur 		.offset = 138,
145939bedc16SHoratiu Vultur 		.width = 16,
146039bedc16SHoratiu Vultur 	},
146139bedc16SHoratiu Vultur 	[VCAP_KF_L4_RNG] = {
146239bedc16SHoratiu Vultur 		.type = VCAP_FIELD_U32,
146339bedc16SHoratiu Vultur 		.offset = 154,
146439bedc16SHoratiu Vultur 		.width = 8,
146539bedc16SHoratiu Vultur 	},
146639bedc16SHoratiu Vultur 	[VCAP_KF_L4_SPORT_EQ_DPORT_IS] = {
146739bedc16SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
146839bedc16SHoratiu Vultur 		.offset = 162,
146939bedc16SHoratiu Vultur 		.width = 1,
147039bedc16SHoratiu Vultur 	},
147139bedc16SHoratiu Vultur 	[VCAP_KF_L4_SEQUENCE_EQ0_IS] = {
147239bedc16SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
147339bedc16SHoratiu Vultur 		.offset = 163,
147439bedc16SHoratiu Vultur 		.width = 1,
147539bedc16SHoratiu Vultur 	},
147639bedc16SHoratiu Vultur 	[VCAP_KF_L4_FIN] = {
147739bedc16SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
147839bedc16SHoratiu Vultur 		.offset = 164,
147939bedc16SHoratiu Vultur 		.width = 1,
148039bedc16SHoratiu Vultur 	},
148139bedc16SHoratiu Vultur 	[VCAP_KF_L4_SYN] = {
148239bedc16SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
148339bedc16SHoratiu Vultur 		.offset = 165,
148439bedc16SHoratiu Vultur 		.width = 1,
148539bedc16SHoratiu Vultur 	},
148639bedc16SHoratiu Vultur 	[VCAP_KF_L4_RST] = {
148739bedc16SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
148839bedc16SHoratiu Vultur 		.offset = 166,
148939bedc16SHoratiu Vultur 		.width = 1,
149039bedc16SHoratiu Vultur 	},
149139bedc16SHoratiu Vultur 	[VCAP_KF_L4_PSH] = {
149239bedc16SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
149339bedc16SHoratiu Vultur 		.offset = 167,
149439bedc16SHoratiu Vultur 		.width = 1,
149539bedc16SHoratiu Vultur 	},
149639bedc16SHoratiu Vultur 	[VCAP_KF_L4_ACK] = {
149739bedc16SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
149839bedc16SHoratiu Vultur 		.offset = 168,
149939bedc16SHoratiu Vultur 		.width = 1,
150039bedc16SHoratiu Vultur 	},
150139bedc16SHoratiu Vultur 	[VCAP_KF_L4_URG] = {
150239bedc16SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
150339bedc16SHoratiu Vultur 		.offset = 169,
150439bedc16SHoratiu Vultur 		.width = 1,
150539bedc16SHoratiu Vultur 	},
150639bedc16SHoratiu Vultur 	[VCAP_KF_L4_1588_DOM] = {
150739bedc16SHoratiu Vultur 		.type = VCAP_FIELD_U32,
150839bedc16SHoratiu Vultur 		.offset = 170,
150939bedc16SHoratiu Vultur 		.width = 8,
151039bedc16SHoratiu Vultur 	},
151139bedc16SHoratiu Vultur 	[VCAP_KF_L4_1588_VER] = {
151239bedc16SHoratiu Vultur 		.type = VCAP_FIELD_U32,
151339bedc16SHoratiu Vultur 		.offset = 178,
151439bedc16SHoratiu Vultur 		.width = 4,
151539bedc16SHoratiu Vultur 	},
151639bedc16SHoratiu Vultur };
151739bedc16SHoratiu Vultur 
151839bedc16SHoratiu Vultur static const struct vcap_field is2_ip4_other_keyfield[] = {
151939bedc16SHoratiu Vultur 	[VCAP_KF_TYPE] = {
152039bedc16SHoratiu Vultur 		.type = VCAP_FIELD_U32,
152139bedc16SHoratiu Vultur 		.offset = 0,
152239bedc16SHoratiu Vultur 		.width = 4,
152339bedc16SHoratiu Vultur 	},
152439bedc16SHoratiu Vultur 	[VCAP_KF_LOOKUP_FIRST_IS] = {
152539bedc16SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
152639bedc16SHoratiu Vultur 		.offset = 4,
152739bedc16SHoratiu Vultur 		.width = 1,
152839bedc16SHoratiu Vultur 	},
152939bedc16SHoratiu Vultur 	[VCAP_KF_LOOKUP_PAG] = {
153039bedc16SHoratiu Vultur 		.type = VCAP_FIELD_U32,
153139bedc16SHoratiu Vultur 		.offset = 5,
153239bedc16SHoratiu Vultur 		.width = 8,
153339bedc16SHoratiu Vultur 	},
153439bedc16SHoratiu Vultur 	[VCAP_KF_IF_IGR_PORT_MASK] = {
153539bedc16SHoratiu Vultur 		.type = VCAP_FIELD_U32,
153639bedc16SHoratiu Vultur 		.offset = 13,
153739bedc16SHoratiu Vultur 		.width = 9,
153839bedc16SHoratiu Vultur 	},
153939bedc16SHoratiu Vultur 	[VCAP_KF_ISDX_GT0_IS] = {
154039bedc16SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
154139bedc16SHoratiu Vultur 		.offset = 22,
154239bedc16SHoratiu Vultur 		.width = 1,
154339bedc16SHoratiu Vultur 	},
154439bedc16SHoratiu Vultur 	[VCAP_KF_HOST_MATCH] = {
154539bedc16SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
154639bedc16SHoratiu Vultur 		.offset = 23,
154739bedc16SHoratiu Vultur 		.width = 1,
154839bedc16SHoratiu Vultur 	},
154939bedc16SHoratiu Vultur 	[VCAP_KF_L2_MC_IS] = {
155039bedc16SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
155139bedc16SHoratiu Vultur 		.offset = 24,
155239bedc16SHoratiu Vultur 		.width = 1,
155339bedc16SHoratiu Vultur 	},
155439bedc16SHoratiu Vultur 	[VCAP_KF_L2_BC_IS] = {
155539bedc16SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
155639bedc16SHoratiu Vultur 		.offset = 25,
155739bedc16SHoratiu Vultur 		.width = 1,
155839bedc16SHoratiu Vultur 	},
155939bedc16SHoratiu Vultur 	[VCAP_KF_8021Q_VLAN_TAGGED_IS] = {
156039bedc16SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
156139bedc16SHoratiu Vultur 		.offset = 26,
156239bedc16SHoratiu Vultur 		.width = 1,
156339bedc16SHoratiu Vultur 	},
156439bedc16SHoratiu Vultur 	[VCAP_KF_8021Q_VID_CLS] = {
156539bedc16SHoratiu Vultur 		.type = VCAP_FIELD_U32,
156639bedc16SHoratiu Vultur 		.offset = 27,
156739bedc16SHoratiu Vultur 		.width = 12,
156839bedc16SHoratiu Vultur 	},
156939bedc16SHoratiu Vultur 	[VCAP_KF_8021Q_DEI_CLS] = {
157039bedc16SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
157139bedc16SHoratiu Vultur 		.offset = 39,
157239bedc16SHoratiu Vultur 		.width = 1,
157339bedc16SHoratiu Vultur 	},
157439bedc16SHoratiu Vultur 	[VCAP_KF_8021Q_PCP_CLS] = {
157539bedc16SHoratiu Vultur 		.type = VCAP_FIELD_U32,
157639bedc16SHoratiu Vultur 		.offset = 40,
157739bedc16SHoratiu Vultur 		.width = 3,
157839bedc16SHoratiu Vultur 	},
157939bedc16SHoratiu Vultur 	[VCAP_KF_IP4_IS] = {
158039bedc16SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
158139bedc16SHoratiu Vultur 		.offset = 43,
158239bedc16SHoratiu Vultur 		.width = 1,
158339bedc16SHoratiu Vultur 	},
158439bedc16SHoratiu Vultur 	[VCAP_KF_L3_FRAGMENT] = {
158539bedc16SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
158639bedc16SHoratiu Vultur 		.offset = 44,
158739bedc16SHoratiu Vultur 		.width = 1,
158839bedc16SHoratiu Vultur 	},
158939bedc16SHoratiu Vultur 	[VCAP_KF_L3_FRAG_OFS_GT0] = {
159039bedc16SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
159139bedc16SHoratiu Vultur 		.offset = 45,
159239bedc16SHoratiu Vultur 		.width = 1,
159339bedc16SHoratiu Vultur 	},
159439bedc16SHoratiu Vultur 	[VCAP_KF_L3_OPTIONS_IS] = {
159539bedc16SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
159639bedc16SHoratiu Vultur 		.offset = 46,
159739bedc16SHoratiu Vultur 		.width = 1,
159839bedc16SHoratiu Vultur 	},
159939bedc16SHoratiu Vultur 	[VCAP_KF_L3_TTL_GT0] = {
160039bedc16SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
160139bedc16SHoratiu Vultur 		.offset = 47,
160239bedc16SHoratiu Vultur 		.width = 1,
160339bedc16SHoratiu Vultur 	},
160439bedc16SHoratiu Vultur 	[VCAP_KF_L3_TOS] = {
160539bedc16SHoratiu Vultur 		.type = VCAP_FIELD_U32,
160639bedc16SHoratiu Vultur 		.offset = 48,
160739bedc16SHoratiu Vultur 		.width = 8,
160839bedc16SHoratiu Vultur 	},
160939bedc16SHoratiu Vultur 	[VCAP_KF_L3_IP4_DIP] = {
161039bedc16SHoratiu Vultur 		.type = VCAP_FIELD_U32,
161139bedc16SHoratiu Vultur 		.offset = 56,
161239bedc16SHoratiu Vultur 		.width = 32,
161339bedc16SHoratiu Vultur 	},
161439bedc16SHoratiu Vultur 	[VCAP_KF_L3_IP4_SIP] = {
161539bedc16SHoratiu Vultur 		.type = VCAP_FIELD_U32,
161639bedc16SHoratiu Vultur 		.offset = 88,
161739bedc16SHoratiu Vultur 		.width = 32,
161839bedc16SHoratiu Vultur 	},
161939bedc16SHoratiu Vultur 	[VCAP_KF_L3_DIP_EQ_SIP_IS] = {
162039bedc16SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
162139bedc16SHoratiu Vultur 		.offset = 120,
162239bedc16SHoratiu Vultur 		.width = 1,
162339bedc16SHoratiu Vultur 	},
162439bedc16SHoratiu Vultur 	[VCAP_KF_L3_IP_PROTO] = {
162539bedc16SHoratiu Vultur 		.type = VCAP_FIELD_U32,
162639bedc16SHoratiu Vultur 		.offset = 121,
162739bedc16SHoratiu Vultur 		.width = 8,
162839bedc16SHoratiu Vultur 	},
162939bedc16SHoratiu Vultur 	[VCAP_KF_L3_PAYLOAD] = {
163039bedc16SHoratiu Vultur 		.type = VCAP_FIELD_U56,
163139bedc16SHoratiu Vultur 		.offset = 129,
163239bedc16SHoratiu Vultur 		.width = 56,
163339bedc16SHoratiu Vultur 	},
163439bedc16SHoratiu Vultur };
163539bedc16SHoratiu Vultur 
163639bedc16SHoratiu Vultur static const struct vcap_field is2_ip6_std_keyfield[] = {
163739bedc16SHoratiu Vultur 	[VCAP_KF_TYPE] = {
163839bedc16SHoratiu Vultur 		.type = VCAP_FIELD_U32,
163939bedc16SHoratiu Vultur 		.offset = 0,
164039bedc16SHoratiu Vultur 		.width = 4,
164139bedc16SHoratiu Vultur 	},
164239bedc16SHoratiu Vultur 	[VCAP_KF_LOOKUP_FIRST_IS] = {
164339bedc16SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
164439bedc16SHoratiu Vultur 		.offset = 4,
164539bedc16SHoratiu Vultur 		.width = 1,
164639bedc16SHoratiu Vultur 	},
164739bedc16SHoratiu Vultur 	[VCAP_KF_LOOKUP_PAG] = {
164839bedc16SHoratiu Vultur 		.type = VCAP_FIELD_U32,
164939bedc16SHoratiu Vultur 		.offset = 5,
165039bedc16SHoratiu Vultur 		.width = 8,
165139bedc16SHoratiu Vultur 	},
165239bedc16SHoratiu Vultur 	[VCAP_KF_IF_IGR_PORT_MASK] = {
165339bedc16SHoratiu Vultur 		.type = VCAP_FIELD_U32,
165439bedc16SHoratiu Vultur 		.offset = 13,
165539bedc16SHoratiu Vultur 		.width = 9,
165639bedc16SHoratiu Vultur 	},
165739bedc16SHoratiu Vultur 	[VCAP_KF_ISDX_GT0_IS] = {
165839bedc16SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
165939bedc16SHoratiu Vultur 		.offset = 22,
166039bedc16SHoratiu Vultur 		.width = 1,
166139bedc16SHoratiu Vultur 	},
166239bedc16SHoratiu Vultur 	[VCAP_KF_HOST_MATCH] = {
166339bedc16SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
166439bedc16SHoratiu Vultur 		.offset = 23,
166539bedc16SHoratiu Vultur 		.width = 1,
166639bedc16SHoratiu Vultur 	},
166739bedc16SHoratiu Vultur 	[VCAP_KF_L2_MC_IS] = {
166839bedc16SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
166939bedc16SHoratiu Vultur 		.offset = 24,
167039bedc16SHoratiu Vultur 		.width = 1,
167139bedc16SHoratiu Vultur 	},
167239bedc16SHoratiu Vultur 	[VCAP_KF_L2_BC_IS] = {
167339bedc16SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
167439bedc16SHoratiu Vultur 		.offset = 25,
167539bedc16SHoratiu Vultur 		.width = 1,
167639bedc16SHoratiu Vultur 	},
167739bedc16SHoratiu Vultur 	[VCAP_KF_8021Q_VLAN_TAGGED_IS] = {
167839bedc16SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
167939bedc16SHoratiu Vultur 		.offset = 26,
168039bedc16SHoratiu Vultur 		.width = 1,
168139bedc16SHoratiu Vultur 	},
168239bedc16SHoratiu Vultur 	[VCAP_KF_8021Q_VID_CLS] = {
168339bedc16SHoratiu Vultur 		.type = VCAP_FIELD_U32,
168439bedc16SHoratiu Vultur 		.offset = 27,
168539bedc16SHoratiu Vultur 		.width = 12,
168639bedc16SHoratiu Vultur 	},
168739bedc16SHoratiu Vultur 	[VCAP_KF_8021Q_DEI_CLS] = {
168839bedc16SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
168939bedc16SHoratiu Vultur 		.offset = 39,
169039bedc16SHoratiu Vultur 		.width = 1,
169139bedc16SHoratiu Vultur 	},
169239bedc16SHoratiu Vultur 	[VCAP_KF_8021Q_PCP_CLS] = {
169339bedc16SHoratiu Vultur 		.type = VCAP_FIELD_U32,
169439bedc16SHoratiu Vultur 		.offset = 40,
169539bedc16SHoratiu Vultur 		.width = 3,
169639bedc16SHoratiu Vultur 	},
169739bedc16SHoratiu Vultur 	[VCAP_KF_L3_TTL_GT0] = {
169839bedc16SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
169939bedc16SHoratiu Vultur 		.offset = 43,
170039bedc16SHoratiu Vultur 		.width = 1,
170139bedc16SHoratiu Vultur 	},
170239bedc16SHoratiu Vultur 	[VCAP_KF_L3_IP6_SIP] = {
170339bedc16SHoratiu Vultur 		.type = VCAP_FIELD_U128,
170439bedc16SHoratiu Vultur 		.offset = 44,
170539bedc16SHoratiu Vultur 		.width = 128,
170639bedc16SHoratiu Vultur 	},
170739bedc16SHoratiu Vultur 	[VCAP_KF_L3_IP_PROTO] = {
170839bedc16SHoratiu Vultur 		.type = VCAP_FIELD_U32,
170939bedc16SHoratiu Vultur 		.offset = 172,
171039bedc16SHoratiu Vultur 		.width = 8,
171139bedc16SHoratiu Vultur 	},
171239bedc16SHoratiu Vultur };
171339bedc16SHoratiu Vultur 
171439bedc16SHoratiu Vultur static const struct vcap_field is2_oam_keyfield[] = {
171539bedc16SHoratiu Vultur 	[VCAP_KF_TYPE] = {
171639bedc16SHoratiu Vultur 		.type = VCAP_FIELD_U32,
171739bedc16SHoratiu Vultur 		.offset = 0,
171839bedc16SHoratiu Vultur 		.width = 4,
171939bedc16SHoratiu Vultur 	},
172039bedc16SHoratiu Vultur 	[VCAP_KF_LOOKUP_FIRST_IS] = {
172139bedc16SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
172239bedc16SHoratiu Vultur 		.offset = 4,
172339bedc16SHoratiu Vultur 		.width = 1,
172439bedc16SHoratiu Vultur 	},
172539bedc16SHoratiu Vultur 	[VCAP_KF_LOOKUP_PAG] = {
172639bedc16SHoratiu Vultur 		.type = VCAP_FIELD_U32,
172739bedc16SHoratiu Vultur 		.offset = 5,
172839bedc16SHoratiu Vultur 		.width = 8,
172939bedc16SHoratiu Vultur 	},
173039bedc16SHoratiu Vultur 	[VCAP_KF_IF_IGR_PORT_MASK] = {
173139bedc16SHoratiu Vultur 		.type = VCAP_FIELD_U32,
173239bedc16SHoratiu Vultur 		.offset = 13,
173339bedc16SHoratiu Vultur 		.width = 9,
173439bedc16SHoratiu Vultur 	},
173539bedc16SHoratiu Vultur 	[VCAP_KF_ISDX_GT0_IS] = {
173639bedc16SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
173739bedc16SHoratiu Vultur 		.offset = 22,
173839bedc16SHoratiu Vultur 		.width = 1,
173939bedc16SHoratiu Vultur 	},
174039bedc16SHoratiu Vultur 	[VCAP_KF_HOST_MATCH] = {
174139bedc16SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
174239bedc16SHoratiu Vultur 		.offset = 23,
174339bedc16SHoratiu Vultur 		.width = 1,
174439bedc16SHoratiu Vultur 	},
174539bedc16SHoratiu Vultur 	[VCAP_KF_L2_MC_IS] = {
174639bedc16SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
174739bedc16SHoratiu Vultur 		.offset = 24,
174839bedc16SHoratiu Vultur 		.width = 1,
174939bedc16SHoratiu Vultur 	},
175039bedc16SHoratiu Vultur 	[VCAP_KF_L2_BC_IS] = {
175139bedc16SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
175239bedc16SHoratiu Vultur 		.offset = 25,
175339bedc16SHoratiu Vultur 		.width = 1,
175439bedc16SHoratiu Vultur 	},
175539bedc16SHoratiu Vultur 	[VCAP_KF_8021Q_VLAN_TAGGED_IS] = {
175639bedc16SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
175739bedc16SHoratiu Vultur 		.offset = 26,
175839bedc16SHoratiu Vultur 		.width = 1,
175939bedc16SHoratiu Vultur 	},
176039bedc16SHoratiu Vultur 	[VCAP_KF_8021Q_VID_CLS] = {
176139bedc16SHoratiu Vultur 		.type = VCAP_FIELD_U32,
176239bedc16SHoratiu Vultur 		.offset = 27,
176339bedc16SHoratiu Vultur 		.width = 12,
176439bedc16SHoratiu Vultur 	},
176539bedc16SHoratiu Vultur 	[VCAP_KF_8021Q_DEI_CLS] = {
176639bedc16SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
176739bedc16SHoratiu Vultur 		.offset = 39,
176839bedc16SHoratiu Vultur 		.width = 1,
176939bedc16SHoratiu Vultur 	},
177039bedc16SHoratiu Vultur 	[VCAP_KF_8021Q_PCP_CLS] = {
177139bedc16SHoratiu Vultur 		.type = VCAP_FIELD_U32,
177239bedc16SHoratiu Vultur 		.offset = 40,
177339bedc16SHoratiu Vultur 		.width = 3,
177439bedc16SHoratiu Vultur 	},
177539bedc16SHoratiu Vultur 	[VCAP_KF_L2_DMAC] = {
177639bedc16SHoratiu Vultur 		.type = VCAP_FIELD_U48,
177739bedc16SHoratiu Vultur 		.offset = 43,
177839bedc16SHoratiu Vultur 		.width = 48,
177939bedc16SHoratiu Vultur 	},
178039bedc16SHoratiu Vultur 	[VCAP_KF_L2_SMAC] = {
178139bedc16SHoratiu Vultur 		.type = VCAP_FIELD_U48,
178239bedc16SHoratiu Vultur 		.offset = 91,
178339bedc16SHoratiu Vultur 		.width = 48,
178439bedc16SHoratiu Vultur 	},
178539bedc16SHoratiu Vultur 	[VCAP_KF_OAM_MEL_FLAGS] = {
178639bedc16SHoratiu Vultur 		.type = VCAP_FIELD_U32,
178739bedc16SHoratiu Vultur 		.offset = 139,
178839bedc16SHoratiu Vultur 		.width = 7,
178939bedc16SHoratiu Vultur 	},
179039bedc16SHoratiu Vultur 	[VCAP_KF_OAM_VER] = {
179139bedc16SHoratiu Vultur 		.type = VCAP_FIELD_U32,
179239bedc16SHoratiu Vultur 		.offset = 146,
179339bedc16SHoratiu Vultur 		.width = 5,
179439bedc16SHoratiu Vultur 	},
179539bedc16SHoratiu Vultur 	[VCAP_KF_OAM_OPCODE] = {
179639bedc16SHoratiu Vultur 		.type = VCAP_FIELD_U32,
179739bedc16SHoratiu Vultur 		.offset = 151,
179839bedc16SHoratiu Vultur 		.width = 8,
179939bedc16SHoratiu Vultur 	},
180039bedc16SHoratiu Vultur 	[VCAP_KF_OAM_FLAGS] = {
180139bedc16SHoratiu Vultur 		.type = VCAP_FIELD_U32,
180239bedc16SHoratiu Vultur 		.offset = 159,
180339bedc16SHoratiu Vultur 		.width = 8,
180439bedc16SHoratiu Vultur 	},
180539bedc16SHoratiu Vultur 	[VCAP_KF_OAM_MEPID] = {
180639bedc16SHoratiu Vultur 		.type = VCAP_FIELD_U32,
180739bedc16SHoratiu Vultur 		.offset = 167,
180839bedc16SHoratiu Vultur 		.width = 16,
180939bedc16SHoratiu Vultur 	},
181039bedc16SHoratiu Vultur 	[VCAP_KF_OAM_CCM_CNTS_EQ0] = {
181139bedc16SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
181239bedc16SHoratiu Vultur 		.offset = 183,
181339bedc16SHoratiu Vultur 		.width = 1,
181439bedc16SHoratiu Vultur 	},
181539bedc16SHoratiu Vultur 	[VCAP_KF_OAM_Y1731_IS] = {
181639bedc16SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
181739bedc16SHoratiu Vultur 		.offset = 184,
181839bedc16SHoratiu Vultur 		.width = 1,
181939bedc16SHoratiu Vultur 	},
182039bedc16SHoratiu Vultur 	[VCAP_KF_OAM_DETECTED] = {
182139bedc16SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
182239bedc16SHoratiu Vultur 		.offset = 185,
182339bedc16SHoratiu Vultur 		.width = 1,
182439bedc16SHoratiu Vultur 	},
182539bedc16SHoratiu Vultur };
182639bedc16SHoratiu Vultur 
182739bedc16SHoratiu Vultur static const struct vcap_field is2_ip6_tcp_udp_keyfield[] = {
182839bedc16SHoratiu Vultur 	[VCAP_KF_TYPE] = {
182939bedc16SHoratiu Vultur 		.type = VCAP_FIELD_U32,
183039bedc16SHoratiu Vultur 		.offset = 0,
183139bedc16SHoratiu Vultur 		.width = 2,
183239bedc16SHoratiu Vultur 	},
183339bedc16SHoratiu Vultur 	[VCAP_KF_LOOKUP_FIRST_IS] = {
183439bedc16SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
183539bedc16SHoratiu Vultur 		.offset = 2,
183639bedc16SHoratiu Vultur 		.width = 1,
183739bedc16SHoratiu Vultur 	},
183839bedc16SHoratiu Vultur 	[VCAP_KF_LOOKUP_PAG] = {
183939bedc16SHoratiu Vultur 		.type = VCAP_FIELD_U32,
184039bedc16SHoratiu Vultur 		.offset = 3,
184139bedc16SHoratiu Vultur 		.width = 8,
184239bedc16SHoratiu Vultur 	},
184339bedc16SHoratiu Vultur 	[VCAP_KF_IF_IGR_PORT_MASK] = {
184439bedc16SHoratiu Vultur 		.type = VCAP_FIELD_U32,
184539bedc16SHoratiu Vultur 		.offset = 11,
184639bedc16SHoratiu Vultur 		.width = 9,
184739bedc16SHoratiu Vultur 	},
184839bedc16SHoratiu Vultur 	[VCAP_KF_ISDX_GT0_IS] = {
184939bedc16SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
185039bedc16SHoratiu Vultur 		.offset = 20,
185139bedc16SHoratiu Vultur 		.width = 1,
185239bedc16SHoratiu Vultur 	},
185339bedc16SHoratiu Vultur 	[VCAP_KF_HOST_MATCH] = {
185439bedc16SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
185539bedc16SHoratiu Vultur 		.offset = 21,
185639bedc16SHoratiu Vultur 		.width = 1,
185739bedc16SHoratiu Vultur 	},
185839bedc16SHoratiu Vultur 	[VCAP_KF_L2_MC_IS] = {
185939bedc16SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
186039bedc16SHoratiu Vultur 		.offset = 22,
186139bedc16SHoratiu Vultur 		.width = 1,
186239bedc16SHoratiu Vultur 	},
186339bedc16SHoratiu Vultur 	[VCAP_KF_L2_BC_IS] = {
186439bedc16SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
186539bedc16SHoratiu Vultur 		.offset = 23,
186639bedc16SHoratiu Vultur 		.width = 1,
186739bedc16SHoratiu Vultur 	},
186839bedc16SHoratiu Vultur 	[VCAP_KF_8021Q_VLAN_TAGGED_IS] = {
186939bedc16SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
187039bedc16SHoratiu Vultur 		.offset = 24,
187139bedc16SHoratiu Vultur 		.width = 1,
187239bedc16SHoratiu Vultur 	},
187339bedc16SHoratiu Vultur 	[VCAP_KF_8021Q_VID_CLS] = {
187439bedc16SHoratiu Vultur 		.type = VCAP_FIELD_U32,
187539bedc16SHoratiu Vultur 		.offset = 25,
187639bedc16SHoratiu Vultur 		.width = 12,
187739bedc16SHoratiu Vultur 	},
187839bedc16SHoratiu Vultur 	[VCAP_KF_8021Q_DEI_CLS] = {
187939bedc16SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
188039bedc16SHoratiu Vultur 		.offset = 37,
188139bedc16SHoratiu Vultur 		.width = 1,
188239bedc16SHoratiu Vultur 	},
188339bedc16SHoratiu Vultur 	[VCAP_KF_8021Q_PCP_CLS] = {
188439bedc16SHoratiu Vultur 		.type = VCAP_FIELD_U32,
188539bedc16SHoratiu Vultur 		.offset = 38,
188639bedc16SHoratiu Vultur 		.width = 3,
188739bedc16SHoratiu Vultur 	},
188839bedc16SHoratiu Vultur 	[VCAP_KF_L3_TTL_GT0] = {
188939bedc16SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
189039bedc16SHoratiu Vultur 		.offset = 41,
189139bedc16SHoratiu Vultur 		.width = 1,
189239bedc16SHoratiu Vultur 	},
189339bedc16SHoratiu Vultur 	[VCAP_KF_L3_TOS] = {
189439bedc16SHoratiu Vultur 		.type = VCAP_FIELD_U32,
189539bedc16SHoratiu Vultur 		.offset = 42,
189639bedc16SHoratiu Vultur 		.width = 8,
189739bedc16SHoratiu Vultur 	},
189839bedc16SHoratiu Vultur 	[VCAP_KF_L3_IP6_DIP] = {
189939bedc16SHoratiu Vultur 		.type = VCAP_FIELD_U128,
190039bedc16SHoratiu Vultur 		.offset = 50,
190139bedc16SHoratiu Vultur 		.width = 128,
190239bedc16SHoratiu Vultur 	},
190339bedc16SHoratiu Vultur 	[VCAP_KF_L3_IP6_SIP] = {
190439bedc16SHoratiu Vultur 		.type = VCAP_FIELD_U128,
190539bedc16SHoratiu Vultur 		.offset = 178,
190639bedc16SHoratiu Vultur 		.width = 128,
190739bedc16SHoratiu Vultur 	},
190839bedc16SHoratiu Vultur 	[VCAP_KF_L3_DIP_EQ_SIP_IS] = {
190939bedc16SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
191039bedc16SHoratiu Vultur 		.offset = 306,
191139bedc16SHoratiu Vultur 		.width = 1,
191239bedc16SHoratiu Vultur 	},
191339bedc16SHoratiu Vultur 	[VCAP_KF_TCP_IS] = {
191439bedc16SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
191539bedc16SHoratiu Vultur 		.offset = 307,
191639bedc16SHoratiu Vultur 		.width = 1,
191739bedc16SHoratiu Vultur 	},
191839bedc16SHoratiu Vultur 	[VCAP_KF_L4_DPORT] = {
191939bedc16SHoratiu Vultur 		.type = VCAP_FIELD_U32,
192039bedc16SHoratiu Vultur 		.offset = 308,
192139bedc16SHoratiu Vultur 		.width = 16,
192239bedc16SHoratiu Vultur 	},
192339bedc16SHoratiu Vultur 	[VCAP_KF_L4_SPORT] = {
192439bedc16SHoratiu Vultur 		.type = VCAP_FIELD_U32,
192539bedc16SHoratiu Vultur 		.offset = 324,
192639bedc16SHoratiu Vultur 		.width = 16,
192739bedc16SHoratiu Vultur 	},
192839bedc16SHoratiu Vultur 	[VCAP_KF_L4_RNG] = {
192939bedc16SHoratiu Vultur 		.type = VCAP_FIELD_U32,
193039bedc16SHoratiu Vultur 		.offset = 340,
193139bedc16SHoratiu Vultur 		.width = 8,
193239bedc16SHoratiu Vultur 	},
193339bedc16SHoratiu Vultur 	[VCAP_KF_L4_SPORT_EQ_DPORT_IS] = {
193439bedc16SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
193539bedc16SHoratiu Vultur 		.offset = 348,
193639bedc16SHoratiu Vultur 		.width = 1,
193739bedc16SHoratiu Vultur 	},
193839bedc16SHoratiu Vultur 	[VCAP_KF_L4_SEQUENCE_EQ0_IS] = {
193939bedc16SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
194039bedc16SHoratiu Vultur 		.offset = 349,
194139bedc16SHoratiu Vultur 		.width = 1,
194239bedc16SHoratiu Vultur 	},
194339bedc16SHoratiu Vultur 	[VCAP_KF_L4_FIN] = {
194439bedc16SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
194539bedc16SHoratiu Vultur 		.offset = 350,
194639bedc16SHoratiu Vultur 		.width = 1,
194739bedc16SHoratiu Vultur 	},
194839bedc16SHoratiu Vultur 	[VCAP_KF_L4_SYN] = {
194939bedc16SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
195039bedc16SHoratiu Vultur 		.offset = 351,
195139bedc16SHoratiu Vultur 		.width = 1,
195239bedc16SHoratiu Vultur 	},
195339bedc16SHoratiu Vultur 	[VCAP_KF_L4_RST] = {
195439bedc16SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
195539bedc16SHoratiu Vultur 		.offset = 352,
195639bedc16SHoratiu Vultur 		.width = 1,
195739bedc16SHoratiu Vultur 	},
195839bedc16SHoratiu Vultur 	[VCAP_KF_L4_PSH] = {
195939bedc16SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
196039bedc16SHoratiu Vultur 		.offset = 353,
196139bedc16SHoratiu Vultur 		.width = 1,
196239bedc16SHoratiu Vultur 	},
196339bedc16SHoratiu Vultur 	[VCAP_KF_L4_ACK] = {
196439bedc16SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
196539bedc16SHoratiu Vultur 		.offset = 354,
196639bedc16SHoratiu Vultur 		.width = 1,
196739bedc16SHoratiu Vultur 	},
196839bedc16SHoratiu Vultur 	[VCAP_KF_L4_URG] = {
196939bedc16SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
197039bedc16SHoratiu Vultur 		.offset = 355,
197139bedc16SHoratiu Vultur 		.width = 1,
197239bedc16SHoratiu Vultur 	},
197339bedc16SHoratiu Vultur 	[VCAP_KF_L4_1588_DOM] = {
197439bedc16SHoratiu Vultur 		.type = VCAP_FIELD_U32,
197539bedc16SHoratiu Vultur 		.offset = 356,
197639bedc16SHoratiu Vultur 		.width = 8,
197739bedc16SHoratiu Vultur 	},
197839bedc16SHoratiu Vultur 	[VCAP_KF_L4_1588_VER] = {
197939bedc16SHoratiu Vultur 		.type = VCAP_FIELD_U32,
198039bedc16SHoratiu Vultur 		.offset = 364,
198139bedc16SHoratiu Vultur 		.width = 4,
198239bedc16SHoratiu Vultur 	},
198339bedc16SHoratiu Vultur };
198439bedc16SHoratiu Vultur 
198539bedc16SHoratiu Vultur static const struct vcap_field is2_ip6_other_keyfield[] = {
198639bedc16SHoratiu Vultur 	[VCAP_KF_TYPE] = {
198739bedc16SHoratiu Vultur 		.type = VCAP_FIELD_U32,
198839bedc16SHoratiu Vultur 		.offset = 0,
198939bedc16SHoratiu Vultur 		.width = 2,
199039bedc16SHoratiu Vultur 	},
199139bedc16SHoratiu Vultur 	[VCAP_KF_LOOKUP_FIRST_IS] = {
199239bedc16SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
199339bedc16SHoratiu Vultur 		.offset = 2,
199439bedc16SHoratiu Vultur 		.width = 1,
199539bedc16SHoratiu Vultur 	},
199639bedc16SHoratiu Vultur 	[VCAP_KF_LOOKUP_PAG] = {
199739bedc16SHoratiu Vultur 		.type = VCAP_FIELD_U32,
199839bedc16SHoratiu Vultur 		.offset = 3,
199939bedc16SHoratiu Vultur 		.width = 8,
200039bedc16SHoratiu Vultur 	},
200139bedc16SHoratiu Vultur 	[VCAP_KF_IF_IGR_PORT_MASK] = {
200239bedc16SHoratiu Vultur 		.type = VCAP_FIELD_U32,
200339bedc16SHoratiu Vultur 		.offset = 11,
200439bedc16SHoratiu Vultur 		.width = 9,
200539bedc16SHoratiu Vultur 	},
200639bedc16SHoratiu Vultur 	[VCAP_KF_ISDX_GT0_IS] = {
200739bedc16SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
200839bedc16SHoratiu Vultur 		.offset = 20,
200939bedc16SHoratiu Vultur 		.width = 1,
201039bedc16SHoratiu Vultur 	},
201139bedc16SHoratiu Vultur 	[VCAP_KF_HOST_MATCH] = {
201239bedc16SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
201339bedc16SHoratiu Vultur 		.offset = 21,
201439bedc16SHoratiu Vultur 		.width = 1,
201539bedc16SHoratiu Vultur 	},
201639bedc16SHoratiu Vultur 	[VCAP_KF_L2_MC_IS] = {
201739bedc16SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
201839bedc16SHoratiu Vultur 		.offset = 22,
201939bedc16SHoratiu Vultur 		.width = 1,
202039bedc16SHoratiu Vultur 	},
202139bedc16SHoratiu Vultur 	[VCAP_KF_L2_BC_IS] = {
202239bedc16SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
202339bedc16SHoratiu Vultur 		.offset = 23,
202439bedc16SHoratiu Vultur 		.width = 1,
202539bedc16SHoratiu Vultur 	},
202639bedc16SHoratiu Vultur 	[VCAP_KF_8021Q_VLAN_TAGGED_IS] = {
202739bedc16SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
202839bedc16SHoratiu Vultur 		.offset = 24,
202939bedc16SHoratiu Vultur 		.width = 1,
203039bedc16SHoratiu Vultur 	},
203139bedc16SHoratiu Vultur 	[VCAP_KF_8021Q_VID_CLS] = {
203239bedc16SHoratiu Vultur 		.type = VCAP_FIELD_U32,
203339bedc16SHoratiu Vultur 		.offset = 25,
203439bedc16SHoratiu Vultur 		.width = 12,
203539bedc16SHoratiu Vultur 	},
203639bedc16SHoratiu Vultur 	[VCAP_KF_8021Q_DEI_CLS] = {
203739bedc16SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
203839bedc16SHoratiu Vultur 		.offset = 37,
203939bedc16SHoratiu Vultur 		.width = 1,
204039bedc16SHoratiu Vultur 	},
204139bedc16SHoratiu Vultur 	[VCAP_KF_8021Q_PCP_CLS] = {
204239bedc16SHoratiu Vultur 		.type = VCAP_FIELD_U32,
204339bedc16SHoratiu Vultur 		.offset = 38,
204439bedc16SHoratiu Vultur 		.width = 3,
204539bedc16SHoratiu Vultur 	},
204639bedc16SHoratiu Vultur 	[VCAP_KF_L3_TTL_GT0] = {
204739bedc16SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
204839bedc16SHoratiu Vultur 		.offset = 41,
204939bedc16SHoratiu Vultur 		.width = 1,
205039bedc16SHoratiu Vultur 	},
205139bedc16SHoratiu Vultur 	[VCAP_KF_L3_TOS] = {
205239bedc16SHoratiu Vultur 		.type = VCAP_FIELD_U32,
205339bedc16SHoratiu Vultur 		.offset = 42,
205439bedc16SHoratiu Vultur 		.width = 8,
205539bedc16SHoratiu Vultur 	},
205639bedc16SHoratiu Vultur 	[VCAP_KF_L3_IP6_DIP] = {
205739bedc16SHoratiu Vultur 		.type = VCAP_FIELD_U128,
205839bedc16SHoratiu Vultur 		.offset = 50,
205939bedc16SHoratiu Vultur 		.width = 128,
206039bedc16SHoratiu Vultur 	},
206139bedc16SHoratiu Vultur 	[VCAP_KF_L3_IP6_SIP] = {
206239bedc16SHoratiu Vultur 		.type = VCAP_FIELD_U128,
206339bedc16SHoratiu Vultur 		.offset = 178,
206439bedc16SHoratiu Vultur 		.width = 128,
206539bedc16SHoratiu Vultur 	},
206639bedc16SHoratiu Vultur 	[VCAP_KF_L3_DIP_EQ_SIP_IS] = {
206739bedc16SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
206839bedc16SHoratiu Vultur 		.offset = 306,
206939bedc16SHoratiu Vultur 		.width = 1,
207039bedc16SHoratiu Vultur 	},
207139bedc16SHoratiu Vultur 	[VCAP_KF_L3_IP_PROTO] = {
207239bedc16SHoratiu Vultur 		.type = VCAP_FIELD_U32,
207339bedc16SHoratiu Vultur 		.offset = 307,
207439bedc16SHoratiu Vultur 		.width = 8,
207539bedc16SHoratiu Vultur 	},
207639bedc16SHoratiu Vultur 	[VCAP_KF_L3_PAYLOAD] = {
207739bedc16SHoratiu Vultur 		.type = VCAP_FIELD_U56,
207839bedc16SHoratiu Vultur 		.offset = 315,
207939bedc16SHoratiu Vultur 		.width = 56,
208039bedc16SHoratiu Vultur 	},
208139bedc16SHoratiu Vultur };
208239bedc16SHoratiu Vultur 
208339bedc16SHoratiu Vultur static const struct vcap_field is2_smac_sip4_keyfield[] = {
208439bedc16SHoratiu Vultur 	[VCAP_KF_IF_IGR_PORT] = {
208539bedc16SHoratiu Vultur 		.type = VCAP_FIELD_U32,
208639bedc16SHoratiu Vultur 		.offset = 0,
208739bedc16SHoratiu Vultur 		.width = 4,
208839bedc16SHoratiu Vultur 	},
208939bedc16SHoratiu Vultur 	[VCAP_KF_L2_SMAC] = {
209039bedc16SHoratiu Vultur 		.type = VCAP_FIELD_U48,
209139bedc16SHoratiu Vultur 		.offset = 4,
209239bedc16SHoratiu Vultur 		.width = 48,
209339bedc16SHoratiu Vultur 	},
209439bedc16SHoratiu Vultur 	[VCAP_KF_L3_IP4_SIP] = {
209539bedc16SHoratiu Vultur 		.type = VCAP_FIELD_U32,
209639bedc16SHoratiu Vultur 		.offset = 52,
209739bedc16SHoratiu Vultur 		.width = 32,
209839bedc16SHoratiu Vultur 	},
209939bedc16SHoratiu Vultur };
210039bedc16SHoratiu Vultur 
210139bedc16SHoratiu Vultur static const struct vcap_field is2_smac_sip6_keyfield[] = {
210239bedc16SHoratiu Vultur 	[VCAP_KF_TYPE] = {
210339bedc16SHoratiu Vultur 		.type = VCAP_FIELD_U32,
210439bedc16SHoratiu Vultur 		.offset = 0,
210539bedc16SHoratiu Vultur 		.width = 4,
210639bedc16SHoratiu Vultur 	},
210739bedc16SHoratiu Vultur 	[VCAP_KF_IF_IGR_PORT] = {
210839bedc16SHoratiu Vultur 		.type = VCAP_FIELD_U32,
210939bedc16SHoratiu Vultur 		.offset = 4,
211039bedc16SHoratiu Vultur 		.width = 4,
211139bedc16SHoratiu Vultur 	},
211239bedc16SHoratiu Vultur 	[VCAP_KF_L2_SMAC] = {
211339bedc16SHoratiu Vultur 		.type = VCAP_FIELD_U48,
211439bedc16SHoratiu Vultur 		.offset = 8,
211539bedc16SHoratiu Vultur 		.width = 48,
211639bedc16SHoratiu Vultur 	},
211739bedc16SHoratiu Vultur 	[VCAP_KF_L3_IP6_SIP] = {
211839bedc16SHoratiu Vultur 		.type = VCAP_FIELD_U128,
211939bedc16SHoratiu Vultur 		.offset = 56,
212039bedc16SHoratiu Vultur 		.width = 128,
212139bedc16SHoratiu Vultur 	},
212239bedc16SHoratiu Vultur };
212339bedc16SHoratiu Vultur 
2124*011be872SHoratiu Vultur static const struct vcap_field es0_vid_keyfield[] = {
2125*011be872SHoratiu Vultur 	[VCAP_KF_IF_EGR_PORT_NO] = {
2126*011be872SHoratiu Vultur 		.type = VCAP_FIELD_U32,
2127*011be872SHoratiu Vultur 		.offset = 0,
2128*011be872SHoratiu Vultur 		.width = 4,
2129*011be872SHoratiu Vultur 	},
2130*011be872SHoratiu Vultur 	[VCAP_KF_IF_IGR_PORT] = {
2131*011be872SHoratiu Vultur 		.type = VCAP_FIELD_U32,
2132*011be872SHoratiu Vultur 		.offset = 4,
2133*011be872SHoratiu Vultur 		.width = 4,
2134*011be872SHoratiu Vultur 	},
2135*011be872SHoratiu Vultur 	[VCAP_KF_ISDX_GT0_IS] = {
2136*011be872SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
2137*011be872SHoratiu Vultur 		.offset = 8,
2138*011be872SHoratiu Vultur 		.width = 1,
2139*011be872SHoratiu Vultur 	},
2140*011be872SHoratiu Vultur 	[VCAP_KF_ISDX_CLS] = {
2141*011be872SHoratiu Vultur 		.type = VCAP_FIELD_U32,
2142*011be872SHoratiu Vultur 		.offset = 9,
2143*011be872SHoratiu Vultur 		.width = 8,
2144*011be872SHoratiu Vultur 	},
2145*011be872SHoratiu Vultur 	[VCAP_KF_L2_MC_IS] = {
2146*011be872SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
2147*011be872SHoratiu Vultur 		.offset = 17,
2148*011be872SHoratiu Vultur 		.width = 1,
2149*011be872SHoratiu Vultur 	},
2150*011be872SHoratiu Vultur 	[VCAP_KF_L2_BC_IS] = {
2151*011be872SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
2152*011be872SHoratiu Vultur 		.offset = 18,
2153*011be872SHoratiu Vultur 		.width = 1,
2154*011be872SHoratiu Vultur 	},
2155*011be872SHoratiu Vultur 	[VCAP_KF_8021Q_VID_CLS] = {
2156*011be872SHoratiu Vultur 		.type = VCAP_FIELD_U32,
2157*011be872SHoratiu Vultur 		.offset = 19,
2158*011be872SHoratiu Vultur 		.width = 12,
2159*011be872SHoratiu Vultur 	},
2160*011be872SHoratiu Vultur 	[VCAP_KF_8021Q_DEI_CLS] = {
2161*011be872SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
2162*011be872SHoratiu Vultur 		.offset = 31,
2163*011be872SHoratiu Vultur 		.width = 1,
2164*011be872SHoratiu Vultur 	},
2165*011be872SHoratiu Vultur 	[VCAP_KF_8021Q_PCP_CLS] = {
2166*011be872SHoratiu Vultur 		.type = VCAP_FIELD_U32,
2167*011be872SHoratiu Vultur 		.offset = 32,
2168*011be872SHoratiu Vultur 		.width = 3,
2169*011be872SHoratiu Vultur 	},
2170*011be872SHoratiu Vultur 	[VCAP_KF_L3_DPL_CLS] = {
2171*011be872SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
2172*011be872SHoratiu Vultur 		.offset = 35,
2173*011be872SHoratiu Vultur 		.width = 1,
2174*011be872SHoratiu Vultur 	},
2175*011be872SHoratiu Vultur 	[VCAP_KF_RTP_ID] = {
2176*011be872SHoratiu Vultur 		.type = VCAP_FIELD_U32,
2177*011be872SHoratiu Vultur 		.offset = 36,
2178*011be872SHoratiu Vultur 		.width = 10,
2179*011be872SHoratiu Vultur 	},
2180*011be872SHoratiu Vultur 	[VCAP_KF_PDU_TYPE] = {
2181*011be872SHoratiu Vultur 		.type = VCAP_FIELD_U32,
2182*011be872SHoratiu Vultur 		.offset = 46,
2183*011be872SHoratiu Vultur 		.width = 4,
2184*011be872SHoratiu Vultur 	},
2185*011be872SHoratiu Vultur };
2186*011be872SHoratiu Vultur 
218739bedc16SHoratiu Vultur /* keyfield_set */
218899ce286dSHoratiu Vultur static const struct vcap_set is1_keyfield_set[] = {
218999ce286dSHoratiu Vultur 	[VCAP_KFS_NORMAL] = {
219099ce286dSHoratiu Vultur 		.type_id = 0,
219199ce286dSHoratiu Vultur 		.sw_per_item = 2,
219299ce286dSHoratiu Vultur 		.sw_cnt = 2,
219399ce286dSHoratiu Vultur 	},
219499ce286dSHoratiu Vultur 	[VCAP_KFS_5TUPLE_IP4] = {
219599ce286dSHoratiu Vultur 		.type_id = 1,
219699ce286dSHoratiu Vultur 		.sw_per_item = 2,
219799ce286dSHoratiu Vultur 		.sw_cnt = 2,
219899ce286dSHoratiu Vultur 	},
219999ce286dSHoratiu Vultur 	[VCAP_KFS_NORMAL_IP6] = {
220099ce286dSHoratiu Vultur 		.type_id = 0,
220199ce286dSHoratiu Vultur 		.sw_per_item = 4,
220299ce286dSHoratiu Vultur 		.sw_cnt = 1,
220399ce286dSHoratiu Vultur 	},
220499ce286dSHoratiu Vultur 	[VCAP_KFS_7TUPLE] = {
220599ce286dSHoratiu Vultur 		.type_id = 1,
220699ce286dSHoratiu Vultur 		.sw_per_item = 4,
220799ce286dSHoratiu Vultur 		.sw_cnt = 1,
220899ce286dSHoratiu Vultur 	},
220999ce286dSHoratiu Vultur 	[VCAP_KFS_5TUPLE_IP6] = {
221099ce286dSHoratiu Vultur 		.type_id = 2,
221199ce286dSHoratiu Vultur 		.sw_per_item = 4,
221299ce286dSHoratiu Vultur 		.sw_cnt = 1,
221399ce286dSHoratiu Vultur 	},
221499ce286dSHoratiu Vultur 	[VCAP_KFS_DBL_VID] = {
221599ce286dSHoratiu Vultur 		.type_id = 0,
221699ce286dSHoratiu Vultur 		.sw_per_item = 1,
221799ce286dSHoratiu Vultur 		.sw_cnt = 4,
221899ce286dSHoratiu Vultur 	},
221999ce286dSHoratiu Vultur 	[VCAP_KFS_RT] = {
222099ce286dSHoratiu Vultur 		.type_id = 1,
222199ce286dSHoratiu Vultur 		.sw_per_item = 1,
222299ce286dSHoratiu Vultur 		.sw_cnt = 4,
222399ce286dSHoratiu Vultur 	},
222499ce286dSHoratiu Vultur 	[VCAP_KFS_DMAC_VID] = {
222599ce286dSHoratiu Vultur 		.type_id = 2,
222699ce286dSHoratiu Vultur 		.sw_per_item = 1,
222799ce286dSHoratiu Vultur 		.sw_cnt = 4,
222899ce286dSHoratiu Vultur 	},
222999ce286dSHoratiu Vultur };
223099ce286dSHoratiu Vultur 
223139bedc16SHoratiu Vultur static const struct vcap_set is2_keyfield_set[] = {
223239bedc16SHoratiu Vultur 	[VCAP_KFS_MAC_ETYPE] = {
223339bedc16SHoratiu Vultur 		.type_id = 0,
223439bedc16SHoratiu Vultur 		.sw_per_item = 2,
223539bedc16SHoratiu Vultur 		.sw_cnt = 2,
223639bedc16SHoratiu Vultur 	},
223739bedc16SHoratiu Vultur 	[VCAP_KFS_MAC_LLC] = {
223839bedc16SHoratiu Vultur 		.type_id = 1,
223939bedc16SHoratiu Vultur 		.sw_per_item = 2,
224039bedc16SHoratiu Vultur 		.sw_cnt = 2,
224139bedc16SHoratiu Vultur 	},
224239bedc16SHoratiu Vultur 	[VCAP_KFS_MAC_SNAP] = {
224339bedc16SHoratiu Vultur 		.type_id = 2,
224439bedc16SHoratiu Vultur 		.sw_per_item = 2,
224539bedc16SHoratiu Vultur 		.sw_cnt = 2,
224639bedc16SHoratiu Vultur 	},
224739bedc16SHoratiu Vultur 	[VCAP_KFS_ARP] = {
224839bedc16SHoratiu Vultur 		.type_id = 3,
224939bedc16SHoratiu Vultur 		.sw_per_item = 2,
225039bedc16SHoratiu Vultur 		.sw_cnt = 2,
225139bedc16SHoratiu Vultur 	},
225239bedc16SHoratiu Vultur 	[VCAP_KFS_IP4_TCP_UDP] = {
225339bedc16SHoratiu Vultur 		.type_id = 4,
225439bedc16SHoratiu Vultur 		.sw_per_item = 2,
225539bedc16SHoratiu Vultur 		.sw_cnt = 2,
225639bedc16SHoratiu Vultur 	},
225739bedc16SHoratiu Vultur 	[VCAP_KFS_IP4_OTHER] = {
225839bedc16SHoratiu Vultur 		.type_id = 5,
225939bedc16SHoratiu Vultur 		.sw_per_item = 2,
226039bedc16SHoratiu Vultur 		.sw_cnt = 2,
226139bedc16SHoratiu Vultur 	},
226239bedc16SHoratiu Vultur 	[VCAP_KFS_IP6_STD] = {
226339bedc16SHoratiu Vultur 		.type_id = 6,
226439bedc16SHoratiu Vultur 		.sw_per_item = 2,
226539bedc16SHoratiu Vultur 		.sw_cnt = 2,
226639bedc16SHoratiu Vultur 	},
226739bedc16SHoratiu Vultur 	[VCAP_KFS_OAM] = {
226839bedc16SHoratiu Vultur 		.type_id = 7,
226939bedc16SHoratiu Vultur 		.sw_per_item = 2,
227039bedc16SHoratiu Vultur 		.sw_cnt = 2,
227139bedc16SHoratiu Vultur 	},
227239bedc16SHoratiu Vultur 	[VCAP_KFS_IP6_TCP_UDP] = {
227339bedc16SHoratiu Vultur 		.type_id = 0,
227439bedc16SHoratiu Vultur 		.sw_per_item = 4,
227539bedc16SHoratiu Vultur 		.sw_cnt = 1,
227639bedc16SHoratiu Vultur 	},
227739bedc16SHoratiu Vultur 	[VCAP_KFS_IP6_OTHER] = {
227839bedc16SHoratiu Vultur 		.type_id = 1,
227939bedc16SHoratiu Vultur 		.sw_per_item = 4,
228039bedc16SHoratiu Vultur 		.sw_cnt = 1,
228139bedc16SHoratiu Vultur 	},
228239bedc16SHoratiu Vultur 	[VCAP_KFS_SMAC_SIP4] = {
228339bedc16SHoratiu Vultur 		.type_id = -1,
228439bedc16SHoratiu Vultur 		.sw_per_item = 1,
228539bedc16SHoratiu Vultur 		.sw_cnt = 4,
228639bedc16SHoratiu Vultur 	},
228739bedc16SHoratiu Vultur 	[VCAP_KFS_SMAC_SIP6] = {
228839bedc16SHoratiu Vultur 		.type_id = 8,
228939bedc16SHoratiu Vultur 		.sw_per_item = 2,
229039bedc16SHoratiu Vultur 		.sw_cnt = 2,
229139bedc16SHoratiu Vultur 	},
229239bedc16SHoratiu Vultur };
229339bedc16SHoratiu Vultur 
2294*011be872SHoratiu Vultur static const struct vcap_set es0_keyfield_set[] = {
2295*011be872SHoratiu Vultur 	[VCAP_KFS_VID] = {
2296*011be872SHoratiu Vultur 		.type_id = -1,
2297*011be872SHoratiu Vultur 		.sw_per_item = 1,
2298*011be872SHoratiu Vultur 		.sw_cnt = 1,
2299*011be872SHoratiu Vultur 	},
2300*011be872SHoratiu Vultur };
2301*011be872SHoratiu Vultur 
230239bedc16SHoratiu Vultur /* keyfield_set map */
230399ce286dSHoratiu Vultur static const struct vcap_field *is1_keyfield_set_map[] = {
230499ce286dSHoratiu Vultur 	[VCAP_KFS_NORMAL] = is1_normal_keyfield,
230599ce286dSHoratiu Vultur 	[VCAP_KFS_5TUPLE_IP4] = is1_5tuple_ip4_keyfield,
230699ce286dSHoratiu Vultur 	[VCAP_KFS_NORMAL_IP6] = is1_normal_ip6_keyfield,
230799ce286dSHoratiu Vultur 	[VCAP_KFS_7TUPLE] = is1_7tuple_keyfield,
230899ce286dSHoratiu Vultur 	[VCAP_KFS_5TUPLE_IP6] = is1_5tuple_ip6_keyfield,
230999ce286dSHoratiu Vultur 	[VCAP_KFS_DBL_VID] = is1_dbl_vid_keyfield,
231099ce286dSHoratiu Vultur 	[VCAP_KFS_RT] = is1_rt_keyfield,
231199ce286dSHoratiu Vultur 	[VCAP_KFS_DMAC_VID] = is1_dmac_vid_keyfield,
231299ce286dSHoratiu Vultur };
231399ce286dSHoratiu Vultur 
231439bedc16SHoratiu Vultur static const struct vcap_field *is2_keyfield_set_map[] = {
231539bedc16SHoratiu Vultur 	[VCAP_KFS_MAC_ETYPE] = is2_mac_etype_keyfield,
231639bedc16SHoratiu Vultur 	[VCAP_KFS_MAC_LLC] = is2_mac_llc_keyfield,
231739bedc16SHoratiu Vultur 	[VCAP_KFS_MAC_SNAP] = is2_mac_snap_keyfield,
231839bedc16SHoratiu Vultur 	[VCAP_KFS_ARP] = is2_arp_keyfield,
231939bedc16SHoratiu Vultur 	[VCAP_KFS_IP4_TCP_UDP] = is2_ip4_tcp_udp_keyfield,
232039bedc16SHoratiu Vultur 	[VCAP_KFS_IP4_OTHER] = is2_ip4_other_keyfield,
232139bedc16SHoratiu Vultur 	[VCAP_KFS_IP6_STD] = is2_ip6_std_keyfield,
232239bedc16SHoratiu Vultur 	[VCAP_KFS_OAM] = is2_oam_keyfield,
232339bedc16SHoratiu Vultur 	[VCAP_KFS_IP6_TCP_UDP] = is2_ip6_tcp_udp_keyfield,
232439bedc16SHoratiu Vultur 	[VCAP_KFS_IP6_OTHER] = is2_ip6_other_keyfield,
232539bedc16SHoratiu Vultur 	[VCAP_KFS_SMAC_SIP4] = is2_smac_sip4_keyfield,
232639bedc16SHoratiu Vultur 	[VCAP_KFS_SMAC_SIP6] = is2_smac_sip6_keyfield,
232739bedc16SHoratiu Vultur };
232839bedc16SHoratiu Vultur 
2329*011be872SHoratiu Vultur static const struct vcap_field *es0_keyfield_set_map[] = {
2330*011be872SHoratiu Vultur 	[VCAP_KFS_VID] = es0_vid_keyfield,
2331*011be872SHoratiu Vultur };
2332*011be872SHoratiu Vultur 
233339bedc16SHoratiu Vultur /* keyfield_set map sizes */
233499ce286dSHoratiu Vultur static int is1_keyfield_set_map_size[] = {
233599ce286dSHoratiu Vultur 	[VCAP_KFS_NORMAL] = ARRAY_SIZE(is1_normal_keyfield),
233699ce286dSHoratiu Vultur 	[VCAP_KFS_5TUPLE_IP4] = ARRAY_SIZE(is1_5tuple_ip4_keyfield),
233799ce286dSHoratiu Vultur 	[VCAP_KFS_NORMAL_IP6] = ARRAY_SIZE(is1_normal_ip6_keyfield),
233899ce286dSHoratiu Vultur 	[VCAP_KFS_7TUPLE] = ARRAY_SIZE(is1_7tuple_keyfield),
233999ce286dSHoratiu Vultur 	[VCAP_KFS_5TUPLE_IP6] = ARRAY_SIZE(is1_5tuple_ip6_keyfield),
234099ce286dSHoratiu Vultur 	[VCAP_KFS_DBL_VID] = ARRAY_SIZE(is1_dbl_vid_keyfield),
234199ce286dSHoratiu Vultur 	[VCAP_KFS_RT] = ARRAY_SIZE(is1_rt_keyfield),
234299ce286dSHoratiu Vultur 	[VCAP_KFS_DMAC_VID] = ARRAY_SIZE(is1_dmac_vid_keyfield),
234399ce286dSHoratiu Vultur };
234499ce286dSHoratiu Vultur 
234539bedc16SHoratiu Vultur static int is2_keyfield_set_map_size[] = {
234639bedc16SHoratiu Vultur 	[VCAP_KFS_MAC_ETYPE] = ARRAY_SIZE(is2_mac_etype_keyfield),
234739bedc16SHoratiu Vultur 	[VCAP_KFS_MAC_LLC] = ARRAY_SIZE(is2_mac_llc_keyfield),
234839bedc16SHoratiu Vultur 	[VCAP_KFS_MAC_SNAP] = ARRAY_SIZE(is2_mac_snap_keyfield),
234939bedc16SHoratiu Vultur 	[VCAP_KFS_ARP] = ARRAY_SIZE(is2_arp_keyfield),
235039bedc16SHoratiu Vultur 	[VCAP_KFS_IP4_TCP_UDP] = ARRAY_SIZE(is2_ip4_tcp_udp_keyfield),
235139bedc16SHoratiu Vultur 	[VCAP_KFS_IP4_OTHER] = ARRAY_SIZE(is2_ip4_other_keyfield),
235239bedc16SHoratiu Vultur 	[VCAP_KFS_IP6_STD] = ARRAY_SIZE(is2_ip6_std_keyfield),
235339bedc16SHoratiu Vultur 	[VCAP_KFS_OAM] = ARRAY_SIZE(is2_oam_keyfield),
235439bedc16SHoratiu Vultur 	[VCAP_KFS_IP6_TCP_UDP] = ARRAY_SIZE(is2_ip6_tcp_udp_keyfield),
235539bedc16SHoratiu Vultur 	[VCAP_KFS_IP6_OTHER] = ARRAY_SIZE(is2_ip6_other_keyfield),
235639bedc16SHoratiu Vultur 	[VCAP_KFS_SMAC_SIP4] = ARRAY_SIZE(is2_smac_sip4_keyfield),
235739bedc16SHoratiu Vultur 	[VCAP_KFS_SMAC_SIP6] = ARRAY_SIZE(is2_smac_sip6_keyfield),
235839bedc16SHoratiu Vultur };
235939bedc16SHoratiu Vultur 
2360*011be872SHoratiu Vultur static int es0_keyfield_set_map_size[] = {
2361*011be872SHoratiu Vultur 	[VCAP_KFS_VID] = ARRAY_SIZE(es0_vid_keyfield),
2362*011be872SHoratiu Vultur };
2363*011be872SHoratiu Vultur 
236439bedc16SHoratiu Vultur /* actionfields */
236599ce286dSHoratiu Vultur static const struct vcap_field is1_s1_actionfield[] = {
236699ce286dSHoratiu Vultur 	[VCAP_AF_TYPE] = {
236799ce286dSHoratiu Vultur 		.type = VCAP_FIELD_BIT,
236899ce286dSHoratiu Vultur 		.offset = 0,
236999ce286dSHoratiu Vultur 		.width = 1,
237099ce286dSHoratiu Vultur 	},
237199ce286dSHoratiu Vultur 	[VCAP_AF_DSCP_ENA] = {
237299ce286dSHoratiu Vultur 		.type = VCAP_FIELD_BIT,
237399ce286dSHoratiu Vultur 		.offset = 1,
237499ce286dSHoratiu Vultur 		.width = 1,
237599ce286dSHoratiu Vultur 	},
237699ce286dSHoratiu Vultur 	[VCAP_AF_DSCP_VAL] = {
237799ce286dSHoratiu Vultur 		.type = VCAP_FIELD_U32,
237899ce286dSHoratiu Vultur 		.offset = 2,
237999ce286dSHoratiu Vultur 		.width = 6,
238099ce286dSHoratiu Vultur 	},
238199ce286dSHoratiu Vultur 	[VCAP_AF_QOS_ENA] = {
238299ce286dSHoratiu Vultur 		.type = VCAP_FIELD_BIT,
238399ce286dSHoratiu Vultur 		.offset = 8,
238499ce286dSHoratiu Vultur 		.width = 1,
238599ce286dSHoratiu Vultur 	},
238699ce286dSHoratiu Vultur 	[VCAP_AF_QOS_VAL] = {
238799ce286dSHoratiu Vultur 		.type = VCAP_FIELD_U32,
238899ce286dSHoratiu Vultur 		.offset = 9,
238999ce286dSHoratiu Vultur 		.width = 3,
239099ce286dSHoratiu Vultur 	},
239199ce286dSHoratiu Vultur 	[VCAP_AF_DP_ENA] = {
239299ce286dSHoratiu Vultur 		.type = VCAP_FIELD_BIT,
239399ce286dSHoratiu Vultur 		.offset = 12,
239499ce286dSHoratiu Vultur 		.width = 1,
239599ce286dSHoratiu Vultur 	},
239699ce286dSHoratiu Vultur 	[VCAP_AF_DP_VAL] = {
239799ce286dSHoratiu Vultur 		.type = VCAP_FIELD_BIT,
239899ce286dSHoratiu Vultur 		.offset = 13,
239999ce286dSHoratiu Vultur 		.width = 1,
240099ce286dSHoratiu Vultur 	},
240199ce286dSHoratiu Vultur 	[VCAP_AF_PAG_OVERRIDE_MASK] = {
240299ce286dSHoratiu Vultur 		.type = VCAP_FIELD_U32,
240399ce286dSHoratiu Vultur 		.offset = 14,
240499ce286dSHoratiu Vultur 		.width = 8,
240599ce286dSHoratiu Vultur 	},
240699ce286dSHoratiu Vultur 	[VCAP_AF_PAG_VAL] = {
240799ce286dSHoratiu Vultur 		.type = VCAP_FIELD_U32,
240899ce286dSHoratiu Vultur 		.offset = 22,
240999ce286dSHoratiu Vultur 		.width = 8,
241099ce286dSHoratiu Vultur 	},
241199ce286dSHoratiu Vultur 	[VCAP_AF_ISDX_REPLACE_ENA] = {
241299ce286dSHoratiu Vultur 		.type = VCAP_FIELD_BIT,
241399ce286dSHoratiu Vultur 		.offset = 30,
241499ce286dSHoratiu Vultur 		.width = 1,
241599ce286dSHoratiu Vultur 	},
241699ce286dSHoratiu Vultur 	[VCAP_AF_ISDX_ADD_VAL] = {
241799ce286dSHoratiu Vultur 		.type = VCAP_FIELD_U32,
241899ce286dSHoratiu Vultur 		.offset = 31,
241999ce286dSHoratiu Vultur 		.width = 8,
242099ce286dSHoratiu Vultur 	},
242199ce286dSHoratiu Vultur 	[VCAP_AF_VID_REPLACE_ENA] = {
242299ce286dSHoratiu Vultur 		.type = VCAP_FIELD_BIT,
242399ce286dSHoratiu Vultur 		.offset = 39,
242499ce286dSHoratiu Vultur 		.width = 1,
242599ce286dSHoratiu Vultur 	},
242699ce286dSHoratiu Vultur 	[VCAP_AF_VID_VAL] = {
242799ce286dSHoratiu Vultur 		.type = VCAP_FIELD_U32,
242899ce286dSHoratiu Vultur 		.offset = 40,
242999ce286dSHoratiu Vultur 		.width = 12,
243099ce286dSHoratiu Vultur 	},
243199ce286dSHoratiu Vultur 	[VCAP_AF_PCP_ENA] = {
243299ce286dSHoratiu Vultur 		.type = VCAP_FIELD_BIT,
243399ce286dSHoratiu Vultur 		.offset = 67,
243499ce286dSHoratiu Vultur 		.width = 1,
243599ce286dSHoratiu Vultur 	},
243699ce286dSHoratiu Vultur 	[VCAP_AF_PCP_VAL] = {
243799ce286dSHoratiu Vultur 		.type = VCAP_FIELD_U32,
243899ce286dSHoratiu Vultur 		.offset = 68,
243999ce286dSHoratiu Vultur 		.width = 3,
244099ce286dSHoratiu Vultur 	},
244199ce286dSHoratiu Vultur 	[VCAP_AF_DEI_ENA] = {
244299ce286dSHoratiu Vultur 		.type = VCAP_FIELD_BIT,
244399ce286dSHoratiu Vultur 		.offset = 71,
244499ce286dSHoratiu Vultur 		.width = 1,
244599ce286dSHoratiu Vultur 	},
244699ce286dSHoratiu Vultur 	[VCAP_AF_DEI_VAL] = {
244799ce286dSHoratiu Vultur 		.type = VCAP_FIELD_BIT,
244899ce286dSHoratiu Vultur 		.offset = 72,
244999ce286dSHoratiu Vultur 		.width = 1,
245099ce286dSHoratiu Vultur 	},
245199ce286dSHoratiu Vultur 	[VCAP_AF_VLAN_POP_CNT_ENA] = {
245299ce286dSHoratiu Vultur 		.type = VCAP_FIELD_BIT,
245399ce286dSHoratiu Vultur 		.offset = 73,
245499ce286dSHoratiu Vultur 		.width = 1,
245599ce286dSHoratiu Vultur 	},
245699ce286dSHoratiu Vultur 	[VCAP_AF_VLAN_POP_CNT] = {
245799ce286dSHoratiu Vultur 		.type = VCAP_FIELD_U32,
245899ce286dSHoratiu Vultur 		.offset = 74,
245999ce286dSHoratiu Vultur 		.width = 2,
246099ce286dSHoratiu Vultur 	},
246199ce286dSHoratiu Vultur 	[VCAP_AF_CUSTOM_ACE_TYPE_ENA] = {
246299ce286dSHoratiu Vultur 		.type = VCAP_FIELD_U32,
246399ce286dSHoratiu Vultur 		.offset = 76,
246499ce286dSHoratiu Vultur 		.width = 4,
246599ce286dSHoratiu Vultur 	},
246699ce286dSHoratiu Vultur 	[VCAP_AF_SFID_ENA] = {
246799ce286dSHoratiu Vultur 		.type = VCAP_FIELD_BIT,
246899ce286dSHoratiu Vultur 		.offset = 80,
246999ce286dSHoratiu Vultur 		.width = 1,
247099ce286dSHoratiu Vultur 	},
247199ce286dSHoratiu Vultur 	[VCAP_AF_SFID_VAL] = {
247299ce286dSHoratiu Vultur 		.type = VCAP_FIELD_U32,
247399ce286dSHoratiu Vultur 		.offset = 81,
247499ce286dSHoratiu Vultur 		.width = 8,
247599ce286dSHoratiu Vultur 	},
247699ce286dSHoratiu Vultur 	[VCAP_AF_SGID_ENA] = {
247799ce286dSHoratiu Vultur 		.type = VCAP_FIELD_BIT,
247899ce286dSHoratiu Vultur 		.offset = 89,
247999ce286dSHoratiu Vultur 		.width = 1,
248099ce286dSHoratiu Vultur 	},
248199ce286dSHoratiu Vultur 	[VCAP_AF_SGID_VAL] = {
248299ce286dSHoratiu Vultur 		.type = VCAP_FIELD_U32,
248399ce286dSHoratiu Vultur 		.offset = 90,
248499ce286dSHoratiu Vultur 		.width = 8,
248599ce286dSHoratiu Vultur 	},
248699ce286dSHoratiu Vultur 	[VCAP_AF_POLICE_ENA] = {
248799ce286dSHoratiu Vultur 		.type = VCAP_FIELD_BIT,
248899ce286dSHoratiu Vultur 		.offset = 98,
248999ce286dSHoratiu Vultur 		.width = 1,
249099ce286dSHoratiu Vultur 	},
249199ce286dSHoratiu Vultur 	[VCAP_AF_POLICE_IDX] = {
249299ce286dSHoratiu Vultur 		.type = VCAP_FIELD_U32,
249399ce286dSHoratiu Vultur 		.offset = 99,
249499ce286dSHoratiu Vultur 		.width = 9,
249599ce286dSHoratiu Vultur 	},
249699ce286dSHoratiu Vultur 	[VCAP_AF_OAM_SEL] = {
249799ce286dSHoratiu Vultur 		.type = VCAP_FIELD_U32,
249899ce286dSHoratiu Vultur 		.offset = 108,
249999ce286dSHoratiu Vultur 		.width = 3,
250099ce286dSHoratiu Vultur 	},
250199ce286dSHoratiu Vultur 	[VCAP_AF_MRP_SEL] = {
250299ce286dSHoratiu Vultur 		.type = VCAP_FIELD_U32,
250399ce286dSHoratiu Vultur 		.offset = 111,
250499ce286dSHoratiu Vultur 		.width = 2,
250599ce286dSHoratiu Vultur 	},
250699ce286dSHoratiu Vultur 	[VCAP_AF_DLR_SEL] = {
250799ce286dSHoratiu Vultur 		.type = VCAP_FIELD_U32,
250899ce286dSHoratiu Vultur 		.offset = 113,
250999ce286dSHoratiu Vultur 		.width = 2,
251099ce286dSHoratiu Vultur 	},
251199ce286dSHoratiu Vultur };
251299ce286dSHoratiu Vultur 
251339bedc16SHoratiu Vultur static const struct vcap_field is2_base_type_actionfield[] = {
251439bedc16SHoratiu Vultur 	[VCAP_AF_HIT_ME_ONCE] = {
251539bedc16SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
251639bedc16SHoratiu Vultur 		.offset = 0,
251739bedc16SHoratiu Vultur 		.width = 1,
251839bedc16SHoratiu Vultur 	},
251939bedc16SHoratiu Vultur 	[VCAP_AF_CPU_COPY_ENA] = {
252039bedc16SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
252139bedc16SHoratiu Vultur 		.offset = 1,
252239bedc16SHoratiu Vultur 		.width = 1,
252339bedc16SHoratiu Vultur 	},
252439bedc16SHoratiu Vultur 	[VCAP_AF_CPU_QUEUE_NUM] = {
252539bedc16SHoratiu Vultur 		.type = VCAP_FIELD_U32,
252639bedc16SHoratiu Vultur 		.offset = 2,
252739bedc16SHoratiu Vultur 		.width = 3,
252839bedc16SHoratiu Vultur 	},
252939bedc16SHoratiu Vultur 	[VCAP_AF_MASK_MODE] = {
253039bedc16SHoratiu Vultur 		.type = VCAP_FIELD_U32,
253139bedc16SHoratiu Vultur 		.offset = 5,
253239bedc16SHoratiu Vultur 		.width = 2,
253339bedc16SHoratiu Vultur 	},
253439bedc16SHoratiu Vultur 	[VCAP_AF_MIRROR_ENA] = {
253539bedc16SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
253639bedc16SHoratiu Vultur 		.offset = 7,
253739bedc16SHoratiu Vultur 		.width = 1,
253839bedc16SHoratiu Vultur 	},
253939bedc16SHoratiu Vultur 	[VCAP_AF_LRN_DIS] = {
254039bedc16SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
254139bedc16SHoratiu Vultur 		.offset = 8,
254239bedc16SHoratiu Vultur 		.width = 1,
254339bedc16SHoratiu Vultur 	},
254439bedc16SHoratiu Vultur 	[VCAP_AF_POLICE_ENA] = {
254539bedc16SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
254639bedc16SHoratiu Vultur 		.offset = 9,
254739bedc16SHoratiu Vultur 		.width = 1,
254839bedc16SHoratiu Vultur 	},
254939bedc16SHoratiu Vultur 	[VCAP_AF_POLICE_IDX] = {
255039bedc16SHoratiu Vultur 		.type = VCAP_FIELD_U32,
255139bedc16SHoratiu Vultur 		.offset = 10,
255239bedc16SHoratiu Vultur 		.width = 9,
255339bedc16SHoratiu Vultur 	},
255439bedc16SHoratiu Vultur 	[VCAP_AF_POLICE_VCAP_ONLY] = {
255539bedc16SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
255639bedc16SHoratiu Vultur 		.offset = 19,
255739bedc16SHoratiu Vultur 		.width = 1,
255839bedc16SHoratiu Vultur 	},
255939bedc16SHoratiu Vultur 	[VCAP_AF_PORT_MASK] = {
256039bedc16SHoratiu Vultur 		.type = VCAP_FIELD_U32,
256139bedc16SHoratiu Vultur 		.offset = 20,
256239bedc16SHoratiu Vultur 		.width = 8,
256339bedc16SHoratiu Vultur 	},
256439bedc16SHoratiu Vultur 	[VCAP_AF_REW_OP] = {
256539bedc16SHoratiu Vultur 		.type = VCAP_FIELD_U32,
256639bedc16SHoratiu Vultur 		.offset = 28,
256739bedc16SHoratiu Vultur 		.width = 16,
256839bedc16SHoratiu Vultur 	},
256939bedc16SHoratiu Vultur 	[VCAP_AF_ISDX_ENA] = {
257039bedc16SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
257139bedc16SHoratiu Vultur 		.offset = 44,
257239bedc16SHoratiu Vultur 		.width = 1,
257339bedc16SHoratiu Vultur 	},
257439bedc16SHoratiu Vultur 	[VCAP_AF_ACL_ID] = {
257539bedc16SHoratiu Vultur 		.type = VCAP_FIELD_U32,
257639bedc16SHoratiu Vultur 		.offset = 45,
257739bedc16SHoratiu Vultur 		.width = 6,
257839bedc16SHoratiu Vultur 	},
257939bedc16SHoratiu Vultur };
258039bedc16SHoratiu Vultur 
258139bedc16SHoratiu Vultur static const struct vcap_field is2_smac_sip_actionfield[] = {
258239bedc16SHoratiu Vultur 	[VCAP_AF_CPU_COPY_ENA] = {
258339bedc16SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
258439bedc16SHoratiu Vultur 		.offset = 0,
258539bedc16SHoratiu Vultur 		.width = 1,
258639bedc16SHoratiu Vultur 	},
258739bedc16SHoratiu Vultur 	[VCAP_AF_CPU_QUEUE_NUM] = {
258839bedc16SHoratiu Vultur 		.type = VCAP_FIELD_U32,
258939bedc16SHoratiu Vultur 		.offset = 1,
259039bedc16SHoratiu Vultur 		.width = 3,
259139bedc16SHoratiu Vultur 	},
259239bedc16SHoratiu Vultur 	[VCAP_AF_FWD_KILL_ENA] = {
259339bedc16SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
259439bedc16SHoratiu Vultur 		.offset = 4,
259539bedc16SHoratiu Vultur 		.width = 1,
259639bedc16SHoratiu Vultur 	},
259739bedc16SHoratiu Vultur 	[VCAP_AF_HOST_MATCH] = {
259839bedc16SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
259939bedc16SHoratiu Vultur 		.offset = 5,
260039bedc16SHoratiu Vultur 		.width = 1,
260139bedc16SHoratiu Vultur 	},
260239bedc16SHoratiu Vultur };
260339bedc16SHoratiu Vultur 
2604*011be872SHoratiu Vultur static const struct vcap_field es0_vid_actionfield[] = {
2605*011be872SHoratiu Vultur 	[VCAP_AF_PUSH_OUTER_TAG] = {
2606*011be872SHoratiu Vultur 		.type = VCAP_FIELD_U32,
2607*011be872SHoratiu Vultur 		.offset = 0,
2608*011be872SHoratiu Vultur 		.width = 2,
2609*011be872SHoratiu Vultur 	},
2610*011be872SHoratiu Vultur 	[VCAP_AF_PUSH_INNER_TAG] = {
2611*011be872SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
2612*011be872SHoratiu Vultur 		.offset = 2,
2613*011be872SHoratiu Vultur 		.width = 1,
2614*011be872SHoratiu Vultur 	},
2615*011be872SHoratiu Vultur 	[VCAP_AF_TAG_A_TPID_SEL] = {
2616*011be872SHoratiu Vultur 		.type = VCAP_FIELD_U32,
2617*011be872SHoratiu Vultur 		.offset = 3,
2618*011be872SHoratiu Vultur 		.width = 2,
2619*011be872SHoratiu Vultur 	},
2620*011be872SHoratiu Vultur 	[VCAP_AF_TAG_A_VID_SEL] = {
2621*011be872SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
2622*011be872SHoratiu Vultur 		.offset = 5,
2623*011be872SHoratiu Vultur 		.width = 1,
2624*011be872SHoratiu Vultur 	},
2625*011be872SHoratiu Vultur 	[VCAP_AF_TAG_A_PCP_SEL] = {
2626*011be872SHoratiu Vultur 		.type = VCAP_FIELD_U32,
2627*011be872SHoratiu Vultur 		.offset = 6,
2628*011be872SHoratiu Vultur 		.width = 2,
2629*011be872SHoratiu Vultur 	},
2630*011be872SHoratiu Vultur 	[VCAP_AF_TAG_A_DEI_SEL] = {
2631*011be872SHoratiu Vultur 		.type = VCAP_FIELD_U32,
2632*011be872SHoratiu Vultur 		.offset = 8,
2633*011be872SHoratiu Vultur 		.width = 2,
2634*011be872SHoratiu Vultur 	},
2635*011be872SHoratiu Vultur 	[VCAP_AF_TAG_B_TPID_SEL] = {
2636*011be872SHoratiu Vultur 		.type = VCAP_FIELD_U32,
2637*011be872SHoratiu Vultur 		.offset = 10,
2638*011be872SHoratiu Vultur 		.width = 2,
2639*011be872SHoratiu Vultur 	},
2640*011be872SHoratiu Vultur 	[VCAP_AF_TAG_B_VID_SEL] = {
2641*011be872SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
2642*011be872SHoratiu Vultur 		.offset = 12,
2643*011be872SHoratiu Vultur 		.width = 1,
2644*011be872SHoratiu Vultur 	},
2645*011be872SHoratiu Vultur 	[VCAP_AF_TAG_B_PCP_SEL] = {
2646*011be872SHoratiu Vultur 		.type = VCAP_FIELD_U32,
2647*011be872SHoratiu Vultur 		.offset = 13,
2648*011be872SHoratiu Vultur 		.width = 2,
2649*011be872SHoratiu Vultur 	},
2650*011be872SHoratiu Vultur 	[VCAP_AF_TAG_B_DEI_SEL] = {
2651*011be872SHoratiu Vultur 		.type = VCAP_FIELD_U32,
2652*011be872SHoratiu Vultur 		.offset = 15,
2653*011be872SHoratiu Vultur 		.width = 2,
2654*011be872SHoratiu Vultur 	},
2655*011be872SHoratiu Vultur 	[VCAP_AF_VID_A_VAL] = {
2656*011be872SHoratiu Vultur 		.type = VCAP_FIELD_U32,
2657*011be872SHoratiu Vultur 		.offset = 17,
2658*011be872SHoratiu Vultur 		.width = 12,
2659*011be872SHoratiu Vultur 	},
2660*011be872SHoratiu Vultur 	[VCAP_AF_PCP_A_VAL] = {
2661*011be872SHoratiu Vultur 		.type = VCAP_FIELD_U32,
2662*011be872SHoratiu Vultur 		.offset = 29,
2663*011be872SHoratiu Vultur 		.width = 3,
2664*011be872SHoratiu Vultur 	},
2665*011be872SHoratiu Vultur 	[VCAP_AF_DEI_A_VAL] = {
2666*011be872SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
2667*011be872SHoratiu Vultur 		.offset = 32,
2668*011be872SHoratiu Vultur 		.width = 1,
2669*011be872SHoratiu Vultur 	},
2670*011be872SHoratiu Vultur 	[VCAP_AF_VID_B_VAL] = {
2671*011be872SHoratiu Vultur 		.type = VCAP_FIELD_U32,
2672*011be872SHoratiu Vultur 		.offset = 33,
2673*011be872SHoratiu Vultur 		.width = 12,
2674*011be872SHoratiu Vultur 	},
2675*011be872SHoratiu Vultur 	[VCAP_AF_PCP_B_VAL] = {
2676*011be872SHoratiu Vultur 		.type = VCAP_FIELD_U32,
2677*011be872SHoratiu Vultur 		.offset = 45,
2678*011be872SHoratiu Vultur 		.width = 3,
2679*011be872SHoratiu Vultur 	},
2680*011be872SHoratiu Vultur 	[VCAP_AF_DEI_B_VAL] = {
2681*011be872SHoratiu Vultur 		.type = VCAP_FIELD_BIT,
2682*011be872SHoratiu Vultur 		.offset = 48,
2683*011be872SHoratiu Vultur 		.width = 1,
2684*011be872SHoratiu Vultur 	},
2685*011be872SHoratiu Vultur 	[VCAP_AF_ESDX] = {
2686*011be872SHoratiu Vultur 		.type = VCAP_FIELD_U32,
2687*011be872SHoratiu Vultur 		.offset = 49,
2688*011be872SHoratiu Vultur 		.width = 8,
2689*011be872SHoratiu Vultur 	},
2690*011be872SHoratiu Vultur };
2691*011be872SHoratiu Vultur 
269239bedc16SHoratiu Vultur /* actionfield_set */
269399ce286dSHoratiu Vultur static const struct vcap_set is1_actionfield_set[] = {
269499ce286dSHoratiu Vultur 	[VCAP_AFS_S1] = {
269599ce286dSHoratiu Vultur 		.type_id = 0,
269699ce286dSHoratiu Vultur 		.sw_per_item = 1,
269799ce286dSHoratiu Vultur 		.sw_cnt = 4,
269899ce286dSHoratiu Vultur 	},
269999ce286dSHoratiu Vultur };
270099ce286dSHoratiu Vultur 
270139bedc16SHoratiu Vultur static const struct vcap_set is2_actionfield_set[] = {
270239bedc16SHoratiu Vultur 	[VCAP_AFS_BASE_TYPE] = {
270339bedc16SHoratiu Vultur 		.type_id = -1,
270439bedc16SHoratiu Vultur 		.sw_per_item = 2,
270539bedc16SHoratiu Vultur 		.sw_cnt = 2,
270639bedc16SHoratiu Vultur 	},
270739bedc16SHoratiu Vultur 	[VCAP_AFS_SMAC_SIP] = {
270839bedc16SHoratiu Vultur 		.type_id = -1,
270939bedc16SHoratiu Vultur 		.sw_per_item = 1,
271039bedc16SHoratiu Vultur 		.sw_cnt = 4,
271139bedc16SHoratiu Vultur 	},
271239bedc16SHoratiu Vultur };
271339bedc16SHoratiu Vultur 
2714*011be872SHoratiu Vultur static const struct vcap_set es0_actionfield_set[] = {
2715*011be872SHoratiu Vultur 	[VCAP_AFS_VID] = {
2716*011be872SHoratiu Vultur 		.type_id = -1,
2717*011be872SHoratiu Vultur 		.sw_per_item = 1,
2718*011be872SHoratiu Vultur 		.sw_cnt = 1,
2719*011be872SHoratiu Vultur 	},
2720*011be872SHoratiu Vultur };
2721*011be872SHoratiu Vultur 
272239bedc16SHoratiu Vultur /* actionfield_set map */
272399ce286dSHoratiu Vultur static const struct vcap_field *is1_actionfield_set_map[] = {
272499ce286dSHoratiu Vultur 	[VCAP_AFS_S1] = is1_s1_actionfield,
272599ce286dSHoratiu Vultur };
272699ce286dSHoratiu Vultur 
272739bedc16SHoratiu Vultur static const struct vcap_field *is2_actionfield_set_map[] = {
272839bedc16SHoratiu Vultur 	[VCAP_AFS_BASE_TYPE] = is2_base_type_actionfield,
272939bedc16SHoratiu Vultur 	[VCAP_AFS_SMAC_SIP] = is2_smac_sip_actionfield,
273039bedc16SHoratiu Vultur };
273139bedc16SHoratiu Vultur 
2732*011be872SHoratiu Vultur static const struct vcap_field *es0_actionfield_set_map[] = {
2733*011be872SHoratiu Vultur 	[VCAP_AFS_VID] = es0_vid_actionfield,
2734*011be872SHoratiu Vultur };
2735*011be872SHoratiu Vultur 
273639bedc16SHoratiu Vultur /* actionfield_set map size */
273799ce286dSHoratiu Vultur static int is1_actionfield_set_map_size[] = {
273899ce286dSHoratiu Vultur 	[VCAP_AFS_S1] = ARRAY_SIZE(is1_s1_actionfield),
273999ce286dSHoratiu Vultur };
274099ce286dSHoratiu Vultur 
274139bedc16SHoratiu Vultur static int is2_actionfield_set_map_size[] = {
274239bedc16SHoratiu Vultur 	[VCAP_AFS_BASE_TYPE] = ARRAY_SIZE(is2_base_type_actionfield),
274339bedc16SHoratiu Vultur 	[VCAP_AFS_SMAC_SIP] = ARRAY_SIZE(is2_smac_sip_actionfield),
274439bedc16SHoratiu Vultur };
274539bedc16SHoratiu Vultur 
2746*011be872SHoratiu Vultur static int es0_actionfield_set_map_size[] = {
2747*011be872SHoratiu Vultur 	[VCAP_AFS_VID] = ARRAY_SIZE(es0_vid_actionfield),
2748*011be872SHoratiu Vultur };
2749*011be872SHoratiu Vultur 
275039bedc16SHoratiu Vultur /* Type Groups */
275199ce286dSHoratiu Vultur static const struct vcap_typegroup is1_x4_keyfield_set_typegroups[] = {
275299ce286dSHoratiu Vultur 	{
275399ce286dSHoratiu Vultur 		.offset = 0,
275499ce286dSHoratiu Vultur 		.width = 3,
275599ce286dSHoratiu Vultur 		.value = 4,
275699ce286dSHoratiu Vultur 	},
275799ce286dSHoratiu Vultur 	{
275899ce286dSHoratiu Vultur 		.offset = 96,
275999ce286dSHoratiu Vultur 		.width = 1,
276099ce286dSHoratiu Vultur 		.value = 0,
276199ce286dSHoratiu Vultur 	},
276299ce286dSHoratiu Vultur 	{
276399ce286dSHoratiu Vultur 		.offset = 192,
276499ce286dSHoratiu Vultur 		.width = 2,
276599ce286dSHoratiu Vultur 		.value = 0,
276699ce286dSHoratiu Vultur 	},
276799ce286dSHoratiu Vultur 	{
276899ce286dSHoratiu Vultur 		.offset = 288,
276999ce286dSHoratiu Vultur 		.width = 1,
277099ce286dSHoratiu Vultur 		.value = 0,
277199ce286dSHoratiu Vultur 	},
277299ce286dSHoratiu Vultur 	{}
277399ce286dSHoratiu Vultur };
277499ce286dSHoratiu Vultur 
277599ce286dSHoratiu Vultur static const struct vcap_typegroup is1_x2_keyfield_set_typegroups[] = {
277699ce286dSHoratiu Vultur 	{
277799ce286dSHoratiu Vultur 		.offset = 0,
277899ce286dSHoratiu Vultur 		.width = 2,
277999ce286dSHoratiu Vultur 		.value = 2,
278099ce286dSHoratiu Vultur 	},
278199ce286dSHoratiu Vultur 	{
278299ce286dSHoratiu Vultur 		.offset = 96,
278399ce286dSHoratiu Vultur 		.width = 1,
278499ce286dSHoratiu Vultur 		.value = 0,
278599ce286dSHoratiu Vultur 	},
278699ce286dSHoratiu Vultur 	{}
278799ce286dSHoratiu Vultur };
278899ce286dSHoratiu Vultur 
278999ce286dSHoratiu Vultur static const struct vcap_typegroup is1_x1_keyfield_set_typegroups[] = {
279099ce286dSHoratiu Vultur 	{
279199ce286dSHoratiu Vultur 		.offset = 0,
279299ce286dSHoratiu Vultur 		.width = 1,
279399ce286dSHoratiu Vultur 		.value = 1,
279499ce286dSHoratiu Vultur 	},
279599ce286dSHoratiu Vultur 	{}
279699ce286dSHoratiu Vultur };
279799ce286dSHoratiu Vultur 
279839bedc16SHoratiu Vultur static const struct vcap_typegroup is2_x4_keyfield_set_typegroups[] = {
279939bedc16SHoratiu Vultur 	{
280039bedc16SHoratiu Vultur 		.offset = 0,
280139bedc16SHoratiu Vultur 		.width = 3,
280239bedc16SHoratiu Vultur 		.value = 4,
280339bedc16SHoratiu Vultur 	},
280439bedc16SHoratiu Vultur 	{
280539bedc16SHoratiu Vultur 		.offset = 96,
280639bedc16SHoratiu Vultur 		.width = 1,
280739bedc16SHoratiu Vultur 		.value = 0,
280839bedc16SHoratiu Vultur 	},
280939bedc16SHoratiu Vultur 	{
281039bedc16SHoratiu Vultur 		.offset = 192,
281139bedc16SHoratiu Vultur 		.width = 2,
281239bedc16SHoratiu Vultur 		.value = 0,
281339bedc16SHoratiu Vultur 	},
281439bedc16SHoratiu Vultur 	{
281539bedc16SHoratiu Vultur 		.offset = 288,
281639bedc16SHoratiu Vultur 		.width = 1,
281739bedc16SHoratiu Vultur 		.value = 0,
281839bedc16SHoratiu Vultur 	},
281939bedc16SHoratiu Vultur 	{}
282039bedc16SHoratiu Vultur };
282139bedc16SHoratiu Vultur 
282239bedc16SHoratiu Vultur static const struct vcap_typegroup is2_x2_keyfield_set_typegroups[] = {
282339bedc16SHoratiu Vultur 	{
282439bedc16SHoratiu Vultur 		.offset = 0,
282539bedc16SHoratiu Vultur 		.width = 2,
282639bedc16SHoratiu Vultur 		.value = 2,
282739bedc16SHoratiu Vultur 	},
282839bedc16SHoratiu Vultur 	{
282939bedc16SHoratiu Vultur 		.offset = 96,
283039bedc16SHoratiu Vultur 		.width = 1,
283139bedc16SHoratiu Vultur 		.value = 0,
283239bedc16SHoratiu Vultur 	},
283339bedc16SHoratiu Vultur 	{}
283439bedc16SHoratiu Vultur };
283539bedc16SHoratiu Vultur 
283639bedc16SHoratiu Vultur static const struct vcap_typegroup is2_x1_keyfield_set_typegroups[] = {
283739bedc16SHoratiu Vultur 	{
283839bedc16SHoratiu Vultur 		.offset = 0,
283939bedc16SHoratiu Vultur 		.width = 1,
284039bedc16SHoratiu Vultur 		.value = 1,
284139bedc16SHoratiu Vultur 	},
284239bedc16SHoratiu Vultur 	{}
284339bedc16SHoratiu Vultur };
284439bedc16SHoratiu Vultur 
2845*011be872SHoratiu Vultur static const struct vcap_typegroup es0_x1_keyfield_set_typegroups[] = {
2846*011be872SHoratiu Vultur 	{}
2847*011be872SHoratiu Vultur };
2848*011be872SHoratiu Vultur 
284999ce286dSHoratiu Vultur static const struct vcap_typegroup *is1_keyfield_set_typegroups[] = {
285099ce286dSHoratiu Vultur 	[4] = is1_x4_keyfield_set_typegroups,
285199ce286dSHoratiu Vultur 	[2] = is1_x2_keyfield_set_typegroups,
285299ce286dSHoratiu Vultur 	[1] = is1_x1_keyfield_set_typegroups,
285399ce286dSHoratiu Vultur 	[5] = NULL,
285499ce286dSHoratiu Vultur };
285599ce286dSHoratiu Vultur 
285639bedc16SHoratiu Vultur static const struct vcap_typegroup *is2_keyfield_set_typegroups[] = {
285739bedc16SHoratiu Vultur 	[4] = is2_x4_keyfield_set_typegroups,
285839bedc16SHoratiu Vultur 	[2] = is2_x2_keyfield_set_typegroups,
285939bedc16SHoratiu Vultur 	[1] = is2_x1_keyfield_set_typegroups,
286039bedc16SHoratiu Vultur 	[5] = NULL,
286139bedc16SHoratiu Vultur };
286239bedc16SHoratiu Vultur 
2863*011be872SHoratiu Vultur static const struct vcap_typegroup *es0_keyfield_set_typegroups[] = {
2864*011be872SHoratiu Vultur 	[1] = es0_x1_keyfield_set_typegroups,
2865*011be872SHoratiu Vultur 	[2] = NULL,
2866*011be872SHoratiu Vultur };
2867*011be872SHoratiu Vultur 
286899ce286dSHoratiu Vultur static const struct vcap_typegroup is1_x1_actionfield_set_typegroups[] = {
286999ce286dSHoratiu Vultur 	{}
287099ce286dSHoratiu Vultur };
287199ce286dSHoratiu Vultur 
287239bedc16SHoratiu Vultur static const struct vcap_typegroup is2_x2_actionfield_set_typegroups[] = {
287339bedc16SHoratiu Vultur 	{
287439bedc16SHoratiu Vultur 		.offset = 0,
287539bedc16SHoratiu Vultur 		.width = 2,
287639bedc16SHoratiu Vultur 		.value = 2,
287739bedc16SHoratiu Vultur 	},
287839bedc16SHoratiu Vultur 	{
287939bedc16SHoratiu Vultur 		.offset = 31,
288039bedc16SHoratiu Vultur 		.width = 1,
288139bedc16SHoratiu Vultur 		.value = 0,
288239bedc16SHoratiu Vultur 	},
288339bedc16SHoratiu Vultur 	{}
288439bedc16SHoratiu Vultur };
288539bedc16SHoratiu Vultur 
288639bedc16SHoratiu Vultur static const struct vcap_typegroup is2_x1_actionfield_set_typegroups[] = {
288739bedc16SHoratiu Vultur 	{
288839bedc16SHoratiu Vultur 		.offset = 0,
288939bedc16SHoratiu Vultur 		.width = 1,
289039bedc16SHoratiu Vultur 		.value = 1,
289139bedc16SHoratiu Vultur 	},
289239bedc16SHoratiu Vultur 	{}
289339bedc16SHoratiu Vultur };
289439bedc16SHoratiu Vultur 
2895*011be872SHoratiu Vultur static const struct vcap_typegroup es0_x1_actionfield_set_typegroups[] = {
2896*011be872SHoratiu Vultur 	{}
2897*011be872SHoratiu Vultur };
2898*011be872SHoratiu Vultur 
289999ce286dSHoratiu Vultur static const struct vcap_typegroup *is1_actionfield_set_typegroups[] = {
290099ce286dSHoratiu Vultur 	[1] = is1_x1_actionfield_set_typegroups,
290199ce286dSHoratiu Vultur 	[5] = NULL,
290299ce286dSHoratiu Vultur };
290399ce286dSHoratiu Vultur 
290439bedc16SHoratiu Vultur static const struct vcap_typegroup *is2_actionfield_set_typegroups[] = {
290539bedc16SHoratiu Vultur 	[2] = is2_x2_actionfield_set_typegroups,
290639bedc16SHoratiu Vultur 	[1] = is2_x1_actionfield_set_typegroups,
290739bedc16SHoratiu Vultur 	[5] = NULL,
290839bedc16SHoratiu Vultur };
290939bedc16SHoratiu Vultur 
2910*011be872SHoratiu Vultur static const struct vcap_typegroup *es0_actionfield_set_typegroups[] = {
2911*011be872SHoratiu Vultur 	[1] = es0_x1_actionfield_set_typegroups,
2912*011be872SHoratiu Vultur 	[2] = NULL,
2913*011be872SHoratiu Vultur };
2914*011be872SHoratiu Vultur 
291539bedc16SHoratiu Vultur /* Keyfieldset names */
291639bedc16SHoratiu Vultur static const char * const vcap_keyfield_set_names[] = {
291739bedc16SHoratiu Vultur 	[VCAP_KFS_NO_VALUE]                      =  "(None)",
291899ce286dSHoratiu Vultur 	[VCAP_KFS_5TUPLE_IP4]                    =  "VCAP_KFS_5TUPLE_IP4",
291999ce286dSHoratiu Vultur 	[VCAP_KFS_5TUPLE_IP6]                    =  "VCAP_KFS_5TUPLE_IP6",
292099ce286dSHoratiu Vultur 	[VCAP_KFS_7TUPLE]                        =  "VCAP_KFS_7TUPLE",
292139bedc16SHoratiu Vultur 	[VCAP_KFS_ARP]                           =  "VCAP_KFS_ARP",
292299ce286dSHoratiu Vultur 	[VCAP_KFS_DBL_VID]                       =  "VCAP_KFS_DBL_VID",
292399ce286dSHoratiu Vultur 	[VCAP_KFS_DMAC_VID]                      =  "VCAP_KFS_DMAC_VID",
292499ce286dSHoratiu Vultur 	[VCAP_KFS_ETAG]                          =  "VCAP_KFS_ETAG",
292539bedc16SHoratiu Vultur 	[VCAP_KFS_IP4_OTHER]                     =  "VCAP_KFS_IP4_OTHER",
292639bedc16SHoratiu Vultur 	[VCAP_KFS_IP4_TCP_UDP]                   =  "VCAP_KFS_IP4_TCP_UDP",
292799ce286dSHoratiu Vultur 	[VCAP_KFS_IP4_VID]                       =  "VCAP_KFS_IP4_VID",
292839bedc16SHoratiu Vultur 	[VCAP_KFS_IP6_OTHER]                     =  "VCAP_KFS_IP6_OTHER",
292939bedc16SHoratiu Vultur 	[VCAP_KFS_IP6_STD]                       =  "VCAP_KFS_IP6_STD",
293039bedc16SHoratiu Vultur 	[VCAP_KFS_IP6_TCP_UDP]                   =  "VCAP_KFS_IP6_TCP_UDP",
293199ce286dSHoratiu Vultur 	[VCAP_KFS_IP6_VID]                       =  "VCAP_KFS_IP6_VID",
293299ce286dSHoratiu Vultur 	[VCAP_KFS_IP_7TUPLE]                     =  "VCAP_KFS_IP_7TUPLE",
293399ce286dSHoratiu Vultur 	[VCAP_KFS_ISDX]                          =  "VCAP_KFS_ISDX",
293499ce286dSHoratiu Vultur 	[VCAP_KFS_LL_FULL]                       =  "VCAP_KFS_LL_FULL",
293539bedc16SHoratiu Vultur 	[VCAP_KFS_MAC_ETYPE]                     =  "VCAP_KFS_MAC_ETYPE",
293639bedc16SHoratiu Vultur 	[VCAP_KFS_MAC_LLC]                       =  "VCAP_KFS_MAC_LLC",
293739bedc16SHoratiu Vultur 	[VCAP_KFS_MAC_SNAP]                      =  "VCAP_KFS_MAC_SNAP",
293899ce286dSHoratiu Vultur 	[VCAP_KFS_NORMAL]                        =  "VCAP_KFS_NORMAL",
293999ce286dSHoratiu Vultur 	[VCAP_KFS_NORMAL_5TUPLE_IP4]             =  "VCAP_KFS_NORMAL_5TUPLE_IP4",
294099ce286dSHoratiu Vultur 	[VCAP_KFS_NORMAL_7TUPLE]                 =  "VCAP_KFS_NORMAL_7TUPLE",
294199ce286dSHoratiu Vultur 	[VCAP_KFS_NORMAL_IP6]                    =  "VCAP_KFS_NORMAL_IP6",
294239bedc16SHoratiu Vultur 	[VCAP_KFS_OAM]                           =  "VCAP_KFS_OAM",
294399ce286dSHoratiu Vultur 	[VCAP_KFS_PURE_5TUPLE_IP4]               =  "VCAP_KFS_PURE_5TUPLE_IP4",
294499ce286dSHoratiu Vultur 	[VCAP_KFS_RT]                            =  "VCAP_KFS_RT",
294539bedc16SHoratiu Vultur 	[VCAP_KFS_SMAC_SIP4]                     =  "VCAP_KFS_SMAC_SIP4",
294639bedc16SHoratiu Vultur 	[VCAP_KFS_SMAC_SIP6]                     =  "VCAP_KFS_SMAC_SIP6",
2947*011be872SHoratiu Vultur 	[VCAP_KFS_VID]                           =  "VCAP_KFS_VID",
294839bedc16SHoratiu Vultur };
294939bedc16SHoratiu Vultur 
295039bedc16SHoratiu Vultur /* Actionfieldset names */
295139bedc16SHoratiu Vultur static const char * const vcap_actionfield_set_names[] = {
295239bedc16SHoratiu Vultur 	[VCAP_AFS_NO_VALUE]                      =  "(None)",
295339bedc16SHoratiu Vultur 	[VCAP_AFS_BASE_TYPE]                     =  "VCAP_AFS_BASE_TYPE",
295499ce286dSHoratiu Vultur 	[VCAP_AFS_CLASSIFICATION]                =  "VCAP_AFS_CLASSIFICATION",
295599ce286dSHoratiu Vultur 	[VCAP_AFS_CLASS_REDUCED]                 =  "VCAP_AFS_CLASS_REDUCED",
2956*011be872SHoratiu Vultur 	[VCAP_AFS_ES0]                           =  "VCAP_AFS_ES0",
295799ce286dSHoratiu Vultur 	[VCAP_AFS_FULL]                          =  "VCAP_AFS_FULL",
295899ce286dSHoratiu Vultur 	[VCAP_AFS_S1]                            =  "VCAP_AFS_S1",
295939bedc16SHoratiu Vultur 	[VCAP_AFS_SMAC_SIP]                      =  "VCAP_AFS_SMAC_SIP",
2960*011be872SHoratiu Vultur 	[VCAP_AFS_VID]                           =  "VCAP_AFS_VID",
296139bedc16SHoratiu Vultur };
296239bedc16SHoratiu Vultur 
296339bedc16SHoratiu Vultur /* Keyfield names */
296439bedc16SHoratiu Vultur static const char * const vcap_keyfield_names[] = {
296539bedc16SHoratiu Vultur 	[VCAP_KF_NO_VALUE]                       =  "(None)",
296699ce286dSHoratiu Vultur 	[VCAP_KF_8021BR_ECID_BASE]               =  "8021BR_ECID_BASE",
296799ce286dSHoratiu Vultur 	[VCAP_KF_8021BR_ECID_EXT]                =  "8021BR_ECID_EXT",
296899ce286dSHoratiu Vultur 	[VCAP_KF_8021BR_E_TAGGED]                =  "8021BR_E_TAGGED",
296999ce286dSHoratiu Vultur 	[VCAP_KF_8021BR_GRP]                     =  "8021BR_GRP",
297099ce286dSHoratiu Vultur 	[VCAP_KF_8021BR_IGR_ECID_BASE]           =  "8021BR_IGR_ECID_BASE",
297199ce286dSHoratiu Vultur 	[VCAP_KF_8021BR_IGR_ECID_EXT]            =  "8021BR_IGR_ECID_EXT",
297299ce286dSHoratiu Vultur 	[VCAP_KF_8021CB_R_TAGGED_IS]             =  "8021CB_R_TAGGED_IS",
297399ce286dSHoratiu Vultur 	[VCAP_KF_8021Q_DEI0]                     =  "8021Q_DEI0",
297499ce286dSHoratiu Vultur 	[VCAP_KF_8021Q_DEI1]                     =  "8021Q_DEI1",
297599ce286dSHoratiu Vultur 	[VCAP_KF_8021Q_DEI2]                     =  "8021Q_DEI2",
297639bedc16SHoratiu Vultur 	[VCAP_KF_8021Q_DEI_CLS]                  =  "8021Q_DEI_CLS",
297799ce286dSHoratiu Vultur 	[VCAP_KF_8021Q_PCP0]                     =  "8021Q_PCP0",
297899ce286dSHoratiu Vultur 	[VCAP_KF_8021Q_PCP1]                     =  "8021Q_PCP1",
297999ce286dSHoratiu Vultur 	[VCAP_KF_8021Q_PCP2]                     =  "8021Q_PCP2",
298039bedc16SHoratiu Vultur 	[VCAP_KF_8021Q_PCP_CLS]                  =  "8021Q_PCP_CLS",
2981*011be872SHoratiu Vultur 	[VCAP_KF_8021Q_TPID]                     =  "8021Q_TPID",
298299ce286dSHoratiu Vultur 	[VCAP_KF_8021Q_TPID0]                    =  "8021Q_TPID0",
298399ce286dSHoratiu Vultur 	[VCAP_KF_8021Q_TPID1]                    =  "8021Q_TPID1",
298499ce286dSHoratiu Vultur 	[VCAP_KF_8021Q_TPID2]                    =  "8021Q_TPID2",
298599ce286dSHoratiu Vultur 	[VCAP_KF_8021Q_VID0]                     =  "8021Q_VID0",
298699ce286dSHoratiu Vultur 	[VCAP_KF_8021Q_VID1]                     =  "8021Q_VID1",
298799ce286dSHoratiu Vultur 	[VCAP_KF_8021Q_VID2]                     =  "8021Q_VID2",
298839bedc16SHoratiu Vultur 	[VCAP_KF_8021Q_VID_CLS]                  =  "8021Q_VID_CLS",
298999ce286dSHoratiu Vultur 	[VCAP_KF_8021Q_VLAN_DBL_TAGGED_IS]       =  "8021Q_VLAN_DBL_TAGGED_IS",
299039bedc16SHoratiu Vultur 	[VCAP_KF_8021Q_VLAN_TAGGED_IS]           =  "8021Q_VLAN_TAGGED_IS",
299199ce286dSHoratiu Vultur 	[VCAP_KF_8021Q_VLAN_TAGS]                =  "8021Q_VLAN_TAGS",
299299ce286dSHoratiu Vultur 	[VCAP_KF_ACL_GRP_ID]                     =  "ACL_GRP_ID",
299339bedc16SHoratiu Vultur 	[VCAP_KF_ARP_ADDR_SPACE_OK_IS]           =  "ARP_ADDR_SPACE_OK_IS",
299439bedc16SHoratiu Vultur 	[VCAP_KF_ARP_LEN_OK_IS]                  =  "ARP_LEN_OK_IS",
299539bedc16SHoratiu Vultur 	[VCAP_KF_ARP_OPCODE]                     =  "ARP_OPCODE",
299639bedc16SHoratiu Vultur 	[VCAP_KF_ARP_OPCODE_UNKNOWN_IS]          =  "ARP_OPCODE_UNKNOWN_IS",
299739bedc16SHoratiu Vultur 	[VCAP_KF_ARP_PROTO_SPACE_OK_IS]          =  "ARP_PROTO_SPACE_OK_IS",
299839bedc16SHoratiu Vultur 	[VCAP_KF_ARP_SENDER_MATCH_IS]            =  "ARP_SENDER_MATCH_IS",
299939bedc16SHoratiu Vultur 	[VCAP_KF_ARP_TGT_MATCH_IS]               =  "ARP_TGT_MATCH_IS",
300099ce286dSHoratiu Vultur 	[VCAP_KF_COSID_CLS]                      =  "COSID_CLS",
300199ce286dSHoratiu Vultur 	[VCAP_KF_ES0_ISDX_KEY_ENA]               =  "ES0_ISDX_KEY_ENA",
300239bedc16SHoratiu Vultur 	[VCAP_KF_ETYPE]                          =  "ETYPE",
300399ce286dSHoratiu Vultur 	[VCAP_KF_ETYPE_LEN_IS]                   =  "ETYPE_LEN_IS",
300439bedc16SHoratiu Vultur 	[VCAP_KF_HOST_MATCH]                     =  "HOST_MATCH",
300599ce286dSHoratiu Vultur 	[VCAP_KF_IF_EGR_PORT_MASK]               =  "IF_EGR_PORT_MASK",
300699ce286dSHoratiu Vultur 	[VCAP_KF_IF_EGR_PORT_MASK_RNG]           =  "IF_EGR_PORT_MASK_RNG",
3007*011be872SHoratiu Vultur 	[VCAP_KF_IF_EGR_PORT_NO]                 =  "IF_EGR_PORT_NO",
300839bedc16SHoratiu Vultur 	[VCAP_KF_IF_IGR_PORT]                    =  "IF_IGR_PORT",
300939bedc16SHoratiu Vultur 	[VCAP_KF_IF_IGR_PORT_MASK]               =  "IF_IGR_PORT_MASK",
301099ce286dSHoratiu Vultur 	[VCAP_KF_IF_IGR_PORT_MASK_L3]            =  "IF_IGR_PORT_MASK_L3",
301199ce286dSHoratiu Vultur 	[VCAP_KF_IF_IGR_PORT_MASK_RNG]           =  "IF_IGR_PORT_MASK_RNG",
301299ce286dSHoratiu Vultur 	[VCAP_KF_IF_IGR_PORT_MASK_SEL]           =  "IF_IGR_PORT_MASK_SEL",
301399ce286dSHoratiu Vultur 	[VCAP_KF_IF_IGR_PORT_SEL]                =  "IF_IGR_PORT_SEL",
301439bedc16SHoratiu Vultur 	[VCAP_KF_IP4_IS]                         =  "IP4_IS",
301599ce286dSHoratiu Vultur 	[VCAP_KF_IP_MC_IS]                       =  "IP_MC_IS",
301699ce286dSHoratiu Vultur 	[VCAP_KF_IP_PAYLOAD_5TUPLE]              =  "IP_PAYLOAD_5TUPLE",
301799ce286dSHoratiu Vultur 	[VCAP_KF_IP_PAYLOAD_S1_IP6]              =  "IP_PAYLOAD_S1_IP6",
301899ce286dSHoratiu Vultur 	[VCAP_KF_IP_SNAP_IS]                     =  "IP_SNAP_IS",
301999ce286dSHoratiu Vultur 	[VCAP_KF_ISDX_CLS]                       =  "ISDX_CLS",
302039bedc16SHoratiu Vultur 	[VCAP_KF_ISDX_GT0_IS]                    =  "ISDX_GT0_IS",
302139bedc16SHoratiu Vultur 	[VCAP_KF_L2_BC_IS]                       =  "L2_BC_IS",
302239bedc16SHoratiu Vultur 	[VCAP_KF_L2_DMAC]                        =  "L2_DMAC",
302339bedc16SHoratiu Vultur 	[VCAP_KF_L2_FRM_TYPE]                    =  "L2_FRM_TYPE",
302499ce286dSHoratiu Vultur 	[VCAP_KF_L2_FWD_IS]                      =  "L2_FWD_IS",
302539bedc16SHoratiu Vultur 	[VCAP_KF_L2_LLC]                         =  "L2_LLC",
302699ce286dSHoratiu Vultur 	[VCAP_KF_L2_MAC]                         =  "L2_MAC",
302739bedc16SHoratiu Vultur 	[VCAP_KF_L2_MC_IS]                       =  "L2_MC_IS",
302839bedc16SHoratiu Vultur 	[VCAP_KF_L2_PAYLOAD0]                    =  "L2_PAYLOAD0",
302939bedc16SHoratiu Vultur 	[VCAP_KF_L2_PAYLOAD1]                    =  "L2_PAYLOAD1",
303039bedc16SHoratiu Vultur 	[VCAP_KF_L2_PAYLOAD2]                    =  "L2_PAYLOAD2",
303199ce286dSHoratiu Vultur 	[VCAP_KF_L2_PAYLOAD_ETYPE]               =  "L2_PAYLOAD_ETYPE",
303239bedc16SHoratiu Vultur 	[VCAP_KF_L2_SMAC]                        =  "L2_SMAC",
303339bedc16SHoratiu Vultur 	[VCAP_KF_L2_SNAP]                        =  "L2_SNAP",
303439bedc16SHoratiu Vultur 	[VCAP_KF_L3_DIP_EQ_SIP_IS]               =  "L3_DIP_EQ_SIP_IS",
303599ce286dSHoratiu Vultur 	[VCAP_KF_L3_DPL_CLS]                     =  "L3_DPL_CLS",
303699ce286dSHoratiu Vultur 	[VCAP_KF_L3_DSCP]                        =  "L3_DSCP",
303799ce286dSHoratiu Vultur 	[VCAP_KF_L3_DST_IS]                      =  "L3_DST_IS",
303839bedc16SHoratiu Vultur 	[VCAP_KF_L3_FRAGMENT]                    =  "L3_FRAGMENT",
303999ce286dSHoratiu Vultur 	[VCAP_KF_L3_FRAGMENT_TYPE]               =  "L3_FRAGMENT_TYPE",
304099ce286dSHoratiu Vultur 	[VCAP_KF_L3_FRAG_INVLD_L4_LEN]           =  "L3_FRAG_INVLD_L4_LEN",
304139bedc16SHoratiu Vultur 	[VCAP_KF_L3_FRAG_OFS_GT0]                =  "L3_FRAG_OFS_GT0",
304239bedc16SHoratiu Vultur 	[VCAP_KF_L3_IP4_DIP]                     =  "L3_IP4_DIP",
304339bedc16SHoratiu Vultur 	[VCAP_KF_L3_IP4_SIP]                     =  "L3_IP4_SIP",
304439bedc16SHoratiu Vultur 	[VCAP_KF_L3_IP6_DIP]                     =  "L3_IP6_DIP",
304599ce286dSHoratiu Vultur 	[VCAP_KF_L3_IP6_DIP_MSB]                 =  "L3_IP6_DIP_MSB",
304639bedc16SHoratiu Vultur 	[VCAP_KF_L3_IP6_SIP]                     =  "L3_IP6_SIP",
304799ce286dSHoratiu Vultur 	[VCAP_KF_L3_IP6_SIP_MSB]                 =  "L3_IP6_SIP_MSB",
304839bedc16SHoratiu Vultur 	[VCAP_KF_L3_IP_PROTO]                    =  "L3_IP_PROTO",
304939bedc16SHoratiu Vultur 	[VCAP_KF_L3_OPTIONS_IS]                  =  "L3_OPTIONS_IS",
305039bedc16SHoratiu Vultur 	[VCAP_KF_L3_PAYLOAD]                     =  "L3_PAYLOAD",
305199ce286dSHoratiu Vultur 	[VCAP_KF_L3_RT_IS]                       =  "L3_RT_IS",
305239bedc16SHoratiu Vultur 	[VCAP_KF_L3_TOS]                         =  "L3_TOS",
305339bedc16SHoratiu Vultur 	[VCAP_KF_L3_TTL_GT0]                     =  "L3_TTL_GT0",
305439bedc16SHoratiu Vultur 	[VCAP_KF_L4_1588_DOM]                    =  "L4_1588_DOM",
305539bedc16SHoratiu Vultur 	[VCAP_KF_L4_1588_VER]                    =  "L4_1588_VER",
305639bedc16SHoratiu Vultur 	[VCAP_KF_L4_ACK]                         =  "L4_ACK",
305739bedc16SHoratiu Vultur 	[VCAP_KF_L4_DPORT]                       =  "L4_DPORT",
305839bedc16SHoratiu Vultur 	[VCAP_KF_L4_FIN]                         =  "L4_FIN",
305999ce286dSHoratiu Vultur 	[VCAP_KF_L4_PAYLOAD]                     =  "L4_PAYLOAD",
306039bedc16SHoratiu Vultur 	[VCAP_KF_L4_PSH]                         =  "L4_PSH",
306139bedc16SHoratiu Vultur 	[VCAP_KF_L4_RNG]                         =  "L4_RNG",
306239bedc16SHoratiu Vultur 	[VCAP_KF_L4_RST]                         =  "L4_RST",
306339bedc16SHoratiu Vultur 	[VCAP_KF_L4_SEQUENCE_EQ0_IS]             =  "L4_SEQUENCE_EQ0_IS",
306439bedc16SHoratiu Vultur 	[VCAP_KF_L4_SPORT]                       =  "L4_SPORT",
306539bedc16SHoratiu Vultur 	[VCAP_KF_L4_SPORT_EQ_DPORT_IS]           =  "L4_SPORT_EQ_DPORT_IS",
306639bedc16SHoratiu Vultur 	[VCAP_KF_L4_SYN]                         =  "L4_SYN",
306739bedc16SHoratiu Vultur 	[VCAP_KF_L4_URG]                         =  "L4_URG",
306839bedc16SHoratiu Vultur 	[VCAP_KF_LOOKUP_FIRST_IS]                =  "LOOKUP_FIRST_IS",
306999ce286dSHoratiu Vultur 	[VCAP_KF_LOOKUP_GEN_IDX]                 =  "LOOKUP_GEN_IDX",
307099ce286dSHoratiu Vultur 	[VCAP_KF_LOOKUP_GEN_IDX_SEL]             =  "LOOKUP_GEN_IDX_SEL",
307199ce286dSHoratiu Vultur 	[VCAP_KF_LOOKUP_INDEX]                   =  "LOOKUP_INDEX",
307239bedc16SHoratiu Vultur 	[VCAP_KF_LOOKUP_PAG]                     =  "LOOKUP_PAG",
307399ce286dSHoratiu Vultur 	[VCAP_KF_MIRROR_PROBE]                   =  "MIRROR_PROBE",
307439bedc16SHoratiu Vultur 	[VCAP_KF_OAM_CCM_CNTS_EQ0]               =  "OAM_CCM_CNTS_EQ0",
307539bedc16SHoratiu Vultur 	[VCAP_KF_OAM_DETECTED]                   =  "OAM_DETECTED",
307639bedc16SHoratiu Vultur 	[VCAP_KF_OAM_FLAGS]                      =  "OAM_FLAGS",
307739bedc16SHoratiu Vultur 	[VCAP_KF_OAM_MEL_FLAGS]                  =  "OAM_MEL_FLAGS",
307839bedc16SHoratiu Vultur 	[VCAP_KF_OAM_MEPID]                      =  "OAM_MEPID",
307939bedc16SHoratiu Vultur 	[VCAP_KF_OAM_OPCODE]                     =  "OAM_OPCODE",
308039bedc16SHoratiu Vultur 	[VCAP_KF_OAM_VER]                        =  "OAM_VER",
308139bedc16SHoratiu Vultur 	[VCAP_KF_OAM_Y1731_IS]                   =  "OAM_Y1731_IS",
3082*011be872SHoratiu Vultur 	[VCAP_KF_PDU_TYPE]                       =  "PDU_TYPE",
308399ce286dSHoratiu Vultur 	[VCAP_KF_PROT_ACTIVE]                    =  "PROT_ACTIVE",
3084*011be872SHoratiu Vultur 	[VCAP_KF_RTP_ID]                         =  "RTP_ID",
308599ce286dSHoratiu Vultur 	[VCAP_KF_RT_FRMID]                       =  "RT_FRMID",
308699ce286dSHoratiu Vultur 	[VCAP_KF_RT_TYPE]                        =  "RT_TYPE",
308799ce286dSHoratiu Vultur 	[VCAP_KF_RT_VLAN_IDX]                    =  "RT_VLAN_IDX",
308839bedc16SHoratiu Vultur 	[VCAP_KF_TCP_IS]                         =  "TCP_IS",
308999ce286dSHoratiu Vultur 	[VCAP_KF_TCP_UDP_IS]                     =  "TCP_UDP_IS",
309039bedc16SHoratiu Vultur 	[VCAP_KF_TYPE]                           =  "TYPE",
309139bedc16SHoratiu Vultur };
309239bedc16SHoratiu Vultur 
309339bedc16SHoratiu Vultur /* Actionfield names */
309439bedc16SHoratiu Vultur static const char * const vcap_actionfield_names[] = {
309539bedc16SHoratiu Vultur 	[VCAP_AF_NO_VALUE]                       =  "(None)",
309639bedc16SHoratiu Vultur 	[VCAP_AF_ACL_ID]                         =  "ACL_ID",
309799ce286dSHoratiu Vultur 	[VCAP_AF_CLS_VID_SEL]                    =  "CLS_VID_SEL",
309899ce286dSHoratiu Vultur 	[VCAP_AF_CNT_ID]                         =  "CNT_ID",
309999ce286dSHoratiu Vultur 	[VCAP_AF_COPY_PORT_NUM]                  =  "COPY_PORT_NUM",
310099ce286dSHoratiu Vultur 	[VCAP_AF_COPY_QUEUE_NUM]                 =  "COPY_QUEUE_NUM",
310139bedc16SHoratiu Vultur 	[VCAP_AF_CPU_COPY_ENA]                   =  "CPU_COPY_ENA",
3102*011be872SHoratiu Vultur 	[VCAP_AF_CPU_QU]                         =  "CPU_QU",
310339bedc16SHoratiu Vultur 	[VCAP_AF_CPU_QUEUE_NUM]                  =  "CPU_QUEUE_NUM",
310499ce286dSHoratiu Vultur 	[VCAP_AF_CUSTOM_ACE_TYPE_ENA]            =  "CUSTOM_ACE_TYPE_ENA",
3105*011be872SHoratiu Vultur 	[VCAP_AF_DEI_A_VAL]                      =  "DEI_A_VAL",
3106*011be872SHoratiu Vultur 	[VCAP_AF_DEI_B_VAL]                      =  "DEI_B_VAL",
3107*011be872SHoratiu Vultur 	[VCAP_AF_DEI_C_VAL]                      =  "DEI_C_VAL",
310899ce286dSHoratiu Vultur 	[VCAP_AF_DEI_ENA]                        =  "DEI_ENA",
310999ce286dSHoratiu Vultur 	[VCAP_AF_DEI_VAL]                        =  "DEI_VAL",
311099ce286dSHoratiu Vultur 	[VCAP_AF_DLR_SEL]                        =  "DLR_SEL",
311199ce286dSHoratiu Vultur 	[VCAP_AF_DP_ENA]                         =  "DP_ENA",
311299ce286dSHoratiu Vultur 	[VCAP_AF_DP_VAL]                         =  "DP_VAL",
311399ce286dSHoratiu Vultur 	[VCAP_AF_DSCP_ENA]                       =  "DSCP_ENA",
3114*011be872SHoratiu Vultur 	[VCAP_AF_DSCP_SEL]                       =  "DSCP_SEL",
311599ce286dSHoratiu Vultur 	[VCAP_AF_DSCP_VAL]                       =  "DSCP_VAL",
311699ce286dSHoratiu Vultur 	[VCAP_AF_ES2_REW_CMD]                    =  "ES2_REW_CMD",
3117*011be872SHoratiu Vultur 	[VCAP_AF_ESDX]                           =  "ESDX",
311839bedc16SHoratiu Vultur 	[VCAP_AF_FWD_KILL_ENA]                   =  "FWD_KILL_ENA",
311999ce286dSHoratiu Vultur 	[VCAP_AF_FWD_MODE]                       =  "FWD_MODE",
3120*011be872SHoratiu Vultur 	[VCAP_AF_FWD_SEL]                        =  "FWD_SEL",
312139bedc16SHoratiu Vultur 	[VCAP_AF_HIT_ME_ONCE]                    =  "HIT_ME_ONCE",
312239bedc16SHoratiu Vultur 	[VCAP_AF_HOST_MATCH]                     =  "HOST_MATCH",
312399ce286dSHoratiu Vultur 	[VCAP_AF_IGNORE_PIPELINE_CTRL]           =  "IGNORE_PIPELINE_CTRL",
312499ce286dSHoratiu Vultur 	[VCAP_AF_INTR_ENA]                       =  "INTR_ENA",
312599ce286dSHoratiu Vultur 	[VCAP_AF_ISDX_ADD_REPLACE_SEL]           =  "ISDX_ADD_REPLACE_SEL",
312699ce286dSHoratiu Vultur 	[VCAP_AF_ISDX_ADD_VAL]                   =  "ISDX_ADD_VAL",
312739bedc16SHoratiu Vultur 	[VCAP_AF_ISDX_ENA]                       =  "ISDX_ENA",
312899ce286dSHoratiu Vultur 	[VCAP_AF_ISDX_REPLACE_ENA]               =  "ISDX_REPLACE_ENA",
312999ce286dSHoratiu Vultur 	[VCAP_AF_ISDX_VAL]                       =  "ISDX_VAL",
3130*011be872SHoratiu Vultur 	[VCAP_AF_LOOP_ENA]                       =  "LOOP_ENA",
313139bedc16SHoratiu Vultur 	[VCAP_AF_LRN_DIS]                        =  "LRN_DIS",
313299ce286dSHoratiu Vultur 	[VCAP_AF_MAP_IDX]                        =  "MAP_IDX",
313399ce286dSHoratiu Vultur 	[VCAP_AF_MAP_KEY]                        =  "MAP_KEY",
313499ce286dSHoratiu Vultur 	[VCAP_AF_MAP_LOOKUP_SEL]                 =  "MAP_LOOKUP_SEL",
313539bedc16SHoratiu Vultur 	[VCAP_AF_MASK_MODE]                      =  "MASK_MODE",
313699ce286dSHoratiu Vultur 	[VCAP_AF_MATCH_ID]                       =  "MATCH_ID",
313799ce286dSHoratiu Vultur 	[VCAP_AF_MATCH_ID_MASK]                  =  "MATCH_ID_MASK",
313839bedc16SHoratiu Vultur 	[VCAP_AF_MIRROR_ENA]                     =  "MIRROR_ENA",
313999ce286dSHoratiu Vultur 	[VCAP_AF_MIRROR_PROBE]                   =  "MIRROR_PROBE",
314099ce286dSHoratiu Vultur 	[VCAP_AF_MIRROR_PROBE_ID]                =  "MIRROR_PROBE_ID",
314199ce286dSHoratiu Vultur 	[VCAP_AF_MRP_SEL]                        =  "MRP_SEL",
314299ce286dSHoratiu Vultur 	[VCAP_AF_NXT_IDX]                        =  "NXT_IDX",
314399ce286dSHoratiu Vultur 	[VCAP_AF_NXT_IDX_CTRL]                   =  "NXT_IDX_CTRL",
314499ce286dSHoratiu Vultur 	[VCAP_AF_OAM_SEL]                        =  "OAM_SEL",
314599ce286dSHoratiu Vultur 	[VCAP_AF_PAG_OVERRIDE_MASK]              =  "PAG_OVERRIDE_MASK",
314699ce286dSHoratiu Vultur 	[VCAP_AF_PAG_VAL]                        =  "PAG_VAL",
3147*011be872SHoratiu Vultur 	[VCAP_AF_PCP_A_VAL]                      =  "PCP_A_VAL",
3148*011be872SHoratiu Vultur 	[VCAP_AF_PCP_B_VAL]                      =  "PCP_B_VAL",
3149*011be872SHoratiu Vultur 	[VCAP_AF_PCP_C_VAL]                      =  "PCP_C_VAL",
315099ce286dSHoratiu Vultur 	[VCAP_AF_PCP_ENA]                        =  "PCP_ENA",
315199ce286dSHoratiu Vultur 	[VCAP_AF_PCP_VAL]                        =  "PCP_VAL",
3152*011be872SHoratiu Vultur 	[VCAP_AF_PIPELINE_ACT]                   =  "PIPELINE_ACT",
315399ce286dSHoratiu Vultur 	[VCAP_AF_PIPELINE_FORCE_ENA]             =  "PIPELINE_FORCE_ENA",
315499ce286dSHoratiu Vultur 	[VCAP_AF_PIPELINE_PT]                    =  "PIPELINE_PT",
315539bedc16SHoratiu Vultur 	[VCAP_AF_POLICE_ENA]                     =  "POLICE_ENA",
315639bedc16SHoratiu Vultur 	[VCAP_AF_POLICE_IDX]                     =  "POLICE_IDX",
315799ce286dSHoratiu Vultur 	[VCAP_AF_POLICE_REMARK]                  =  "POLICE_REMARK",
315839bedc16SHoratiu Vultur 	[VCAP_AF_POLICE_VCAP_ONLY]               =  "POLICE_VCAP_ONLY",
3159*011be872SHoratiu Vultur 	[VCAP_AF_POP_VAL]                        =  "POP_VAL",
316039bedc16SHoratiu Vultur 	[VCAP_AF_PORT_MASK]                      =  "PORT_MASK",
3161*011be872SHoratiu Vultur 	[VCAP_AF_PUSH_CUSTOMER_TAG]              =  "PUSH_CUSTOMER_TAG",
3162*011be872SHoratiu Vultur 	[VCAP_AF_PUSH_INNER_TAG]                 =  "PUSH_INNER_TAG",
3163*011be872SHoratiu Vultur 	[VCAP_AF_PUSH_OUTER_TAG]                 =  "PUSH_OUTER_TAG",
316499ce286dSHoratiu Vultur 	[VCAP_AF_QOS_ENA]                        =  "QOS_ENA",
316599ce286dSHoratiu Vultur 	[VCAP_AF_QOS_VAL]                        =  "QOS_VAL",
316639bedc16SHoratiu Vultur 	[VCAP_AF_REW_OP]                         =  "REW_OP",
316799ce286dSHoratiu Vultur 	[VCAP_AF_RT_DIS]                         =  "RT_DIS",
316899ce286dSHoratiu Vultur 	[VCAP_AF_SFID_ENA]                       =  "SFID_ENA",
316999ce286dSHoratiu Vultur 	[VCAP_AF_SFID_VAL]                       =  "SFID_VAL",
317099ce286dSHoratiu Vultur 	[VCAP_AF_SGID_ENA]                       =  "SGID_ENA",
317199ce286dSHoratiu Vultur 	[VCAP_AF_SGID_VAL]                       =  "SGID_VAL",
3172*011be872SHoratiu Vultur 	[VCAP_AF_SWAP_MACS_ENA]                  =  "SWAP_MACS_ENA",
3173*011be872SHoratiu Vultur 	[VCAP_AF_TAG_A_DEI_SEL]                  =  "TAG_A_DEI_SEL",
3174*011be872SHoratiu Vultur 	[VCAP_AF_TAG_A_PCP_SEL]                  =  "TAG_A_PCP_SEL",
3175*011be872SHoratiu Vultur 	[VCAP_AF_TAG_A_TPID_SEL]                 =  "TAG_A_TPID_SEL",
3176*011be872SHoratiu Vultur 	[VCAP_AF_TAG_A_VID_SEL]                  =  "TAG_A_VID_SEL",
3177*011be872SHoratiu Vultur 	[VCAP_AF_TAG_B_DEI_SEL]                  =  "TAG_B_DEI_SEL",
3178*011be872SHoratiu Vultur 	[VCAP_AF_TAG_B_PCP_SEL]                  =  "TAG_B_PCP_SEL",
3179*011be872SHoratiu Vultur 	[VCAP_AF_TAG_B_TPID_SEL]                 =  "TAG_B_TPID_SEL",
3180*011be872SHoratiu Vultur 	[VCAP_AF_TAG_B_VID_SEL]                  =  "TAG_B_VID_SEL",
3181*011be872SHoratiu Vultur 	[VCAP_AF_TAG_C_DEI_SEL]                  =  "TAG_C_DEI_SEL",
3182*011be872SHoratiu Vultur 	[VCAP_AF_TAG_C_PCP_SEL]                  =  "TAG_C_PCP_SEL",
3183*011be872SHoratiu Vultur 	[VCAP_AF_TAG_C_TPID_SEL]                 =  "TAG_C_TPID_SEL",
3184*011be872SHoratiu Vultur 	[VCAP_AF_TAG_C_VID_SEL]                  =  "TAG_C_VID_SEL",
318599ce286dSHoratiu Vultur 	[VCAP_AF_TYPE]                           =  "TYPE",
3186*011be872SHoratiu Vultur 	[VCAP_AF_UNTAG_VID_ENA]                  =  "UNTAG_VID_ENA",
3187*011be872SHoratiu Vultur 	[VCAP_AF_VID_A_VAL]                      =  "VID_A_VAL",
3188*011be872SHoratiu Vultur 	[VCAP_AF_VID_B_VAL]                      =  "VID_B_VAL",
3189*011be872SHoratiu Vultur 	[VCAP_AF_VID_C_VAL]                      =  "VID_C_VAL",
319099ce286dSHoratiu Vultur 	[VCAP_AF_VID_REPLACE_ENA]                =  "VID_REPLACE_ENA",
319199ce286dSHoratiu Vultur 	[VCAP_AF_VID_VAL]                        =  "VID_VAL",
319299ce286dSHoratiu Vultur 	[VCAP_AF_VLAN_POP_CNT]                   =  "VLAN_POP_CNT",
319399ce286dSHoratiu Vultur 	[VCAP_AF_VLAN_POP_CNT_ENA]               =  "VLAN_POP_CNT_ENA",
319439bedc16SHoratiu Vultur };
319539bedc16SHoratiu Vultur 
319639bedc16SHoratiu Vultur /* VCAPs */
319739bedc16SHoratiu Vultur const struct vcap_info lan966x_vcaps[] = {
319899ce286dSHoratiu Vultur 	[VCAP_TYPE_IS1] = {
319999ce286dSHoratiu Vultur 		.name = "is1",
320099ce286dSHoratiu Vultur 		.rows = 192,
320199ce286dSHoratiu Vultur 		.sw_count = 4,
320299ce286dSHoratiu Vultur 		.sw_width = 96,
320399ce286dSHoratiu Vultur 		.sticky_width = 32,
320499ce286dSHoratiu Vultur 		.act_width = 123,
320599ce286dSHoratiu Vultur 		.default_cnt = 0,
320699ce286dSHoratiu Vultur 		.require_cnt_dis = 1,
320799ce286dSHoratiu Vultur 		.version = 1,
320899ce286dSHoratiu Vultur 		.keyfield_set = is1_keyfield_set,
320999ce286dSHoratiu Vultur 		.keyfield_set_size = ARRAY_SIZE(is1_keyfield_set),
321099ce286dSHoratiu Vultur 		.actionfield_set = is1_actionfield_set,
321199ce286dSHoratiu Vultur 		.actionfield_set_size = ARRAY_SIZE(is1_actionfield_set),
321299ce286dSHoratiu Vultur 		.keyfield_set_map = is1_keyfield_set_map,
321399ce286dSHoratiu Vultur 		.keyfield_set_map_size = is1_keyfield_set_map_size,
321499ce286dSHoratiu Vultur 		.actionfield_set_map = is1_actionfield_set_map,
321599ce286dSHoratiu Vultur 		.actionfield_set_map_size = is1_actionfield_set_map_size,
321699ce286dSHoratiu Vultur 		.keyfield_set_typegroups = is1_keyfield_set_typegroups,
321799ce286dSHoratiu Vultur 		.actionfield_set_typegroups = is1_actionfield_set_typegroups,
321899ce286dSHoratiu Vultur 	},
321939bedc16SHoratiu Vultur 	[VCAP_TYPE_IS2] = {
322039bedc16SHoratiu Vultur 		.name = "is2",
322139bedc16SHoratiu Vultur 		.rows = 64,
322239bedc16SHoratiu Vultur 		.sw_count = 4,
322339bedc16SHoratiu Vultur 		.sw_width = 96,
322439bedc16SHoratiu Vultur 		.sticky_width = 32,
322539bedc16SHoratiu Vultur 		.act_width = 31,
322639bedc16SHoratiu Vultur 		.default_cnt = 11,
322739bedc16SHoratiu Vultur 		.require_cnt_dis = 1,
322839bedc16SHoratiu Vultur 		.version = 1,
322939bedc16SHoratiu Vultur 		.keyfield_set = is2_keyfield_set,
323039bedc16SHoratiu Vultur 		.keyfield_set_size = ARRAY_SIZE(is2_keyfield_set),
323139bedc16SHoratiu Vultur 		.actionfield_set = is2_actionfield_set,
323239bedc16SHoratiu Vultur 		.actionfield_set_size = ARRAY_SIZE(is2_actionfield_set),
323339bedc16SHoratiu Vultur 		.keyfield_set_map = is2_keyfield_set_map,
323439bedc16SHoratiu Vultur 		.keyfield_set_map_size = is2_keyfield_set_map_size,
323539bedc16SHoratiu Vultur 		.actionfield_set_map = is2_actionfield_set_map,
323639bedc16SHoratiu Vultur 		.actionfield_set_map_size = is2_actionfield_set_map_size,
323739bedc16SHoratiu Vultur 		.keyfield_set_typegroups = is2_keyfield_set_typegroups,
323839bedc16SHoratiu Vultur 		.actionfield_set_typegroups = is2_actionfield_set_typegroups,
323939bedc16SHoratiu Vultur 	},
3240*011be872SHoratiu Vultur 	[VCAP_TYPE_ES0] = {
3241*011be872SHoratiu Vultur 		.name = "es0",
3242*011be872SHoratiu Vultur 		.rows = 256,
3243*011be872SHoratiu Vultur 		.sw_count = 1,
3244*011be872SHoratiu Vultur 		.sw_width = 96,
3245*011be872SHoratiu Vultur 		.sticky_width = 1,
3246*011be872SHoratiu Vultur 		.act_width = 65,
3247*011be872SHoratiu Vultur 		.default_cnt = 8,
3248*011be872SHoratiu Vultur 		.require_cnt_dis = 0,
3249*011be872SHoratiu Vultur 		.version = 1,
3250*011be872SHoratiu Vultur 		.keyfield_set = es0_keyfield_set,
3251*011be872SHoratiu Vultur 		.keyfield_set_size = ARRAY_SIZE(es0_keyfield_set),
3252*011be872SHoratiu Vultur 		.actionfield_set = es0_actionfield_set,
3253*011be872SHoratiu Vultur 		.actionfield_set_size = ARRAY_SIZE(es0_actionfield_set),
3254*011be872SHoratiu Vultur 		.keyfield_set_map = es0_keyfield_set_map,
3255*011be872SHoratiu Vultur 		.keyfield_set_map_size = es0_keyfield_set_map_size,
3256*011be872SHoratiu Vultur 		.actionfield_set_map = es0_actionfield_set_map,
3257*011be872SHoratiu Vultur 		.actionfield_set_map_size = es0_actionfield_set_map_size,
3258*011be872SHoratiu Vultur 		.keyfield_set_typegroups = es0_keyfield_set_typegroups,
3259*011be872SHoratiu Vultur 		.actionfield_set_typegroups = es0_actionfield_set_typegroups,
3260*011be872SHoratiu Vultur 	},
326139bedc16SHoratiu Vultur };
326239bedc16SHoratiu Vultur 
326339bedc16SHoratiu Vultur const struct vcap_statistics lan966x_vcap_stats = {
326439bedc16SHoratiu Vultur 	.name = "lan966x",
3265*011be872SHoratiu Vultur 	.count = 3,
326639bedc16SHoratiu Vultur 	.keyfield_set_names = vcap_keyfield_set_names,
326739bedc16SHoratiu Vultur 	.actionfield_set_names = vcap_actionfield_set_names,
326839bedc16SHoratiu Vultur 	.keyfield_names = vcap_keyfield_names,
326939bedc16SHoratiu Vultur 	.actionfield_names = vcap_actionfield_names,
327039bedc16SHoratiu Vultur };
3271