3875 lines · c
1// SPDX-License-Identifier: BSD-3-Clause2/* Copyright (C) 2023 Microchip Technology Inc. and its subsidiaries.3 * Microchip VCAP API4 */5 6/* This file is autogenerated by cml-utils 2023-02-10 11:15:56 +0100.7 * Commit ID: c30fb4bf0281cd4a7133bdab6682f9e43c872ada8 */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 is0_normal_7tuple_keyfield[] = {18 [VCAP_KF_TYPE] = {19 .type = VCAP_FIELD_BIT,20 .offset = 0,21 .width = 1,22 },23 [VCAP_KF_LOOKUP_FIRST_IS] = {24 .type = VCAP_FIELD_BIT,25 .offset = 1,26 .width = 1,27 },28 [VCAP_KF_LOOKUP_GEN_IDX_SEL] = {29 .type = VCAP_FIELD_U32,30 .offset = 2,31 .width = 2,32 },33 [VCAP_KF_LOOKUP_GEN_IDX] = {34 .type = VCAP_FIELD_U32,35 .offset = 4,36 .width = 12,37 },38 [VCAP_KF_IF_IGR_PORT_MASK_SEL] = {39 .type = VCAP_FIELD_U32,40 .offset = 16,41 .width = 2,42 },43 [VCAP_KF_IF_IGR_PORT_MASK] = {44 .type = VCAP_FIELD_U72,45 .offset = 18,46 .width = 65,47 },48 [VCAP_KF_L2_MC_IS] = {49 .type = VCAP_FIELD_BIT,50 .offset = 83,51 .width = 1,52 },53 [VCAP_KF_L2_BC_IS] = {54 .type = VCAP_FIELD_BIT,55 .offset = 84,56 .width = 1,57 },58 [VCAP_KF_8021Q_VLAN_TAGS] = {59 .type = VCAP_FIELD_U32,60 .offset = 85,61 .width = 3,62 },63 [VCAP_KF_8021Q_TPID0] = {64 .type = VCAP_FIELD_U32,65 .offset = 88,66 .width = 3,67 },68 [VCAP_KF_8021Q_PCP0] = {69 .type = VCAP_FIELD_U32,70 .offset = 91,71 .width = 3,72 },73 [VCAP_KF_8021Q_DEI0] = {74 .type = VCAP_FIELD_BIT,75 .offset = 94,76 .width = 1,77 },78 [VCAP_KF_8021Q_VID0] = {79 .type = VCAP_FIELD_U32,80 .offset = 95,81 .width = 12,82 },83 [VCAP_KF_8021Q_TPID1] = {84 .type = VCAP_FIELD_U32,85 .offset = 107,86 .width = 3,87 },88 [VCAP_KF_8021Q_PCP1] = {89 .type = VCAP_FIELD_U32,90 .offset = 110,91 .width = 3,92 },93 [VCAP_KF_8021Q_DEI1] = {94 .type = VCAP_FIELD_BIT,95 .offset = 113,96 .width = 1,97 },98 [VCAP_KF_8021Q_VID1] = {99 .type = VCAP_FIELD_U32,100 .offset = 114,101 .width = 12,102 },103 [VCAP_KF_8021Q_TPID2] = {104 .type = VCAP_FIELD_U32,105 .offset = 126,106 .width = 3,107 },108 [VCAP_KF_8021Q_PCP2] = {109 .type = VCAP_FIELD_U32,110 .offset = 129,111 .width = 3,112 },113 [VCAP_KF_8021Q_DEI2] = {114 .type = VCAP_FIELD_BIT,115 .offset = 132,116 .width = 1,117 },118 [VCAP_KF_8021Q_VID2] = {119 .type = VCAP_FIELD_U32,120 .offset = 133,121 .width = 12,122 },123 [VCAP_KF_L2_DMAC] = {124 .type = VCAP_FIELD_U48,125 .offset = 145,126 .width = 48,127 },128 [VCAP_KF_L2_SMAC] = {129 .type = VCAP_FIELD_U48,130 .offset = 193,131 .width = 48,132 },133 [VCAP_KF_IP_MC_IS] = {134 .type = VCAP_FIELD_BIT,135 .offset = 241,136 .width = 1,137 },138 [VCAP_KF_ETYPE_LEN_IS] = {139 .type = VCAP_FIELD_BIT,140 .offset = 242,141 .width = 1,142 },143 [VCAP_KF_ETYPE] = {144 .type = VCAP_FIELD_U32,145 .offset = 243,146 .width = 16,147 },148 [VCAP_KF_IP_SNAP_IS] = {149 .type = VCAP_FIELD_BIT,150 .offset = 259,151 .width = 1,152 },153 [VCAP_KF_IP4_IS] = {154 .type = VCAP_FIELD_BIT,155 .offset = 260,156 .width = 1,157 },158 [VCAP_KF_L3_FRAGMENT_TYPE] = {159 .type = VCAP_FIELD_U32,160 .offset = 261,161 .width = 2,162 },163 [VCAP_KF_L3_FRAG_INVLD_L4_LEN] = {164 .type = VCAP_FIELD_BIT,165 .offset = 263,166 .width = 1,167 },168 [VCAP_KF_L3_OPTIONS_IS] = {169 .type = VCAP_FIELD_BIT,170 .offset = 264,171 .width = 1,172 },173 [VCAP_KF_L3_DSCP] = {174 .type = VCAP_FIELD_U32,175 .offset = 265,176 .width = 6,177 },178 [VCAP_KF_L3_IP6_DIP] = {179 .type = VCAP_FIELD_U128,180 .offset = 271,181 .width = 128,182 },183 [VCAP_KF_L3_IP6_SIP] = {184 .type = VCAP_FIELD_U128,185 .offset = 399,186 .width = 128,187 },188 [VCAP_KF_TCP_UDP_IS] = {189 .type = VCAP_FIELD_BIT,190 .offset = 527,191 .width = 1,192 },193 [VCAP_KF_TCP_IS] = {194 .type = VCAP_FIELD_BIT,195 .offset = 528,196 .width = 1,197 },198 [VCAP_KF_L4_SPORT] = {199 .type = VCAP_FIELD_U32,200 .offset = 529,201 .width = 16,202 },203 [VCAP_KF_L4_RNG] = {204 .type = VCAP_FIELD_U32,205 .offset = 545,206 .width = 8,207 },208};209 210static const struct vcap_field is0_normal_5tuple_ip4_keyfield[] = {211 [VCAP_KF_TYPE] = {212 .type = VCAP_FIELD_U32,213 .offset = 0,214 .width = 2,215 },216 [VCAP_KF_LOOKUP_FIRST_IS] = {217 .type = VCAP_FIELD_BIT,218 .offset = 2,219 .width = 1,220 },221 [VCAP_KF_LOOKUP_GEN_IDX_SEL] = {222 .type = VCAP_FIELD_U32,223 .offset = 3,224 .width = 2,225 },226 [VCAP_KF_LOOKUP_GEN_IDX] = {227 .type = VCAP_FIELD_U32,228 .offset = 5,229 .width = 12,230 },231 [VCAP_KF_IF_IGR_PORT_MASK_SEL] = {232 .type = VCAP_FIELD_U32,233 .offset = 17,234 .width = 2,235 },236 [VCAP_KF_IF_IGR_PORT_MASK] = {237 .type = VCAP_FIELD_U72,238 .offset = 19,239 .width = 65,240 },241 [VCAP_KF_L2_MC_IS] = {242 .type = VCAP_FIELD_BIT,243 .offset = 84,244 .width = 1,245 },246 [VCAP_KF_L2_BC_IS] = {247 .type = VCAP_FIELD_BIT,248 .offset = 85,249 .width = 1,250 },251 [VCAP_KF_8021Q_VLAN_TAGS] = {252 .type = VCAP_FIELD_U32,253 .offset = 86,254 .width = 3,255 },256 [VCAP_KF_8021Q_TPID0] = {257 .type = VCAP_FIELD_U32,258 .offset = 89,259 .width = 3,260 },261 [VCAP_KF_8021Q_PCP0] = {262 .type = VCAP_FIELD_U32,263 .offset = 92,264 .width = 3,265 },266 [VCAP_KF_8021Q_DEI0] = {267 .type = VCAP_FIELD_BIT,268 .offset = 95,269 .width = 1,270 },271 [VCAP_KF_8021Q_VID0] = {272 .type = VCAP_FIELD_U32,273 .offset = 96,274 .width = 12,275 },276 [VCAP_KF_8021Q_TPID1] = {277 .type = VCAP_FIELD_U32,278 .offset = 108,279 .width = 3,280 },281 [VCAP_KF_8021Q_PCP1] = {282 .type = VCAP_FIELD_U32,283 .offset = 111,284 .width = 3,285 },286 [VCAP_KF_8021Q_DEI1] = {287 .type = VCAP_FIELD_BIT,288 .offset = 114,289 .width = 1,290 },291 [VCAP_KF_8021Q_VID1] = {292 .type = VCAP_FIELD_U32,293 .offset = 115,294 .width = 12,295 },296 [VCAP_KF_8021Q_TPID2] = {297 .type = VCAP_FIELD_U32,298 .offset = 127,299 .width = 3,300 },301 [VCAP_KF_8021Q_PCP2] = {302 .type = VCAP_FIELD_U32,303 .offset = 130,304 .width = 3,305 },306 [VCAP_KF_8021Q_DEI2] = {307 .type = VCAP_FIELD_BIT,308 .offset = 133,309 .width = 1,310 },311 [VCAP_KF_8021Q_VID2] = {312 .type = VCAP_FIELD_U32,313 .offset = 134,314 .width = 12,315 },316 [VCAP_KF_IP_MC_IS] = {317 .type = VCAP_FIELD_BIT,318 .offset = 146,319 .width = 1,320 },321 [VCAP_KF_IP4_IS] = {322 .type = VCAP_FIELD_BIT,323 .offset = 147,324 .width = 1,325 },326 [VCAP_KF_L3_FRAGMENT_TYPE] = {327 .type = VCAP_FIELD_U32,328 .offset = 148,329 .width = 2,330 },331 [VCAP_KF_L3_FRAG_INVLD_L4_LEN] = {332 .type = VCAP_FIELD_BIT,333 .offset = 150,334 .width = 1,335 },336 [VCAP_KF_L3_OPTIONS_IS] = {337 .type = VCAP_FIELD_BIT,338 .offset = 151,339 .width = 1,340 },341 [VCAP_KF_L3_DSCP] = {342 .type = VCAP_FIELD_U32,343 .offset = 152,344 .width = 6,345 },346 [VCAP_KF_L3_IP4_DIP] = {347 .type = VCAP_FIELD_U32,348 .offset = 158,349 .width = 32,350 },351 [VCAP_KF_L3_IP4_SIP] = {352 .type = VCAP_FIELD_U32,353 .offset = 190,354 .width = 32,355 },356 [VCAP_KF_L3_IP_PROTO] = {357 .type = VCAP_FIELD_U32,358 .offset = 222,359 .width = 8,360 },361 [VCAP_KF_TCP_UDP_IS] = {362 .type = VCAP_FIELD_BIT,363 .offset = 230,364 .width = 1,365 },366 [VCAP_KF_TCP_IS] = {367 .type = VCAP_FIELD_BIT,368 .offset = 231,369 .width = 1,370 },371 [VCAP_KF_L4_RNG] = {372 .type = VCAP_FIELD_U32,373 .offset = 232,374 .width = 8,375 },376 [VCAP_KF_IP_PAYLOAD_5TUPLE] = {377 .type = VCAP_FIELD_U32,378 .offset = 240,379 .width = 32,380 },381};382 383static const struct vcap_field is2_mac_etype_keyfield[] = {384 [VCAP_KF_TYPE] = {385 .type = VCAP_FIELD_U32,386 .offset = 0,387 .width = 4,388 },389 [VCAP_KF_LOOKUP_FIRST_IS] = {390 .type = VCAP_FIELD_BIT,391 .offset = 4,392 .width = 1,393 },394 [VCAP_KF_LOOKUP_PAG] = {395 .type = VCAP_FIELD_U32,396 .offset = 5,397 .width = 8,398 },399 [VCAP_KF_IF_IGR_PORT_MASK_L3] = {400 .type = VCAP_FIELD_BIT,401 .offset = 13,402 .width = 1,403 },404 [VCAP_KF_IF_IGR_PORT_MASK_RNG] = {405 .type = VCAP_FIELD_U32,406 .offset = 14,407 .width = 4,408 },409 [VCAP_KF_IF_IGR_PORT_MASK_SEL] = {410 .type = VCAP_FIELD_U32,411 .offset = 18,412 .width = 2,413 },414 [VCAP_KF_IF_IGR_PORT_MASK] = {415 .type = VCAP_FIELD_U32,416 .offset = 20,417 .width = 32,418 },419 [VCAP_KF_L2_MC_IS] = {420 .type = VCAP_FIELD_BIT,421 .offset = 52,422 .width = 1,423 },424 [VCAP_KF_L2_BC_IS] = {425 .type = VCAP_FIELD_BIT,426 .offset = 53,427 .width = 1,428 },429 [VCAP_KF_8021Q_VLAN_TAGGED_IS] = {430 .type = VCAP_FIELD_BIT,431 .offset = 54,432 .width = 1,433 },434 [VCAP_KF_ISDX_GT0_IS] = {435 .type = VCAP_FIELD_BIT,436 .offset = 55,437 .width = 1,438 },439 [VCAP_KF_ISDX_CLS] = {440 .type = VCAP_FIELD_U32,441 .offset = 56,442 .width = 12,443 },444 [VCAP_KF_8021Q_VID_CLS] = {445 .type = VCAP_FIELD_U32,446 .offset = 68,447 .width = 13,448 },449 [VCAP_KF_8021Q_DEI_CLS] = {450 .type = VCAP_FIELD_BIT,451 .offset = 81,452 .width = 1,453 },454 [VCAP_KF_8021Q_PCP_CLS] = {455 .type = VCAP_FIELD_U32,456 .offset = 82,457 .width = 3,458 },459 [VCAP_KF_L2_FWD_IS] = {460 .type = VCAP_FIELD_BIT,461 .offset = 85,462 .width = 1,463 },464 [VCAP_KF_L3_RT_IS] = {465 .type = VCAP_FIELD_BIT,466 .offset = 88,467 .width = 1,468 },469 [VCAP_KF_L3_DST_IS] = {470 .type = VCAP_FIELD_BIT,471 .offset = 89,472 .width = 1,473 },474 [VCAP_KF_L2_DMAC] = {475 .type = VCAP_FIELD_U48,476 .offset = 90,477 .width = 48,478 },479 [VCAP_KF_L2_SMAC] = {480 .type = VCAP_FIELD_U48,481 .offset = 138,482 .width = 48,483 },484 [VCAP_KF_ETYPE_LEN_IS] = {485 .type = VCAP_FIELD_BIT,486 .offset = 186,487 .width = 1,488 },489 [VCAP_KF_ETYPE] = {490 .type = VCAP_FIELD_U32,491 .offset = 187,492 .width = 16,493 },494 [VCAP_KF_L2_PAYLOAD_ETYPE] = {495 .type = VCAP_FIELD_U64,496 .offset = 203,497 .width = 64,498 },499 [VCAP_KF_L4_RNG] = {500 .type = VCAP_FIELD_U32,501 .offset = 267,502 .width = 16,503 },504 [VCAP_KF_OAM_CCM_CNTS_EQ0] = {505 .type = VCAP_FIELD_BIT,506 .offset = 283,507 .width = 1,508 },509 [VCAP_KF_OAM_Y1731_IS] = {510 .type = VCAP_FIELD_BIT,511 .offset = 284,512 .width = 1,513 },514};515 516static const struct vcap_field is2_arp_keyfield[] = {517 [VCAP_KF_TYPE] = {518 .type = VCAP_FIELD_U32,519 .offset = 0,520 .width = 4,521 },522 [VCAP_KF_LOOKUP_FIRST_IS] = {523 .type = VCAP_FIELD_BIT,524 .offset = 4,525 .width = 1,526 },527 [VCAP_KF_LOOKUP_PAG] = {528 .type = VCAP_FIELD_U32,529 .offset = 5,530 .width = 8,531 },532 [VCAP_KF_IF_IGR_PORT_MASK_L3] = {533 .type = VCAP_FIELD_BIT,534 .offset = 13,535 .width = 1,536 },537 [VCAP_KF_IF_IGR_PORT_MASK_RNG] = {538 .type = VCAP_FIELD_U32,539 .offset = 14,540 .width = 4,541 },542 [VCAP_KF_IF_IGR_PORT_MASK_SEL] = {543 .type = VCAP_FIELD_U32,544 .offset = 18,545 .width = 2,546 },547 [VCAP_KF_IF_IGR_PORT_MASK] = {548 .type = VCAP_FIELD_U32,549 .offset = 20,550 .width = 32,551 },552 [VCAP_KF_L2_MC_IS] = {553 .type = VCAP_FIELD_BIT,554 .offset = 52,555 .width = 1,556 },557 [VCAP_KF_L2_BC_IS] = {558 .type = VCAP_FIELD_BIT,559 .offset = 53,560 .width = 1,561 },562 [VCAP_KF_8021Q_VLAN_TAGGED_IS] = {563 .type = VCAP_FIELD_BIT,564 .offset = 54,565 .width = 1,566 },567 [VCAP_KF_ISDX_GT0_IS] = {568 .type = VCAP_FIELD_BIT,569 .offset = 55,570 .width = 1,571 },572 [VCAP_KF_ISDX_CLS] = {573 .type = VCAP_FIELD_U32,574 .offset = 56,575 .width = 12,576 },577 [VCAP_KF_8021Q_VID_CLS] = {578 .type = VCAP_FIELD_U32,579 .offset = 68,580 .width = 13,581 },582 [VCAP_KF_8021Q_DEI_CLS] = {583 .type = VCAP_FIELD_BIT,584 .offset = 81,585 .width = 1,586 },587 [VCAP_KF_8021Q_PCP_CLS] = {588 .type = VCAP_FIELD_U32,589 .offset = 82,590 .width = 3,591 },592 [VCAP_KF_L2_FWD_IS] = {593 .type = VCAP_FIELD_BIT,594 .offset = 85,595 .width = 1,596 },597 [VCAP_KF_L2_SMAC] = {598 .type = VCAP_FIELD_U48,599 .offset = 86,600 .width = 48,601 },602 [VCAP_KF_ARP_ADDR_SPACE_OK_IS] = {603 .type = VCAP_FIELD_BIT,604 .offset = 134,605 .width = 1,606 },607 [VCAP_KF_ARP_PROTO_SPACE_OK_IS] = {608 .type = VCAP_FIELD_BIT,609 .offset = 135,610 .width = 1,611 },612 [VCAP_KF_ARP_LEN_OK_IS] = {613 .type = VCAP_FIELD_BIT,614 .offset = 136,615 .width = 1,616 },617 [VCAP_KF_ARP_TGT_MATCH_IS] = {618 .type = VCAP_FIELD_BIT,619 .offset = 137,620 .width = 1,621 },622 [VCAP_KF_ARP_SENDER_MATCH_IS] = {623 .type = VCAP_FIELD_BIT,624 .offset = 138,625 .width = 1,626 },627 [VCAP_KF_ARP_OPCODE_UNKNOWN_IS] = {628 .type = VCAP_FIELD_BIT,629 .offset = 139,630 .width = 1,631 },632 [VCAP_KF_ARP_OPCODE] = {633 .type = VCAP_FIELD_U32,634 .offset = 140,635 .width = 2,636 },637 [VCAP_KF_L3_IP4_DIP] = {638 .type = VCAP_FIELD_U32,639 .offset = 142,640 .width = 32,641 },642 [VCAP_KF_L3_IP4_SIP] = {643 .type = VCAP_FIELD_U32,644 .offset = 174,645 .width = 32,646 },647 [VCAP_KF_L3_DIP_EQ_SIP_IS] = {648 .type = VCAP_FIELD_BIT,649 .offset = 206,650 .width = 1,651 },652 [VCAP_KF_L4_RNG] = {653 .type = VCAP_FIELD_U32,654 .offset = 207,655 .width = 16,656 },657};658 659static const struct vcap_field is2_ip4_tcp_udp_keyfield[] = {660 [VCAP_KF_TYPE] = {661 .type = VCAP_FIELD_U32,662 .offset = 0,663 .width = 4,664 },665 [VCAP_KF_LOOKUP_FIRST_IS] = {666 .type = VCAP_FIELD_BIT,667 .offset = 4,668 .width = 1,669 },670 [VCAP_KF_LOOKUP_PAG] = {671 .type = VCAP_FIELD_U32,672 .offset = 5,673 .width = 8,674 },675 [VCAP_KF_IF_IGR_PORT_MASK_L3] = {676 .type = VCAP_FIELD_BIT,677 .offset = 13,678 .width = 1,679 },680 [VCAP_KF_IF_IGR_PORT_MASK_RNG] = {681 .type = VCAP_FIELD_U32,682 .offset = 14,683 .width = 4,684 },685 [VCAP_KF_IF_IGR_PORT_MASK_SEL] = {686 .type = VCAP_FIELD_U32,687 .offset = 18,688 .width = 2,689 },690 [VCAP_KF_IF_IGR_PORT_MASK] = {691 .type = VCAP_FIELD_U32,692 .offset = 20,693 .width = 32,694 },695 [VCAP_KF_L2_MC_IS] = {696 .type = VCAP_FIELD_BIT,697 .offset = 52,698 .width = 1,699 },700 [VCAP_KF_L2_BC_IS] = {701 .type = VCAP_FIELD_BIT,702 .offset = 53,703 .width = 1,704 },705 [VCAP_KF_8021Q_VLAN_TAGGED_IS] = {706 .type = VCAP_FIELD_BIT,707 .offset = 54,708 .width = 1,709 },710 [VCAP_KF_ISDX_GT0_IS] = {711 .type = VCAP_FIELD_BIT,712 .offset = 55,713 .width = 1,714 },715 [VCAP_KF_ISDX_CLS] = {716 .type = VCAP_FIELD_U32,717 .offset = 56,718 .width = 12,719 },720 [VCAP_KF_8021Q_VID_CLS] = {721 .type = VCAP_FIELD_U32,722 .offset = 68,723 .width = 13,724 },725 [VCAP_KF_8021Q_DEI_CLS] = {726 .type = VCAP_FIELD_BIT,727 .offset = 81,728 .width = 1,729 },730 [VCAP_KF_8021Q_PCP_CLS] = {731 .type = VCAP_FIELD_U32,732 .offset = 82,733 .width = 3,734 },735 [VCAP_KF_L2_FWD_IS] = {736 .type = VCAP_FIELD_BIT,737 .offset = 85,738 .width = 1,739 },740 [VCAP_KF_L3_RT_IS] = {741 .type = VCAP_FIELD_BIT,742 .offset = 88,743 .width = 1,744 },745 [VCAP_KF_L3_DST_IS] = {746 .type = VCAP_FIELD_BIT,747 .offset = 89,748 .width = 1,749 },750 [VCAP_KF_IP4_IS] = {751 .type = VCAP_FIELD_BIT,752 .offset = 90,753 .width = 1,754 },755 [VCAP_KF_L3_FRAGMENT_TYPE] = {756 .type = VCAP_FIELD_U32,757 .offset = 91,758 .width = 2,759 },760 [VCAP_KF_L3_FRAG_INVLD_L4_LEN] = {761 .type = VCAP_FIELD_BIT,762 .offset = 93,763 .width = 1,764 },765 [VCAP_KF_L3_OPTIONS_IS] = {766 .type = VCAP_FIELD_BIT,767 .offset = 94,768 .width = 1,769 },770 [VCAP_KF_L3_TTL_GT0] = {771 .type = VCAP_FIELD_BIT,772 .offset = 95,773 .width = 1,774 },775 [VCAP_KF_L3_TOS] = {776 .type = VCAP_FIELD_U32,777 .offset = 96,778 .width = 8,779 },780 [VCAP_KF_L3_IP4_DIP] = {781 .type = VCAP_FIELD_U32,782 .offset = 104,783 .width = 32,784 },785 [VCAP_KF_L3_IP4_SIP] = {786 .type = VCAP_FIELD_U32,787 .offset = 136,788 .width = 32,789 },790 [VCAP_KF_L3_DIP_EQ_SIP_IS] = {791 .type = VCAP_FIELD_BIT,792 .offset = 168,793 .width = 1,794 },795 [VCAP_KF_TCP_IS] = {796 .type = VCAP_FIELD_BIT,797 .offset = 169,798 .width = 1,799 },800 [VCAP_KF_L4_DPORT] = {801 .type = VCAP_FIELD_U32,802 .offset = 170,803 .width = 16,804 },805 [VCAP_KF_L4_SPORT] = {806 .type = VCAP_FIELD_U32,807 .offset = 186,808 .width = 16,809 },810 [VCAP_KF_L4_RNG] = {811 .type = VCAP_FIELD_U32,812 .offset = 202,813 .width = 16,814 },815 [VCAP_KF_L4_SPORT_EQ_DPORT_IS] = {816 .type = VCAP_FIELD_BIT,817 .offset = 218,818 .width = 1,819 },820 [VCAP_KF_L4_SEQUENCE_EQ0_IS] = {821 .type = VCAP_FIELD_BIT,822 .offset = 219,823 .width = 1,824 },825 [VCAP_KF_L4_FIN] = {826 .type = VCAP_FIELD_BIT,827 .offset = 220,828 .width = 1,829 },830 [VCAP_KF_L4_SYN] = {831 .type = VCAP_FIELD_BIT,832 .offset = 221,833 .width = 1,834 },835 [VCAP_KF_L4_RST] = {836 .type = VCAP_FIELD_BIT,837 .offset = 222,838 .width = 1,839 },840 [VCAP_KF_L4_PSH] = {841 .type = VCAP_FIELD_BIT,842 .offset = 223,843 .width = 1,844 },845 [VCAP_KF_L4_ACK] = {846 .type = VCAP_FIELD_BIT,847 .offset = 224,848 .width = 1,849 },850 [VCAP_KF_L4_URG] = {851 .type = VCAP_FIELD_BIT,852 .offset = 225,853 .width = 1,854 },855 [VCAP_KF_L4_PAYLOAD] = {856 .type = VCAP_FIELD_U64,857 .offset = 226,858 .width = 64,859 },860};861 862static const struct vcap_field is2_ip4_other_keyfield[] = {863 [VCAP_KF_TYPE] = {864 .type = VCAP_FIELD_U32,865 .offset = 0,866 .width = 4,867 },868 [VCAP_KF_LOOKUP_FIRST_IS] = {869 .type = VCAP_FIELD_BIT,870 .offset = 4,871 .width = 1,872 },873 [VCAP_KF_LOOKUP_PAG] = {874 .type = VCAP_FIELD_U32,875 .offset = 5,876 .width = 8,877 },878 [VCAP_KF_IF_IGR_PORT_MASK_L3] = {879 .type = VCAP_FIELD_BIT,880 .offset = 13,881 .width = 1,882 },883 [VCAP_KF_IF_IGR_PORT_MASK_RNG] = {884 .type = VCAP_FIELD_U32,885 .offset = 14,886 .width = 4,887 },888 [VCAP_KF_IF_IGR_PORT_MASK_SEL] = {889 .type = VCAP_FIELD_U32,890 .offset = 18,891 .width = 2,892 },893 [VCAP_KF_IF_IGR_PORT_MASK] = {894 .type = VCAP_FIELD_U32,895 .offset = 20,896 .width = 32,897 },898 [VCAP_KF_L2_MC_IS] = {899 .type = VCAP_FIELD_BIT,900 .offset = 52,901 .width = 1,902 },903 [VCAP_KF_L2_BC_IS] = {904 .type = VCAP_FIELD_BIT,905 .offset = 53,906 .width = 1,907 },908 [VCAP_KF_8021Q_VLAN_TAGGED_IS] = {909 .type = VCAP_FIELD_BIT,910 .offset = 54,911 .width = 1,912 },913 [VCAP_KF_ISDX_GT0_IS] = {914 .type = VCAP_FIELD_BIT,915 .offset = 55,916 .width = 1,917 },918 [VCAP_KF_ISDX_CLS] = {919 .type = VCAP_FIELD_U32,920 .offset = 56,921 .width = 12,922 },923 [VCAP_KF_8021Q_VID_CLS] = {924 .type = VCAP_FIELD_U32,925 .offset = 68,926 .width = 13,927 },928 [VCAP_KF_8021Q_DEI_CLS] = {929 .type = VCAP_FIELD_BIT,930 .offset = 81,931 .width = 1,932 },933 [VCAP_KF_8021Q_PCP_CLS] = {934 .type = VCAP_FIELD_U32,935 .offset = 82,936 .width = 3,937 },938 [VCAP_KF_L2_FWD_IS] = {939 .type = VCAP_FIELD_BIT,940 .offset = 85,941 .width = 1,942 },943 [VCAP_KF_L3_RT_IS] = {944 .type = VCAP_FIELD_BIT,945 .offset = 88,946 .width = 1,947 },948 [VCAP_KF_L3_DST_IS] = {949 .type = VCAP_FIELD_BIT,950 .offset = 89,951 .width = 1,952 },953 [VCAP_KF_IP4_IS] = {954 .type = VCAP_FIELD_BIT,955 .offset = 90,956 .width = 1,957 },958 [VCAP_KF_L3_FRAGMENT_TYPE] = {959 .type = VCAP_FIELD_U32,960 .offset = 91,961 .width = 2,962 },963 [VCAP_KF_L3_FRAG_INVLD_L4_LEN] = {964 .type = VCAP_FIELD_BIT,965 .offset = 93,966 .width = 1,967 },968 [VCAP_KF_L3_OPTIONS_IS] = {969 .type = VCAP_FIELD_BIT,970 .offset = 94,971 .width = 1,972 },973 [VCAP_KF_L3_TTL_GT0] = {974 .type = VCAP_FIELD_BIT,975 .offset = 95,976 .width = 1,977 },978 [VCAP_KF_L3_TOS] = {979 .type = VCAP_FIELD_U32,980 .offset = 96,981 .width = 8,982 },983 [VCAP_KF_L3_IP4_DIP] = {984 .type = VCAP_FIELD_U32,985 .offset = 104,986 .width = 32,987 },988 [VCAP_KF_L3_IP4_SIP] = {989 .type = VCAP_FIELD_U32,990 .offset = 136,991 .width = 32,992 },993 [VCAP_KF_L3_DIP_EQ_SIP_IS] = {994 .type = VCAP_FIELD_BIT,995 .offset = 168,996 .width = 1,997 },998 [VCAP_KF_L3_IP_PROTO] = {999 .type = VCAP_FIELD_U32,1000 .offset = 169,1001 .width = 8,1002 },1003 [VCAP_KF_L4_RNG] = {1004 .type = VCAP_FIELD_U32,1005 .offset = 177,1006 .width = 16,1007 },1008 [VCAP_KF_L3_PAYLOAD] = {1009 .type = VCAP_FIELD_U112,1010 .offset = 193,1011 .width = 96,1012 },1013};1014 1015static const struct vcap_field is2_ip6_std_keyfield[] = {1016 [VCAP_KF_TYPE] = {1017 .type = VCAP_FIELD_U32,1018 .offset = 0,1019 .width = 4,1020 },1021 [VCAP_KF_LOOKUP_FIRST_IS] = {1022 .type = VCAP_FIELD_BIT,1023 .offset = 4,1024 .width = 1,1025 },1026 [VCAP_KF_LOOKUP_PAG] = {1027 .type = VCAP_FIELD_U32,1028 .offset = 5,1029 .width = 8,1030 },1031 [VCAP_KF_IF_IGR_PORT_MASK_L3] = {1032 .type = VCAP_FIELD_BIT,1033 .offset = 13,1034 .width = 1,1035 },1036 [VCAP_KF_IF_IGR_PORT_MASK_RNG] = {1037 .type = VCAP_FIELD_U32,1038 .offset = 14,1039 .width = 4,1040 },1041 [VCAP_KF_IF_IGR_PORT_MASK_SEL] = {1042 .type = VCAP_FIELD_U32,1043 .offset = 18,1044 .width = 2,1045 },1046 [VCAP_KF_IF_IGR_PORT_MASK] = {1047 .type = VCAP_FIELD_U32,1048 .offset = 20,1049 .width = 32,1050 },1051 [VCAP_KF_L2_MC_IS] = {1052 .type = VCAP_FIELD_BIT,1053 .offset = 52,1054 .width = 1,1055 },1056 [VCAP_KF_L2_BC_IS] = {1057 .type = VCAP_FIELD_BIT,1058 .offset = 53,1059 .width = 1,1060 },1061 [VCAP_KF_8021Q_VLAN_TAGGED_IS] = {1062 .type = VCAP_FIELD_BIT,1063 .offset = 54,1064 .width = 1,1065 },1066 [VCAP_KF_ISDX_GT0_IS] = {1067 .type = VCAP_FIELD_BIT,1068 .offset = 55,1069 .width = 1,1070 },1071 [VCAP_KF_ISDX_CLS] = {1072 .type = VCAP_FIELD_U32,1073 .offset = 56,1074 .width = 12,1075 },1076 [VCAP_KF_8021Q_VID_CLS] = {1077 .type = VCAP_FIELD_U32,1078 .offset = 68,1079 .width = 13,1080 },1081 [VCAP_KF_8021Q_DEI_CLS] = {1082 .type = VCAP_FIELD_BIT,1083 .offset = 81,1084 .width = 1,1085 },1086 [VCAP_KF_8021Q_PCP_CLS] = {1087 .type = VCAP_FIELD_U32,1088 .offset = 82,1089 .width = 3,1090 },1091 [VCAP_KF_L2_FWD_IS] = {1092 .type = VCAP_FIELD_BIT,1093 .offset = 85,1094 .width = 1,1095 },1096 [VCAP_KF_L3_RT_IS] = {1097 .type = VCAP_FIELD_BIT,1098 .offset = 88,1099 .width = 1,1100 },1101 [VCAP_KF_L3_TTL_GT0] = {1102 .type = VCAP_FIELD_BIT,1103 .offset = 90,1104 .width = 1,1105 },1106 [VCAP_KF_L3_IP6_SIP] = {1107 .type = VCAP_FIELD_U128,1108 .offset = 91,1109 .width = 128,1110 },1111 [VCAP_KF_L3_DIP_EQ_SIP_IS] = {1112 .type = VCAP_FIELD_BIT,1113 .offset = 219,1114 .width = 1,1115 },1116 [VCAP_KF_L3_IP_PROTO] = {1117 .type = VCAP_FIELD_U32,1118 .offset = 220,1119 .width = 8,1120 },1121 [VCAP_KF_L4_RNG] = {1122 .type = VCAP_FIELD_U32,1123 .offset = 228,1124 .width = 16,1125 },1126 [VCAP_KF_L3_PAYLOAD] = {1127 .type = VCAP_FIELD_U48,1128 .offset = 244,1129 .width = 40,1130 },1131};1132 1133static const struct vcap_field is2_ip_7tuple_keyfield[] = {1134 [VCAP_KF_TYPE] = {1135 .type = VCAP_FIELD_U32,1136 .offset = 0,1137 .width = 2,1138 },1139 [VCAP_KF_LOOKUP_FIRST_IS] = {1140 .type = VCAP_FIELD_BIT,1141 .offset = 2,1142 .width = 1,1143 },1144 [VCAP_KF_LOOKUP_PAG] = {1145 .type = VCAP_FIELD_U32,1146 .offset = 3,1147 .width = 8,1148 },1149 [VCAP_KF_IF_IGR_PORT_MASK_L3] = {1150 .type = VCAP_FIELD_BIT,1151 .offset = 11,1152 .width = 1,1153 },1154 [VCAP_KF_IF_IGR_PORT_MASK_RNG] = {1155 .type = VCAP_FIELD_U32,1156 .offset = 12,1157 .width = 4,1158 },1159 [VCAP_KF_IF_IGR_PORT_MASK_SEL] = {1160 .type = VCAP_FIELD_U32,1161 .offset = 16,1162 .width = 2,1163 },1164 [VCAP_KF_IF_IGR_PORT_MASK] = {1165 .type = VCAP_FIELD_U72,1166 .offset = 18,1167 .width = 65,1168 },1169 [VCAP_KF_L2_MC_IS] = {1170 .type = VCAP_FIELD_BIT,1171 .offset = 83,1172 .width = 1,1173 },1174 [VCAP_KF_L2_BC_IS] = {1175 .type = VCAP_FIELD_BIT,1176 .offset = 84,1177 .width = 1,1178 },1179 [VCAP_KF_8021Q_VLAN_TAGGED_IS] = {1180 .type = VCAP_FIELD_BIT,1181 .offset = 85,1182 .width = 1,1183 },1184 [VCAP_KF_ISDX_GT0_IS] = {1185 .type = VCAP_FIELD_BIT,1186 .offset = 86,1187 .width = 1,1188 },1189 [VCAP_KF_ISDX_CLS] = {1190 .type = VCAP_FIELD_U32,1191 .offset = 87,1192 .width = 12,1193 },1194 [VCAP_KF_8021Q_VID_CLS] = {1195 .type = VCAP_FIELD_U32,1196 .offset = 99,1197 .width = 13,1198 },1199 [VCAP_KF_8021Q_DEI_CLS] = {1200 .type = VCAP_FIELD_BIT,1201 .offset = 112,1202 .width = 1,1203 },1204 [VCAP_KF_8021Q_PCP_CLS] = {1205 .type = VCAP_FIELD_U32,1206 .offset = 113,1207 .width = 3,1208 },1209 [VCAP_KF_L2_FWD_IS] = {1210 .type = VCAP_FIELD_BIT,1211 .offset = 116,1212 .width = 1,1213 },1214 [VCAP_KF_L3_RT_IS] = {1215 .type = VCAP_FIELD_BIT,1216 .offset = 119,1217 .width = 1,1218 },1219 [VCAP_KF_L3_DST_IS] = {1220 .type = VCAP_FIELD_BIT,1221 .offset = 120,1222 .width = 1,1223 },1224 [VCAP_KF_L2_DMAC] = {1225 .type = VCAP_FIELD_U48,1226 .offset = 121,1227 .width = 48,1228 },1229 [VCAP_KF_L2_SMAC] = {1230 .type = VCAP_FIELD_U48,1231 .offset = 169,1232 .width = 48,1233 },1234 [VCAP_KF_IP4_IS] = {1235 .type = VCAP_FIELD_BIT,1236 .offset = 217,1237 .width = 1,1238 },1239 [VCAP_KF_L3_TTL_GT0] = {1240 .type = VCAP_FIELD_BIT,1241 .offset = 218,1242 .width = 1,1243 },1244 [VCAP_KF_L3_TOS] = {1245 .type = VCAP_FIELD_U32,1246 .offset = 219,1247 .width = 8,1248 },1249 [VCAP_KF_L3_IP6_DIP] = {1250 .type = VCAP_FIELD_U128,1251 .offset = 227,1252 .width = 128,1253 },1254 [VCAP_KF_L3_IP6_SIP] = {1255 .type = VCAP_FIELD_U128,1256 .offset = 355,1257 .width = 128,1258 },1259 [VCAP_KF_L3_DIP_EQ_SIP_IS] = {1260 .type = VCAP_FIELD_BIT,1261 .offset = 483,1262 .width = 1,1263 },1264 [VCAP_KF_TCP_UDP_IS] = {1265 .type = VCAP_FIELD_BIT,1266 .offset = 484,1267 .width = 1,1268 },1269 [VCAP_KF_TCP_IS] = {1270 .type = VCAP_FIELD_BIT,1271 .offset = 485,1272 .width = 1,1273 },1274 [VCAP_KF_L4_DPORT] = {1275 .type = VCAP_FIELD_U32,1276 .offset = 486,1277 .width = 16,1278 },1279 [VCAP_KF_L4_SPORT] = {1280 .type = VCAP_FIELD_U32,1281 .offset = 502,1282 .width = 16,1283 },1284 [VCAP_KF_L4_RNG] = {1285 .type = VCAP_FIELD_U32,1286 .offset = 518,1287 .width = 16,1288 },1289 [VCAP_KF_L4_SPORT_EQ_DPORT_IS] = {1290 .type = VCAP_FIELD_BIT,1291 .offset = 534,1292 .width = 1,1293 },1294 [VCAP_KF_L4_SEQUENCE_EQ0_IS] = {1295 .type = VCAP_FIELD_BIT,1296 .offset = 535,1297 .width = 1,1298 },1299 [VCAP_KF_L4_FIN] = {1300 .type = VCAP_FIELD_BIT,1301 .offset = 536,1302 .width = 1,1303 },1304 [VCAP_KF_L4_SYN] = {1305 .type = VCAP_FIELD_BIT,1306 .offset = 537,1307 .width = 1,1308 },1309 [VCAP_KF_L4_RST] = {1310 .type = VCAP_FIELD_BIT,1311 .offset = 538,1312 .width = 1,1313 },1314 [VCAP_KF_L4_PSH] = {1315 .type = VCAP_FIELD_BIT,1316 .offset = 539,1317 .width = 1,1318 },1319 [VCAP_KF_L4_ACK] = {1320 .type = VCAP_FIELD_BIT,1321 .offset = 540,1322 .width = 1,1323 },1324 [VCAP_KF_L4_URG] = {1325 .type = VCAP_FIELD_BIT,1326 .offset = 541,1327 .width = 1,1328 },1329 [VCAP_KF_L4_PAYLOAD] = {1330 .type = VCAP_FIELD_U64,1331 .offset = 542,1332 .width = 64,1333 },1334};1335 1336static const struct vcap_field es0_isdx_keyfield[] = {1337 [VCAP_KF_TYPE] = {1338 .type = VCAP_FIELD_BIT,1339 .offset = 0,1340 .width = 1,1341 },1342 [VCAP_KF_IF_EGR_PORT_NO] = {1343 .type = VCAP_FIELD_U32,1344 .offset = 1,1345 .width = 7,1346 },1347 [VCAP_KF_8021Q_VID_CLS] = {1348 .type = VCAP_FIELD_U32,1349 .offset = 8,1350 .width = 13,1351 },1352 [VCAP_KF_COSID_CLS] = {1353 .type = VCAP_FIELD_U32,1354 .offset = 21,1355 .width = 3,1356 },1357 [VCAP_KF_8021Q_TPID] = {1358 .type = VCAP_FIELD_U32,1359 .offset = 24,1360 .width = 3,1361 },1362 [VCAP_KF_L3_DPL_CLS] = {1363 .type = VCAP_FIELD_BIT,1364 .offset = 27,1365 .width = 1,1366 },1367 [VCAP_KF_ISDX_GT0_IS] = {1368 .type = VCAP_FIELD_BIT,1369 .offset = 28,1370 .width = 1,1371 },1372 [VCAP_KF_PROT_ACTIVE] = {1373 .type = VCAP_FIELD_BIT,1374 .offset = 29,1375 .width = 1,1376 },1377 [VCAP_KF_ISDX_CLS] = {1378 .type = VCAP_FIELD_U32,1379 .offset = 39,1380 .width = 12,1381 },1382};1383 1384static const struct vcap_field es2_mac_etype_keyfield[] = {1385 [VCAP_KF_TYPE] = {1386 .type = VCAP_FIELD_U32,1387 .offset = 0,1388 .width = 3,1389 },1390 [VCAP_KF_LOOKUP_FIRST_IS] = {1391 .type = VCAP_FIELD_BIT,1392 .offset = 3,1393 .width = 1,1394 },1395 [VCAP_KF_L2_MC_IS] = {1396 .type = VCAP_FIELD_BIT,1397 .offset = 13,1398 .width = 1,1399 },1400 [VCAP_KF_L2_BC_IS] = {1401 .type = VCAP_FIELD_BIT,1402 .offset = 14,1403 .width = 1,1404 },1405 [VCAP_KF_ISDX_GT0_IS] = {1406 .type = VCAP_FIELD_BIT,1407 .offset = 15,1408 .width = 1,1409 },1410 [VCAP_KF_ISDX_CLS] = {1411 .type = VCAP_FIELD_U32,1412 .offset = 16,1413 .width = 12,1414 },1415 [VCAP_KF_8021Q_VLAN_TAGGED_IS] = {1416 .type = VCAP_FIELD_BIT,1417 .offset = 28,1418 .width = 1,1419 },1420 [VCAP_KF_8021Q_VID_CLS] = {1421 .type = VCAP_FIELD_U32,1422 .offset = 29,1423 .width = 13,1424 },1425 [VCAP_KF_IF_EGR_PORT_MASK_RNG] = {1426 .type = VCAP_FIELD_U32,1427 .offset = 42,1428 .width = 3,1429 },1430 [VCAP_KF_IF_EGR_PORT_MASK] = {1431 .type = VCAP_FIELD_U32,1432 .offset = 45,1433 .width = 32,1434 },1435 [VCAP_KF_IF_IGR_PORT_SEL] = {1436 .type = VCAP_FIELD_BIT,1437 .offset = 77,1438 .width = 1,1439 },1440 [VCAP_KF_IF_IGR_PORT] = {1441 .type = VCAP_FIELD_U32,1442 .offset = 78,1443 .width = 9,1444 },1445 [VCAP_KF_8021Q_PCP_CLS] = {1446 .type = VCAP_FIELD_U32,1447 .offset = 87,1448 .width = 3,1449 },1450 [VCAP_KF_8021Q_DEI_CLS] = {1451 .type = VCAP_FIELD_BIT,1452 .offset = 90,1453 .width = 1,1454 },1455 [VCAP_KF_COSID_CLS] = {1456 .type = VCAP_FIELD_U32,1457 .offset = 91,1458 .width = 3,1459 },1460 [VCAP_KF_L3_DPL_CLS] = {1461 .type = VCAP_FIELD_BIT,1462 .offset = 94,1463 .width = 1,1464 },1465 [VCAP_KF_L3_RT_IS] = {1466 .type = VCAP_FIELD_BIT,1467 .offset = 95,1468 .width = 1,1469 },1470 [VCAP_KF_L2_DMAC] = {1471 .type = VCAP_FIELD_U48,1472 .offset = 99,1473 .width = 48,1474 },1475 [VCAP_KF_L2_SMAC] = {1476 .type = VCAP_FIELD_U48,1477 .offset = 147,1478 .width = 48,1479 },1480 [VCAP_KF_ETYPE_LEN_IS] = {1481 .type = VCAP_FIELD_BIT,1482 .offset = 195,1483 .width = 1,1484 },1485 [VCAP_KF_ETYPE] = {1486 .type = VCAP_FIELD_U32,1487 .offset = 196,1488 .width = 16,1489 },1490 [VCAP_KF_L2_PAYLOAD_ETYPE] = {1491 .type = VCAP_FIELD_U64,1492 .offset = 212,1493 .width = 64,1494 },1495 [VCAP_KF_OAM_CCM_CNTS_EQ0] = {1496 .type = VCAP_FIELD_BIT,1497 .offset = 276,1498 .width = 1,1499 },1500 [VCAP_KF_OAM_Y1731_IS] = {1501 .type = VCAP_FIELD_BIT,1502 .offset = 277,1503 .width = 1,1504 },1505};1506 1507static const struct vcap_field es2_arp_keyfield[] = {1508 [VCAP_KF_TYPE] = {1509 .type = VCAP_FIELD_U32,1510 .offset = 0,1511 .width = 3,1512 },1513 [VCAP_KF_LOOKUP_FIRST_IS] = {1514 .type = VCAP_FIELD_BIT,1515 .offset = 3,1516 .width = 1,1517 },1518 [VCAP_KF_L2_MC_IS] = {1519 .type = VCAP_FIELD_BIT,1520 .offset = 13,1521 .width = 1,1522 },1523 [VCAP_KF_L2_BC_IS] = {1524 .type = VCAP_FIELD_BIT,1525 .offset = 14,1526 .width = 1,1527 },1528 [VCAP_KF_ISDX_GT0_IS] = {1529 .type = VCAP_FIELD_BIT,1530 .offset = 15,1531 .width = 1,1532 },1533 [VCAP_KF_ISDX_CLS] = {1534 .type = VCAP_FIELD_U32,1535 .offset = 16,1536 .width = 12,1537 },1538 [VCAP_KF_8021Q_VLAN_TAGGED_IS] = {1539 .type = VCAP_FIELD_BIT,1540 .offset = 28,1541 .width = 1,1542 },1543 [VCAP_KF_8021Q_VID_CLS] = {1544 .type = VCAP_FIELD_U32,1545 .offset = 29,1546 .width = 13,1547 },1548 [VCAP_KF_IF_EGR_PORT_MASK_RNG] = {1549 .type = VCAP_FIELD_U32,1550 .offset = 42,1551 .width = 3,1552 },1553 [VCAP_KF_IF_EGR_PORT_MASK] = {1554 .type = VCAP_FIELD_U32,1555 .offset = 45,1556 .width = 32,1557 },1558 [VCAP_KF_IF_IGR_PORT_SEL] = {1559 .type = VCAP_FIELD_BIT,1560 .offset = 77,1561 .width = 1,1562 },1563 [VCAP_KF_IF_IGR_PORT] = {1564 .type = VCAP_FIELD_U32,1565 .offset = 78,1566 .width = 9,1567 },1568 [VCAP_KF_8021Q_PCP_CLS] = {1569 .type = VCAP_FIELD_U32,1570 .offset = 87,1571 .width = 3,1572 },1573 [VCAP_KF_8021Q_DEI_CLS] = {1574 .type = VCAP_FIELD_BIT,1575 .offset = 90,1576 .width = 1,1577 },1578 [VCAP_KF_COSID_CLS] = {1579 .type = VCAP_FIELD_U32,1580 .offset = 91,1581 .width = 3,1582 },1583 [VCAP_KF_L3_DPL_CLS] = {1584 .type = VCAP_FIELD_BIT,1585 .offset = 94,1586 .width = 1,1587 },1588 [VCAP_KF_L2_SMAC] = {1589 .type = VCAP_FIELD_U48,1590 .offset = 98,1591 .width = 48,1592 },1593 [VCAP_KF_ARP_ADDR_SPACE_OK_IS] = {1594 .type = VCAP_FIELD_BIT,1595 .offset = 146,1596 .width = 1,1597 },1598 [VCAP_KF_ARP_PROTO_SPACE_OK_IS] = {1599 .type = VCAP_FIELD_BIT,1600 .offset = 147,1601 .width = 1,1602 },1603 [VCAP_KF_ARP_LEN_OK_IS] = {1604 .type = VCAP_FIELD_BIT,1605 .offset = 148,1606 .width = 1,1607 },1608 [VCAP_KF_ARP_TGT_MATCH_IS] = {1609 .type = VCAP_FIELD_BIT,1610 .offset = 149,1611 .width = 1,1612 },1613 [VCAP_KF_ARP_SENDER_MATCH_IS] = {1614 .type = VCAP_FIELD_BIT,1615 .offset = 150,1616 .width = 1,1617 },1618 [VCAP_KF_ARP_OPCODE_UNKNOWN_IS] = {1619 .type = VCAP_FIELD_BIT,1620 .offset = 151,1621 .width = 1,1622 },1623 [VCAP_KF_ARP_OPCODE] = {1624 .type = VCAP_FIELD_U32,1625 .offset = 152,1626 .width = 2,1627 },1628 [VCAP_KF_L3_IP4_DIP] = {1629 .type = VCAP_FIELD_U32,1630 .offset = 154,1631 .width = 32,1632 },1633 [VCAP_KF_L3_IP4_SIP] = {1634 .type = VCAP_FIELD_U32,1635 .offset = 186,1636 .width = 32,1637 },1638 [VCAP_KF_L3_DIP_EQ_SIP_IS] = {1639 .type = VCAP_FIELD_BIT,1640 .offset = 218,1641 .width = 1,1642 },1643};1644 1645static const struct vcap_field es2_ip4_tcp_udp_keyfield[] = {1646 [VCAP_KF_TYPE] = {1647 .type = VCAP_FIELD_U32,1648 .offset = 0,1649 .width = 3,1650 },1651 [VCAP_KF_LOOKUP_FIRST_IS] = {1652 .type = VCAP_FIELD_BIT,1653 .offset = 3,1654 .width = 1,1655 },1656 [VCAP_KF_L2_MC_IS] = {1657 .type = VCAP_FIELD_BIT,1658 .offset = 13,1659 .width = 1,1660 },1661 [VCAP_KF_L2_BC_IS] = {1662 .type = VCAP_FIELD_BIT,1663 .offset = 14,1664 .width = 1,1665 },1666 [VCAP_KF_ISDX_GT0_IS] = {1667 .type = VCAP_FIELD_BIT,1668 .offset = 15,1669 .width = 1,1670 },1671 [VCAP_KF_ISDX_CLS] = {1672 .type = VCAP_FIELD_U32,1673 .offset = 16,1674 .width = 12,1675 },1676 [VCAP_KF_8021Q_VLAN_TAGGED_IS] = {1677 .type = VCAP_FIELD_BIT,1678 .offset = 28,1679 .width = 1,1680 },1681 [VCAP_KF_8021Q_VID_CLS] = {1682 .type = VCAP_FIELD_U32,1683 .offset = 29,1684 .width = 13,1685 },1686 [VCAP_KF_IF_EGR_PORT_MASK_RNG] = {1687 .type = VCAP_FIELD_U32,1688 .offset = 42,1689 .width = 3,1690 },1691 [VCAP_KF_IF_EGR_PORT_MASK] = {1692 .type = VCAP_FIELD_U32,1693 .offset = 45,1694 .width = 32,1695 },1696 [VCAP_KF_IF_IGR_PORT_SEL] = {1697 .type = VCAP_FIELD_BIT,1698 .offset = 77,1699 .width = 1,1700 },1701 [VCAP_KF_IF_IGR_PORT] = {1702 .type = VCAP_FIELD_U32,1703 .offset = 78,1704 .width = 9,1705 },1706 [VCAP_KF_8021Q_PCP_CLS] = {1707 .type = VCAP_FIELD_U32,1708 .offset = 87,1709 .width = 3,1710 },1711 [VCAP_KF_8021Q_DEI_CLS] = {1712 .type = VCAP_FIELD_BIT,1713 .offset = 90,1714 .width = 1,1715 },1716 [VCAP_KF_COSID_CLS] = {1717 .type = VCAP_FIELD_U32,1718 .offset = 91,1719 .width = 3,1720 },1721 [VCAP_KF_L3_DPL_CLS] = {1722 .type = VCAP_FIELD_BIT,1723 .offset = 94,1724 .width = 1,1725 },1726 [VCAP_KF_L3_RT_IS] = {1727 .type = VCAP_FIELD_BIT,1728 .offset = 95,1729 .width = 1,1730 },1731 [VCAP_KF_IP4_IS] = {1732 .type = VCAP_FIELD_BIT,1733 .offset = 99,1734 .width = 1,1735 },1736 [VCAP_KF_L3_FRAGMENT_TYPE] = {1737 .type = VCAP_FIELD_U32,1738 .offset = 100,1739 .width = 2,1740 },1741 [VCAP_KF_L3_OPTIONS_IS] = {1742 .type = VCAP_FIELD_BIT,1743 .offset = 102,1744 .width = 1,1745 },1746 [VCAP_KF_L3_TTL_GT0] = {1747 .type = VCAP_FIELD_BIT,1748 .offset = 103,1749 .width = 1,1750 },1751 [VCAP_KF_L3_TOS] = {1752 .type = VCAP_FIELD_U32,1753 .offset = 104,1754 .width = 8,1755 },1756 [VCAP_KF_L3_IP4_DIP] = {1757 .type = VCAP_FIELD_U32,1758 .offset = 112,1759 .width = 32,1760 },1761 [VCAP_KF_L3_IP4_SIP] = {1762 .type = VCAP_FIELD_U32,1763 .offset = 144,1764 .width = 32,1765 },1766 [VCAP_KF_L3_DIP_EQ_SIP_IS] = {1767 .type = VCAP_FIELD_BIT,1768 .offset = 176,1769 .width = 1,1770 },1771 [VCAP_KF_TCP_IS] = {1772 .type = VCAP_FIELD_BIT,1773 .offset = 177,1774 .width = 1,1775 },1776 [VCAP_KF_L4_DPORT] = {1777 .type = VCAP_FIELD_U32,1778 .offset = 178,1779 .width = 16,1780 },1781 [VCAP_KF_L4_SPORT] = {1782 .type = VCAP_FIELD_U32,1783 .offset = 194,1784 .width = 16,1785 },1786 [VCAP_KF_L4_RNG] = {1787 .type = VCAP_FIELD_U32,1788 .offset = 210,1789 .width = 16,1790 },1791 [VCAP_KF_L4_SPORT_EQ_DPORT_IS] = {1792 .type = VCAP_FIELD_BIT,1793 .offset = 226,1794 .width = 1,1795 },1796 [VCAP_KF_L4_SEQUENCE_EQ0_IS] = {1797 .type = VCAP_FIELD_BIT,1798 .offset = 227,1799 .width = 1,1800 },1801 [VCAP_KF_L4_FIN] = {1802 .type = VCAP_FIELD_BIT,1803 .offset = 228,1804 .width = 1,1805 },1806 [VCAP_KF_L4_SYN] = {1807 .type = VCAP_FIELD_BIT,1808 .offset = 229,1809 .width = 1,1810 },1811 [VCAP_KF_L4_RST] = {1812 .type = VCAP_FIELD_BIT,1813 .offset = 230,1814 .width = 1,1815 },1816 [VCAP_KF_L4_PSH] = {1817 .type = VCAP_FIELD_BIT,1818 .offset = 231,1819 .width = 1,1820 },1821 [VCAP_KF_L4_ACK] = {1822 .type = VCAP_FIELD_BIT,1823 .offset = 232,1824 .width = 1,1825 },1826 [VCAP_KF_L4_URG] = {1827 .type = VCAP_FIELD_BIT,1828 .offset = 233,1829 .width = 1,1830 },1831 [VCAP_KF_L4_PAYLOAD] = {1832 .type = VCAP_FIELD_U64,1833 .offset = 234,1834 .width = 64,1835 },1836};1837 1838static const struct vcap_field es2_ip4_other_keyfield[] = {1839 [VCAP_KF_TYPE] = {1840 .type = VCAP_FIELD_U32,1841 .offset = 0,1842 .width = 3,1843 },1844 [VCAP_KF_LOOKUP_FIRST_IS] = {1845 .type = VCAP_FIELD_BIT,1846 .offset = 3,1847 .width = 1,1848 },1849 [VCAP_KF_L2_MC_IS] = {1850 .type = VCAP_FIELD_BIT,1851 .offset = 13,1852 .width = 1,1853 },1854 [VCAP_KF_L2_BC_IS] = {1855 .type = VCAP_FIELD_BIT,1856 .offset = 14,1857 .width = 1,1858 },1859 [VCAP_KF_ISDX_GT0_IS] = {1860 .type = VCAP_FIELD_BIT,1861 .offset = 15,1862 .width = 1,1863 },1864 [VCAP_KF_ISDX_CLS] = {1865 .type = VCAP_FIELD_U32,1866 .offset = 16,1867 .width = 12,1868 },1869 [VCAP_KF_8021Q_VLAN_TAGGED_IS] = {1870 .type = VCAP_FIELD_BIT,1871 .offset = 28,1872 .width = 1,1873 },1874 [VCAP_KF_8021Q_VID_CLS] = {1875 .type = VCAP_FIELD_U32,1876 .offset = 29,1877 .width = 13,1878 },1879 [VCAP_KF_IF_EGR_PORT_MASK_RNG] = {1880 .type = VCAP_FIELD_U32,1881 .offset = 42,1882 .width = 3,1883 },1884 [VCAP_KF_IF_EGR_PORT_MASK] = {1885 .type = VCAP_FIELD_U32,1886 .offset = 45,1887 .width = 32,1888 },1889 [VCAP_KF_IF_IGR_PORT_SEL] = {1890 .type = VCAP_FIELD_BIT,1891 .offset = 77,1892 .width = 1,1893 },1894 [VCAP_KF_IF_IGR_PORT] = {1895 .type = VCAP_FIELD_U32,1896 .offset = 78,1897 .width = 9,1898 },1899 [VCAP_KF_8021Q_PCP_CLS] = {1900 .type = VCAP_FIELD_U32,1901 .offset = 87,1902 .width = 3,1903 },1904 [VCAP_KF_8021Q_DEI_CLS] = {1905 .type = VCAP_FIELD_BIT,1906 .offset = 90,1907 .width = 1,1908 },1909 [VCAP_KF_COSID_CLS] = {1910 .type = VCAP_FIELD_U32,1911 .offset = 91,1912 .width = 3,1913 },1914 [VCAP_KF_L3_DPL_CLS] = {1915 .type = VCAP_FIELD_BIT,1916 .offset = 94,1917 .width = 1,1918 },1919 [VCAP_KF_L3_RT_IS] = {1920 .type = VCAP_FIELD_BIT,1921 .offset = 95,1922 .width = 1,1923 },1924 [VCAP_KF_IP4_IS] = {1925 .type = VCAP_FIELD_BIT,1926 .offset = 99,1927 .width = 1,1928 },1929 [VCAP_KF_L3_FRAGMENT_TYPE] = {1930 .type = VCAP_FIELD_U32,1931 .offset = 100,1932 .width = 2,1933 },1934 [VCAP_KF_L3_OPTIONS_IS] = {1935 .type = VCAP_FIELD_BIT,1936 .offset = 102,1937 .width = 1,1938 },1939 [VCAP_KF_L3_TTL_GT0] = {1940 .type = VCAP_FIELD_BIT,1941 .offset = 103,1942 .width = 1,1943 },1944 [VCAP_KF_L3_TOS] = {1945 .type = VCAP_FIELD_U32,1946 .offset = 104,1947 .width = 8,1948 },1949 [VCAP_KF_L3_IP4_DIP] = {1950 .type = VCAP_FIELD_U32,1951 .offset = 112,1952 .width = 32,1953 },1954 [VCAP_KF_L3_IP4_SIP] = {1955 .type = VCAP_FIELD_U32,1956 .offset = 144,1957 .width = 32,1958 },1959 [VCAP_KF_L3_DIP_EQ_SIP_IS] = {1960 .type = VCAP_FIELD_BIT,1961 .offset = 176,1962 .width = 1,1963 },1964 [VCAP_KF_L3_IP_PROTO] = {1965 .type = VCAP_FIELD_U32,1966 .offset = 177,1967 .width = 8,1968 },1969 [VCAP_KF_L3_PAYLOAD] = {1970 .type = VCAP_FIELD_U112,1971 .offset = 185,1972 .width = 96,1973 },1974};1975 1976static const struct vcap_field es2_ip_7tuple_keyfield[] = {1977 [VCAP_KF_LOOKUP_FIRST_IS] = {1978 .type = VCAP_FIELD_BIT,1979 .offset = 0,1980 .width = 1,1981 },1982 [VCAP_KF_L2_MC_IS] = {1983 .type = VCAP_FIELD_BIT,1984 .offset = 10,1985 .width = 1,1986 },1987 [VCAP_KF_L2_BC_IS] = {1988 .type = VCAP_FIELD_BIT,1989 .offset = 11,1990 .width = 1,1991 },1992 [VCAP_KF_ISDX_GT0_IS] = {1993 .type = VCAP_FIELD_BIT,1994 .offset = 12,1995 .width = 1,1996 },1997 [VCAP_KF_ISDX_CLS] = {1998 .type = VCAP_FIELD_U32,1999 .offset = 13,2000 .width = 12,2001 },2002 [VCAP_KF_8021Q_VLAN_TAGGED_IS] = {2003 .type = VCAP_FIELD_BIT,2004 .offset = 25,2005 .width = 1,2006 },2007 [VCAP_KF_8021Q_VID_CLS] = {2008 .type = VCAP_FIELD_U32,2009 .offset = 26,2010 .width = 13,2011 },2012 [VCAP_KF_IF_EGR_PORT_MASK_RNG] = {2013 .type = VCAP_FIELD_U32,2014 .offset = 39,2015 .width = 3,2016 },2017 [VCAP_KF_IF_EGR_PORT_MASK] = {2018 .type = VCAP_FIELD_U32,2019 .offset = 42,2020 .width = 32,2021 },2022 [VCAP_KF_IF_IGR_PORT_SEL] = {2023 .type = VCAP_FIELD_BIT,2024 .offset = 74,2025 .width = 1,2026 },2027 [VCAP_KF_IF_IGR_PORT] = {2028 .type = VCAP_FIELD_U32,2029 .offset = 75,2030 .width = 9,2031 },2032 [VCAP_KF_8021Q_PCP_CLS] = {2033 .type = VCAP_FIELD_U32,2034 .offset = 84,2035 .width = 3,2036 },2037 [VCAP_KF_8021Q_DEI_CLS] = {2038 .type = VCAP_FIELD_BIT,2039 .offset = 87,2040 .width = 1,2041 },2042 [VCAP_KF_COSID_CLS] = {2043 .type = VCAP_FIELD_U32,2044 .offset = 88,2045 .width = 3,2046 },2047 [VCAP_KF_L3_DPL_CLS] = {2048 .type = VCAP_FIELD_BIT,2049 .offset = 91,2050 .width = 1,2051 },2052 [VCAP_KF_L3_RT_IS] = {2053 .type = VCAP_FIELD_BIT,2054 .offset = 92,2055 .width = 1,2056 },2057 [VCAP_KF_L2_DMAC] = {2058 .type = VCAP_FIELD_U48,2059 .offset = 96,2060 .width = 48,2061 },2062 [VCAP_KF_L2_SMAC] = {2063 .type = VCAP_FIELD_U48,2064 .offset = 144,2065 .width = 48,2066 },2067 [VCAP_KF_IP4_IS] = {2068 .type = VCAP_FIELD_BIT,2069 .offset = 192,2070 .width = 1,2071 },2072 [VCAP_KF_L3_TTL_GT0] = {2073 .type = VCAP_FIELD_BIT,2074 .offset = 193,2075 .width = 1,2076 },2077 [VCAP_KF_L3_TOS] = {2078 .type = VCAP_FIELD_U32,2079 .offset = 194,2080 .width = 8,2081 },2082 [VCAP_KF_L3_IP6_DIP] = {2083 .type = VCAP_FIELD_U128,2084 .offset = 202,2085 .width = 128,2086 },2087 [VCAP_KF_L3_IP6_SIP] = {2088 .type = VCAP_FIELD_U128,2089 .offset = 330,2090 .width = 128,2091 },2092 [VCAP_KF_L3_DIP_EQ_SIP_IS] = {2093 .type = VCAP_FIELD_BIT,2094 .offset = 458,2095 .width = 1,2096 },2097 [VCAP_KF_TCP_UDP_IS] = {2098 .type = VCAP_FIELD_BIT,2099 .offset = 459,2100 .width = 1,2101 },2102 [VCAP_KF_TCP_IS] = {2103 .type = VCAP_FIELD_BIT,2104 .offset = 460,2105 .width = 1,2106 },2107 [VCAP_KF_L4_DPORT] = {2108 .type = VCAP_FIELD_U32,2109 .offset = 461,2110 .width = 16,2111 },2112 [VCAP_KF_L4_SPORT] = {2113 .type = VCAP_FIELD_U32,2114 .offset = 477,2115 .width = 16,2116 },2117 [VCAP_KF_L4_RNG] = {2118 .type = VCAP_FIELD_U32,2119 .offset = 493,2120 .width = 16,2121 },2122 [VCAP_KF_L4_SPORT_EQ_DPORT_IS] = {2123 .type = VCAP_FIELD_BIT,2124 .offset = 509,2125 .width = 1,2126 },2127 [VCAP_KF_L4_SEQUENCE_EQ0_IS] = {2128 .type = VCAP_FIELD_BIT,2129 .offset = 510,2130 .width = 1,2131 },2132 [VCAP_KF_L4_FIN] = {2133 .type = VCAP_FIELD_BIT,2134 .offset = 511,2135 .width = 1,2136 },2137 [VCAP_KF_L4_SYN] = {2138 .type = VCAP_FIELD_BIT,2139 .offset = 512,2140 .width = 1,2141 },2142 [VCAP_KF_L4_RST] = {2143 .type = VCAP_FIELD_BIT,2144 .offset = 513,2145 .width = 1,2146 },2147 [VCAP_KF_L4_PSH] = {2148 .type = VCAP_FIELD_BIT,2149 .offset = 514,2150 .width = 1,2151 },2152 [VCAP_KF_L4_ACK] = {2153 .type = VCAP_FIELD_BIT,2154 .offset = 515,2155 .width = 1,2156 },2157 [VCAP_KF_L4_URG] = {2158 .type = VCAP_FIELD_BIT,2159 .offset = 516,2160 .width = 1,2161 },2162 [VCAP_KF_L4_PAYLOAD] = {2163 .type = VCAP_FIELD_U64,2164 .offset = 517,2165 .width = 64,2166 },2167};2168 2169static const struct vcap_field es2_ip6_std_keyfield[] = {2170 [VCAP_KF_TYPE] = {2171 .type = VCAP_FIELD_U32,2172 .offset = 0,2173 .width = 3,2174 },2175 [VCAP_KF_LOOKUP_FIRST_IS] = {2176 .type = VCAP_FIELD_BIT,2177 .offset = 3,2178 .width = 1,2179 },2180 [VCAP_KF_L2_MC_IS] = {2181 .type = VCAP_FIELD_BIT,2182 .offset = 13,2183 .width = 1,2184 },2185 [VCAP_KF_L2_BC_IS] = {2186 .type = VCAP_FIELD_BIT,2187 .offset = 14,2188 .width = 1,2189 },2190 [VCAP_KF_ISDX_GT0_IS] = {2191 .type = VCAP_FIELD_BIT,2192 .offset = 15,2193 .width = 1,2194 },2195 [VCAP_KF_ISDX_CLS] = {2196 .type = VCAP_FIELD_U32,2197 .offset = 16,2198 .width = 12,2199 },2200 [VCAP_KF_8021Q_VLAN_TAGGED_IS] = {2201 .type = VCAP_FIELD_BIT,2202 .offset = 28,2203 .width = 1,2204 },2205 [VCAP_KF_8021Q_VID_CLS] = {2206 .type = VCAP_FIELD_U32,2207 .offset = 29,2208 .width = 13,2209 },2210 [VCAP_KF_IF_EGR_PORT_MASK_RNG] = {2211 .type = VCAP_FIELD_U32,2212 .offset = 42,2213 .width = 3,2214 },2215 [VCAP_KF_IF_EGR_PORT_MASK] = {2216 .type = VCAP_FIELD_U32,2217 .offset = 45,2218 .width = 32,2219 },2220 [VCAP_KF_IF_IGR_PORT_SEL] = {2221 .type = VCAP_FIELD_BIT,2222 .offset = 77,2223 .width = 1,2224 },2225 [VCAP_KF_IF_IGR_PORT] = {2226 .type = VCAP_FIELD_U32,2227 .offset = 78,2228 .width = 9,2229 },2230 [VCAP_KF_8021Q_PCP_CLS] = {2231 .type = VCAP_FIELD_U32,2232 .offset = 87,2233 .width = 3,2234 },2235 [VCAP_KF_8021Q_DEI_CLS] = {2236 .type = VCAP_FIELD_BIT,2237 .offset = 90,2238 .width = 1,2239 },2240 [VCAP_KF_COSID_CLS] = {2241 .type = VCAP_FIELD_U32,2242 .offset = 91,2243 .width = 3,2244 },2245 [VCAP_KF_L3_DPL_CLS] = {2246 .type = VCAP_FIELD_BIT,2247 .offset = 94,2248 .width = 1,2249 },2250 [VCAP_KF_L3_RT_IS] = {2251 .type = VCAP_FIELD_BIT,2252 .offset = 95,2253 .width = 1,2254 },2255 [VCAP_KF_L3_TTL_GT0] = {2256 .type = VCAP_FIELD_BIT,2257 .offset = 99,2258 .width = 1,2259 },2260 [VCAP_KF_L3_IP6_SIP] = {2261 .type = VCAP_FIELD_U128,2262 .offset = 100,2263 .width = 128,2264 },2265 [VCAP_KF_L3_DIP_EQ_SIP_IS] = {2266 .type = VCAP_FIELD_BIT,2267 .offset = 228,2268 .width = 1,2269 },2270 [VCAP_KF_L3_IP_PROTO] = {2271 .type = VCAP_FIELD_U32,2272 .offset = 229,2273 .width = 8,2274 },2275 [VCAP_KF_L4_RNG] = {2276 .type = VCAP_FIELD_U32,2277 .offset = 237,2278 .width = 16,2279 },2280 [VCAP_KF_L3_PAYLOAD] = {2281 .type = VCAP_FIELD_U48,2282 .offset = 253,2283 .width = 40,2284 },2285};2286 2287/* keyfield_set */2288static const struct vcap_set is0_keyfield_set[] = {2289 [VCAP_KFS_NORMAL_7TUPLE] = {2290 .type_id = 0,2291 .sw_per_item = 12,2292 .sw_cnt = 1,2293 },2294 [VCAP_KFS_NORMAL_5TUPLE_IP4] = {2295 .type_id = 2,2296 .sw_per_item = 6,2297 .sw_cnt = 2,2298 },2299};2300 2301static const struct vcap_set is2_keyfield_set[] = {2302 [VCAP_KFS_MAC_ETYPE] = {2303 .type_id = 0,2304 .sw_per_item = 6,2305 .sw_cnt = 2,2306 },2307 [VCAP_KFS_ARP] = {2308 .type_id = 3,2309 .sw_per_item = 6,2310 .sw_cnt = 2,2311 },2312 [VCAP_KFS_IP4_TCP_UDP] = {2313 .type_id = 4,2314 .sw_per_item = 6,2315 .sw_cnt = 2,2316 },2317 [VCAP_KFS_IP4_OTHER] = {2318 .type_id = 5,2319 .sw_per_item = 6,2320 .sw_cnt = 2,2321 },2322 [VCAP_KFS_IP6_STD] = {2323 .type_id = 6,2324 .sw_per_item = 6,2325 .sw_cnt = 2,2326 },2327 [VCAP_KFS_IP_7TUPLE] = {2328 .type_id = 1,2329 .sw_per_item = 12,2330 .sw_cnt = 1,2331 },2332};2333 2334static const struct vcap_set es0_keyfield_set[] = {2335 [VCAP_KFS_ISDX] = {2336 .type_id = 0,2337 .sw_per_item = 1,2338 .sw_cnt = 1,2339 },2340};2341 2342static const struct vcap_set es2_keyfield_set[] = {2343 [VCAP_KFS_MAC_ETYPE] = {2344 .type_id = 0,2345 .sw_per_item = 6,2346 .sw_cnt = 2,2347 },2348 [VCAP_KFS_ARP] = {2349 .type_id = 1,2350 .sw_per_item = 6,2351 .sw_cnt = 2,2352 },2353 [VCAP_KFS_IP4_TCP_UDP] = {2354 .type_id = 2,2355 .sw_per_item = 6,2356 .sw_cnt = 2,2357 },2358 [VCAP_KFS_IP4_OTHER] = {2359 .type_id = 3,2360 .sw_per_item = 6,2361 .sw_cnt = 2,2362 },2363 [VCAP_KFS_IP_7TUPLE] = {2364 .type_id = -1,2365 .sw_per_item = 12,2366 .sw_cnt = 1,2367 },2368 [VCAP_KFS_IP6_STD] = {2369 .type_id = 4,2370 .sw_per_item = 6,2371 .sw_cnt = 2,2372 },2373};2374 2375/* keyfield_set map */2376static const struct vcap_field *is0_keyfield_set_map[] = {2377 [VCAP_KFS_NORMAL_7TUPLE] = is0_normal_7tuple_keyfield,2378 [VCAP_KFS_NORMAL_5TUPLE_IP4] = is0_normal_5tuple_ip4_keyfield,2379};2380 2381static const struct vcap_field *is2_keyfield_set_map[] = {2382 [VCAP_KFS_MAC_ETYPE] = is2_mac_etype_keyfield,2383 [VCAP_KFS_ARP] = is2_arp_keyfield,2384 [VCAP_KFS_IP4_TCP_UDP] = is2_ip4_tcp_udp_keyfield,2385 [VCAP_KFS_IP4_OTHER] = is2_ip4_other_keyfield,2386 [VCAP_KFS_IP6_STD] = is2_ip6_std_keyfield,2387 [VCAP_KFS_IP_7TUPLE] = is2_ip_7tuple_keyfield,2388};2389 2390static const struct vcap_field *es0_keyfield_set_map[] = {2391 [VCAP_KFS_ISDX] = es0_isdx_keyfield,2392};2393 2394static const struct vcap_field *es2_keyfield_set_map[] = {2395 [VCAP_KFS_MAC_ETYPE] = es2_mac_etype_keyfield,2396 [VCAP_KFS_ARP] = es2_arp_keyfield,2397 [VCAP_KFS_IP4_TCP_UDP] = es2_ip4_tcp_udp_keyfield,2398 [VCAP_KFS_IP4_OTHER] = es2_ip4_other_keyfield,2399 [VCAP_KFS_IP_7TUPLE] = es2_ip_7tuple_keyfield,2400 [VCAP_KFS_IP6_STD] = es2_ip6_std_keyfield,2401};2402 2403/* keyfield_set map sizes */2404static int is0_keyfield_set_map_size[] = {2405 [VCAP_KFS_NORMAL_7TUPLE] = ARRAY_SIZE(is0_normal_7tuple_keyfield),2406 [VCAP_KFS_NORMAL_5TUPLE_IP4] = ARRAY_SIZE(is0_normal_5tuple_ip4_keyfield),2407};2408 2409static int is2_keyfield_set_map_size[] = {2410 [VCAP_KFS_MAC_ETYPE] = ARRAY_SIZE(is2_mac_etype_keyfield),2411 [VCAP_KFS_ARP] = ARRAY_SIZE(is2_arp_keyfield),2412 [VCAP_KFS_IP4_TCP_UDP] = ARRAY_SIZE(is2_ip4_tcp_udp_keyfield),2413 [VCAP_KFS_IP4_OTHER] = ARRAY_SIZE(is2_ip4_other_keyfield),2414 [VCAP_KFS_IP6_STD] = ARRAY_SIZE(is2_ip6_std_keyfield),2415 [VCAP_KFS_IP_7TUPLE] = ARRAY_SIZE(is2_ip_7tuple_keyfield),2416};2417 2418static int es0_keyfield_set_map_size[] = {2419 [VCAP_KFS_ISDX] = ARRAY_SIZE(es0_isdx_keyfield),2420};2421 2422static int es2_keyfield_set_map_size[] = {2423 [VCAP_KFS_MAC_ETYPE] = ARRAY_SIZE(es2_mac_etype_keyfield),2424 [VCAP_KFS_ARP] = ARRAY_SIZE(es2_arp_keyfield),2425 [VCAP_KFS_IP4_TCP_UDP] = ARRAY_SIZE(es2_ip4_tcp_udp_keyfield),2426 [VCAP_KFS_IP4_OTHER] = ARRAY_SIZE(es2_ip4_other_keyfield),2427 [VCAP_KFS_IP_7TUPLE] = ARRAY_SIZE(es2_ip_7tuple_keyfield),2428 [VCAP_KFS_IP6_STD] = ARRAY_SIZE(es2_ip6_std_keyfield),2429};2430 2431/* actionfields */2432static const struct vcap_field is0_classification_actionfield[] = {2433 [VCAP_AF_TYPE] = {2434 .type = VCAP_FIELD_BIT,2435 .offset = 0,2436 .width = 1,2437 },2438 [VCAP_AF_DSCP_ENA] = {2439 .type = VCAP_FIELD_BIT,2440 .offset = 1,2441 .width = 1,2442 },2443 [VCAP_AF_DSCP_VAL] = {2444 .type = VCAP_FIELD_U32,2445 .offset = 2,2446 .width = 6,2447 },2448 [VCAP_AF_QOS_ENA] = {2449 .type = VCAP_FIELD_BIT,2450 .offset = 12,2451 .width = 1,2452 },2453 [VCAP_AF_QOS_VAL] = {2454 .type = VCAP_FIELD_U32,2455 .offset = 13,2456 .width = 3,2457 },2458 [VCAP_AF_DP_ENA] = {2459 .type = VCAP_FIELD_BIT,2460 .offset = 16,2461 .width = 1,2462 },2463 [VCAP_AF_DP_VAL] = {2464 .type = VCAP_FIELD_U32,2465 .offset = 17,2466 .width = 2,2467 },2468 [VCAP_AF_DEI_ENA] = {2469 .type = VCAP_FIELD_BIT,2470 .offset = 19,2471 .width = 1,2472 },2473 [VCAP_AF_DEI_VAL] = {2474 .type = VCAP_FIELD_BIT,2475 .offset = 20,2476 .width = 1,2477 },2478 [VCAP_AF_PCP_ENA] = {2479 .type = VCAP_FIELD_BIT,2480 .offset = 21,2481 .width = 1,2482 },2483 [VCAP_AF_PCP_VAL] = {2484 .type = VCAP_FIELD_U32,2485 .offset = 22,2486 .width = 3,2487 },2488 [VCAP_AF_MAP_LOOKUP_SEL] = {2489 .type = VCAP_FIELD_U32,2490 .offset = 25,2491 .width = 2,2492 },2493 [VCAP_AF_MAP_KEY] = {2494 .type = VCAP_FIELD_U32,2495 .offset = 27,2496 .width = 3,2497 },2498 [VCAP_AF_MAP_IDX] = {2499 .type = VCAP_FIELD_U32,2500 .offset = 30,2501 .width = 9,2502 },2503 [VCAP_AF_CLS_VID_SEL] = {2504 .type = VCAP_FIELD_U32,2505 .offset = 39,2506 .width = 3,2507 },2508 [VCAP_AF_VID_VAL] = {2509 .type = VCAP_FIELD_U32,2510 .offset = 45,2511 .width = 13,2512 },2513 [VCAP_AF_ISDX_ADD_REPLACE_SEL] = {2514 .type = VCAP_FIELD_BIT,2515 .offset = 68,2516 .width = 1,2517 },2518 [VCAP_AF_ISDX_VAL] = {2519 .type = VCAP_FIELD_U32,2520 .offset = 69,2521 .width = 12,2522 },2523 [VCAP_AF_PAG_OVERRIDE_MASK] = {2524 .type = VCAP_FIELD_U32,2525 .offset = 109,2526 .width = 8,2527 },2528 [VCAP_AF_PAG_VAL] = {2529 .type = VCAP_FIELD_U32,2530 .offset = 117,2531 .width = 8,2532 },2533 [VCAP_AF_NXT_IDX_CTRL] = {2534 .type = VCAP_FIELD_U32,2535 .offset = 171,2536 .width = 3,2537 },2538 [VCAP_AF_NXT_IDX] = {2539 .type = VCAP_FIELD_U32,2540 .offset = 174,2541 .width = 12,2542 },2543};2544 2545static const struct vcap_field is0_full_actionfield[] = {2546 [VCAP_AF_DSCP_ENA] = {2547 .type = VCAP_FIELD_BIT,2548 .offset = 0,2549 .width = 1,2550 },2551 [VCAP_AF_DSCP_VAL] = {2552 .type = VCAP_FIELD_U32,2553 .offset = 1,2554 .width = 6,2555 },2556 [VCAP_AF_QOS_ENA] = {2557 .type = VCAP_FIELD_BIT,2558 .offset = 11,2559 .width = 1,2560 },2561 [VCAP_AF_QOS_VAL] = {2562 .type = VCAP_FIELD_U32,2563 .offset = 12,2564 .width = 3,2565 },2566 [VCAP_AF_DP_ENA] = {2567 .type = VCAP_FIELD_BIT,2568 .offset = 15,2569 .width = 1,2570 },2571 [VCAP_AF_DP_VAL] = {2572 .type = VCAP_FIELD_U32,2573 .offset = 16,2574 .width = 2,2575 },2576 [VCAP_AF_DEI_ENA] = {2577 .type = VCAP_FIELD_BIT,2578 .offset = 18,2579 .width = 1,2580 },2581 [VCAP_AF_DEI_VAL] = {2582 .type = VCAP_FIELD_BIT,2583 .offset = 19,2584 .width = 1,2585 },2586 [VCAP_AF_PCP_ENA] = {2587 .type = VCAP_FIELD_BIT,2588 .offset = 20,2589 .width = 1,2590 },2591 [VCAP_AF_PCP_VAL] = {2592 .type = VCAP_FIELD_U32,2593 .offset = 21,2594 .width = 3,2595 },2596 [VCAP_AF_MAP_LOOKUP_SEL] = {2597 .type = VCAP_FIELD_U32,2598 .offset = 24,2599 .width = 2,2600 },2601 [VCAP_AF_MAP_KEY] = {2602 .type = VCAP_FIELD_U32,2603 .offset = 26,2604 .width = 3,2605 },2606 [VCAP_AF_MAP_IDX] = {2607 .type = VCAP_FIELD_U32,2608 .offset = 29,2609 .width = 9,2610 },2611 [VCAP_AF_CLS_VID_SEL] = {2612 .type = VCAP_FIELD_U32,2613 .offset = 38,2614 .width = 3,2615 },2616 [VCAP_AF_VID_VAL] = {2617 .type = VCAP_FIELD_U32,2618 .offset = 44,2619 .width = 13,2620 },2621 [VCAP_AF_ISDX_ADD_REPLACE_SEL] = {2622 .type = VCAP_FIELD_BIT,2623 .offset = 67,2624 .width = 1,2625 },2626 [VCAP_AF_ISDX_VAL] = {2627 .type = VCAP_FIELD_U32,2628 .offset = 68,2629 .width = 12,2630 },2631 [VCAP_AF_MASK_MODE] = {2632 .type = VCAP_FIELD_U32,2633 .offset = 80,2634 .width = 3,2635 },2636 [VCAP_AF_PORT_MASK] = {2637 .type = VCAP_FIELD_U72,2638 .offset = 83,2639 .width = 65,2640 },2641 [VCAP_AF_PAG_OVERRIDE_MASK] = {2642 .type = VCAP_FIELD_U32,2643 .offset = 204,2644 .width = 8,2645 },2646 [VCAP_AF_PAG_VAL] = {2647 .type = VCAP_FIELD_U32,2648 .offset = 212,2649 .width = 8,2650 },2651 [VCAP_AF_NXT_IDX_CTRL] = {2652 .type = VCAP_FIELD_U32,2653 .offset = 298,2654 .width = 3,2655 },2656 [VCAP_AF_NXT_IDX] = {2657 .type = VCAP_FIELD_U32,2658 .offset = 301,2659 .width = 12,2660 },2661};2662 2663static const struct vcap_field is0_class_reduced_actionfield[] = {2664 [VCAP_AF_TYPE] = {2665 .type = VCAP_FIELD_BIT,2666 .offset = 0,2667 .width = 1,2668 },2669 [VCAP_AF_QOS_ENA] = {2670 .type = VCAP_FIELD_BIT,2671 .offset = 5,2672 .width = 1,2673 },2674 [VCAP_AF_QOS_VAL] = {2675 .type = VCAP_FIELD_U32,2676 .offset = 6,2677 .width = 3,2678 },2679 [VCAP_AF_DP_ENA] = {2680 .type = VCAP_FIELD_BIT,2681 .offset = 9,2682 .width = 1,2683 },2684 [VCAP_AF_DP_VAL] = {2685 .type = VCAP_FIELD_U32,2686 .offset = 10,2687 .width = 2,2688 },2689 [VCAP_AF_MAP_LOOKUP_SEL] = {2690 .type = VCAP_FIELD_U32,2691 .offset = 12,2692 .width = 2,2693 },2694 [VCAP_AF_MAP_KEY] = {2695 .type = VCAP_FIELD_U32,2696 .offset = 14,2697 .width = 3,2698 },2699 [VCAP_AF_CLS_VID_SEL] = {2700 .type = VCAP_FIELD_U32,2701 .offset = 17,2702 .width = 3,2703 },2704 [VCAP_AF_VID_VAL] = {2705 .type = VCAP_FIELD_U32,2706 .offset = 23,2707 .width = 13,2708 },2709 [VCAP_AF_ISDX_ADD_REPLACE_SEL] = {2710 .type = VCAP_FIELD_BIT,2711 .offset = 46,2712 .width = 1,2713 },2714 [VCAP_AF_ISDX_VAL] = {2715 .type = VCAP_FIELD_U32,2716 .offset = 47,2717 .width = 12,2718 },2719 [VCAP_AF_NXT_IDX_CTRL] = {2720 .type = VCAP_FIELD_U32,2721 .offset = 90,2722 .width = 3,2723 },2724 [VCAP_AF_NXT_IDX] = {2725 .type = VCAP_FIELD_U32,2726 .offset = 93,2727 .width = 12,2728 },2729};2730 2731static const struct vcap_field is2_base_type_actionfield[] = {2732 [VCAP_AF_PIPELINE_FORCE_ENA] = {2733 .type = VCAP_FIELD_BIT,2734 .offset = 1,2735 .width = 1,2736 },2737 [VCAP_AF_PIPELINE_PT] = {2738 .type = VCAP_FIELD_U32,2739 .offset = 2,2740 .width = 5,2741 },2742 [VCAP_AF_HIT_ME_ONCE] = {2743 .type = VCAP_FIELD_BIT,2744 .offset = 7,2745 .width = 1,2746 },2747 [VCAP_AF_INTR_ENA] = {2748 .type = VCAP_FIELD_BIT,2749 .offset = 8,2750 .width = 1,2751 },2752 [VCAP_AF_CPU_COPY_ENA] = {2753 .type = VCAP_FIELD_BIT,2754 .offset = 9,2755 .width = 1,2756 },2757 [VCAP_AF_CPU_QUEUE_NUM] = {2758 .type = VCAP_FIELD_U32,2759 .offset = 10,2760 .width = 3,2761 },2762 [VCAP_AF_LRN_DIS] = {2763 .type = VCAP_FIELD_BIT,2764 .offset = 14,2765 .width = 1,2766 },2767 [VCAP_AF_RT_DIS] = {2768 .type = VCAP_FIELD_BIT,2769 .offset = 15,2770 .width = 1,2771 },2772 [VCAP_AF_POLICE_ENA] = {2773 .type = VCAP_FIELD_BIT,2774 .offset = 16,2775 .width = 1,2776 },2777 [VCAP_AF_POLICE_IDX] = {2778 .type = VCAP_FIELD_U32,2779 .offset = 17,2780 .width = 6,2781 },2782 [VCAP_AF_IGNORE_PIPELINE_CTRL] = {2783 .type = VCAP_FIELD_BIT,2784 .offset = 23,2785 .width = 1,2786 },2787 [VCAP_AF_MASK_MODE] = {2788 .type = VCAP_FIELD_U32,2789 .offset = 27,2790 .width = 3,2791 },2792 [VCAP_AF_PORT_MASK] = {2793 .type = VCAP_FIELD_U72,2794 .offset = 30,2795 .width = 68,2796 },2797 [VCAP_AF_MIRROR_PROBE] = {2798 .type = VCAP_FIELD_U32,2799 .offset = 111,2800 .width = 2,2801 },2802 [VCAP_AF_MATCH_ID] = {2803 .type = VCAP_FIELD_U32,2804 .offset = 159,2805 .width = 16,2806 },2807 [VCAP_AF_MATCH_ID_MASK] = {2808 .type = VCAP_FIELD_U32,2809 .offset = 175,2810 .width = 16,2811 },2812 [VCAP_AF_CNT_ID] = {2813 .type = VCAP_FIELD_U32,2814 .offset = 191,2815 .width = 12,2816 },2817};2818 2819static const struct vcap_field es0_es0_actionfield[] = {2820 [VCAP_AF_PUSH_OUTER_TAG] = {2821 .type = VCAP_FIELD_U32,2822 .offset = 0,2823 .width = 2,2824 },2825 [VCAP_AF_PUSH_INNER_TAG] = {2826 .type = VCAP_FIELD_BIT,2827 .offset = 2,2828 .width = 1,2829 },2830 [VCAP_AF_TAG_A_TPID_SEL] = {2831 .type = VCAP_FIELD_U32,2832 .offset = 3,2833 .width = 3,2834 },2835 [VCAP_AF_TAG_A_VID_SEL] = {2836 .type = VCAP_FIELD_U32,2837 .offset = 6,2838 .width = 2,2839 },2840 [VCAP_AF_TAG_A_PCP_SEL] = {2841 .type = VCAP_FIELD_U32,2842 .offset = 8,2843 .width = 3,2844 },2845 [VCAP_AF_TAG_A_DEI_SEL] = {2846 .type = VCAP_FIELD_U32,2847 .offset = 11,2848 .width = 3,2849 },2850 [VCAP_AF_TAG_B_TPID_SEL] = {2851 .type = VCAP_FIELD_U32,2852 .offset = 14,2853 .width = 3,2854 },2855 [VCAP_AF_TAG_B_VID_SEL] = {2856 .type = VCAP_FIELD_U32,2857 .offset = 17,2858 .width = 2,2859 },2860 [VCAP_AF_TAG_B_PCP_SEL] = {2861 .type = VCAP_FIELD_U32,2862 .offset = 19,2863 .width = 3,2864 },2865 [VCAP_AF_TAG_B_DEI_SEL] = {2866 .type = VCAP_FIELD_U32,2867 .offset = 22,2868 .width = 3,2869 },2870 [VCAP_AF_TAG_C_TPID_SEL] = {2871 .type = VCAP_FIELD_U32,2872 .offset = 25,2873 .width = 3,2874 },2875 [VCAP_AF_TAG_C_PCP_SEL] = {2876 .type = VCAP_FIELD_U32,2877 .offset = 28,2878 .width = 3,2879 },2880 [VCAP_AF_TAG_C_DEI_SEL] = {2881 .type = VCAP_FIELD_U32,2882 .offset = 31,2883 .width = 3,2884 },2885 [VCAP_AF_VID_A_VAL] = {2886 .type = VCAP_FIELD_U32,2887 .offset = 34,2888 .width = 12,2889 },2890 [VCAP_AF_PCP_A_VAL] = {2891 .type = VCAP_FIELD_U32,2892 .offset = 46,2893 .width = 3,2894 },2895 [VCAP_AF_DEI_A_VAL] = {2896 .type = VCAP_FIELD_BIT,2897 .offset = 49,2898 .width = 1,2899 },2900 [VCAP_AF_VID_B_VAL] = {2901 .type = VCAP_FIELD_U32,2902 .offset = 50,2903 .width = 12,2904 },2905 [VCAP_AF_PCP_B_VAL] = {2906 .type = VCAP_FIELD_U32,2907 .offset = 62,2908 .width = 3,2909 },2910 [VCAP_AF_DEI_B_VAL] = {2911 .type = VCAP_FIELD_BIT,2912 .offset = 65,2913 .width = 1,2914 },2915 [VCAP_AF_VID_C_VAL] = {2916 .type = VCAP_FIELD_U32,2917 .offset = 66,2918 .width = 12,2919 },2920 [VCAP_AF_PCP_C_VAL] = {2921 .type = VCAP_FIELD_U32,2922 .offset = 78,2923 .width = 3,2924 },2925 [VCAP_AF_DEI_C_VAL] = {2926 .type = VCAP_FIELD_BIT,2927 .offset = 81,2928 .width = 1,2929 },2930 [VCAP_AF_POP_VAL] = {2931 .type = VCAP_FIELD_U32,2932 .offset = 82,2933 .width = 2,2934 },2935 [VCAP_AF_UNTAG_VID_ENA] = {2936 .type = VCAP_FIELD_BIT,2937 .offset = 84,2938 .width = 1,2939 },2940 [VCAP_AF_PUSH_CUSTOMER_TAG] = {2941 .type = VCAP_FIELD_U32,2942 .offset = 85,2943 .width = 2,2944 },2945 [VCAP_AF_TAG_C_VID_SEL] = {2946 .type = VCAP_FIELD_U32,2947 .offset = 87,2948 .width = 2,2949 },2950 [VCAP_AF_DSCP_SEL] = {2951 .type = VCAP_FIELD_U32,2952 .offset = 127,2953 .width = 3,2954 },2955 [VCAP_AF_DSCP_VAL] = {2956 .type = VCAP_FIELD_U32,2957 .offset = 130,2958 .width = 6,2959 },2960 [VCAP_AF_ESDX] = {2961 .type = VCAP_FIELD_U32,2962 .offset = 323,2963 .width = 13,2964 },2965 [VCAP_AF_FWD_SEL] = {2966 .type = VCAP_FIELD_U32,2967 .offset = 459,2968 .width = 2,2969 },2970 [VCAP_AF_CPU_QU] = {2971 .type = VCAP_FIELD_U32,2972 .offset = 461,2973 .width = 3,2974 },2975 [VCAP_AF_PIPELINE_PT] = {2976 .type = VCAP_FIELD_U32,2977 .offset = 464,2978 .width = 2,2979 },2980 [VCAP_AF_PIPELINE_ACT] = {2981 .type = VCAP_FIELD_BIT,2982 .offset = 466,2983 .width = 1,2984 },2985 [VCAP_AF_SWAP_MACS_ENA] = {2986 .type = VCAP_FIELD_BIT,2987 .offset = 475,2988 .width = 1,2989 },2990 [VCAP_AF_LOOP_ENA] = {2991 .type = VCAP_FIELD_BIT,2992 .offset = 476,2993 .width = 1,2994 },2995};2996 2997static const struct vcap_field es2_base_type_actionfield[] = {2998 [VCAP_AF_HIT_ME_ONCE] = {2999 .type = VCAP_FIELD_BIT,3000 .offset = 0,3001 .width = 1,3002 },3003 [VCAP_AF_INTR_ENA] = {3004 .type = VCAP_FIELD_BIT,3005 .offset = 1,3006 .width = 1,3007 },3008 [VCAP_AF_FWD_MODE] = {3009 .type = VCAP_FIELD_U32,3010 .offset = 2,3011 .width = 2,3012 },3013 [VCAP_AF_COPY_QUEUE_NUM] = {3014 .type = VCAP_FIELD_U32,3015 .offset = 4,3016 .width = 16,3017 },3018 [VCAP_AF_COPY_PORT_NUM] = {3019 .type = VCAP_FIELD_U32,3020 .offset = 20,3021 .width = 7,3022 },3023 [VCAP_AF_MIRROR_PROBE_ID] = {3024 .type = VCAP_FIELD_U32,3025 .offset = 27,3026 .width = 2,3027 },3028 [VCAP_AF_CPU_COPY_ENA] = {3029 .type = VCAP_FIELD_BIT,3030 .offset = 29,3031 .width = 1,3032 },3033 [VCAP_AF_CPU_QUEUE_NUM] = {3034 .type = VCAP_FIELD_U32,3035 .offset = 30,3036 .width = 3,3037 },3038 [VCAP_AF_POLICE_ENA] = {3039 .type = VCAP_FIELD_BIT,3040 .offset = 33,3041 .width = 1,3042 },3043 [VCAP_AF_POLICE_REMARK] = {3044 .type = VCAP_FIELD_BIT,3045 .offset = 34,3046 .width = 1,3047 },3048 [VCAP_AF_POLICE_IDX] = {3049 .type = VCAP_FIELD_U32,3050 .offset = 35,3051 .width = 6,3052 },3053 [VCAP_AF_ES2_REW_CMD] = {3054 .type = VCAP_FIELD_U32,3055 .offset = 41,3056 .width = 3,3057 },3058 [VCAP_AF_CNT_ID] = {3059 .type = VCAP_FIELD_U32,3060 .offset = 44,3061 .width = 11,3062 },3063 [VCAP_AF_IGNORE_PIPELINE_CTRL] = {3064 .type = VCAP_FIELD_BIT,3065 .offset = 55,3066 .width = 1,3067 },3068};3069 3070/* actionfield_set */3071static const struct vcap_set is0_actionfield_set[] = {3072 [VCAP_AFS_CLASSIFICATION] = {3073 .type_id = 1,3074 .sw_per_item = 2,3075 .sw_cnt = 6,3076 },3077 [VCAP_AFS_FULL] = {3078 .type_id = -1,3079 .sw_per_item = 3,3080 .sw_cnt = 4,3081 },3082 [VCAP_AFS_CLASS_REDUCED] = {3083 .type_id = 1,3084 .sw_per_item = 1,3085 .sw_cnt = 12,3086 },3087};3088 3089static const struct vcap_set is2_actionfield_set[] = {3090 [VCAP_AFS_BASE_TYPE] = {3091 .type_id = -1,3092 .sw_per_item = 3,3093 .sw_cnt = 4,3094 },3095};3096 3097static const struct vcap_set es0_actionfield_set[] = {3098 [VCAP_AFS_ES0] = {3099 .type_id = -1,3100 .sw_per_item = 1,3101 .sw_cnt = 1,3102 },3103};3104 3105static const struct vcap_set es2_actionfield_set[] = {3106 [VCAP_AFS_BASE_TYPE] = {3107 .type_id = -1,3108 .sw_per_item = 3,3109 .sw_cnt = 4,3110 },3111};3112 3113/* actionfield_set map */3114static const struct vcap_field *is0_actionfield_set_map[] = {3115 [VCAP_AFS_CLASSIFICATION] = is0_classification_actionfield,3116 [VCAP_AFS_FULL] = is0_full_actionfield,3117 [VCAP_AFS_CLASS_REDUCED] = is0_class_reduced_actionfield,3118};3119 3120static const struct vcap_field *is2_actionfield_set_map[] = {3121 [VCAP_AFS_BASE_TYPE] = is2_base_type_actionfield,3122};3123 3124static const struct vcap_field *es0_actionfield_set_map[] = {3125 [VCAP_AFS_ES0] = es0_es0_actionfield,3126};3127 3128static const struct vcap_field *es2_actionfield_set_map[] = {3129 [VCAP_AFS_BASE_TYPE] = es2_base_type_actionfield,3130};3131 3132/* actionfield_set map size */3133static int is0_actionfield_set_map_size[] = {3134 [VCAP_AFS_CLASSIFICATION] = ARRAY_SIZE(is0_classification_actionfield),3135 [VCAP_AFS_FULL] = ARRAY_SIZE(is0_full_actionfield),3136 [VCAP_AFS_CLASS_REDUCED] = ARRAY_SIZE(is0_class_reduced_actionfield),3137};3138 3139static int is2_actionfield_set_map_size[] = {3140 [VCAP_AFS_BASE_TYPE] = ARRAY_SIZE(is2_base_type_actionfield),3141};3142 3143static int es0_actionfield_set_map_size[] = {3144 [VCAP_AFS_ES0] = ARRAY_SIZE(es0_es0_actionfield),3145};3146 3147static int es2_actionfield_set_map_size[] = {3148 [VCAP_AFS_BASE_TYPE] = ARRAY_SIZE(es2_base_type_actionfield),3149};3150 3151/* Type Groups */3152static const struct vcap_typegroup is0_x12_keyfield_set_typegroups[] = {3153 {3154 .offset = 0,3155 .width = 5,3156 .value = 16,3157 },3158 {3159 .offset = 52,3160 .width = 1,3161 .value = 0,3162 },3163 {3164 .offset = 104,3165 .width = 2,3166 .value = 0,3167 },3168 {3169 .offset = 156,3170 .width = 3,3171 .value = 0,3172 },3173 {3174 .offset = 208,3175 .width = 2,3176 .value = 0,3177 },3178 {3179 .offset = 260,3180 .width = 1,3181 .value = 0,3182 },3183 {3184 .offset = 312,3185 .width = 4,3186 .value = 0,3187 },3188 {3189 .offset = 364,3190 .width = 1,3191 .value = 0,3192 },3193 {3194 .offset = 416,3195 .width = 2,3196 .value = 0,3197 },3198 {3199 .offset = 468,3200 .width = 3,3201 .value = 0,3202 },3203 {3204 .offset = 520,3205 .width = 2,3206 .value = 0,3207 },3208 {3209 .offset = 572,3210 .width = 1,3211 .value = 0,3212 },3213 {}3214};3215 3216static const struct vcap_typegroup is0_x6_keyfield_set_typegroups[] = {3217 {3218 .offset = 0,3219 .width = 4,3220 .value = 8,3221 },3222 {3223 .offset = 52,3224 .width = 1,3225 .value = 0,3226 },3227 {3228 .offset = 104,3229 .width = 2,3230 .value = 0,3231 },3232 {3233 .offset = 156,3234 .width = 3,3235 .value = 0,3236 },3237 {3238 .offset = 208,3239 .width = 2,3240 .value = 0,3241 },3242 {3243 .offset = 260,3244 .width = 1,3245 .value = 0,3246 },3247 {}3248};3249 3250static const struct vcap_typegroup is0_x3_keyfield_set_typegroups[] = {3251 {3252 .offset = 0,3253 .width = 3,3254 .value = 4,3255 },3256 {3257 .offset = 52,3258 .width = 2,3259 .value = 0,3260 },3261 {3262 .offset = 104,3263 .width = 2,3264 .value = 0,3265 },3266 {}3267};3268 3269static const struct vcap_typegroup is0_x2_keyfield_set_typegroups[] = {3270 {3271 .offset = 0,3272 .width = 2,3273 .value = 2,3274 },3275 {3276 .offset = 52,3277 .width = 1,3278 .value = 0,3279 },3280 {}3281};3282 3283static const struct vcap_typegroup is0_x1_keyfield_set_typegroups[] = {3284 {}3285};3286 3287static const struct vcap_typegroup is2_x12_keyfield_set_typegroups[] = {3288 {3289 .offset = 0,3290 .width = 3,3291 .value = 4,3292 },3293 {3294 .offset = 156,3295 .width = 1,3296 .value = 0,3297 },3298 {3299 .offset = 312,3300 .width = 2,3301 .value = 0,3302 },3303 {3304 .offset = 468,3305 .width = 1,3306 .value = 0,3307 },3308 {}3309};3310 3311static const struct vcap_typegroup is2_x6_keyfield_set_typegroups[] = {3312 {3313 .offset = 0,3314 .width = 2,3315 .value = 2,3316 },3317 {3318 .offset = 156,3319 .width = 1,3320 .value = 0,3321 },3322 {}3323};3324 3325static const struct vcap_typegroup is2_x3_keyfield_set_typegroups[] = {3326 {}3327};3328 3329static const struct vcap_typegroup is2_x1_keyfield_set_typegroups[] = {3330 {}3331};3332 3333static const struct vcap_typegroup es0_x1_keyfield_set_typegroups[] = {3334 {}3335};3336 3337static const struct vcap_typegroup es2_x12_keyfield_set_typegroups[] = {3338 {3339 .offset = 0,3340 .width = 3,3341 .value = 4,3342 },3343 {3344 .offset = 156,3345 .width = 1,3346 .value = 0,3347 },3348 {3349 .offset = 312,3350 .width = 2,3351 .value = 0,3352 },3353 {3354 .offset = 468,3355 .width = 1,3356 .value = 0,3357 },3358 {}3359};3360 3361static const struct vcap_typegroup es2_x6_keyfield_set_typegroups[] = {3362 {3363 .offset = 0,3364 .width = 2,3365 .value = 2,3366 },3367 {3368 .offset = 156,3369 .width = 1,3370 .value = 0,3371 },3372 {}3373};3374 3375static const struct vcap_typegroup es2_x3_keyfield_set_typegroups[] = {3376 {3377 .offset = 0,3378 .width = 1,3379 .value = 1,3380 },3381 {}3382};3383 3384static const struct vcap_typegroup es2_x1_keyfield_set_typegroups[] = {3385 {}3386};3387 3388static const struct vcap_typegroup *is0_keyfield_set_typegroups[] = {3389 [12] = is0_x12_keyfield_set_typegroups,3390 [6] = is0_x6_keyfield_set_typegroups,3391 [3] = is0_x3_keyfield_set_typegroups,3392 [2] = is0_x2_keyfield_set_typegroups,3393 [1] = is0_x1_keyfield_set_typegroups,3394 [13] = NULL,3395};3396 3397static const struct vcap_typegroup *is2_keyfield_set_typegroups[] = {3398 [12] = is2_x12_keyfield_set_typegroups,3399 [6] = is2_x6_keyfield_set_typegroups,3400 [3] = is2_x3_keyfield_set_typegroups,3401 [1] = is2_x1_keyfield_set_typegroups,3402 [13] = NULL,3403};3404 3405static const struct vcap_typegroup *es0_keyfield_set_typegroups[] = {3406 [1] = es0_x1_keyfield_set_typegroups,3407 [2] = NULL,3408};3409 3410static const struct vcap_typegroup *es2_keyfield_set_typegroups[] = {3411 [12] = es2_x12_keyfield_set_typegroups,3412 [6] = es2_x6_keyfield_set_typegroups,3413 [3] = es2_x3_keyfield_set_typegroups,3414 [1] = es2_x1_keyfield_set_typegroups,3415 [13] = NULL,3416};3417 3418static const struct vcap_typegroup is0_x3_actionfield_set_typegroups[] = {3419 {3420 .offset = 0,3421 .width = 3,3422 .value = 4,3423 },3424 {3425 .offset = 110,3426 .width = 2,3427 .value = 0,3428 },3429 {3430 .offset = 220,3431 .width = 2,3432 .value = 0,3433 },3434 {}3435};3436 3437static const struct vcap_typegroup is0_x2_actionfield_set_typegroups[] = {3438 {3439 .offset = 0,3440 .width = 2,3441 .value = 2,3442 },3443 {3444 .offset = 110,3445 .width = 1,3446 .value = 0,3447 },3448 {}3449};3450 3451static const struct vcap_typegroup is0_x1_actionfield_set_typegroups[] = {3452 {3453 .offset = 0,3454 .width = 1,3455 .value = 1,3456 },3457 {}3458};3459 3460static const struct vcap_typegroup is2_x3_actionfield_set_typegroups[] = {3461 {3462 .offset = 0,3463 .width = 2,3464 .value = 2,3465 },3466 {3467 .offset = 110,3468 .width = 1,3469 .value = 0,3470 },3471 {3472 .offset = 220,3473 .width = 1,3474 .value = 0,3475 },3476 {}3477};3478 3479static const struct vcap_typegroup is2_x1_actionfield_set_typegroups[] = {3480 {}3481};3482 3483static const struct vcap_typegroup es0_x1_actionfield_set_typegroups[] = {3484 {}3485};3486 3487static const struct vcap_typegroup es2_x3_actionfield_set_typegroups[] = {3488 {3489 .offset = 0,3490 .width = 2,3491 .value = 2,3492 },3493 {3494 .offset = 21,3495 .width = 1,3496 .value = 0,3497 },3498 {3499 .offset = 42,3500 .width = 1,3501 .value = 0,3502 },3503 {}3504};3505 3506static const struct vcap_typegroup es2_x1_actionfield_set_typegroups[] = {3507 {}3508};3509 3510static const struct vcap_typegroup *is0_actionfield_set_typegroups[] = {3511 [3] = is0_x3_actionfield_set_typegroups,3512 [2] = is0_x2_actionfield_set_typegroups,3513 [1] = is0_x1_actionfield_set_typegroups,3514 [13] = NULL,3515};3516 3517static const struct vcap_typegroup *is2_actionfield_set_typegroups[] = {3518 [3] = is2_x3_actionfield_set_typegroups,3519 [1] = is2_x1_actionfield_set_typegroups,3520 [13] = NULL,3521};3522 3523static const struct vcap_typegroup *es0_actionfield_set_typegroups[] = {3524 [1] = es0_x1_actionfield_set_typegroups,3525 [2] = NULL,3526};3527 3528static const struct vcap_typegroup *es2_actionfield_set_typegroups[] = {3529 [3] = es2_x3_actionfield_set_typegroups,3530 [1] = es2_x1_actionfield_set_typegroups,3531 [13] = NULL,3532};3533 3534/* Keyfieldset names */3535static const char * const vcap_keyfield_set_names[] = {3536 [VCAP_KFS_NO_VALUE] = "(None)",3537 [VCAP_KFS_ARP] = "VCAP_KFS_ARP",3538 [VCAP_KFS_ETAG] = "VCAP_KFS_ETAG",3539 [VCAP_KFS_IP4_OTHER] = "VCAP_KFS_IP4_OTHER",3540 [VCAP_KFS_IP4_TCP_UDP] = "VCAP_KFS_IP4_TCP_UDP",3541 [VCAP_KFS_IP4_VID] = "VCAP_KFS_IP4_VID",3542 [VCAP_KFS_IP6_OTHER] = "VCAP_KFS_IP6_OTHER",3543 [VCAP_KFS_IP6_STD] = "VCAP_KFS_IP6_STD",3544 [VCAP_KFS_IP6_TCP_UDP] = "VCAP_KFS_IP6_TCP_UDP",3545 [VCAP_KFS_IP6_VID] = "VCAP_KFS_IP6_VID",3546 [VCAP_KFS_IP_7TUPLE] = "VCAP_KFS_IP_7TUPLE",3547 [VCAP_KFS_ISDX] = "VCAP_KFS_ISDX",3548 [VCAP_KFS_LL_FULL] = "VCAP_KFS_LL_FULL",3549 [VCAP_KFS_MAC_ETYPE] = "VCAP_KFS_MAC_ETYPE",3550 [VCAP_KFS_MAC_LLC] = "VCAP_KFS_MAC_LLC",3551 [VCAP_KFS_MAC_SNAP] = "VCAP_KFS_MAC_SNAP",3552 [VCAP_KFS_NORMAL_5TUPLE_IP4] = "VCAP_KFS_NORMAL_5TUPLE_IP4",3553 [VCAP_KFS_NORMAL_7TUPLE] = "VCAP_KFS_NORMAL_7TUPLE",3554 [VCAP_KFS_OAM] = "VCAP_KFS_OAM",3555 [VCAP_KFS_PURE_5TUPLE_IP4] = "VCAP_KFS_PURE_5TUPLE_IP4",3556 [VCAP_KFS_SMAC_SIP4] = "VCAP_KFS_SMAC_SIP4",3557 [VCAP_KFS_SMAC_SIP6] = "VCAP_KFS_SMAC_SIP6",3558};3559 3560/* Actionfieldset names */3561static const char * const vcap_actionfield_set_names[] = {3562 [VCAP_AFS_NO_VALUE] = "(None)",3563 [VCAP_AFS_BASE_TYPE] = "VCAP_AFS_BASE_TYPE",3564 [VCAP_AFS_CLASSIFICATION] = "VCAP_AFS_CLASSIFICATION",3565 [VCAP_AFS_CLASS_REDUCED] = "VCAP_AFS_CLASS_REDUCED",3566 [VCAP_AFS_ES0] = "VCAP_AFS_ES0",3567 [VCAP_AFS_FULL] = "VCAP_AFS_FULL",3568 [VCAP_AFS_SMAC_SIP] = "VCAP_AFS_SMAC_SIP",3569};3570 3571/* Keyfield names */3572static const char * const vcap_keyfield_names[] = {3573 [VCAP_KF_NO_VALUE] = "(None)",3574 [VCAP_KF_8021BR_ECID_BASE] = "8021BR_ECID_BASE",3575 [VCAP_KF_8021BR_ECID_EXT] = "8021BR_ECID_EXT",3576 [VCAP_KF_8021BR_E_TAGGED] = "8021BR_E_TAGGED",3577 [VCAP_KF_8021BR_GRP] = "8021BR_GRP",3578 [VCAP_KF_8021BR_IGR_ECID_BASE] = "8021BR_IGR_ECID_BASE",3579 [VCAP_KF_8021BR_IGR_ECID_EXT] = "8021BR_IGR_ECID_EXT",3580 [VCAP_KF_8021Q_DEI0] = "8021Q_DEI0",3581 [VCAP_KF_8021Q_DEI1] = "8021Q_DEI1",3582 [VCAP_KF_8021Q_DEI2] = "8021Q_DEI2",3583 [VCAP_KF_8021Q_DEI_CLS] = "8021Q_DEI_CLS",3584 [VCAP_KF_8021Q_PCP0] = "8021Q_PCP0",3585 [VCAP_KF_8021Q_PCP1] = "8021Q_PCP1",3586 [VCAP_KF_8021Q_PCP2] = "8021Q_PCP2",3587 [VCAP_KF_8021Q_PCP_CLS] = "8021Q_PCP_CLS",3588 [VCAP_KF_8021Q_TPID] = "8021Q_TPID",3589 [VCAP_KF_8021Q_TPID0] = "8021Q_TPID0",3590 [VCAP_KF_8021Q_TPID1] = "8021Q_TPID1",3591 [VCAP_KF_8021Q_TPID2] = "8021Q_TPID2",3592 [VCAP_KF_8021Q_VID0] = "8021Q_VID0",3593 [VCAP_KF_8021Q_VID1] = "8021Q_VID1",3594 [VCAP_KF_8021Q_VID2] = "8021Q_VID2",3595 [VCAP_KF_8021Q_VID_CLS] = "8021Q_VID_CLS",3596 [VCAP_KF_8021Q_VLAN_TAGGED_IS] = "8021Q_VLAN_TAGGED_IS",3597 [VCAP_KF_8021Q_VLAN_TAGS] = "8021Q_VLAN_TAGS",3598 [VCAP_KF_ACL_GRP_ID] = "ACL_GRP_ID",3599 [VCAP_KF_ARP_ADDR_SPACE_OK_IS] = "ARP_ADDR_SPACE_OK_IS",3600 [VCAP_KF_ARP_LEN_OK_IS] = "ARP_LEN_OK_IS",3601 [VCAP_KF_ARP_OPCODE] = "ARP_OPCODE",3602 [VCAP_KF_ARP_OPCODE_UNKNOWN_IS] = "ARP_OPCODE_UNKNOWN_IS",3603 [VCAP_KF_ARP_PROTO_SPACE_OK_IS] = "ARP_PROTO_SPACE_OK_IS",3604 [VCAP_KF_ARP_SENDER_MATCH_IS] = "ARP_SENDER_MATCH_IS",3605 [VCAP_KF_ARP_TGT_MATCH_IS] = "ARP_TGT_MATCH_IS",3606 [VCAP_KF_COSID_CLS] = "COSID_CLS",3607 [VCAP_KF_ES0_ISDX_KEY_ENA] = "ES0_ISDX_KEY_ENA",3608 [VCAP_KF_ETYPE] = "ETYPE",3609 [VCAP_KF_ETYPE_LEN_IS] = "ETYPE_LEN_IS",3610 [VCAP_KF_HOST_MATCH] = "HOST_MATCH",3611 [VCAP_KF_IF_EGR_PORT_MASK] = "IF_EGR_PORT_MASK",3612 [VCAP_KF_IF_EGR_PORT_MASK_RNG] = "IF_EGR_PORT_MASK_RNG",3613 [VCAP_KF_IF_EGR_PORT_NO] = "IF_EGR_PORT_NO",3614 [VCAP_KF_IF_IGR_PORT] = "IF_IGR_PORT",3615 [VCAP_KF_IF_IGR_PORT_MASK] = "IF_IGR_PORT_MASK",3616 [VCAP_KF_IF_IGR_PORT_MASK_L3] = "IF_IGR_PORT_MASK_L3",3617 [VCAP_KF_IF_IGR_PORT_MASK_RNG] = "IF_IGR_PORT_MASK_RNG",3618 [VCAP_KF_IF_IGR_PORT_MASK_SEL] = "IF_IGR_PORT_MASK_SEL",3619 [VCAP_KF_IF_IGR_PORT_SEL] = "IF_IGR_PORT_SEL",3620 [VCAP_KF_IP4_IS] = "IP4_IS",3621 [VCAP_KF_IP_MC_IS] = "IP_MC_IS",3622 [VCAP_KF_IP_PAYLOAD_5TUPLE] = "IP_PAYLOAD_5TUPLE",3623 [VCAP_KF_IP_SNAP_IS] = "IP_SNAP_IS",3624 [VCAP_KF_ISDX_CLS] = "ISDX_CLS",3625 [VCAP_KF_ISDX_GT0_IS] = "ISDX_GT0_IS",3626 [VCAP_KF_L2_BC_IS] = "L2_BC_IS",3627 [VCAP_KF_L2_DMAC] = "L2_DMAC",3628 [VCAP_KF_L2_FRM_TYPE] = "L2_FRM_TYPE",3629 [VCAP_KF_L2_FWD_IS] = "L2_FWD_IS",3630 [VCAP_KF_L2_LLC] = "L2_LLC",3631 [VCAP_KF_L2_MC_IS] = "L2_MC_IS",3632 [VCAP_KF_L2_PAYLOAD0] = "L2_PAYLOAD0",3633 [VCAP_KF_L2_PAYLOAD1] = "L2_PAYLOAD1",3634 [VCAP_KF_L2_PAYLOAD2] = "L2_PAYLOAD2",3635 [VCAP_KF_L2_PAYLOAD_ETYPE] = "L2_PAYLOAD_ETYPE",3636 [VCAP_KF_L2_SMAC] = "L2_SMAC",3637 [VCAP_KF_L2_SNAP] = "L2_SNAP",3638 [VCAP_KF_L3_DIP_EQ_SIP_IS] = "L3_DIP_EQ_SIP_IS",3639 [VCAP_KF_L3_DPL_CLS] = "L3_DPL_CLS",3640 [VCAP_KF_L3_DSCP] = "L3_DSCP",3641 [VCAP_KF_L3_DST_IS] = "L3_DST_IS",3642 [VCAP_KF_L3_FRAGMENT] = "L3_FRAGMENT",3643 [VCAP_KF_L3_FRAGMENT_TYPE] = "L3_FRAGMENT_TYPE",3644 [VCAP_KF_L3_FRAG_INVLD_L4_LEN] = "L3_FRAG_INVLD_L4_LEN",3645 [VCAP_KF_L3_FRAG_OFS_GT0] = "L3_FRAG_OFS_GT0",3646 [VCAP_KF_L3_IP4_DIP] = "L3_IP4_DIP",3647 [VCAP_KF_L3_IP4_SIP] = "L3_IP4_SIP",3648 [VCAP_KF_L3_IP6_DIP] = "L3_IP6_DIP",3649 [VCAP_KF_L3_IP6_SIP] = "L3_IP6_SIP",3650 [VCAP_KF_L3_IP_PROTO] = "L3_IP_PROTO",3651 [VCAP_KF_L3_OPTIONS_IS] = "L3_OPTIONS_IS",3652 [VCAP_KF_L3_PAYLOAD] = "L3_PAYLOAD",3653 [VCAP_KF_L3_RT_IS] = "L3_RT_IS",3654 [VCAP_KF_L3_TOS] = "L3_TOS",3655 [VCAP_KF_L3_TTL_GT0] = "L3_TTL_GT0",3656 [VCAP_KF_L4_1588_DOM] = "L4_1588_DOM",3657 [VCAP_KF_L4_1588_VER] = "L4_1588_VER",3658 [VCAP_KF_L4_ACK] = "L4_ACK",3659 [VCAP_KF_L4_DPORT] = "L4_DPORT",3660 [VCAP_KF_L4_FIN] = "L4_FIN",3661 [VCAP_KF_L4_PAYLOAD] = "L4_PAYLOAD",3662 [VCAP_KF_L4_PSH] = "L4_PSH",3663 [VCAP_KF_L4_RNG] = "L4_RNG",3664 [VCAP_KF_L4_RST] = "L4_RST",3665 [VCAP_KF_L4_SEQUENCE_EQ0_IS] = "L4_SEQUENCE_EQ0_IS",3666 [VCAP_KF_L4_SPORT] = "L4_SPORT",3667 [VCAP_KF_L4_SPORT_EQ_DPORT_IS] = "L4_SPORT_EQ_DPORT_IS",3668 [VCAP_KF_L4_SYN] = "L4_SYN",3669 [VCAP_KF_L4_URG] = "L4_URG",3670 [VCAP_KF_LOOKUP_FIRST_IS] = "LOOKUP_FIRST_IS",3671 [VCAP_KF_LOOKUP_GEN_IDX] = "LOOKUP_GEN_IDX",3672 [VCAP_KF_LOOKUP_GEN_IDX_SEL] = "LOOKUP_GEN_IDX_SEL",3673 [VCAP_KF_LOOKUP_PAG] = "LOOKUP_PAG",3674 [VCAP_KF_MIRROR_PROBE] = "MIRROR_PROBE",3675 [VCAP_KF_OAM_CCM_CNTS_EQ0] = "OAM_CCM_CNTS_EQ0",3676 [VCAP_KF_OAM_DETECTED] = "OAM_DETECTED",3677 [VCAP_KF_OAM_FLAGS] = "OAM_FLAGS",3678 [VCAP_KF_OAM_MEL_FLAGS] = "OAM_MEL_FLAGS",3679 [VCAP_KF_OAM_MEPID] = "OAM_MEPID",3680 [VCAP_KF_OAM_OPCODE] = "OAM_OPCODE",3681 [VCAP_KF_OAM_VER] = "OAM_VER",3682 [VCAP_KF_OAM_Y1731_IS] = "OAM_Y1731_IS",3683 [VCAP_KF_PROT_ACTIVE] = "PROT_ACTIVE",3684 [VCAP_KF_TCP_IS] = "TCP_IS",3685 [VCAP_KF_TCP_UDP_IS] = "TCP_UDP_IS",3686 [VCAP_KF_TYPE] = "TYPE",3687};3688 3689/* Actionfield names */3690static const char * const vcap_actionfield_names[] = {3691 [VCAP_AF_NO_VALUE] = "(None)",3692 [VCAP_AF_ACL_ID] = "ACL_ID",3693 [VCAP_AF_CLS_VID_SEL] = "CLS_VID_SEL",3694 [VCAP_AF_CNT_ID] = "CNT_ID",3695 [VCAP_AF_COPY_PORT_NUM] = "COPY_PORT_NUM",3696 [VCAP_AF_COPY_QUEUE_NUM] = "COPY_QUEUE_NUM",3697 [VCAP_AF_CPU_COPY_ENA] = "CPU_COPY_ENA",3698 [VCAP_AF_CPU_QU] = "CPU_QU",3699 [VCAP_AF_CPU_QUEUE_NUM] = "CPU_QUEUE_NUM",3700 [VCAP_AF_DEI_A_VAL] = "DEI_A_VAL",3701 [VCAP_AF_DEI_B_VAL] = "DEI_B_VAL",3702 [VCAP_AF_DEI_C_VAL] = "DEI_C_VAL",3703 [VCAP_AF_DEI_ENA] = "DEI_ENA",3704 [VCAP_AF_DEI_VAL] = "DEI_VAL",3705 [VCAP_AF_DP_ENA] = "DP_ENA",3706 [VCAP_AF_DP_VAL] = "DP_VAL",3707 [VCAP_AF_DSCP_ENA] = "DSCP_ENA",3708 [VCAP_AF_DSCP_SEL] = "DSCP_SEL",3709 [VCAP_AF_DSCP_VAL] = "DSCP_VAL",3710 [VCAP_AF_ES2_REW_CMD] = "ES2_REW_CMD",3711 [VCAP_AF_ESDX] = "ESDX",3712 [VCAP_AF_FWD_KILL_ENA] = "FWD_KILL_ENA",3713 [VCAP_AF_FWD_MODE] = "FWD_MODE",3714 [VCAP_AF_FWD_SEL] = "FWD_SEL",3715 [VCAP_AF_HIT_ME_ONCE] = "HIT_ME_ONCE",3716 [VCAP_AF_HOST_MATCH] = "HOST_MATCH",3717 [VCAP_AF_IGNORE_PIPELINE_CTRL] = "IGNORE_PIPELINE_CTRL",3718 [VCAP_AF_INTR_ENA] = "INTR_ENA",3719 [VCAP_AF_ISDX_ADD_REPLACE_SEL] = "ISDX_ADD_REPLACE_SEL",3720 [VCAP_AF_ISDX_ENA] = "ISDX_ENA",3721 [VCAP_AF_ISDX_VAL] = "ISDX_VAL",3722 [VCAP_AF_LOOP_ENA] = "LOOP_ENA",3723 [VCAP_AF_LRN_DIS] = "LRN_DIS",3724 [VCAP_AF_MAP_IDX] = "MAP_IDX",3725 [VCAP_AF_MAP_KEY] = "MAP_KEY",3726 [VCAP_AF_MAP_LOOKUP_SEL] = "MAP_LOOKUP_SEL",3727 [VCAP_AF_MASK_MODE] = "MASK_MODE",3728 [VCAP_AF_MATCH_ID] = "MATCH_ID",3729 [VCAP_AF_MATCH_ID_MASK] = "MATCH_ID_MASK",3730 [VCAP_AF_MIRROR_ENA] = "MIRROR_ENA",3731 [VCAP_AF_MIRROR_PROBE] = "MIRROR_PROBE",3732 [VCAP_AF_MIRROR_PROBE_ID] = "MIRROR_PROBE_ID",3733 [VCAP_AF_NXT_IDX] = "NXT_IDX",3734 [VCAP_AF_NXT_IDX_CTRL] = "NXT_IDX_CTRL",3735 [VCAP_AF_PAG_OVERRIDE_MASK] = "PAG_OVERRIDE_MASK",3736 [VCAP_AF_PAG_VAL] = "PAG_VAL",3737 [VCAP_AF_PCP_A_VAL] = "PCP_A_VAL",3738 [VCAP_AF_PCP_B_VAL] = "PCP_B_VAL",3739 [VCAP_AF_PCP_C_VAL] = "PCP_C_VAL",3740 [VCAP_AF_PCP_ENA] = "PCP_ENA",3741 [VCAP_AF_PCP_VAL] = "PCP_VAL",3742 [VCAP_AF_PIPELINE_ACT] = "PIPELINE_ACT",3743 [VCAP_AF_PIPELINE_FORCE_ENA] = "PIPELINE_FORCE_ENA",3744 [VCAP_AF_PIPELINE_PT] = "PIPELINE_PT",3745 [VCAP_AF_POLICE_ENA] = "POLICE_ENA",3746 [VCAP_AF_POLICE_IDX] = "POLICE_IDX",3747 [VCAP_AF_POLICE_REMARK] = "POLICE_REMARK",3748 [VCAP_AF_POLICE_VCAP_ONLY] = "POLICE_VCAP_ONLY",3749 [VCAP_AF_POP_VAL] = "POP_VAL",3750 [VCAP_AF_PORT_MASK] = "PORT_MASK",3751 [VCAP_AF_PUSH_CUSTOMER_TAG] = "PUSH_CUSTOMER_TAG",3752 [VCAP_AF_PUSH_INNER_TAG] = "PUSH_INNER_TAG",3753 [VCAP_AF_PUSH_OUTER_TAG] = "PUSH_OUTER_TAG",3754 [VCAP_AF_QOS_ENA] = "QOS_ENA",3755 [VCAP_AF_QOS_VAL] = "QOS_VAL",3756 [VCAP_AF_REW_OP] = "REW_OP",3757 [VCAP_AF_RT_DIS] = "RT_DIS",3758 [VCAP_AF_SWAP_MACS_ENA] = "SWAP_MACS_ENA",3759 [VCAP_AF_TAG_A_DEI_SEL] = "TAG_A_DEI_SEL",3760 [VCAP_AF_TAG_A_PCP_SEL] = "TAG_A_PCP_SEL",3761 [VCAP_AF_TAG_A_TPID_SEL] = "TAG_A_TPID_SEL",3762 [VCAP_AF_TAG_A_VID_SEL] = "TAG_A_VID_SEL",3763 [VCAP_AF_TAG_B_DEI_SEL] = "TAG_B_DEI_SEL",3764 [VCAP_AF_TAG_B_PCP_SEL] = "TAG_B_PCP_SEL",3765 [VCAP_AF_TAG_B_TPID_SEL] = "TAG_B_TPID_SEL",3766 [VCAP_AF_TAG_B_VID_SEL] = "TAG_B_VID_SEL",3767 [VCAP_AF_TAG_C_DEI_SEL] = "TAG_C_DEI_SEL",3768 [VCAP_AF_TAG_C_PCP_SEL] = "TAG_C_PCP_SEL",3769 [VCAP_AF_TAG_C_TPID_SEL] = "TAG_C_TPID_SEL",3770 [VCAP_AF_TAG_C_VID_SEL] = "TAG_C_VID_SEL",3771 [VCAP_AF_TYPE] = "TYPE",3772 [VCAP_AF_UNTAG_VID_ENA] = "UNTAG_VID_ENA",3773 [VCAP_AF_VID_A_VAL] = "VID_A_VAL",3774 [VCAP_AF_VID_B_VAL] = "VID_B_VAL",3775 [VCAP_AF_VID_C_VAL] = "VID_C_VAL",3776 [VCAP_AF_VID_VAL] = "VID_VAL",3777};3778 3779/* VCAPs */3780const struct vcap_info sparx5_vcaps[] = {3781 [VCAP_TYPE_IS0] = {3782 .name = "is0",3783 .rows = 1024,3784 .sw_count = 12,3785 .sw_width = 52,3786 .sticky_width = 1,3787 .act_width = 110,3788 .default_cnt = 140,3789 .require_cnt_dis = 0,3790 .version = 1,3791 .keyfield_set = is0_keyfield_set,3792 .keyfield_set_size = ARRAY_SIZE(is0_keyfield_set),3793 .actionfield_set = is0_actionfield_set,3794 .actionfield_set_size = ARRAY_SIZE(is0_actionfield_set),3795 .keyfield_set_map = is0_keyfield_set_map,3796 .keyfield_set_map_size = is0_keyfield_set_map_size,3797 .actionfield_set_map = is0_actionfield_set_map,3798 .actionfield_set_map_size = is0_actionfield_set_map_size,3799 .keyfield_set_typegroups = is0_keyfield_set_typegroups,3800 .actionfield_set_typegroups = is0_actionfield_set_typegroups,3801 },3802 [VCAP_TYPE_IS2] = {3803 .name = "is2",3804 .rows = 256,3805 .sw_count = 12,3806 .sw_width = 52,3807 .sticky_width = 1,3808 .act_width = 110,3809 .default_cnt = 73,3810 .require_cnt_dis = 0,3811 .version = 1,3812 .keyfield_set = is2_keyfield_set,3813 .keyfield_set_size = ARRAY_SIZE(is2_keyfield_set),3814 .actionfield_set = is2_actionfield_set,3815 .actionfield_set_size = ARRAY_SIZE(is2_actionfield_set),3816 .keyfield_set_map = is2_keyfield_set_map,3817 .keyfield_set_map_size = is2_keyfield_set_map_size,3818 .actionfield_set_map = is2_actionfield_set_map,3819 .actionfield_set_map_size = is2_actionfield_set_map_size,3820 .keyfield_set_typegroups = is2_keyfield_set_typegroups,3821 .actionfield_set_typegroups = is2_actionfield_set_typegroups,3822 },3823 [VCAP_TYPE_ES0] = {3824 .name = "es0",3825 .rows = 4096,3826 .sw_count = 1,3827 .sw_width = 52,3828 .sticky_width = 1,3829 .act_width = 489,3830 .default_cnt = 70,3831 .require_cnt_dis = 0,3832 .version = 1,3833 .keyfield_set = es0_keyfield_set,3834 .keyfield_set_size = ARRAY_SIZE(es0_keyfield_set),3835 .actionfield_set = es0_actionfield_set,3836 .actionfield_set_size = ARRAY_SIZE(es0_actionfield_set),3837 .keyfield_set_map = es0_keyfield_set_map,3838 .keyfield_set_map_size = es0_keyfield_set_map_size,3839 .actionfield_set_map = es0_actionfield_set_map,3840 .actionfield_set_map_size = es0_actionfield_set_map_size,3841 .keyfield_set_typegroups = es0_keyfield_set_typegroups,3842 .actionfield_set_typegroups = es0_actionfield_set_typegroups,3843 },3844 [VCAP_TYPE_ES2] = {3845 .name = "es2",3846 .rows = 1024,3847 .sw_count = 12,3848 .sw_width = 52,3849 .sticky_width = 1,3850 .act_width = 21,3851 .default_cnt = 74,3852 .require_cnt_dis = 0,3853 .version = 1,3854 .keyfield_set = es2_keyfield_set,3855 .keyfield_set_size = ARRAY_SIZE(es2_keyfield_set),3856 .actionfield_set = es2_actionfield_set,3857 .actionfield_set_size = ARRAY_SIZE(es2_actionfield_set),3858 .keyfield_set_map = es2_keyfield_set_map,3859 .keyfield_set_map_size = es2_keyfield_set_map_size,3860 .actionfield_set_map = es2_actionfield_set_map,3861 .actionfield_set_map_size = es2_actionfield_set_map_size,3862 .keyfield_set_typegroups = es2_keyfield_set_typegroups,3863 .actionfield_set_typegroups = es2_actionfield_set_typegroups,3864 },3865};3866 3867const struct vcap_statistics sparx5_vcap_stats = {3868 .name = "sparx5",3869 .count = 4,3870 .keyfield_set_names = vcap_keyfield_set_names,3871 .actionfield_set_names = vcap_actionfield_set_names,3872 .keyfield_names = vcap_keyfield_names,3873 .actionfield_names = vcap_actionfield_names,3874};3875