Linux Audio

Check our new training course

Loading...
Note: File does not exist in v3.5.6.
   1// SPDX-License-Identifier: BSD-3-Clause
   2/* Copyright (C) 2022 Microchip Technology Inc. and its subsidiaries.
   3 * Microchip VCAP API
   4 */
   5
   6/* This file is autogenerated by cml-utils 2022-10-13 10:04:41 +0200.
   7 * Commit ID: fd7cafd175899f0672c73afb3a30fc872500ae86
   8 */
   9
  10#include <linux/types.h>
  11#include <linux/kernel.h>
  12
  13#include "vcap_api.h"
  14#include "sparx5_vcap_ag_api.h"
  15
  16/* keyfields */
  17static const struct vcap_field is2_mac_etype_keyfield[] = {
  18	[VCAP_KF_TYPE] = {
  19		.type = VCAP_FIELD_U32,
  20		.offset = 0,
  21		.width = 4,
  22	},
  23	[VCAP_KF_LOOKUP_FIRST_IS] = {
  24		.type = VCAP_FIELD_BIT,
  25		.offset = 4,
  26		.width = 1,
  27	},
  28	[VCAP_KF_LOOKUP_PAG] = {
  29		.type = VCAP_FIELD_U32,
  30		.offset = 5,
  31		.width = 8,
  32	},
  33	[VCAP_KF_IF_IGR_PORT_MASK_L3] = {
  34		.type = VCAP_FIELD_BIT,
  35		.offset = 13,
  36		.width = 1,
  37	},
  38	[VCAP_KF_IF_IGR_PORT_MASK_RNG] = {
  39		.type = VCAP_FIELD_U32,
  40		.offset = 14,
  41		.width = 4,
  42	},
  43	[VCAP_KF_IF_IGR_PORT_MASK_SEL] = {
  44		.type = VCAP_FIELD_U32,
  45		.offset = 18,
  46		.width = 2,
  47	},
  48	[VCAP_KF_IF_IGR_PORT_MASK] = {
  49		.type = VCAP_FIELD_U32,
  50		.offset = 20,
  51		.width = 32,
  52	},
  53	[VCAP_KF_L2_MC_IS] = {
  54		.type = VCAP_FIELD_BIT,
  55		.offset = 52,
  56		.width = 1,
  57	},
  58	[VCAP_KF_L2_BC_IS] = {
  59		.type = VCAP_FIELD_BIT,
  60		.offset = 53,
  61		.width = 1,
  62	},
  63	[VCAP_KF_8021Q_VLAN_TAGGED_IS] = {
  64		.type = VCAP_FIELD_BIT,
  65		.offset = 54,
  66		.width = 1,
  67	},
  68	[VCAP_KF_ISDX_GT0_IS] = {
  69		.type = VCAP_FIELD_BIT,
  70		.offset = 55,
  71		.width = 1,
  72	},
  73	[VCAP_KF_ISDX_CLS] = {
  74		.type = VCAP_FIELD_U32,
  75		.offset = 56,
  76		.width = 12,
  77	},
  78	[VCAP_KF_8021Q_VID_CLS] = {
  79		.type = VCAP_FIELD_U32,
  80		.offset = 68,
  81		.width = 13,
  82	},
  83	[VCAP_KF_8021Q_DEI_CLS] = {
  84		.type = VCAP_FIELD_BIT,
  85		.offset = 81,
  86		.width = 1,
  87	},
  88	[VCAP_KF_8021Q_PCP_CLS] = {
  89		.type = VCAP_FIELD_U32,
  90		.offset = 82,
  91		.width = 3,
  92	},
  93	[VCAP_KF_L2_FWD_IS] = {
  94		.type = VCAP_FIELD_BIT,
  95		.offset = 85,
  96		.width = 1,
  97	},
  98	[VCAP_KF_L3_RT_IS] = {
  99		.type = VCAP_FIELD_BIT,
 100		.offset = 88,
 101		.width = 1,
 102	},
 103	[VCAP_KF_L3_DST_IS] = {
 104		.type = VCAP_FIELD_BIT,
 105		.offset = 89,
 106		.width = 1,
 107	},
 108	[VCAP_KF_L2_DMAC] = {
 109		.type = VCAP_FIELD_U48,
 110		.offset = 90,
 111		.width = 48,
 112	},
 113	[VCAP_KF_L2_SMAC] = {
 114		.type = VCAP_FIELD_U48,
 115		.offset = 138,
 116		.width = 48,
 117	},
 118	[VCAP_KF_ETYPE_LEN_IS] = {
 119		.type = VCAP_FIELD_BIT,
 120		.offset = 186,
 121		.width = 1,
 122	},
 123	[VCAP_KF_ETYPE] = {
 124		.type = VCAP_FIELD_U32,
 125		.offset = 187,
 126		.width = 16,
 127	},
 128	[VCAP_KF_L2_PAYLOAD_ETYPE] = {
 129		.type = VCAP_FIELD_U64,
 130		.offset = 203,
 131		.width = 64,
 132	},
 133	[VCAP_KF_L4_RNG] = {
 134		.type = VCAP_FIELD_U32,
 135		.offset = 267,
 136		.width = 16,
 137	},
 138	[VCAP_KF_OAM_CCM_CNTS_EQ0] = {
 139		.type = VCAP_FIELD_BIT,
 140		.offset = 283,
 141		.width = 1,
 142	},
 143	[VCAP_KF_OAM_Y1731_IS] = {
 144		.type = VCAP_FIELD_BIT,
 145		.offset = 284,
 146		.width = 1,
 147	},
 148};
 149
 150static const struct vcap_field is2_arp_keyfield[] = {
 151	[VCAP_KF_TYPE] = {
 152		.type = VCAP_FIELD_U32,
 153		.offset = 0,
 154		.width = 4,
 155	},
 156	[VCAP_KF_LOOKUP_FIRST_IS] = {
 157		.type = VCAP_FIELD_BIT,
 158		.offset = 4,
 159		.width = 1,
 160	},
 161	[VCAP_KF_LOOKUP_PAG] = {
 162		.type = VCAP_FIELD_U32,
 163		.offset = 5,
 164		.width = 8,
 165	},
 166	[VCAP_KF_IF_IGR_PORT_MASK_L3] = {
 167		.type = VCAP_FIELD_BIT,
 168		.offset = 13,
 169		.width = 1,
 170	},
 171	[VCAP_KF_IF_IGR_PORT_MASK_RNG] = {
 172		.type = VCAP_FIELD_U32,
 173		.offset = 14,
 174		.width = 4,
 175	},
 176	[VCAP_KF_IF_IGR_PORT_MASK_SEL] = {
 177		.type = VCAP_FIELD_U32,
 178		.offset = 18,
 179		.width = 2,
 180	},
 181	[VCAP_KF_IF_IGR_PORT_MASK] = {
 182		.type = VCAP_FIELD_U32,
 183		.offset = 20,
 184		.width = 32,
 185	},
 186	[VCAP_KF_L2_MC_IS] = {
 187		.type = VCAP_FIELD_BIT,
 188		.offset = 52,
 189		.width = 1,
 190	},
 191	[VCAP_KF_L2_BC_IS] = {
 192		.type = VCAP_FIELD_BIT,
 193		.offset = 53,
 194		.width = 1,
 195	},
 196	[VCAP_KF_8021Q_VLAN_TAGGED_IS] = {
 197		.type = VCAP_FIELD_BIT,
 198		.offset = 54,
 199		.width = 1,
 200	},
 201	[VCAP_KF_ISDX_GT0_IS] = {
 202		.type = VCAP_FIELD_BIT,
 203		.offset = 55,
 204		.width = 1,
 205	},
 206	[VCAP_KF_ISDX_CLS] = {
 207		.type = VCAP_FIELD_U32,
 208		.offset = 56,
 209		.width = 12,
 210	},
 211	[VCAP_KF_8021Q_VID_CLS] = {
 212		.type = VCAP_FIELD_U32,
 213		.offset = 68,
 214		.width = 13,
 215	},
 216	[VCAP_KF_8021Q_DEI_CLS] = {
 217		.type = VCAP_FIELD_BIT,
 218		.offset = 81,
 219		.width = 1,
 220	},
 221	[VCAP_KF_8021Q_PCP_CLS] = {
 222		.type = VCAP_FIELD_U32,
 223		.offset = 82,
 224		.width = 3,
 225	},
 226	[VCAP_KF_L2_FWD_IS] = {
 227		.type = VCAP_FIELD_BIT,
 228		.offset = 85,
 229		.width = 1,
 230	},
 231	[VCAP_KF_L2_SMAC] = {
 232		.type = VCAP_FIELD_U48,
 233		.offset = 86,
 234		.width = 48,
 235	},
 236	[VCAP_KF_ARP_ADDR_SPACE_OK_IS] = {
 237		.type = VCAP_FIELD_BIT,
 238		.offset = 134,
 239		.width = 1,
 240	},
 241	[VCAP_KF_ARP_PROTO_SPACE_OK_IS] = {
 242		.type = VCAP_FIELD_BIT,
 243		.offset = 135,
 244		.width = 1,
 245	},
 246	[VCAP_KF_ARP_LEN_OK_IS] = {
 247		.type = VCAP_FIELD_BIT,
 248		.offset = 136,
 249		.width = 1,
 250	},
 251	[VCAP_KF_ARP_TGT_MATCH_IS] = {
 252		.type = VCAP_FIELD_BIT,
 253		.offset = 137,
 254		.width = 1,
 255	},
 256	[VCAP_KF_ARP_SENDER_MATCH_IS] = {
 257		.type = VCAP_FIELD_BIT,
 258		.offset = 138,
 259		.width = 1,
 260	},
 261	[VCAP_KF_ARP_OPCODE_UNKNOWN_IS] = {
 262		.type = VCAP_FIELD_BIT,
 263		.offset = 139,
 264		.width = 1,
 265	},
 266	[VCAP_KF_ARP_OPCODE] = {
 267		.type = VCAP_FIELD_U32,
 268		.offset = 140,
 269		.width = 2,
 270	},
 271	[VCAP_KF_L3_IP4_DIP] = {
 272		.type = VCAP_FIELD_U32,
 273		.offset = 142,
 274		.width = 32,
 275	},
 276	[VCAP_KF_L3_IP4_SIP] = {
 277		.type = VCAP_FIELD_U32,
 278		.offset = 174,
 279		.width = 32,
 280	},
 281	[VCAP_KF_L3_DIP_EQ_SIP_IS] = {
 282		.type = VCAP_FIELD_BIT,
 283		.offset = 206,
 284		.width = 1,
 285	},
 286	[VCAP_KF_L4_RNG] = {
 287		.type = VCAP_FIELD_U32,
 288		.offset = 207,
 289		.width = 16,
 290	},
 291};
 292
 293static const struct vcap_field is2_ip4_tcp_udp_keyfield[] = {
 294	[VCAP_KF_TYPE] = {
 295		.type = VCAP_FIELD_U32,
 296		.offset = 0,
 297		.width = 4,
 298	},
 299	[VCAP_KF_LOOKUP_FIRST_IS] = {
 300		.type = VCAP_FIELD_BIT,
 301		.offset = 4,
 302		.width = 1,
 303	},
 304	[VCAP_KF_LOOKUP_PAG] = {
 305		.type = VCAP_FIELD_U32,
 306		.offset = 5,
 307		.width = 8,
 308	},
 309	[VCAP_KF_IF_IGR_PORT_MASK_L3] = {
 310		.type = VCAP_FIELD_BIT,
 311		.offset = 13,
 312		.width = 1,
 313	},
 314	[VCAP_KF_IF_IGR_PORT_MASK_RNG] = {
 315		.type = VCAP_FIELD_U32,
 316		.offset = 14,
 317		.width = 4,
 318	},
 319	[VCAP_KF_IF_IGR_PORT_MASK_SEL] = {
 320		.type = VCAP_FIELD_U32,
 321		.offset = 18,
 322		.width = 2,
 323	},
 324	[VCAP_KF_IF_IGR_PORT_MASK] = {
 325		.type = VCAP_FIELD_U32,
 326		.offset = 20,
 327		.width = 32,
 328	},
 329	[VCAP_KF_L2_MC_IS] = {
 330		.type = VCAP_FIELD_BIT,
 331		.offset = 52,
 332		.width = 1,
 333	},
 334	[VCAP_KF_L2_BC_IS] = {
 335		.type = VCAP_FIELD_BIT,
 336		.offset = 53,
 337		.width = 1,
 338	},
 339	[VCAP_KF_8021Q_VLAN_TAGGED_IS] = {
 340		.type = VCAP_FIELD_BIT,
 341		.offset = 54,
 342		.width = 1,
 343	},
 344	[VCAP_KF_ISDX_GT0_IS] = {
 345		.type = VCAP_FIELD_BIT,
 346		.offset = 55,
 347		.width = 1,
 348	},
 349	[VCAP_KF_ISDX_CLS] = {
 350		.type = VCAP_FIELD_U32,
 351		.offset = 56,
 352		.width = 12,
 353	},
 354	[VCAP_KF_8021Q_VID_CLS] = {
 355		.type = VCAP_FIELD_U32,
 356		.offset = 68,
 357		.width = 13,
 358	},
 359	[VCAP_KF_8021Q_DEI_CLS] = {
 360		.type = VCAP_FIELD_BIT,
 361		.offset = 81,
 362		.width = 1,
 363	},
 364	[VCAP_KF_8021Q_PCP_CLS] = {
 365		.type = VCAP_FIELD_U32,
 366		.offset = 82,
 367		.width = 3,
 368	},
 369	[VCAP_KF_L2_FWD_IS] = {
 370		.type = VCAP_FIELD_BIT,
 371		.offset = 85,
 372		.width = 1,
 373	},
 374	[VCAP_KF_L3_RT_IS] = {
 375		.type = VCAP_FIELD_BIT,
 376		.offset = 88,
 377		.width = 1,
 378	},
 379	[VCAP_KF_L3_DST_IS] = {
 380		.type = VCAP_FIELD_BIT,
 381		.offset = 89,
 382		.width = 1,
 383	},
 384	[VCAP_KF_IP4_IS] = {
 385		.type = VCAP_FIELD_BIT,
 386		.offset = 90,
 387		.width = 1,
 388	},
 389	[VCAP_KF_L3_FRAGMENT_TYPE] = {
 390		.type = VCAP_FIELD_U32,
 391		.offset = 91,
 392		.width = 2,
 393	},
 394	[VCAP_KF_L3_FRAG_INVLD_L4_LEN] = {
 395		.type = VCAP_FIELD_BIT,
 396		.offset = 93,
 397		.width = 1,
 398	},
 399	[VCAP_KF_L3_OPTIONS_IS] = {
 400		.type = VCAP_FIELD_BIT,
 401		.offset = 94,
 402		.width = 1,
 403	},
 404	[VCAP_KF_L3_TTL_GT0] = {
 405		.type = VCAP_FIELD_BIT,
 406		.offset = 95,
 407		.width = 1,
 408	},
 409	[VCAP_KF_L3_TOS] = {
 410		.type = VCAP_FIELD_U32,
 411		.offset = 96,
 412		.width = 8,
 413	},
 414	[VCAP_KF_L3_IP4_DIP] = {
 415		.type = VCAP_FIELD_U32,
 416		.offset = 104,
 417		.width = 32,
 418	},
 419	[VCAP_KF_L3_IP4_SIP] = {
 420		.type = VCAP_FIELD_U32,
 421		.offset = 136,
 422		.width = 32,
 423	},
 424	[VCAP_KF_L3_DIP_EQ_SIP_IS] = {
 425		.type = VCAP_FIELD_BIT,
 426		.offset = 168,
 427		.width = 1,
 428	},
 429	[VCAP_KF_TCP_IS] = {
 430		.type = VCAP_FIELD_BIT,
 431		.offset = 169,
 432		.width = 1,
 433	},
 434	[VCAP_KF_L4_DPORT] = {
 435		.type = VCAP_FIELD_U32,
 436		.offset = 170,
 437		.width = 16,
 438	},
 439	[VCAP_KF_L4_SPORT] = {
 440		.type = VCAP_FIELD_U32,
 441		.offset = 186,
 442		.width = 16,
 443	},
 444	[VCAP_KF_L4_RNG] = {
 445		.type = VCAP_FIELD_U32,
 446		.offset = 202,
 447		.width = 16,
 448	},
 449	[VCAP_KF_L4_SPORT_EQ_DPORT_IS] = {
 450		.type = VCAP_FIELD_BIT,
 451		.offset = 218,
 452		.width = 1,
 453	},
 454	[VCAP_KF_L4_SEQUENCE_EQ0_IS] = {
 455		.type = VCAP_FIELD_BIT,
 456		.offset = 219,
 457		.width = 1,
 458	},
 459	[VCAP_KF_L4_FIN] = {
 460		.type = VCAP_FIELD_BIT,
 461		.offset = 220,
 462		.width = 1,
 463	},
 464	[VCAP_KF_L4_SYN] = {
 465		.type = VCAP_FIELD_BIT,
 466		.offset = 221,
 467		.width = 1,
 468	},
 469	[VCAP_KF_L4_RST] = {
 470		.type = VCAP_FIELD_BIT,
 471		.offset = 222,
 472		.width = 1,
 473	},
 474	[VCAP_KF_L4_PSH] = {
 475		.type = VCAP_FIELD_BIT,
 476		.offset = 223,
 477		.width = 1,
 478	},
 479	[VCAP_KF_L4_ACK] = {
 480		.type = VCAP_FIELD_BIT,
 481		.offset = 224,
 482		.width = 1,
 483	},
 484	[VCAP_KF_L4_URG] = {
 485		.type = VCAP_FIELD_BIT,
 486		.offset = 225,
 487		.width = 1,
 488	},
 489	[VCAP_KF_L4_PAYLOAD] = {
 490		.type = VCAP_FIELD_U64,
 491		.offset = 226,
 492		.width = 64,
 493	},
 494};
 495
 496static const struct vcap_field is2_ip4_other_keyfield[] = {
 497	[VCAP_KF_TYPE] = {
 498		.type = VCAP_FIELD_U32,
 499		.offset = 0,
 500		.width = 4,
 501	},
 502	[VCAP_KF_LOOKUP_FIRST_IS] = {
 503		.type = VCAP_FIELD_BIT,
 504		.offset = 4,
 505		.width = 1,
 506	},
 507	[VCAP_KF_LOOKUP_PAG] = {
 508		.type = VCAP_FIELD_U32,
 509		.offset = 5,
 510		.width = 8,
 511	},
 512	[VCAP_KF_IF_IGR_PORT_MASK_L3] = {
 513		.type = VCAP_FIELD_BIT,
 514		.offset = 13,
 515		.width = 1,
 516	},
 517	[VCAP_KF_IF_IGR_PORT_MASK_RNG] = {
 518		.type = VCAP_FIELD_U32,
 519		.offset = 14,
 520		.width = 4,
 521	},
 522	[VCAP_KF_IF_IGR_PORT_MASK_SEL] = {
 523		.type = VCAP_FIELD_U32,
 524		.offset = 18,
 525		.width = 2,
 526	},
 527	[VCAP_KF_IF_IGR_PORT_MASK] = {
 528		.type = VCAP_FIELD_U32,
 529		.offset = 20,
 530		.width = 32,
 531	},
 532	[VCAP_KF_L2_MC_IS] = {
 533		.type = VCAP_FIELD_BIT,
 534		.offset = 52,
 535		.width = 1,
 536	},
 537	[VCAP_KF_L2_BC_IS] = {
 538		.type = VCAP_FIELD_BIT,
 539		.offset = 53,
 540		.width = 1,
 541	},
 542	[VCAP_KF_8021Q_VLAN_TAGGED_IS] = {
 543		.type = VCAP_FIELD_BIT,
 544		.offset = 54,
 545		.width = 1,
 546	},
 547	[VCAP_KF_ISDX_GT0_IS] = {
 548		.type = VCAP_FIELD_BIT,
 549		.offset = 55,
 550		.width = 1,
 551	},
 552	[VCAP_KF_ISDX_CLS] = {
 553		.type = VCAP_FIELD_U32,
 554		.offset = 56,
 555		.width = 12,
 556	},
 557	[VCAP_KF_8021Q_VID_CLS] = {
 558		.type = VCAP_FIELD_U32,
 559		.offset = 68,
 560		.width = 13,
 561	},
 562	[VCAP_KF_8021Q_DEI_CLS] = {
 563		.type = VCAP_FIELD_BIT,
 564		.offset = 81,
 565		.width = 1,
 566	},
 567	[VCAP_KF_8021Q_PCP_CLS] = {
 568		.type = VCAP_FIELD_U32,
 569		.offset = 82,
 570		.width = 3,
 571	},
 572	[VCAP_KF_L2_FWD_IS] = {
 573		.type = VCAP_FIELD_BIT,
 574		.offset = 85,
 575		.width = 1,
 576	},
 577	[VCAP_KF_L3_RT_IS] = {
 578		.type = VCAP_FIELD_BIT,
 579		.offset = 88,
 580		.width = 1,
 581	},
 582	[VCAP_KF_L3_DST_IS] = {
 583		.type = VCAP_FIELD_BIT,
 584		.offset = 89,
 585		.width = 1,
 586	},
 587	[VCAP_KF_IP4_IS] = {
 588		.type = VCAP_FIELD_BIT,
 589		.offset = 90,
 590		.width = 1,
 591	},
 592	[VCAP_KF_L3_FRAGMENT_TYPE] = {
 593		.type = VCAP_FIELD_U32,
 594		.offset = 91,
 595		.width = 2,
 596	},
 597	[VCAP_KF_L3_FRAG_INVLD_L4_LEN] = {
 598		.type = VCAP_FIELD_BIT,
 599		.offset = 93,
 600		.width = 1,
 601	},
 602	[VCAP_KF_L3_OPTIONS_IS] = {
 603		.type = VCAP_FIELD_BIT,
 604		.offset = 94,
 605		.width = 1,
 606	},
 607	[VCAP_KF_L3_TTL_GT0] = {
 608		.type = VCAP_FIELD_BIT,
 609		.offset = 95,
 610		.width = 1,
 611	},
 612	[VCAP_KF_L3_TOS] = {
 613		.type = VCAP_FIELD_U32,
 614		.offset = 96,
 615		.width = 8,
 616	},
 617	[VCAP_KF_L3_IP4_DIP] = {
 618		.type = VCAP_FIELD_U32,
 619		.offset = 104,
 620		.width = 32,
 621	},
 622	[VCAP_KF_L3_IP4_SIP] = {
 623		.type = VCAP_FIELD_U32,
 624		.offset = 136,
 625		.width = 32,
 626	},
 627	[VCAP_KF_L3_DIP_EQ_SIP_IS] = {
 628		.type = VCAP_FIELD_BIT,
 629		.offset = 168,
 630		.width = 1,
 631	},
 632	[VCAP_KF_L3_IP_PROTO] = {
 633		.type = VCAP_FIELD_U32,
 634		.offset = 169,
 635		.width = 8,
 636	},
 637	[VCAP_KF_L4_RNG] = {
 638		.type = VCAP_FIELD_U32,
 639		.offset = 177,
 640		.width = 16,
 641	},
 642	[VCAP_KF_L3_PAYLOAD] = {
 643		.type = VCAP_FIELD_U112,
 644		.offset = 193,
 645		.width = 96,
 646	},
 647};
 648
 649static const struct vcap_field is2_ip6_std_keyfield[] = {
 650	[VCAP_KF_TYPE] = {
 651		.type = VCAP_FIELD_U32,
 652		.offset = 0,
 653		.width = 4,
 654	},
 655	[VCAP_KF_LOOKUP_FIRST_IS] = {
 656		.type = VCAP_FIELD_BIT,
 657		.offset = 4,
 658		.width = 1,
 659	},
 660	[VCAP_KF_LOOKUP_PAG] = {
 661		.type = VCAP_FIELD_U32,
 662		.offset = 5,
 663		.width = 8,
 664	},
 665	[VCAP_KF_IF_IGR_PORT_MASK_L3] = {
 666		.type = VCAP_FIELD_BIT,
 667		.offset = 13,
 668		.width = 1,
 669	},
 670	[VCAP_KF_IF_IGR_PORT_MASK_RNG] = {
 671		.type = VCAP_FIELD_U32,
 672		.offset = 14,
 673		.width = 4,
 674	},
 675	[VCAP_KF_IF_IGR_PORT_MASK_SEL] = {
 676		.type = VCAP_FIELD_U32,
 677		.offset = 18,
 678		.width = 2,
 679	},
 680	[VCAP_KF_IF_IGR_PORT_MASK] = {
 681		.type = VCAP_FIELD_U32,
 682		.offset = 20,
 683		.width = 32,
 684	},
 685	[VCAP_KF_L2_MC_IS] = {
 686		.type = VCAP_FIELD_BIT,
 687		.offset = 52,
 688		.width = 1,
 689	},
 690	[VCAP_KF_L2_BC_IS] = {
 691		.type = VCAP_FIELD_BIT,
 692		.offset = 53,
 693		.width = 1,
 694	},
 695	[VCAP_KF_8021Q_VLAN_TAGGED_IS] = {
 696		.type = VCAP_FIELD_BIT,
 697		.offset = 54,
 698		.width = 1,
 699	},
 700	[VCAP_KF_ISDX_GT0_IS] = {
 701		.type = VCAP_FIELD_BIT,
 702		.offset = 55,
 703		.width = 1,
 704	},
 705	[VCAP_KF_ISDX_CLS] = {
 706		.type = VCAP_FIELD_U32,
 707		.offset = 56,
 708		.width = 12,
 709	},
 710	[VCAP_KF_8021Q_VID_CLS] = {
 711		.type = VCAP_FIELD_U32,
 712		.offset = 68,
 713		.width = 13,
 714	},
 715	[VCAP_KF_8021Q_DEI_CLS] = {
 716		.type = VCAP_FIELD_BIT,
 717		.offset = 81,
 718		.width = 1,
 719	},
 720	[VCAP_KF_8021Q_PCP_CLS] = {
 721		.type = VCAP_FIELD_U32,
 722		.offset = 82,
 723		.width = 3,
 724	},
 725	[VCAP_KF_L2_FWD_IS] = {
 726		.type = VCAP_FIELD_BIT,
 727		.offset = 85,
 728		.width = 1,
 729	},
 730	[VCAP_KF_L3_RT_IS] = {
 731		.type = VCAP_FIELD_BIT,
 732		.offset = 88,
 733		.width = 1,
 734	},
 735	[VCAP_KF_L3_TTL_GT0] = {
 736		.type = VCAP_FIELD_BIT,
 737		.offset = 90,
 738		.width = 1,
 739	},
 740	[VCAP_KF_L3_IP6_SIP] = {
 741		.type = VCAP_FIELD_U128,
 742		.offset = 91,
 743		.width = 128,
 744	},
 745	[VCAP_KF_L3_DIP_EQ_SIP_IS] = {
 746		.type = VCAP_FIELD_BIT,
 747		.offset = 219,
 748		.width = 1,
 749	},
 750	[VCAP_KF_L3_IP_PROTO] = {
 751		.type = VCAP_FIELD_U32,
 752		.offset = 220,
 753		.width = 8,
 754	},
 755	[VCAP_KF_L4_RNG] = {
 756		.type = VCAP_FIELD_U32,
 757		.offset = 228,
 758		.width = 16,
 759	},
 760	[VCAP_KF_L3_PAYLOAD] = {
 761		.type = VCAP_FIELD_U48,
 762		.offset = 244,
 763		.width = 40,
 764	},
 765};
 766
 767static const struct vcap_field is2_ip_7tuple_keyfield[] = {
 768	[VCAP_KF_TYPE] = {
 769		.type = VCAP_FIELD_U32,
 770		.offset = 0,
 771		.width = 2,
 772	},
 773	[VCAP_KF_LOOKUP_FIRST_IS] = {
 774		.type = VCAP_FIELD_BIT,
 775		.offset = 2,
 776		.width = 1,
 777	},
 778	[VCAP_KF_LOOKUP_PAG] = {
 779		.type = VCAP_FIELD_U32,
 780		.offset = 3,
 781		.width = 8,
 782	},
 783	[VCAP_KF_IF_IGR_PORT_MASK_L3] = {
 784		.type = VCAP_FIELD_BIT,
 785		.offset = 11,
 786		.width = 1,
 787	},
 788	[VCAP_KF_IF_IGR_PORT_MASK_RNG] = {
 789		.type = VCAP_FIELD_U32,
 790		.offset = 12,
 791		.width = 4,
 792	},
 793	[VCAP_KF_IF_IGR_PORT_MASK_SEL] = {
 794		.type = VCAP_FIELD_U32,
 795		.offset = 16,
 796		.width = 2,
 797	},
 798	[VCAP_KF_IF_IGR_PORT_MASK] = {
 799		.type = VCAP_FIELD_U72,
 800		.offset = 18,
 801		.width = 65,
 802	},
 803	[VCAP_KF_L2_MC_IS] = {
 804		.type = VCAP_FIELD_BIT,
 805		.offset = 83,
 806		.width = 1,
 807	},
 808	[VCAP_KF_L2_BC_IS] = {
 809		.type = VCAP_FIELD_BIT,
 810		.offset = 84,
 811		.width = 1,
 812	},
 813	[VCAP_KF_8021Q_VLAN_TAGGED_IS] = {
 814		.type = VCAP_FIELD_BIT,
 815		.offset = 85,
 816		.width = 1,
 817	},
 818	[VCAP_KF_ISDX_GT0_IS] = {
 819		.type = VCAP_FIELD_BIT,
 820		.offset = 86,
 821		.width = 1,
 822	},
 823	[VCAP_KF_ISDX_CLS] = {
 824		.type = VCAP_FIELD_U32,
 825		.offset = 87,
 826		.width = 12,
 827	},
 828	[VCAP_KF_8021Q_VID_CLS] = {
 829		.type = VCAP_FIELD_U32,
 830		.offset = 99,
 831		.width = 13,
 832	},
 833	[VCAP_KF_8021Q_DEI_CLS] = {
 834		.type = VCAP_FIELD_BIT,
 835		.offset = 112,
 836		.width = 1,
 837	},
 838	[VCAP_KF_8021Q_PCP_CLS] = {
 839		.type = VCAP_FIELD_U32,
 840		.offset = 113,
 841		.width = 3,
 842	},
 843	[VCAP_KF_L2_FWD_IS] = {
 844		.type = VCAP_FIELD_BIT,
 845		.offset = 116,
 846		.width = 1,
 847	},
 848	[VCAP_KF_L3_RT_IS] = {
 849		.type = VCAP_FIELD_BIT,
 850		.offset = 119,
 851		.width = 1,
 852	},
 853	[VCAP_KF_L3_DST_IS] = {
 854		.type = VCAP_FIELD_BIT,
 855		.offset = 120,
 856		.width = 1,
 857	},
 858	[VCAP_KF_L2_DMAC] = {
 859		.type = VCAP_FIELD_U48,
 860		.offset = 121,
 861		.width = 48,
 862	},
 863	[VCAP_KF_L2_SMAC] = {
 864		.type = VCAP_FIELD_U48,
 865		.offset = 169,
 866		.width = 48,
 867	},
 868	[VCAP_KF_IP4_IS] = {
 869		.type = VCAP_FIELD_BIT,
 870		.offset = 217,
 871		.width = 1,
 872	},
 873	[VCAP_KF_L3_TTL_GT0] = {
 874		.type = VCAP_FIELD_BIT,
 875		.offset = 218,
 876		.width = 1,
 877	},
 878	[VCAP_KF_L3_TOS] = {
 879		.type = VCAP_FIELD_U32,
 880		.offset = 219,
 881		.width = 8,
 882	},
 883	[VCAP_KF_L3_IP6_DIP] = {
 884		.type = VCAP_FIELD_U128,
 885		.offset = 227,
 886		.width = 128,
 887	},
 888	[VCAP_KF_L3_IP6_SIP] = {
 889		.type = VCAP_FIELD_U128,
 890		.offset = 355,
 891		.width = 128,
 892	},
 893	[VCAP_KF_L3_DIP_EQ_SIP_IS] = {
 894		.type = VCAP_FIELD_BIT,
 895		.offset = 483,
 896		.width = 1,
 897	},
 898	[VCAP_KF_TCP_UDP_IS] = {
 899		.type = VCAP_FIELD_BIT,
 900		.offset = 484,
 901		.width = 1,
 902	},
 903	[VCAP_KF_TCP_IS] = {
 904		.type = VCAP_FIELD_BIT,
 905		.offset = 485,
 906		.width = 1,
 907	},
 908	[VCAP_KF_L4_DPORT] = {
 909		.type = VCAP_FIELD_U32,
 910		.offset = 486,
 911		.width = 16,
 912	},
 913	[VCAP_KF_L4_SPORT] = {
 914		.type = VCAP_FIELD_U32,
 915		.offset = 502,
 916		.width = 16,
 917	},
 918	[VCAP_KF_L4_RNG] = {
 919		.type = VCAP_FIELD_U32,
 920		.offset = 518,
 921		.width = 16,
 922	},
 923	[VCAP_KF_L4_SPORT_EQ_DPORT_IS] = {
 924		.type = VCAP_FIELD_BIT,
 925		.offset = 534,
 926		.width = 1,
 927	},
 928	[VCAP_KF_L4_SEQUENCE_EQ0_IS] = {
 929		.type = VCAP_FIELD_BIT,
 930		.offset = 535,
 931		.width = 1,
 932	},
 933	[VCAP_KF_L4_FIN] = {
 934		.type = VCAP_FIELD_BIT,
 935		.offset = 536,
 936		.width = 1,
 937	},
 938	[VCAP_KF_L4_SYN] = {
 939		.type = VCAP_FIELD_BIT,
 940		.offset = 537,
 941		.width = 1,
 942	},
 943	[VCAP_KF_L4_RST] = {
 944		.type = VCAP_FIELD_BIT,
 945		.offset = 538,
 946		.width = 1,
 947	},
 948	[VCAP_KF_L4_PSH] = {
 949		.type = VCAP_FIELD_BIT,
 950		.offset = 539,
 951		.width = 1,
 952	},
 953	[VCAP_KF_L4_ACK] = {
 954		.type = VCAP_FIELD_BIT,
 955		.offset = 540,
 956		.width = 1,
 957	},
 958	[VCAP_KF_L4_URG] = {
 959		.type = VCAP_FIELD_BIT,
 960		.offset = 541,
 961		.width = 1,
 962	},
 963	[VCAP_KF_L4_PAYLOAD] = {
 964		.type = VCAP_FIELD_U64,
 965		.offset = 542,
 966		.width = 64,
 967	},
 968};
 969
 970/* keyfield_set */
 971static const struct vcap_set is2_keyfield_set[] = {
 972	[VCAP_KFS_MAC_ETYPE] = {
 973		.type_id = 0,
 974		.sw_per_item = 6,
 975		.sw_cnt = 2,
 976	},
 977	[VCAP_KFS_ARP] = {
 978		.type_id = 3,
 979		.sw_per_item = 6,
 980		.sw_cnt = 2,
 981	},
 982	[VCAP_KFS_IP4_TCP_UDP] = {
 983		.type_id = 4,
 984		.sw_per_item = 6,
 985		.sw_cnt = 2,
 986	},
 987	[VCAP_KFS_IP4_OTHER] = {
 988		.type_id = 5,
 989		.sw_per_item = 6,
 990		.sw_cnt = 2,
 991	},
 992	[VCAP_KFS_IP6_STD] = {
 993		.type_id = 6,
 994		.sw_per_item = 6,
 995		.sw_cnt = 2,
 996	},
 997	[VCAP_KFS_IP_7TUPLE] = {
 998		.type_id = 1,
 999		.sw_per_item = 12,
1000		.sw_cnt = 1,
1001	},
1002};
1003
1004/* keyfield_set map */
1005static const struct vcap_field *is2_keyfield_set_map[] = {
1006	[VCAP_KFS_MAC_ETYPE] = is2_mac_etype_keyfield,
1007	[VCAP_KFS_ARP] = is2_arp_keyfield,
1008	[VCAP_KFS_IP4_TCP_UDP] = is2_ip4_tcp_udp_keyfield,
1009	[VCAP_KFS_IP4_OTHER] = is2_ip4_other_keyfield,
1010	[VCAP_KFS_IP6_STD] = is2_ip6_std_keyfield,
1011	[VCAP_KFS_IP_7TUPLE] = is2_ip_7tuple_keyfield,
1012};
1013
1014/* keyfield_set map sizes */
1015static int is2_keyfield_set_map_size[] = {
1016	[VCAP_KFS_MAC_ETYPE] = ARRAY_SIZE(is2_mac_etype_keyfield),
1017	[VCAP_KFS_ARP] = ARRAY_SIZE(is2_arp_keyfield),
1018	[VCAP_KFS_IP4_TCP_UDP] = ARRAY_SIZE(is2_ip4_tcp_udp_keyfield),
1019	[VCAP_KFS_IP4_OTHER] = ARRAY_SIZE(is2_ip4_other_keyfield),
1020	[VCAP_KFS_IP6_STD] = ARRAY_SIZE(is2_ip6_std_keyfield),
1021	[VCAP_KFS_IP_7TUPLE] = ARRAY_SIZE(is2_ip_7tuple_keyfield),
1022};
1023
1024/* actionfields */
1025static const struct vcap_field is2_base_type_actionfield[] = {
1026	[VCAP_AF_PIPELINE_FORCE_ENA] = {
1027		.type = VCAP_FIELD_BIT,
1028		.offset = 1,
1029		.width = 1,
1030	},
1031	[VCAP_AF_PIPELINE_PT] = {
1032		.type = VCAP_FIELD_U32,
1033		.offset = 2,
1034		.width = 5,
1035	},
1036	[VCAP_AF_HIT_ME_ONCE] = {
1037		.type = VCAP_FIELD_BIT,
1038		.offset = 7,
1039		.width = 1,
1040	},
1041	[VCAP_AF_INTR_ENA] = {
1042		.type = VCAP_FIELD_BIT,
1043		.offset = 8,
1044		.width = 1,
1045	},
1046	[VCAP_AF_CPU_COPY_ENA] = {
1047		.type = VCAP_FIELD_BIT,
1048		.offset = 9,
1049		.width = 1,
1050	},
1051	[VCAP_AF_CPU_QUEUE_NUM] = {
1052		.type = VCAP_FIELD_U32,
1053		.offset = 10,
1054		.width = 3,
1055	},
1056	[VCAP_AF_LRN_DIS] = {
1057		.type = VCAP_FIELD_BIT,
1058		.offset = 14,
1059		.width = 1,
1060	},
1061	[VCAP_AF_RT_DIS] = {
1062		.type = VCAP_FIELD_BIT,
1063		.offset = 15,
1064		.width = 1,
1065	},
1066	[VCAP_AF_POLICE_ENA] = {
1067		.type = VCAP_FIELD_BIT,
1068		.offset = 16,
1069		.width = 1,
1070	},
1071	[VCAP_AF_POLICE_IDX] = {
1072		.type = VCAP_FIELD_U32,
1073		.offset = 17,
1074		.width = 6,
1075	},
1076	[VCAP_AF_IGNORE_PIPELINE_CTRL] = {
1077		.type = VCAP_FIELD_BIT,
1078		.offset = 23,
1079		.width = 1,
1080	},
1081	[VCAP_AF_MASK_MODE] = {
1082		.type = VCAP_FIELD_U32,
1083		.offset = 27,
1084		.width = 3,
1085	},
1086	[VCAP_AF_PORT_MASK] = {
1087		.type = VCAP_FIELD_U72,
1088		.offset = 30,
1089		.width = 68,
1090	},
1091	[VCAP_AF_MIRROR_PROBE] = {
1092		.type = VCAP_FIELD_U32,
1093		.offset = 111,
1094		.width = 2,
1095	},
1096	[VCAP_AF_MATCH_ID] = {
1097		.type = VCAP_FIELD_U32,
1098		.offset = 159,
1099		.width = 16,
1100	},
1101	[VCAP_AF_MATCH_ID_MASK] = {
1102		.type = VCAP_FIELD_U32,
1103		.offset = 175,
1104		.width = 16,
1105	},
1106	[VCAP_AF_CNT_ID] = {
1107		.type = VCAP_FIELD_U32,
1108		.offset = 191,
1109		.width = 12,
1110	},
1111};
1112
1113/* actionfield_set */
1114static const struct vcap_set is2_actionfield_set[] = {
1115	[VCAP_AFS_BASE_TYPE] = {
1116		.type_id = -1,
1117		.sw_per_item = 3,
1118		.sw_cnt = 4,
1119	},
1120};
1121
1122/* actionfield_set map */
1123static const struct vcap_field *is2_actionfield_set_map[] = {
1124	[VCAP_AFS_BASE_TYPE] = is2_base_type_actionfield,
1125};
1126
1127/* actionfield_set map size */
1128static int is2_actionfield_set_map_size[] = {
1129	[VCAP_AFS_BASE_TYPE] = ARRAY_SIZE(is2_base_type_actionfield),
1130};
1131
1132/* Type Groups */
1133static const struct vcap_typegroup is2_x12_keyfield_set_typegroups[] = {
1134	{
1135		.offset = 0,
1136		.width = 3,
1137		.value = 4,
1138	},
1139	{
1140		.offset = 156,
1141		.width = 1,
1142		.value = 0,
1143	},
1144	{
1145		.offset = 312,
1146		.width = 2,
1147		.value = 0,
1148	},
1149	{
1150		.offset = 468,
1151		.width = 1,
1152		.value = 0,
1153	},
1154	{}
1155};
1156
1157static const struct vcap_typegroup is2_x6_keyfield_set_typegroups[] = {
1158	{
1159		.offset = 0,
1160		.width = 2,
1161		.value = 2,
1162	},
1163	{
1164		.offset = 156,
1165		.width = 1,
1166		.value = 0,
1167	},
1168	{}
1169};
1170
1171static const struct vcap_typegroup is2_x3_keyfield_set_typegroups[] = {
1172	{}
1173};
1174
1175static const struct vcap_typegroup is2_x1_keyfield_set_typegroups[] = {
1176	{}
1177};
1178
1179static const struct vcap_typegroup *is2_keyfield_set_typegroups[] = {
1180	[12] = is2_x12_keyfield_set_typegroups,
1181	[6] = is2_x6_keyfield_set_typegroups,
1182	[3] = is2_x3_keyfield_set_typegroups,
1183	[1] = is2_x1_keyfield_set_typegroups,
1184	[13] = NULL,
1185};
1186
1187static const struct vcap_typegroup is2_x3_actionfield_set_typegroups[] = {
1188	{
1189		.offset = 0,
1190		.width = 2,
1191		.value = 2,
1192	},
1193	{
1194		.offset = 110,
1195		.width = 1,
1196		.value = 0,
1197	},
1198	{
1199		.offset = 220,
1200		.width = 1,
1201		.value = 0,
1202	},
1203	{}
1204};
1205
1206static const struct vcap_typegroup is2_x1_actionfield_set_typegroups[] = {
1207	{}
1208};
1209
1210static const struct vcap_typegroup *is2_actionfield_set_typegroups[] = {
1211	[3] = is2_x3_actionfield_set_typegroups,
1212	[1] = is2_x1_actionfield_set_typegroups,
1213	[13] = NULL,
1214};
1215
1216/* Keyfieldset names */
1217static const char * const vcap_keyfield_set_names[] = {
1218	[VCAP_KFS_NO_VALUE]                      =  "(None)",
1219	[VCAP_KFS_ARP]                           =  "VCAP_KFS_ARP",
1220	[VCAP_KFS_IP4_OTHER]                     =  "VCAP_KFS_IP4_OTHER",
1221	[VCAP_KFS_IP4_TCP_UDP]                   =  "VCAP_KFS_IP4_TCP_UDP",
1222	[VCAP_KFS_IP6_STD]                       =  "VCAP_KFS_IP6_STD",
1223	[VCAP_KFS_IP_7TUPLE]                     =  "VCAP_KFS_IP_7TUPLE",
1224	[VCAP_KFS_MAC_ETYPE]                     =  "VCAP_KFS_MAC_ETYPE",
1225};
1226
1227/* Actionfieldset names */
1228static const char * const vcap_actionfield_set_names[] = {
1229	[VCAP_AFS_NO_VALUE]                      =  "(None)",
1230	[VCAP_AFS_BASE_TYPE]                     =  "VCAP_AFS_BASE_TYPE",
1231};
1232
1233/* Keyfield names */
1234static const char * const vcap_keyfield_names[] = {
1235	[VCAP_KF_NO_VALUE]                       =  "(None)",
1236	[VCAP_KF_8021Q_DEI_CLS]                  =  "8021Q_DEI_CLS",
1237	[VCAP_KF_8021Q_PCP_CLS]                  =  "8021Q_PCP_CLS",
1238	[VCAP_KF_8021Q_VID_CLS]                  =  "8021Q_VID_CLS",
1239	[VCAP_KF_8021Q_VLAN_TAGGED_IS]           =  "8021Q_VLAN_TAGGED_IS",
1240	[VCAP_KF_ARP_ADDR_SPACE_OK_IS]           =  "ARP_ADDR_SPACE_OK_IS",
1241	[VCAP_KF_ARP_LEN_OK_IS]                  =  "ARP_LEN_OK_IS",
1242	[VCAP_KF_ARP_OPCODE]                     =  "ARP_OPCODE",
1243	[VCAP_KF_ARP_OPCODE_UNKNOWN_IS]          =  "ARP_OPCODE_UNKNOWN_IS",
1244	[VCAP_KF_ARP_PROTO_SPACE_OK_IS]          =  "ARP_PROTO_SPACE_OK_IS",
1245	[VCAP_KF_ARP_SENDER_MATCH_IS]            =  "ARP_SENDER_MATCH_IS",
1246	[VCAP_KF_ARP_TGT_MATCH_IS]               =  "ARP_TGT_MATCH_IS",
1247	[VCAP_KF_ETYPE]                          =  "ETYPE",
1248	[VCAP_KF_ETYPE_LEN_IS]                   =  "ETYPE_LEN_IS",
1249	[VCAP_KF_IF_IGR_PORT_MASK]               =  "IF_IGR_PORT_MASK",
1250	[VCAP_KF_IF_IGR_PORT_MASK_L3]            =  "IF_IGR_PORT_MASK_L3",
1251	[VCAP_KF_IF_IGR_PORT_MASK_RNG]           =  "IF_IGR_PORT_MASK_RNG",
1252	[VCAP_KF_IF_IGR_PORT_MASK_SEL]           =  "IF_IGR_PORT_MASK_SEL",
1253	[VCAP_KF_IP4_IS]                         =  "IP4_IS",
1254	[VCAP_KF_ISDX_CLS]                       =  "ISDX_CLS",
1255	[VCAP_KF_ISDX_GT0_IS]                    =  "ISDX_GT0_IS",
1256	[VCAP_KF_L2_BC_IS]                       =  "L2_BC_IS",
1257	[VCAP_KF_L2_DMAC]                        =  "L2_DMAC",
1258	[VCAP_KF_L2_FWD_IS]                      =  "L2_FWD_IS",
1259	[VCAP_KF_L2_MC_IS]                       =  "L2_MC_IS",
1260	[VCAP_KF_L2_PAYLOAD_ETYPE]               =  "L2_PAYLOAD_ETYPE",
1261	[VCAP_KF_L2_SMAC]                        =  "L2_SMAC",
1262	[VCAP_KF_L3_DIP_EQ_SIP_IS]               =  "L3_DIP_EQ_SIP_IS",
1263	[VCAP_KF_L3_DST_IS]                      =  "L3_DST_IS",
1264	[VCAP_KF_L3_FRAGMENT_TYPE]               =  "L3_FRAGMENT_TYPE",
1265	[VCAP_KF_L3_FRAG_INVLD_L4_LEN]           =  "L3_FRAG_INVLD_L4_LEN",
1266	[VCAP_KF_L3_IP4_DIP]                     =  "L3_IP4_DIP",
1267	[VCAP_KF_L3_IP4_SIP]                     =  "L3_IP4_SIP",
1268	[VCAP_KF_L3_IP6_DIP]                     =  "L3_IP6_DIP",
1269	[VCAP_KF_L3_IP6_SIP]                     =  "L3_IP6_SIP",
1270	[VCAP_KF_L3_IP_PROTO]                    =  "L3_IP_PROTO",
1271	[VCAP_KF_L3_OPTIONS_IS]                  =  "L3_OPTIONS_IS",
1272	[VCAP_KF_L3_PAYLOAD]                     =  "L3_PAYLOAD",
1273	[VCAP_KF_L3_RT_IS]                       =  "L3_RT_IS",
1274	[VCAP_KF_L3_TOS]                         =  "L3_TOS",
1275	[VCAP_KF_L3_TTL_GT0]                     =  "L3_TTL_GT0",
1276	[VCAP_KF_L4_ACK]                         =  "L4_ACK",
1277	[VCAP_KF_L4_DPORT]                       =  "L4_DPORT",
1278	[VCAP_KF_L4_FIN]                         =  "L4_FIN",
1279	[VCAP_KF_L4_PAYLOAD]                     =  "L4_PAYLOAD",
1280	[VCAP_KF_L4_PSH]                         =  "L4_PSH",
1281	[VCAP_KF_L4_RNG]                         =  "L4_RNG",
1282	[VCAP_KF_L4_RST]                         =  "L4_RST",
1283	[VCAP_KF_L4_SEQUENCE_EQ0_IS]             =  "L4_SEQUENCE_EQ0_IS",
1284	[VCAP_KF_L4_SPORT]                       =  "L4_SPORT",
1285	[VCAP_KF_L4_SPORT_EQ_DPORT_IS]           =  "L4_SPORT_EQ_DPORT_IS",
1286	[VCAP_KF_L4_SYN]                         =  "L4_SYN",
1287	[VCAP_KF_L4_URG]                         =  "L4_URG",
1288	[VCAP_KF_LOOKUP_FIRST_IS]                =  "LOOKUP_FIRST_IS",
1289	[VCAP_KF_LOOKUP_PAG]                     =  "LOOKUP_PAG",
1290	[VCAP_KF_OAM_CCM_CNTS_EQ0]               =  "OAM_CCM_CNTS_EQ0",
1291	[VCAP_KF_OAM_Y1731_IS]                   =  "OAM_Y1731_IS",
1292	[VCAP_KF_TCP_IS]                         =  "TCP_IS",
1293	[VCAP_KF_TCP_UDP_IS]                     =  "TCP_UDP_IS",
1294	[VCAP_KF_TYPE]                           =  "TYPE",
1295};
1296
1297/* Actionfield names */
1298static const char * const vcap_actionfield_names[] = {
1299	[VCAP_AF_NO_VALUE]                       =  "(None)",
1300	[VCAP_AF_CNT_ID]                         =  "CNT_ID",
1301	[VCAP_AF_CPU_COPY_ENA]                   =  "CPU_COPY_ENA",
1302	[VCAP_AF_CPU_QUEUE_NUM]                  =  "CPU_QUEUE_NUM",
1303	[VCAP_AF_HIT_ME_ONCE]                    =  "HIT_ME_ONCE",
1304	[VCAP_AF_IGNORE_PIPELINE_CTRL]           =  "IGNORE_PIPELINE_CTRL",
1305	[VCAP_AF_INTR_ENA]                       =  "INTR_ENA",
1306	[VCAP_AF_LRN_DIS]                        =  "LRN_DIS",
1307	[VCAP_AF_MASK_MODE]                      =  "MASK_MODE",
1308	[VCAP_AF_MATCH_ID]                       =  "MATCH_ID",
1309	[VCAP_AF_MATCH_ID_MASK]                  =  "MATCH_ID_MASK",
1310	[VCAP_AF_MIRROR_PROBE]                   =  "MIRROR_PROBE",
1311	[VCAP_AF_PIPELINE_FORCE_ENA]             =  "PIPELINE_FORCE_ENA",
1312	[VCAP_AF_PIPELINE_PT]                    =  "PIPELINE_PT",
1313	[VCAP_AF_POLICE_ENA]                     =  "POLICE_ENA",
1314	[VCAP_AF_POLICE_IDX]                     =  "POLICE_IDX",
1315	[VCAP_AF_PORT_MASK]                      =  "PORT_MASK",
1316	[VCAP_AF_RT_DIS]                         =  "RT_DIS",
1317};
1318
1319/* VCAPs */
1320const struct vcap_info sparx5_vcaps[] = {
1321	[VCAP_TYPE_IS2] = {
1322		.name = "is2",
1323		.rows = 256,
1324		.sw_count = 12,
1325		.sw_width = 52,
1326		.sticky_width = 1,
1327		.act_width = 110,
1328		.default_cnt = 73,
1329		.require_cnt_dis = 0,
1330		.version = 1,
1331		.keyfield_set = is2_keyfield_set,
1332		.keyfield_set_size = ARRAY_SIZE(is2_keyfield_set),
1333		.actionfield_set = is2_actionfield_set,
1334		.actionfield_set_size = ARRAY_SIZE(is2_actionfield_set),
1335		.keyfield_set_map = is2_keyfield_set_map,
1336		.keyfield_set_map_size = is2_keyfield_set_map_size,
1337		.actionfield_set_map = is2_actionfield_set_map,
1338		.actionfield_set_map_size = is2_actionfield_set_map_size,
1339		.keyfield_set_typegroups = is2_keyfield_set_typegroups,
1340		.actionfield_set_typegroups = is2_actionfield_set_typegroups,
1341	},
1342};
1343
1344const struct vcap_statistics sparx5_vcap_stats = {
1345	.name = "sparx5",
1346	.count = 1,
1347	.keyfield_set_names = vcap_keyfield_set_names,
1348	.actionfield_set_names = vcap_actionfield_set_names,
1349	.keyfield_names = vcap_keyfield_names,
1350	.actionfield_names = vcap_actionfield_names,
1351};