15d7e5b04SSteen Hegelund // SPDX-License-Identifier: BSD-3-Clause 2*a5cc98adSSteen Hegelund /* Copyright (C) 2023 Microchip Technology Inc. and its subsidiaries. 3*a5cc98adSSteen Hegelund * Microchip VCAP test model interface for kunit testing 4*a5cc98adSSteen Hegelund */ 5*a5cc98adSSteen Hegelund 6*a5cc98adSSteen Hegelund /* This file is autogenerated by cml-utils 2023-02-10 11:16:00 +0100. 7*a5cc98adSSteen Hegelund * Commit ID: c30fb4bf0281cd4a7133bdab6682f9e43c872ada 85d7e5b04SSteen Hegelund */ 95d7e5b04SSteen Hegelund 105d7e5b04SSteen Hegelund #include <linux/types.h> 115d7e5b04SSteen Hegelund #include <linux/kernel.h> 125d7e5b04SSteen Hegelund 135d7e5b04SSteen Hegelund #include "vcap_api.h" 145d7e5b04SSteen Hegelund #include "vcap_model_kunit.h" 155d7e5b04SSteen Hegelund 165d7e5b04SSteen Hegelund /* keyfields */ 175d7e5b04SSteen Hegelund static const struct vcap_field is0_ll_full_keyfield[] = { 185d7e5b04SSteen Hegelund [VCAP_KF_TYPE] = { 195d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 205d7e5b04SSteen Hegelund .offset = 0, 215d7e5b04SSteen Hegelund .width = 2, 225d7e5b04SSteen Hegelund }, 235d7e5b04SSteen Hegelund [VCAP_KF_LOOKUP_FIRST_IS] = { 245d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 255d7e5b04SSteen Hegelund .offset = 2, 265d7e5b04SSteen Hegelund .width = 1, 275d7e5b04SSteen Hegelund }, 285d7e5b04SSteen Hegelund [VCAP_KF_IF_IGR_PORT] = { 295d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 305d7e5b04SSteen Hegelund .offset = 3, 315d7e5b04SSteen Hegelund .width = 7, 325d7e5b04SSteen Hegelund }, 335d7e5b04SSteen Hegelund [VCAP_KF_8021Q_VLAN_TAGS] = { 345d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 355d7e5b04SSteen Hegelund .offset = 10, 365d7e5b04SSteen Hegelund .width = 3, 375d7e5b04SSteen Hegelund }, 385d7e5b04SSteen Hegelund [VCAP_KF_8021Q_TPID0] = { 395d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 405d7e5b04SSteen Hegelund .offset = 13, 415d7e5b04SSteen Hegelund .width = 3, 425d7e5b04SSteen Hegelund }, 435d7e5b04SSteen Hegelund [VCAP_KF_8021Q_PCP0] = { 445d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 455d7e5b04SSteen Hegelund .offset = 16, 465d7e5b04SSteen Hegelund .width = 3, 475d7e5b04SSteen Hegelund }, 485d7e5b04SSteen Hegelund [VCAP_KF_8021Q_DEI0] = { 495d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 505d7e5b04SSteen Hegelund .offset = 19, 515d7e5b04SSteen Hegelund .width = 1, 525d7e5b04SSteen Hegelund }, 535d7e5b04SSteen Hegelund [VCAP_KF_8021Q_VID0] = { 545d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 555d7e5b04SSteen Hegelund .offset = 20, 565d7e5b04SSteen Hegelund .width = 12, 575d7e5b04SSteen Hegelund }, 585d7e5b04SSteen Hegelund [VCAP_KF_8021Q_TPID1] = { 595d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 605d7e5b04SSteen Hegelund .offset = 32, 615d7e5b04SSteen Hegelund .width = 3, 625d7e5b04SSteen Hegelund }, 635d7e5b04SSteen Hegelund [VCAP_KF_8021Q_PCP1] = { 645d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 655d7e5b04SSteen Hegelund .offset = 35, 665d7e5b04SSteen Hegelund .width = 3, 675d7e5b04SSteen Hegelund }, 685d7e5b04SSteen Hegelund [VCAP_KF_8021Q_DEI1] = { 695d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 705d7e5b04SSteen Hegelund .offset = 38, 715d7e5b04SSteen Hegelund .width = 1, 725d7e5b04SSteen Hegelund }, 735d7e5b04SSteen Hegelund [VCAP_KF_8021Q_VID1] = { 745d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 755d7e5b04SSteen Hegelund .offset = 39, 765d7e5b04SSteen Hegelund .width = 12, 775d7e5b04SSteen Hegelund }, 785d7e5b04SSteen Hegelund [VCAP_KF_8021Q_TPID2] = { 795d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 805d7e5b04SSteen Hegelund .offset = 51, 815d7e5b04SSteen Hegelund .width = 3, 825d7e5b04SSteen Hegelund }, 835d7e5b04SSteen Hegelund [VCAP_KF_8021Q_PCP2] = { 845d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 855d7e5b04SSteen Hegelund .offset = 54, 865d7e5b04SSteen Hegelund .width = 3, 875d7e5b04SSteen Hegelund }, 885d7e5b04SSteen Hegelund [VCAP_KF_8021Q_DEI2] = { 895d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 905d7e5b04SSteen Hegelund .offset = 57, 915d7e5b04SSteen Hegelund .width = 1, 925d7e5b04SSteen Hegelund }, 935d7e5b04SSteen Hegelund [VCAP_KF_8021Q_VID2] = { 945d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 955d7e5b04SSteen Hegelund .offset = 58, 965d7e5b04SSteen Hegelund .width = 12, 975d7e5b04SSteen Hegelund }, 985d7e5b04SSteen Hegelund [VCAP_KF_L2_DMAC] = { 995d7e5b04SSteen Hegelund .type = VCAP_FIELD_U48, 1005d7e5b04SSteen Hegelund .offset = 70, 1015d7e5b04SSteen Hegelund .width = 48, 1025d7e5b04SSteen Hegelund }, 1035d7e5b04SSteen Hegelund [VCAP_KF_L2_SMAC] = { 1045d7e5b04SSteen Hegelund .type = VCAP_FIELD_U48, 1055d7e5b04SSteen Hegelund .offset = 118, 1065d7e5b04SSteen Hegelund .width = 48, 1075d7e5b04SSteen Hegelund }, 1085d7e5b04SSteen Hegelund [VCAP_KF_ETYPE_LEN_IS] = { 1095d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 1105d7e5b04SSteen Hegelund .offset = 166, 1115d7e5b04SSteen Hegelund .width = 1, 1125d7e5b04SSteen Hegelund }, 1135d7e5b04SSteen Hegelund [VCAP_KF_ETYPE] = { 1145d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 1155d7e5b04SSteen Hegelund .offset = 167, 1165d7e5b04SSteen Hegelund .width = 16, 1175d7e5b04SSteen Hegelund }, 1185d7e5b04SSteen Hegelund [VCAP_KF_IP_SNAP_IS] = { 1195d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 1205d7e5b04SSteen Hegelund .offset = 183, 1215d7e5b04SSteen Hegelund .width = 1, 1225d7e5b04SSteen Hegelund }, 1235d7e5b04SSteen Hegelund [VCAP_KF_IP4_IS] = { 1245d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 1255d7e5b04SSteen Hegelund .offset = 184, 1265d7e5b04SSteen Hegelund .width = 1, 1275d7e5b04SSteen Hegelund }, 1285d7e5b04SSteen Hegelund [VCAP_KF_L3_FRAGMENT_TYPE] = { 1295d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 1305d7e5b04SSteen Hegelund .offset = 185, 1315d7e5b04SSteen Hegelund .width = 2, 1325d7e5b04SSteen Hegelund }, 1335d7e5b04SSteen Hegelund [VCAP_KF_L3_FRAG_INVLD_L4_LEN] = { 1345d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 1355d7e5b04SSteen Hegelund .offset = 187, 1365d7e5b04SSteen Hegelund .width = 1, 1375d7e5b04SSteen Hegelund }, 1385d7e5b04SSteen Hegelund [VCAP_KF_L3_OPTIONS_IS] = { 1395d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 1405d7e5b04SSteen Hegelund .offset = 188, 1415d7e5b04SSteen Hegelund .width = 1, 1425d7e5b04SSteen Hegelund }, 1435d7e5b04SSteen Hegelund [VCAP_KF_L3_DSCP] = { 1445d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 1455d7e5b04SSteen Hegelund .offset = 189, 1465d7e5b04SSteen Hegelund .width = 6, 1475d7e5b04SSteen Hegelund }, 1485d7e5b04SSteen Hegelund [VCAP_KF_L3_IP4_DIP] = { 1495d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 1505d7e5b04SSteen Hegelund .offset = 195, 1515d7e5b04SSteen Hegelund .width = 32, 1525d7e5b04SSteen Hegelund }, 1535d7e5b04SSteen Hegelund [VCAP_KF_L3_IP4_SIP] = { 1545d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 1555d7e5b04SSteen Hegelund .offset = 227, 1565d7e5b04SSteen Hegelund .width = 32, 1575d7e5b04SSteen Hegelund }, 1585d7e5b04SSteen Hegelund [VCAP_KF_TCP_UDP_IS] = { 1595d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 1605d7e5b04SSteen Hegelund .offset = 259, 1615d7e5b04SSteen Hegelund .width = 1, 1625d7e5b04SSteen Hegelund }, 1635d7e5b04SSteen Hegelund [VCAP_KF_TCP_IS] = { 1645d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 1655d7e5b04SSteen Hegelund .offset = 260, 1665d7e5b04SSteen Hegelund .width = 1, 1675d7e5b04SSteen Hegelund }, 1685d7e5b04SSteen Hegelund [VCAP_KF_L4_SPORT] = { 1695d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 1705d7e5b04SSteen Hegelund .offset = 261, 1715d7e5b04SSteen Hegelund .width = 16, 1725d7e5b04SSteen Hegelund }, 1735d7e5b04SSteen Hegelund [VCAP_KF_L4_RNG] = { 1745d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 1755d7e5b04SSteen Hegelund .offset = 277, 1765d7e5b04SSteen Hegelund .width = 8, 1775d7e5b04SSteen Hegelund }, 1785d7e5b04SSteen Hegelund }; 1795d7e5b04SSteen Hegelund 1805d7e5b04SSteen Hegelund static const struct vcap_field is0_normal_7tuple_keyfield[] = { 1815d7e5b04SSteen Hegelund [VCAP_KF_TYPE] = { 1825d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 1835d7e5b04SSteen Hegelund .offset = 0, 1845d7e5b04SSteen Hegelund .width = 1, 1855d7e5b04SSteen Hegelund }, 1865d7e5b04SSteen Hegelund [VCAP_KF_LOOKUP_FIRST_IS] = { 1875d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 1885d7e5b04SSteen Hegelund .offset = 1, 1895d7e5b04SSteen Hegelund .width = 1, 1905d7e5b04SSteen Hegelund }, 1915d7e5b04SSteen Hegelund [VCAP_KF_LOOKUP_GEN_IDX_SEL] = { 1925d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 1935d7e5b04SSteen Hegelund .offset = 2, 1945d7e5b04SSteen Hegelund .width = 2, 1955d7e5b04SSteen Hegelund }, 1965d7e5b04SSteen Hegelund [VCAP_KF_LOOKUP_GEN_IDX] = { 1975d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 1985d7e5b04SSteen Hegelund .offset = 4, 1995d7e5b04SSteen Hegelund .width = 12, 2005d7e5b04SSteen Hegelund }, 2015d7e5b04SSteen Hegelund [VCAP_KF_IF_IGR_PORT_MASK_SEL] = { 2025d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 2035d7e5b04SSteen Hegelund .offset = 16, 2045d7e5b04SSteen Hegelund .width = 2, 2055d7e5b04SSteen Hegelund }, 2065d7e5b04SSteen Hegelund [VCAP_KF_IF_IGR_PORT_MASK] = { 2075d7e5b04SSteen Hegelund .type = VCAP_FIELD_U72, 2085d7e5b04SSteen Hegelund .offset = 18, 2095d7e5b04SSteen Hegelund .width = 65, 2105d7e5b04SSteen Hegelund }, 2115d7e5b04SSteen Hegelund [VCAP_KF_L2_MC_IS] = { 2125d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 2135d7e5b04SSteen Hegelund .offset = 83, 2145d7e5b04SSteen Hegelund .width = 1, 2155d7e5b04SSteen Hegelund }, 2165d7e5b04SSteen Hegelund [VCAP_KF_L2_BC_IS] = { 2175d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 2185d7e5b04SSteen Hegelund .offset = 84, 2195d7e5b04SSteen Hegelund .width = 1, 2205d7e5b04SSteen Hegelund }, 2215d7e5b04SSteen Hegelund [VCAP_KF_8021Q_VLAN_TAGS] = { 2225d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 2235d7e5b04SSteen Hegelund .offset = 85, 2245d7e5b04SSteen Hegelund .width = 3, 2255d7e5b04SSteen Hegelund }, 2265d7e5b04SSteen Hegelund [VCAP_KF_8021Q_TPID0] = { 2275d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 2285d7e5b04SSteen Hegelund .offset = 88, 2295d7e5b04SSteen Hegelund .width = 3, 2305d7e5b04SSteen Hegelund }, 2315d7e5b04SSteen Hegelund [VCAP_KF_8021Q_PCP0] = { 2325d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 2335d7e5b04SSteen Hegelund .offset = 91, 2345d7e5b04SSteen Hegelund .width = 3, 2355d7e5b04SSteen Hegelund }, 2365d7e5b04SSteen Hegelund [VCAP_KF_8021Q_DEI0] = { 2375d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 2385d7e5b04SSteen Hegelund .offset = 94, 2395d7e5b04SSteen Hegelund .width = 1, 2405d7e5b04SSteen Hegelund }, 2415d7e5b04SSteen Hegelund [VCAP_KF_8021Q_VID0] = { 2425d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 2435d7e5b04SSteen Hegelund .offset = 95, 2445d7e5b04SSteen Hegelund .width = 12, 2455d7e5b04SSteen Hegelund }, 2465d7e5b04SSteen Hegelund [VCAP_KF_8021Q_TPID1] = { 2475d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 2485d7e5b04SSteen Hegelund .offset = 107, 2495d7e5b04SSteen Hegelund .width = 3, 2505d7e5b04SSteen Hegelund }, 2515d7e5b04SSteen Hegelund [VCAP_KF_8021Q_PCP1] = { 2525d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 2535d7e5b04SSteen Hegelund .offset = 110, 2545d7e5b04SSteen Hegelund .width = 3, 2555d7e5b04SSteen Hegelund }, 2565d7e5b04SSteen Hegelund [VCAP_KF_8021Q_DEI1] = { 2575d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 2585d7e5b04SSteen Hegelund .offset = 113, 2595d7e5b04SSteen Hegelund .width = 1, 2605d7e5b04SSteen Hegelund }, 2615d7e5b04SSteen Hegelund [VCAP_KF_8021Q_VID1] = { 2625d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 2635d7e5b04SSteen Hegelund .offset = 114, 2645d7e5b04SSteen Hegelund .width = 12, 2655d7e5b04SSteen Hegelund }, 2665d7e5b04SSteen Hegelund [VCAP_KF_8021Q_TPID2] = { 2675d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 2685d7e5b04SSteen Hegelund .offset = 126, 2695d7e5b04SSteen Hegelund .width = 3, 2705d7e5b04SSteen Hegelund }, 2715d7e5b04SSteen Hegelund [VCAP_KF_8021Q_PCP2] = { 2725d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 2735d7e5b04SSteen Hegelund .offset = 129, 2745d7e5b04SSteen Hegelund .width = 3, 2755d7e5b04SSteen Hegelund }, 2765d7e5b04SSteen Hegelund [VCAP_KF_8021Q_DEI2] = { 2775d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 2785d7e5b04SSteen Hegelund .offset = 132, 2795d7e5b04SSteen Hegelund .width = 1, 2805d7e5b04SSteen Hegelund }, 2815d7e5b04SSteen Hegelund [VCAP_KF_8021Q_VID2] = { 2825d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 2835d7e5b04SSteen Hegelund .offset = 133, 2845d7e5b04SSteen Hegelund .width = 12, 2855d7e5b04SSteen Hegelund }, 2865d7e5b04SSteen Hegelund [VCAP_KF_L2_DMAC] = { 2875d7e5b04SSteen Hegelund .type = VCAP_FIELD_U48, 2885d7e5b04SSteen Hegelund .offset = 145, 2895d7e5b04SSteen Hegelund .width = 48, 2905d7e5b04SSteen Hegelund }, 2915d7e5b04SSteen Hegelund [VCAP_KF_L2_SMAC] = { 2925d7e5b04SSteen Hegelund .type = VCAP_FIELD_U48, 2935d7e5b04SSteen Hegelund .offset = 193, 2945d7e5b04SSteen Hegelund .width = 48, 2955d7e5b04SSteen Hegelund }, 2965d7e5b04SSteen Hegelund [VCAP_KF_IP_MC_IS] = { 2975d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 2985d7e5b04SSteen Hegelund .offset = 241, 2995d7e5b04SSteen Hegelund .width = 1, 3005d7e5b04SSteen Hegelund }, 3015d7e5b04SSteen Hegelund [VCAP_KF_ETYPE_LEN_IS] = { 3025d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 3035d7e5b04SSteen Hegelund .offset = 242, 3045d7e5b04SSteen Hegelund .width = 1, 3055d7e5b04SSteen Hegelund }, 3065d7e5b04SSteen Hegelund [VCAP_KF_ETYPE] = { 3075d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 3085d7e5b04SSteen Hegelund .offset = 243, 3095d7e5b04SSteen Hegelund .width = 16, 3105d7e5b04SSteen Hegelund }, 3115d7e5b04SSteen Hegelund [VCAP_KF_IP_SNAP_IS] = { 3125d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 3135d7e5b04SSteen Hegelund .offset = 259, 3145d7e5b04SSteen Hegelund .width = 1, 3155d7e5b04SSteen Hegelund }, 3165d7e5b04SSteen Hegelund [VCAP_KF_IP4_IS] = { 3175d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 3185d7e5b04SSteen Hegelund .offset = 260, 3195d7e5b04SSteen Hegelund .width = 1, 3205d7e5b04SSteen Hegelund }, 3215d7e5b04SSteen Hegelund [VCAP_KF_L3_FRAGMENT_TYPE] = { 3225d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 3235d7e5b04SSteen Hegelund .offset = 261, 3245d7e5b04SSteen Hegelund .width = 2, 3255d7e5b04SSteen Hegelund }, 3265d7e5b04SSteen Hegelund [VCAP_KF_L3_FRAG_INVLD_L4_LEN] = { 3275d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 3285d7e5b04SSteen Hegelund .offset = 263, 3295d7e5b04SSteen Hegelund .width = 1, 3305d7e5b04SSteen Hegelund }, 3315d7e5b04SSteen Hegelund [VCAP_KF_L3_OPTIONS_IS] = { 3325d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 3335d7e5b04SSteen Hegelund .offset = 264, 3345d7e5b04SSteen Hegelund .width = 1, 3355d7e5b04SSteen Hegelund }, 3365d7e5b04SSteen Hegelund [VCAP_KF_L3_DSCP] = { 3375d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 3385d7e5b04SSteen Hegelund .offset = 265, 3395d7e5b04SSteen Hegelund .width = 6, 3405d7e5b04SSteen Hegelund }, 3415d7e5b04SSteen Hegelund [VCAP_KF_L3_IP6_DIP] = { 3425d7e5b04SSteen Hegelund .type = VCAP_FIELD_U128, 3435d7e5b04SSteen Hegelund .offset = 271, 3445d7e5b04SSteen Hegelund .width = 128, 3455d7e5b04SSteen Hegelund }, 3465d7e5b04SSteen Hegelund [VCAP_KF_L3_IP6_SIP] = { 3475d7e5b04SSteen Hegelund .type = VCAP_FIELD_U128, 3485d7e5b04SSteen Hegelund .offset = 399, 3495d7e5b04SSteen Hegelund .width = 128, 3505d7e5b04SSteen Hegelund }, 3515d7e5b04SSteen Hegelund [VCAP_KF_TCP_UDP_IS] = { 3525d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 3535d7e5b04SSteen Hegelund .offset = 527, 3545d7e5b04SSteen Hegelund .width = 1, 3555d7e5b04SSteen Hegelund }, 3565d7e5b04SSteen Hegelund [VCAP_KF_TCP_IS] = { 3575d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 3585d7e5b04SSteen Hegelund .offset = 528, 3595d7e5b04SSteen Hegelund .width = 1, 3605d7e5b04SSteen Hegelund }, 3615d7e5b04SSteen Hegelund [VCAP_KF_L4_SPORT] = { 3625d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 3635d7e5b04SSteen Hegelund .offset = 529, 3645d7e5b04SSteen Hegelund .width = 16, 3655d7e5b04SSteen Hegelund }, 3665d7e5b04SSteen Hegelund [VCAP_KF_L4_RNG] = { 3675d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 3685d7e5b04SSteen Hegelund .offset = 545, 3695d7e5b04SSteen Hegelund .width = 8, 3705d7e5b04SSteen Hegelund }, 3715d7e5b04SSteen Hegelund }; 3725d7e5b04SSteen Hegelund 3735d7e5b04SSteen Hegelund static const struct vcap_field is0_normal_5tuple_ip4_keyfield[] = { 3745d7e5b04SSteen Hegelund [VCAP_KF_TYPE] = { 3755d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 3765d7e5b04SSteen Hegelund .offset = 0, 3775d7e5b04SSteen Hegelund .width = 2, 3785d7e5b04SSteen Hegelund }, 3795d7e5b04SSteen Hegelund [VCAP_KF_LOOKUP_FIRST_IS] = { 3805d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 3815d7e5b04SSteen Hegelund .offset = 2, 3825d7e5b04SSteen Hegelund .width = 1, 3835d7e5b04SSteen Hegelund }, 3845d7e5b04SSteen Hegelund [VCAP_KF_LOOKUP_GEN_IDX_SEL] = { 3855d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 3865d7e5b04SSteen Hegelund .offset = 3, 3875d7e5b04SSteen Hegelund .width = 2, 3885d7e5b04SSteen Hegelund }, 3895d7e5b04SSteen Hegelund [VCAP_KF_LOOKUP_GEN_IDX] = { 3905d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 3915d7e5b04SSteen Hegelund .offset = 5, 3925d7e5b04SSteen Hegelund .width = 12, 3935d7e5b04SSteen Hegelund }, 3945d7e5b04SSteen Hegelund [VCAP_KF_IF_IGR_PORT_MASK_SEL] = { 3955d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 3965d7e5b04SSteen Hegelund .offset = 17, 3975d7e5b04SSteen Hegelund .width = 2, 3985d7e5b04SSteen Hegelund }, 3995d7e5b04SSteen Hegelund [VCAP_KF_IF_IGR_PORT_MASK] = { 4005d7e5b04SSteen Hegelund .type = VCAP_FIELD_U72, 4015d7e5b04SSteen Hegelund .offset = 19, 4025d7e5b04SSteen Hegelund .width = 65, 4035d7e5b04SSteen Hegelund }, 4045d7e5b04SSteen Hegelund [VCAP_KF_L2_MC_IS] = { 4055d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 4065d7e5b04SSteen Hegelund .offset = 84, 4075d7e5b04SSteen Hegelund .width = 1, 4085d7e5b04SSteen Hegelund }, 4095d7e5b04SSteen Hegelund [VCAP_KF_L2_BC_IS] = { 4105d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 4115d7e5b04SSteen Hegelund .offset = 85, 4125d7e5b04SSteen Hegelund .width = 1, 4135d7e5b04SSteen Hegelund }, 4145d7e5b04SSteen Hegelund [VCAP_KF_8021Q_VLAN_TAGS] = { 4155d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 4165d7e5b04SSteen Hegelund .offset = 86, 4175d7e5b04SSteen Hegelund .width = 3, 4185d7e5b04SSteen Hegelund }, 4195d7e5b04SSteen Hegelund [VCAP_KF_8021Q_TPID0] = { 4205d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 4215d7e5b04SSteen Hegelund .offset = 89, 4225d7e5b04SSteen Hegelund .width = 3, 4235d7e5b04SSteen Hegelund }, 4245d7e5b04SSteen Hegelund [VCAP_KF_8021Q_PCP0] = { 4255d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 4265d7e5b04SSteen Hegelund .offset = 92, 4275d7e5b04SSteen Hegelund .width = 3, 4285d7e5b04SSteen Hegelund }, 4295d7e5b04SSteen Hegelund [VCAP_KF_8021Q_DEI0] = { 4305d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 4315d7e5b04SSteen Hegelund .offset = 95, 4325d7e5b04SSteen Hegelund .width = 1, 4335d7e5b04SSteen Hegelund }, 4345d7e5b04SSteen Hegelund [VCAP_KF_8021Q_VID0] = { 4355d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 4365d7e5b04SSteen Hegelund .offset = 96, 4375d7e5b04SSteen Hegelund .width = 12, 4385d7e5b04SSteen Hegelund }, 4395d7e5b04SSteen Hegelund [VCAP_KF_8021Q_TPID1] = { 4405d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 4415d7e5b04SSteen Hegelund .offset = 108, 4425d7e5b04SSteen Hegelund .width = 3, 4435d7e5b04SSteen Hegelund }, 4445d7e5b04SSteen Hegelund [VCAP_KF_8021Q_PCP1] = { 4455d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 4465d7e5b04SSteen Hegelund .offset = 111, 4475d7e5b04SSteen Hegelund .width = 3, 4485d7e5b04SSteen Hegelund }, 4495d7e5b04SSteen Hegelund [VCAP_KF_8021Q_DEI1] = { 4505d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 4515d7e5b04SSteen Hegelund .offset = 114, 4525d7e5b04SSteen Hegelund .width = 1, 4535d7e5b04SSteen Hegelund }, 4545d7e5b04SSteen Hegelund [VCAP_KF_8021Q_VID1] = { 4555d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 4565d7e5b04SSteen Hegelund .offset = 115, 4575d7e5b04SSteen Hegelund .width = 12, 4585d7e5b04SSteen Hegelund }, 4595d7e5b04SSteen Hegelund [VCAP_KF_8021Q_TPID2] = { 4605d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 4615d7e5b04SSteen Hegelund .offset = 127, 4625d7e5b04SSteen Hegelund .width = 3, 4635d7e5b04SSteen Hegelund }, 4645d7e5b04SSteen Hegelund [VCAP_KF_8021Q_PCP2] = { 4655d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 4665d7e5b04SSteen Hegelund .offset = 130, 4675d7e5b04SSteen Hegelund .width = 3, 4685d7e5b04SSteen Hegelund }, 4695d7e5b04SSteen Hegelund [VCAP_KF_8021Q_DEI2] = { 4705d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 4715d7e5b04SSteen Hegelund .offset = 133, 4725d7e5b04SSteen Hegelund .width = 1, 4735d7e5b04SSteen Hegelund }, 4745d7e5b04SSteen Hegelund [VCAP_KF_8021Q_VID2] = { 4755d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 4765d7e5b04SSteen Hegelund .offset = 134, 4775d7e5b04SSteen Hegelund .width = 12, 4785d7e5b04SSteen Hegelund }, 4795d7e5b04SSteen Hegelund [VCAP_KF_IP_MC_IS] = { 4805d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 4815d7e5b04SSteen Hegelund .offset = 146, 4825d7e5b04SSteen Hegelund .width = 1, 4835d7e5b04SSteen Hegelund }, 4845d7e5b04SSteen Hegelund [VCAP_KF_IP4_IS] = { 4855d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 4865d7e5b04SSteen Hegelund .offset = 147, 4875d7e5b04SSteen Hegelund .width = 1, 4885d7e5b04SSteen Hegelund }, 4895d7e5b04SSteen Hegelund [VCAP_KF_L3_FRAGMENT_TYPE] = { 4905d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 4915d7e5b04SSteen Hegelund .offset = 148, 4925d7e5b04SSteen Hegelund .width = 2, 4935d7e5b04SSteen Hegelund }, 4945d7e5b04SSteen Hegelund [VCAP_KF_L3_FRAG_INVLD_L4_LEN] = { 4955d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 4965d7e5b04SSteen Hegelund .offset = 150, 4975d7e5b04SSteen Hegelund .width = 1, 4985d7e5b04SSteen Hegelund }, 4995d7e5b04SSteen Hegelund [VCAP_KF_L3_OPTIONS_IS] = { 5005d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 5015d7e5b04SSteen Hegelund .offset = 151, 5025d7e5b04SSteen Hegelund .width = 1, 5035d7e5b04SSteen Hegelund }, 5045d7e5b04SSteen Hegelund [VCAP_KF_L3_DSCP] = { 5055d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 5065d7e5b04SSteen Hegelund .offset = 152, 5075d7e5b04SSteen Hegelund .width = 6, 5085d7e5b04SSteen Hegelund }, 5095d7e5b04SSteen Hegelund [VCAP_KF_L3_IP4_DIP] = { 5105d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 5115d7e5b04SSteen Hegelund .offset = 158, 5125d7e5b04SSteen Hegelund .width = 32, 5135d7e5b04SSteen Hegelund }, 5145d7e5b04SSteen Hegelund [VCAP_KF_L3_IP4_SIP] = { 5155d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 5165d7e5b04SSteen Hegelund .offset = 190, 5175d7e5b04SSteen Hegelund .width = 32, 5185d7e5b04SSteen Hegelund }, 5195d7e5b04SSteen Hegelund [VCAP_KF_L3_IP_PROTO] = { 5205d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 5215d7e5b04SSteen Hegelund .offset = 222, 5225d7e5b04SSteen Hegelund .width = 8, 5235d7e5b04SSteen Hegelund }, 5245d7e5b04SSteen Hegelund [VCAP_KF_TCP_UDP_IS] = { 5255d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 5265d7e5b04SSteen Hegelund .offset = 230, 5275d7e5b04SSteen Hegelund .width = 1, 5285d7e5b04SSteen Hegelund }, 5295d7e5b04SSteen Hegelund [VCAP_KF_TCP_IS] = { 5305d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 5315d7e5b04SSteen Hegelund .offset = 231, 5325d7e5b04SSteen Hegelund .width = 1, 5335d7e5b04SSteen Hegelund }, 5345d7e5b04SSteen Hegelund [VCAP_KF_L4_RNG] = { 5355d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 5365d7e5b04SSteen Hegelund .offset = 232, 5375d7e5b04SSteen Hegelund .width = 8, 5385d7e5b04SSteen Hegelund }, 5395d7e5b04SSteen Hegelund [VCAP_KF_IP_PAYLOAD_5TUPLE] = { 5405d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 5415d7e5b04SSteen Hegelund .offset = 240, 5425d7e5b04SSteen Hegelund .width = 32, 5435d7e5b04SSteen Hegelund }, 5445d7e5b04SSteen Hegelund }; 5455d7e5b04SSteen Hegelund 5465d7e5b04SSteen Hegelund static const struct vcap_field is0_pure_5tuple_ip4_keyfield[] = { 5475d7e5b04SSteen Hegelund [VCAP_KF_TYPE] = { 5485d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 5495d7e5b04SSteen Hegelund .offset = 0, 5505d7e5b04SSteen Hegelund .width = 2, 5515d7e5b04SSteen Hegelund }, 5525d7e5b04SSteen Hegelund [VCAP_KF_LOOKUP_FIRST_IS] = { 5535d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 5545d7e5b04SSteen Hegelund .offset = 2, 5555d7e5b04SSteen Hegelund .width = 1, 5565d7e5b04SSteen Hegelund }, 5575d7e5b04SSteen Hegelund [VCAP_KF_LOOKUP_GEN_IDX_SEL] = { 5585d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 5595d7e5b04SSteen Hegelund .offset = 3, 5605d7e5b04SSteen Hegelund .width = 2, 5615d7e5b04SSteen Hegelund }, 5625d7e5b04SSteen Hegelund [VCAP_KF_LOOKUP_GEN_IDX] = { 5635d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 5645d7e5b04SSteen Hegelund .offset = 5, 5655d7e5b04SSteen Hegelund .width = 12, 5665d7e5b04SSteen Hegelund }, 5675d7e5b04SSteen Hegelund [VCAP_KF_L3_FRAGMENT_TYPE] = { 5685d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 5695d7e5b04SSteen Hegelund .offset = 17, 5705d7e5b04SSteen Hegelund .width = 2, 5715d7e5b04SSteen Hegelund }, 5725d7e5b04SSteen Hegelund [VCAP_KF_L3_FRAG_INVLD_L4_LEN] = { 5735d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 5745d7e5b04SSteen Hegelund .offset = 19, 5755d7e5b04SSteen Hegelund .width = 1, 5765d7e5b04SSteen Hegelund }, 5775d7e5b04SSteen Hegelund [VCAP_KF_L3_OPTIONS_IS] = { 5785d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 5795d7e5b04SSteen Hegelund .offset = 20, 5805d7e5b04SSteen Hegelund .width = 1, 5815d7e5b04SSteen Hegelund }, 5825d7e5b04SSteen Hegelund [VCAP_KF_L3_DSCP] = { 5835d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 5845d7e5b04SSteen Hegelund .offset = 21, 5855d7e5b04SSteen Hegelund .width = 6, 5865d7e5b04SSteen Hegelund }, 5875d7e5b04SSteen Hegelund [VCAP_KF_L3_IP4_DIP] = { 5885d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 5895d7e5b04SSteen Hegelund .offset = 27, 5905d7e5b04SSteen Hegelund .width = 32, 5915d7e5b04SSteen Hegelund }, 5925d7e5b04SSteen Hegelund [VCAP_KF_L3_IP4_SIP] = { 5935d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 5945d7e5b04SSteen Hegelund .offset = 59, 5955d7e5b04SSteen Hegelund .width = 32, 5965d7e5b04SSteen Hegelund }, 5975d7e5b04SSteen Hegelund [VCAP_KF_L3_IP_PROTO] = { 5985d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 5995d7e5b04SSteen Hegelund .offset = 91, 6005d7e5b04SSteen Hegelund .width = 8, 6015d7e5b04SSteen Hegelund }, 6025d7e5b04SSteen Hegelund [VCAP_KF_L4_RNG] = { 6035d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 6045d7e5b04SSteen Hegelund .offset = 99, 6055d7e5b04SSteen Hegelund .width = 8, 6065d7e5b04SSteen Hegelund }, 6075d7e5b04SSteen Hegelund [VCAP_KF_IP_PAYLOAD_5TUPLE] = { 6085d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 6095d7e5b04SSteen Hegelund .offset = 107, 6105d7e5b04SSteen Hegelund .width = 32, 6115d7e5b04SSteen Hegelund }, 6125d7e5b04SSteen Hegelund }; 6135d7e5b04SSteen Hegelund 6145d7e5b04SSteen Hegelund static const struct vcap_field is0_etag_keyfield[] = { 6155d7e5b04SSteen Hegelund [VCAP_KF_TYPE] = { 6165d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 6175d7e5b04SSteen Hegelund .offset = 0, 6185d7e5b04SSteen Hegelund .width = 2, 6195d7e5b04SSteen Hegelund }, 6205d7e5b04SSteen Hegelund [VCAP_KF_LOOKUP_FIRST_IS] = { 6215d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 6225d7e5b04SSteen Hegelund .offset = 2, 6235d7e5b04SSteen Hegelund .width = 1, 6245d7e5b04SSteen Hegelund }, 6255d7e5b04SSteen Hegelund [VCAP_KF_IF_IGR_PORT] = { 6265d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 6275d7e5b04SSteen Hegelund .offset = 3, 6285d7e5b04SSteen Hegelund .width = 7, 6295d7e5b04SSteen Hegelund }, 6305d7e5b04SSteen Hegelund [VCAP_KF_8021BR_E_TAGGED] = { 6315d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 6325d7e5b04SSteen Hegelund .offset = 10, 6335d7e5b04SSteen Hegelund .width = 1, 6345d7e5b04SSteen Hegelund }, 6355d7e5b04SSteen Hegelund [VCAP_KF_8021BR_GRP] = { 6365d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 6375d7e5b04SSteen Hegelund .offset = 11, 6385d7e5b04SSteen Hegelund .width = 2, 6395d7e5b04SSteen Hegelund }, 6405d7e5b04SSteen Hegelund [VCAP_KF_8021BR_ECID_EXT] = { 6415d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 6425d7e5b04SSteen Hegelund .offset = 13, 6435d7e5b04SSteen Hegelund .width = 8, 6445d7e5b04SSteen Hegelund }, 6455d7e5b04SSteen Hegelund [VCAP_KF_8021BR_ECID_BASE] = { 6465d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 6475d7e5b04SSteen Hegelund .offset = 21, 6485d7e5b04SSteen Hegelund .width = 12, 6495d7e5b04SSteen Hegelund }, 6505d7e5b04SSteen Hegelund [VCAP_KF_8021BR_IGR_ECID_EXT] = { 6515d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 6525d7e5b04SSteen Hegelund .offset = 33, 6535d7e5b04SSteen Hegelund .width = 8, 6545d7e5b04SSteen Hegelund }, 6555d7e5b04SSteen Hegelund [VCAP_KF_8021BR_IGR_ECID_BASE] = { 6565d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 6575d7e5b04SSteen Hegelund .offset = 41, 6585d7e5b04SSteen Hegelund .width = 12, 6595d7e5b04SSteen Hegelund }, 6605d7e5b04SSteen Hegelund }; 6615d7e5b04SSteen Hegelund 6625d7e5b04SSteen Hegelund static const struct vcap_field is2_mac_etype_keyfield[] = { 6635d7e5b04SSteen Hegelund [VCAP_KF_TYPE] = { 6645d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 6655d7e5b04SSteen Hegelund .offset = 0, 6665d7e5b04SSteen Hegelund .width = 4, 6675d7e5b04SSteen Hegelund }, 6685d7e5b04SSteen Hegelund [VCAP_KF_LOOKUP_FIRST_IS] = { 6695d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 6705d7e5b04SSteen Hegelund .offset = 4, 6715d7e5b04SSteen Hegelund .width = 1, 6725d7e5b04SSteen Hegelund }, 6735d7e5b04SSteen Hegelund [VCAP_KF_LOOKUP_PAG] = { 6745d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 6755d7e5b04SSteen Hegelund .offset = 5, 6765d7e5b04SSteen Hegelund .width = 8, 6775d7e5b04SSteen Hegelund }, 6785d7e5b04SSteen Hegelund [VCAP_KF_IF_IGR_PORT_MASK_L3] = { 6795d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 6805d7e5b04SSteen Hegelund .offset = 13, 6815d7e5b04SSteen Hegelund .width = 1, 6825d7e5b04SSteen Hegelund }, 6835d7e5b04SSteen Hegelund [VCAP_KF_IF_IGR_PORT_MASK_RNG] = { 6845d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 6855d7e5b04SSteen Hegelund .offset = 14, 6865d7e5b04SSteen Hegelund .width = 4, 6875d7e5b04SSteen Hegelund }, 6885d7e5b04SSteen Hegelund [VCAP_KF_IF_IGR_PORT_MASK_SEL] = { 6895d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 6905d7e5b04SSteen Hegelund .offset = 18, 6915d7e5b04SSteen Hegelund .width = 2, 6925d7e5b04SSteen Hegelund }, 6935d7e5b04SSteen Hegelund [VCAP_KF_IF_IGR_PORT_MASK] = { 6945d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 6955d7e5b04SSteen Hegelund .offset = 20, 6965d7e5b04SSteen Hegelund .width = 32, 6975d7e5b04SSteen Hegelund }, 6985d7e5b04SSteen Hegelund [VCAP_KF_L2_MC_IS] = { 6995d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 7005d7e5b04SSteen Hegelund .offset = 52, 7015d7e5b04SSteen Hegelund .width = 1, 7025d7e5b04SSteen Hegelund }, 7035d7e5b04SSteen Hegelund [VCAP_KF_L2_BC_IS] = { 7045d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 7055d7e5b04SSteen Hegelund .offset = 53, 7065d7e5b04SSteen Hegelund .width = 1, 7075d7e5b04SSteen Hegelund }, 7085d7e5b04SSteen Hegelund [VCAP_KF_8021Q_VLAN_TAGGED_IS] = { 7095d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 7105d7e5b04SSteen Hegelund .offset = 54, 7115d7e5b04SSteen Hegelund .width = 1, 7125d7e5b04SSteen Hegelund }, 7135d7e5b04SSteen Hegelund [VCAP_KF_ISDX_GT0_IS] = { 7145d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 7155d7e5b04SSteen Hegelund .offset = 55, 7165d7e5b04SSteen Hegelund .width = 1, 7175d7e5b04SSteen Hegelund }, 7185d7e5b04SSteen Hegelund [VCAP_KF_ISDX_CLS] = { 7195d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 7205d7e5b04SSteen Hegelund .offset = 56, 7215d7e5b04SSteen Hegelund .width = 12, 7225d7e5b04SSteen Hegelund }, 7235d7e5b04SSteen Hegelund [VCAP_KF_8021Q_VID_CLS] = { 7245d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 7255d7e5b04SSteen Hegelund .offset = 68, 7265d7e5b04SSteen Hegelund .width = 13, 7275d7e5b04SSteen Hegelund }, 7285d7e5b04SSteen Hegelund [VCAP_KF_8021Q_DEI_CLS] = { 7295d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 7305d7e5b04SSteen Hegelund .offset = 81, 7315d7e5b04SSteen Hegelund .width = 1, 7325d7e5b04SSteen Hegelund }, 7335d7e5b04SSteen Hegelund [VCAP_KF_8021Q_PCP_CLS] = { 7345d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 7355d7e5b04SSteen Hegelund .offset = 82, 7365d7e5b04SSteen Hegelund .width = 3, 7375d7e5b04SSteen Hegelund }, 7385d7e5b04SSteen Hegelund [VCAP_KF_L2_FWD_IS] = { 7395d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 7405d7e5b04SSteen Hegelund .offset = 85, 7415d7e5b04SSteen Hegelund .width = 1, 7425d7e5b04SSteen Hegelund }, 7435d7e5b04SSteen Hegelund [VCAP_KF_L3_RT_IS] = { 7445d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 7455d7e5b04SSteen Hegelund .offset = 88, 7465d7e5b04SSteen Hegelund .width = 1, 7475d7e5b04SSteen Hegelund }, 7485d7e5b04SSteen Hegelund [VCAP_KF_L3_DST_IS] = { 7495d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 7505d7e5b04SSteen Hegelund .offset = 89, 7515d7e5b04SSteen Hegelund .width = 1, 7525d7e5b04SSteen Hegelund }, 7535d7e5b04SSteen Hegelund [VCAP_KF_L2_DMAC] = { 7545d7e5b04SSteen Hegelund .type = VCAP_FIELD_U48, 7555d7e5b04SSteen Hegelund .offset = 90, 7565d7e5b04SSteen Hegelund .width = 48, 7575d7e5b04SSteen Hegelund }, 7585d7e5b04SSteen Hegelund [VCAP_KF_L2_SMAC] = { 7595d7e5b04SSteen Hegelund .type = VCAP_FIELD_U48, 7605d7e5b04SSteen Hegelund .offset = 138, 7615d7e5b04SSteen Hegelund .width = 48, 7625d7e5b04SSteen Hegelund }, 7635d7e5b04SSteen Hegelund [VCAP_KF_ETYPE_LEN_IS] = { 7645d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 7655d7e5b04SSteen Hegelund .offset = 186, 7665d7e5b04SSteen Hegelund .width = 1, 7675d7e5b04SSteen Hegelund }, 7685d7e5b04SSteen Hegelund [VCAP_KF_ETYPE] = { 7695d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 7705d7e5b04SSteen Hegelund .offset = 187, 7715d7e5b04SSteen Hegelund .width = 16, 7725d7e5b04SSteen Hegelund }, 7735d7e5b04SSteen Hegelund [VCAP_KF_L2_PAYLOAD_ETYPE] = { 7745d7e5b04SSteen Hegelund .type = VCAP_FIELD_U64, 7755d7e5b04SSteen Hegelund .offset = 203, 7765d7e5b04SSteen Hegelund .width = 64, 7775d7e5b04SSteen Hegelund }, 7785d7e5b04SSteen Hegelund [VCAP_KF_L4_RNG] = { 7795d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 7805d7e5b04SSteen Hegelund .offset = 267, 7815d7e5b04SSteen Hegelund .width = 16, 7825d7e5b04SSteen Hegelund }, 7835d7e5b04SSteen Hegelund [VCAP_KF_OAM_CCM_CNTS_EQ0] = { 7845d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 7855d7e5b04SSteen Hegelund .offset = 283, 7865d7e5b04SSteen Hegelund .width = 1, 7875d7e5b04SSteen Hegelund }, 7885d7e5b04SSteen Hegelund [VCAP_KF_OAM_Y1731_IS] = { 7895d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 7905d7e5b04SSteen Hegelund .offset = 284, 7915d7e5b04SSteen Hegelund .width = 1, 7925d7e5b04SSteen Hegelund }, 7935d7e5b04SSteen Hegelund }; 7945d7e5b04SSteen Hegelund 7955d7e5b04SSteen Hegelund static const struct vcap_field is2_arp_keyfield[] = { 7965d7e5b04SSteen Hegelund [VCAP_KF_TYPE] = { 7975d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 7985d7e5b04SSteen Hegelund .offset = 0, 7995d7e5b04SSteen Hegelund .width = 4, 8005d7e5b04SSteen Hegelund }, 8015d7e5b04SSteen Hegelund [VCAP_KF_LOOKUP_FIRST_IS] = { 8025d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 8035d7e5b04SSteen Hegelund .offset = 4, 8045d7e5b04SSteen Hegelund .width = 1, 8055d7e5b04SSteen Hegelund }, 8065d7e5b04SSteen Hegelund [VCAP_KF_LOOKUP_PAG] = { 8075d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 8085d7e5b04SSteen Hegelund .offset = 5, 8095d7e5b04SSteen Hegelund .width = 8, 8105d7e5b04SSteen Hegelund }, 8115d7e5b04SSteen Hegelund [VCAP_KF_IF_IGR_PORT_MASK_L3] = { 8125d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 8135d7e5b04SSteen Hegelund .offset = 13, 8145d7e5b04SSteen Hegelund .width = 1, 8155d7e5b04SSteen Hegelund }, 8165d7e5b04SSteen Hegelund [VCAP_KF_IF_IGR_PORT_MASK_RNG] = { 8175d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 8185d7e5b04SSteen Hegelund .offset = 14, 8195d7e5b04SSteen Hegelund .width = 4, 8205d7e5b04SSteen Hegelund }, 8215d7e5b04SSteen Hegelund [VCAP_KF_IF_IGR_PORT_MASK_SEL] = { 8225d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 8235d7e5b04SSteen Hegelund .offset = 18, 8245d7e5b04SSteen Hegelund .width = 2, 8255d7e5b04SSteen Hegelund }, 8265d7e5b04SSteen Hegelund [VCAP_KF_IF_IGR_PORT_MASK] = { 8275d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 8285d7e5b04SSteen Hegelund .offset = 20, 8295d7e5b04SSteen Hegelund .width = 32, 8305d7e5b04SSteen Hegelund }, 8315d7e5b04SSteen Hegelund [VCAP_KF_L2_MC_IS] = { 8325d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 8335d7e5b04SSteen Hegelund .offset = 52, 8345d7e5b04SSteen Hegelund .width = 1, 8355d7e5b04SSteen Hegelund }, 8365d7e5b04SSteen Hegelund [VCAP_KF_L2_BC_IS] = { 8375d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 8385d7e5b04SSteen Hegelund .offset = 53, 8395d7e5b04SSteen Hegelund .width = 1, 8405d7e5b04SSteen Hegelund }, 8415d7e5b04SSteen Hegelund [VCAP_KF_8021Q_VLAN_TAGGED_IS] = { 8425d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 8435d7e5b04SSteen Hegelund .offset = 54, 8445d7e5b04SSteen Hegelund .width = 1, 8455d7e5b04SSteen Hegelund }, 8465d7e5b04SSteen Hegelund [VCAP_KF_ISDX_GT0_IS] = { 8475d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 8485d7e5b04SSteen Hegelund .offset = 55, 8495d7e5b04SSteen Hegelund .width = 1, 8505d7e5b04SSteen Hegelund }, 8515d7e5b04SSteen Hegelund [VCAP_KF_ISDX_CLS] = { 8525d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 8535d7e5b04SSteen Hegelund .offset = 56, 8545d7e5b04SSteen Hegelund .width = 12, 8555d7e5b04SSteen Hegelund }, 8565d7e5b04SSteen Hegelund [VCAP_KF_8021Q_VID_CLS] = { 8575d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 8585d7e5b04SSteen Hegelund .offset = 68, 8595d7e5b04SSteen Hegelund .width = 13, 8605d7e5b04SSteen Hegelund }, 8615d7e5b04SSteen Hegelund [VCAP_KF_8021Q_DEI_CLS] = { 8625d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 8635d7e5b04SSteen Hegelund .offset = 81, 8645d7e5b04SSteen Hegelund .width = 1, 8655d7e5b04SSteen Hegelund }, 8665d7e5b04SSteen Hegelund [VCAP_KF_8021Q_PCP_CLS] = { 8675d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 8685d7e5b04SSteen Hegelund .offset = 82, 8695d7e5b04SSteen Hegelund .width = 3, 8705d7e5b04SSteen Hegelund }, 8715d7e5b04SSteen Hegelund [VCAP_KF_L2_FWD_IS] = { 8725d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 8735d7e5b04SSteen Hegelund .offset = 85, 8745d7e5b04SSteen Hegelund .width = 1, 8755d7e5b04SSteen Hegelund }, 8765d7e5b04SSteen Hegelund [VCAP_KF_L2_SMAC] = { 8775d7e5b04SSteen Hegelund .type = VCAP_FIELD_U48, 8785d7e5b04SSteen Hegelund .offset = 86, 8795d7e5b04SSteen Hegelund .width = 48, 8805d7e5b04SSteen Hegelund }, 8815d7e5b04SSteen Hegelund [VCAP_KF_ARP_ADDR_SPACE_OK_IS] = { 8825d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 8835d7e5b04SSteen Hegelund .offset = 134, 8845d7e5b04SSteen Hegelund .width = 1, 8855d7e5b04SSteen Hegelund }, 8865d7e5b04SSteen Hegelund [VCAP_KF_ARP_PROTO_SPACE_OK_IS] = { 8875d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 8885d7e5b04SSteen Hegelund .offset = 135, 8895d7e5b04SSteen Hegelund .width = 1, 8905d7e5b04SSteen Hegelund }, 8915d7e5b04SSteen Hegelund [VCAP_KF_ARP_LEN_OK_IS] = { 8925d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 8935d7e5b04SSteen Hegelund .offset = 136, 8945d7e5b04SSteen Hegelund .width = 1, 8955d7e5b04SSteen Hegelund }, 8965d7e5b04SSteen Hegelund [VCAP_KF_ARP_TGT_MATCH_IS] = { 8975d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 8985d7e5b04SSteen Hegelund .offset = 137, 8995d7e5b04SSteen Hegelund .width = 1, 9005d7e5b04SSteen Hegelund }, 9015d7e5b04SSteen Hegelund [VCAP_KF_ARP_SENDER_MATCH_IS] = { 9025d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 9035d7e5b04SSteen Hegelund .offset = 138, 9045d7e5b04SSteen Hegelund .width = 1, 9055d7e5b04SSteen Hegelund }, 9065d7e5b04SSteen Hegelund [VCAP_KF_ARP_OPCODE_UNKNOWN_IS] = { 9075d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 9085d7e5b04SSteen Hegelund .offset = 139, 9095d7e5b04SSteen Hegelund .width = 1, 9105d7e5b04SSteen Hegelund }, 9115d7e5b04SSteen Hegelund [VCAP_KF_ARP_OPCODE] = { 9125d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 9135d7e5b04SSteen Hegelund .offset = 140, 9145d7e5b04SSteen Hegelund .width = 2, 9155d7e5b04SSteen Hegelund }, 9165d7e5b04SSteen Hegelund [VCAP_KF_L3_IP4_DIP] = { 9175d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 9185d7e5b04SSteen Hegelund .offset = 142, 9195d7e5b04SSteen Hegelund .width = 32, 9205d7e5b04SSteen Hegelund }, 9215d7e5b04SSteen Hegelund [VCAP_KF_L3_IP4_SIP] = { 9225d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 9235d7e5b04SSteen Hegelund .offset = 174, 9245d7e5b04SSteen Hegelund .width = 32, 9255d7e5b04SSteen Hegelund }, 9265d7e5b04SSteen Hegelund [VCAP_KF_L3_DIP_EQ_SIP_IS] = { 9275d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 9285d7e5b04SSteen Hegelund .offset = 206, 9295d7e5b04SSteen Hegelund .width = 1, 9305d7e5b04SSteen Hegelund }, 9315d7e5b04SSteen Hegelund [VCAP_KF_L4_RNG] = { 9325d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 9335d7e5b04SSteen Hegelund .offset = 207, 9345d7e5b04SSteen Hegelund .width = 16, 9355d7e5b04SSteen Hegelund }, 9365d7e5b04SSteen Hegelund }; 9375d7e5b04SSteen Hegelund 9385d7e5b04SSteen Hegelund static const struct vcap_field is2_ip4_tcp_udp_keyfield[] = { 9395d7e5b04SSteen Hegelund [VCAP_KF_TYPE] = { 9405d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 9415d7e5b04SSteen Hegelund .offset = 0, 9425d7e5b04SSteen Hegelund .width = 4, 9435d7e5b04SSteen Hegelund }, 9445d7e5b04SSteen Hegelund [VCAP_KF_LOOKUP_FIRST_IS] = { 9455d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 9465d7e5b04SSteen Hegelund .offset = 4, 9475d7e5b04SSteen Hegelund .width = 1, 9485d7e5b04SSteen Hegelund }, 9495d7e5b04SSteen Hegelund [VCAP_KF_LOOKUP_PAG] = { 9505d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 9515d7e5b04SSteen Hegelund .offset = 5, 9525d7e5b04SSteen Hegelund .width = 8, 9535d7e5b04SSteen Hegelund }, 9545d7e5b04SSteen Hegelund [VCAP_KF_IF_IGR_PORT_MASK_L3] = { 9555d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 9565d7e5b04SSteen Hegelund .offset = 13, 9575d7e5b04SSteen Hegelund .width = 1, 9585d7e5b04SSteen Hegelund }, 9595d7e5b04SSteen Hegelund [VCAP_KF_IF_IGR_PORT_MASK_RNG] = { 9605d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 9615d7e5b04SSteen Hegelund .offset = 14, 9625d7e5b04SSteen Hegelund .width = 4, 9635d7e5b04SSteen Hegelund }, 9645d7e5b04SSteen Hegelund [VCAP_KF_IF_IGR_PORT_MASK_SEL] = { 9655d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 9665d7e5b04SSteen Hegelund .offset = 18, 9675d7e5b04SSteen Hegelund .width = 2, 9685d7e5b04SSteen Hegelund }, 9695d7e5b04SSteen Hegelund [VCAP_KF_IF_IGR_PORT_MASK] = { 9705d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 9715d7e5b04SSteen Hegelund .offset = 20, 9725d7e5b04SSteen Hegelund .width = 32, 9735d7e5b04SSteen Hegelund }, 9745d7e5b04SSteen Hegelund [VCAP_KF_L2_MC_IS] = { 9755d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 9765d7e5b04SSteen Hegelund .offset = 52, 9775d7e5b04SSteen Hegelund .width = 1, 9785d7e5b04SSteen Hegelund }, 9795d7e5b04SSteen Hegelund [VCAP_KF_L2_BC_IS] = { 9805d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 9815d7e5b04SSteen Hegelund .offset = 53, 9825d7e5b04SSteen Hegelund .width = 1, 9835d7e5b04SSteen Hegelund }, 9845d7e5b04SSteen Hegelund [VCAP_KF_8021Q_VLAN_TAGGED_IS] = { 9855d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 9865d7e5b04SSteen Hegelund .offset = 54, 9875d7e5b04SSteen Hegelund .width = 1, 9885d7e5b04SSteen Hegelund }, 9895d7e5b04SSteen Hegelund [VCAP_KF_ISDX_GT0_IS] = { 9905d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 9915d7e5b04SSteen Hegelund .offset = 55, 9925d7e5b04SSteen Hegelund .width = 1, 9935d7e5b04SSteen Hegelund }, 9945d7e5b04SSteen Hegelund [VCAP_KF_ISDX_CLS] = { 9955d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 9965d7e5b04SSteen Hegelund .offset = 56, 9975d7e5b04SSteen Hegelund .width = 12, 9985d7e5b04SSteen Hegelund }, 9995d7e5b04SSteen Hegelund [VCAP_KF_8021Q_VID_CLS] = { 10005d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 10015d7e5b04SSteen Hegelund .offset = 68, 10025d7e5b04SSteen Hegelund .width = 13, 10035d7e5b04SSteen Hegelund }, 10045d7e5b04SSteen Hegelund [VCAP_KF_8021Q_DEI_CLS] = { 10055d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 10065d7e5b04SSteen Hegelund .offset = 81, 10075d7e5b04SSteen Hegelund .width = 1, 10085d7e5b04SSteen Hegelund }, 10095d7e5b04SSteen Hegelund [VCAP_KF_8021Q_PCP_CLS] = { 10105d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 10115d7e5b04SSteen Hegelund .offset = 82, 10125d7e5b04SSteen Hegelund .width = 3, 10135d7e5b04SSteen Hegelund }, 10145d7e5b04SSteen Hegelund [VCAP_KF_L2_FWD_IS] = { 10155d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 10165d7e5b04SSteen Hegelund .offset = 85, 10175d7e5b04SSteen Hegelund .width = 1, 10185d7e5b04SSteen Hegelund }, 10195d7e5b04SSteen Hegelund [VCAP_KF_L3_RT_IS] = { 10205d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 10215d7e5b04SSteen Hegelund .offset = 88, 10225d7e5b04SSteen Hegelund .width = 1, 10235d7e5b04SSteen Hegelund }, 10245d7e5b04SSteen Hegelund [VCAP_KF_L3_DST_IS] = { 10255d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 10265d7e5b04SSteen Hegelund .offset = 89, 10275d7e5b04SSteen Hegelund .width = 1, 10285d7e5b04SSteen Hegelund }, 10295d7e5b04SSteen Hegelund [VCAP_KF_IP4_IS] = { 10305d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 10315d7e5b04SSteen Hegelund .offset = 90, 10325d7e5b04SSteen Hegelund .width = 1, 10335d7e5b04SSteen Hegelund }, 10345d7e5b04SSteen Hegelund [VCAP_KF_L3_FRAGMENT_TYPE] = { 10355d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 10365d7e5b04SSteen Hegelund .offset = 91, 10375d7e5b04SSteen Hegelund .width = 2, 10385d7e5b04SSteen Hegelund }, 10395d7e5b04SSteen Hegelund [VCAP_KF_L3_FRAG_INVLD_L4_LEN] = { 10405d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 10415d7e5b04SSteen Hegelund .offset = 93, 10425d7e5b04SSteen Hegelund .width = 1, 10435d7e5b04SSteen Hegelund }, 10445d7e5b04SSteen Hegelund [VCAP_KF_L3_OPTIONS_IS] = { 10455d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 10465d7e5b04SSteen Hegelund .offset = 94, 10475d7e5b04SSteen Hegelund .width = 1, 10485d7e5b04SSteen Hegelund }, 10495d7e5b04SSteen Hegelund [VCAP_KF_L3_TTL_GT0] = { 10505d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 10515d7e5b04SSteen Hegelund .offset = 95, 10525d7e5b04SSteen Hegelund .width = 1, 10535d7e5b04SSteen Hegelund }, 10545d7e5b04SSteen Hegelund [VCAP_KF_L3_TOS] = { 10555d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 10565d7e5b04SSteen Hegelund .offset = 96, 10575d7e5b04SSteen Hegelund .width = 8, 10585d7e5b04SSteen Hegelund }, 10595d7e5b04SSteen Hegelund [VCAP_KF_L3_IP4_DIP] = { 10605d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 10615d7e5b04SSteen Hegelund .offset = 104, 10625d7e5b04SSteen Hegelund .width = 32, 10635d7e5b04SSteen Hegelund }, 10645d7e5b04SSteen Hegelund [VCAP_KF_L3_IP4_SIP] = { 10655d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 10665d7e5b04SSteen Hegelund .offset = 136, 10675d7e5b04SSteen Hegelund .width = 32, 10685d7e5b04SSteen Hegelund }, 10695d7e5b04SSteen Hegelund [VCAP_KF_L3_DIP_EQ_SIP_IS] = { 10705d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 10715d7e5b04SSteen Hegelund .offset = 168, 10725d7e5b04SSteen Hegelund .width = 1, 10735d7e5b04SSteen Hegelund }, 10745d7e5b04SSteen Hegelund [VCAP_KF_TCP_IS] = { 10755d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 10765d7e5b04SSteen Hegelund .offset = 169, 10775d7e5b04SSteen Hegelund .width = 1, 10785d7e5b04SSteen Hegelund }, 10795d7e5b04SSteen Hegelund [VCAP_KF_L4_DPORT] = { 10805d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 10815d7e5b04SSteen Hegelund .offset = 170, 10825d7e5b04SSteen Hegelund .width = 16, 10835d7e5b04SSteen Hegelund }, 10845d7e5b04SSteen Hegelund [VCAP_KF_L4_SPORT] = { 10855d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 10865d7e5b04SSteen Hegelund .offset = 186, 10875d7e5b04SSteen Hegelund .width = 16, 10885d7e5b04SSteen Hegelund }, 10895d7e5b04SSteen Hegelund [VCAP_KF_L4_RNG] = { 10905d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 10915d7e5b04SSteen Hegelund .offset = 202, 10925d7e5b04SSteen Hegelund .width = 16, 10935d7e5b04SSteen Hegelund }, 10945d7e5b04SSteen Hegelund [VCAP_KF_L4_SPORT_EQ_DPORT_IS] = { 10955d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 10965d7e5b04SSteen Hegelund .offset = 218, 10975d7e5b04SSteen Hegelund .width = 1, 10985d7e5b04SSteen Hegelund }, 10995d7e5b04SSteen Hegelund [VCAP_KF_L4_SEQUENCE_EQ0_IS] = { 11005d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 11015d7e5b04SSteen Hegelund .offset = 219, 11025d7e5b04SSteen Hegelund .width = 1, 11035d7e5b04SSteen Hegelund }, 11045d7e5b04SSteen Hegelund [VCAP_KF_L4_FIN] = { 11055d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 11065d7e5b04SSteen Hegelund .offset = 220, 11075d7e5b04SSteen Hegelund .width = 1, 11085d7e5b04SSteen Hegelund }, 11095d7e5b04SSteen Hegelund [VCAP_KF_L4_SYN] = { 11105d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 11115d7e5b04SSteen Hegelund .offset = 221, 11125d7e5b04SSteen Hegelund .width = 1, 11135d7e5b04SSteen Hegelund }, 11145d7e5b04SSteen Hegelund [VCAP_KF_L4_RST] = { 11155d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 11165d7e5b04SSteen Hegelund .offset = 222, 11175d7e5b04SSteen Hegelund .width = 1, 11185d7e5b04SSteen Hegelund }, 11195d7e5b04SSteen Hegelund [VCAP_KF_L4_PSH] = { 11205d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 11215d7e5b04SSteen Hegelund .offset = 223, 11225d7e5b04SSteen Hegelund .width = 1, 11235d7e5b04SSteen Hegelund }, 11245d7e5b04SSteen Hegelund [VCAP_KF_L4_ACK] = { 11255d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 11265d7e5b04SSteen Hegelund .offset = 224, 11275d7e5b04SSteen Hegelund .width = 1, 11285d7e5b04SSteen Hegelund }, 11295d7e5b04SSteen Hegelund [VCAP_KF_L4_URG] = { 11305d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 11315d7e5b04SSteen Hegelund .offset = 225, 11325d7e5b04SSteen Hegelund .width = 1, 11335d7e5b04SSteen Hegelund }, 11345d7e5b04SSteen Hegelund [VCAP_KF_L4_PAYLOAD] = { 11355d7e5b04SSteen Hegelund .type = VCAP_FIELD_U64, 11365d7e5b04SSteen Hegelund .offset = 226, 11375d7e5b04SSteen Hegelund .width = 64, 11385d7e5b04SSteen Hegelund }, 11395d7e5b04SSteen Hegelund }; 11405d7e5b04SSteen Hegelund 11415d7e5b04SSteen Hegelund static const struct vcap_field is2_ip4_other_keyfield[] = { 11425d7e5b04SSteen Hegelund [VCAP_KF_TYPE] = { 11435d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 11445d7e5b04SSteen Hegelund .offset = 0, 11455d7e5b04SSteen Hegelund .width = 4, 11465d7e5b04SSteen Hegelund }, 11475d7e5b04SSteen Hegelund [VCAP_KF_LOOKUP_FIRST_IS] = { 11485d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 11495d7e5b04SSteen Hegelund .offset = 4, 11505d7e5b04SSteen Hegelund .width = 1, 11515d7e5b04SSteen Hegelund }, 11525d7e5b04SSteen Hegelund [VCAP_KF_LOOKUP_PAG] = { 11535d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 11545d7e5b04SSteen Hegelund .offset = 5, 11555d7e5b04SSteen Hegelund .width = 8, 11565d7e5b04SSteen Hegelund }, 11575d7e5b04SSteen Hegelund [VCAP_KF_IF_IGR_PORT_MASK_L3] = { 11585d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 11595d7e5b04SSteen Hegelund .offset = 13, 11605d7e5b04SSteen Hegelund .width = 1, 11615d7e5b04SSteen Hegelund }, 11625d7e5b04SSteen Hegelund [VCAP_KF_IF_IGR_PORT_MASK_RNG] = { 11635d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 11645d7e5b04SSteen Hegelund .offset = 14, 11655d7e5b04SSteen Hegelund .width = 4, 11665d7e5b04SSteen Hegelund }, 11675d7e5b04SSteen Hegelund [VCAP_KF_IF_IGR_PORT_MASK_SEL] = { 11685d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 11695d7e5b04SSteen Hegelund .offset = 18, 11705d7e5b04SSteen Hegelund .width = 2, 11715d7e5b04SSteen Hegelund }, 11725d7e5b04SSteen Hegelund [VCAP_KF_IF_IGR_PORT_MASK] = { 11735d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 11745d7e5b04SSteen Hegelund .offset = 20, 11755d7e5b04SSteen Hegelund .width = 32, 11765d7e5b04SSteen Hegelund }, 11775d7e5b04SSteen Hegelund [VCAP_KF_L2_MC_IS] = { 11785d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 11795d7e5b04SSteen Hegelund .offset = 52, 11805d7e5b04SSteen Hegelund .width = 1, 11815d7e5b04SSteen Hegelund }, 11825d7e5b04SSteen Hegelund [VCAP_KF_L2_BC_IS] = { 11835d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 11845d7e5b04SSteen Hegelund .offset = 53, 11855d7e5b04SSteen Hegelund .width = 1, 11865d7e5b04SSteen Hegelund }, 11875d7e5b04SSteen Hegelund [VCAP_KF_8021Q_VLAN_TAGGED_IS] = { 11885d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 11895d7e5b04SSteen Hegelund .offset = 54, 11905d7e5b04SSteen Hegelund .width = 1, 11915d7e5b04SSteen Hegelund }, 11925d7e5b04SSteen Hegelund [VCAP_KF_ISDX_GT0_IS] = { 11935d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 11945d7e5b04SSteen Hegelund .offset = 55, 11955d7e5b04SSteen Hegelund .width = 1, 11965d7e5b04SSteen Hegelund }, 11975d7e5b04SSteen Hegelund [VCAP_KF_ISDX_CLS] = { 11985d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 11995d7e5b04SSteen Hegelund .offset = 56, 12005d7e5b04SSteen Hegelund .width = 12, 12015d7e5b04SSteen Hegelund }, 12025d7e5b04SSteen Hegelund [VCAP_KF_8021Q_VID_CLS] = { 12035d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 12045d7e5b04SSteen Hegelund .offset = 68, 12055d7e5b04SSteen Hegelund .width = 13, 12065d7e5b04SSteen Hegelund }, 12075d7e5b04SSteen Hegelund [VCAP_KF_8021Q_DEI_CLS] = { 12085d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 12095d7e5b04SSteen Hegelund .offset = 81, 12105d7e5b04SSteen Hegelund .width = 1, 12115d7e5b04SSteen Hegelund }, 12125d7e5b04SSteen Hegelund [VCAP_KF_8021Q_PCP_CLS] = { 12135d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 12145d7e5b04SSteen Hegelund .offset = 82, 12155d7e5b04SSteen Hegelund .width = 3, 12165d7e5b04SSteen Hegelund }, 12175d7e5b04SSteen Hegelund [VCAP_KF_L2_FWD_IS] = { 12185d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 12195d7e5b04SSteen Hegelund .offset = 85, 12205d7e5b04SSteen Hegelund .width = 1, 12215d7e5b04SSteen Hegelund }, 12225d7e5b04SSteen Hegelund [VCAP_KF_L3_RT_IS] = { 12235d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 12245d7e5b04SSteen Hegelund .offset = 88, 12255d7e5b04SSteen Hegelund .width = 1, 12265d7e5b04SSteen Hegelund }, 12275d7e5b04SSteen Hegelund [VCAP_KF_L3_DST_IS] = { 12285d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 12295d7e5b04SSteen Hegelund .offset = 89, 12305d7e5b04SSteen Hegelund .width = 1, 12315d7e5b04SSteen Hegelund }, 12325d7e5b04SSteen Hegelund [VCAP_KF_IP4_IS] = { 12335d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 12345d7e5b04SSteen Hegelund .offset = 90, 12355d7e5b04SSteen Hegelund .width = 1, 12365d7e5b04SSteen Hegelund }, 12375d7e5b04SSteen Hegelund [VCAP_KF_L3_FRAGMENT_TYPE] = { 12385d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 12395d7e5b04SSteen Hegelund .offset = 91, 12405d7e5b04SSteen Hegelund .width = 2, 12415d7e5b04SSteen Hegelund }, 12425d7e5b04SSteen Hegelund [VCAP_KF_L3_FRAG_INVLD_L4_LEN] = { 12435d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 12445d7e5b04SSteen Hegelund .offset = 93, 12455d7e5b04SSteen Hegelund .width = 1, 12465d7e5b04SSteen Hegelund }, 12475d7e5b04SSteen Hegelund [VCAP_KF_L3_OPTIONS_IS] = { 12485d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 12495d7e5b04SSteen Hegelund .offset = 94, 12505d7e5b04SSteen Hegelund .width = 1, 12515d7e5b04SSteen Hegelund }, 12525d7e5b04SSteen Hegelund [VCAP_KF_L3_TTL_GT0] = { 12535d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 12545d7e5b04SSteen Hegelund .offset = 95, 12555d7e5b04SSteen Hegelund .width = 1, 12565d7e5b04SSteen Hegelund }, 12575d7e5b04SSteen Hegelund [VCAP_KF_L3_TOS] = { 12585d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 12595d7e5b04SSteen Hegelund .offset = 96, 12605d7e5b04SSteen Hegelund .width = 8, 12615d7e5b04SSteen Hegelund }, 12625d7e5b04SSteen Hegelund [VCAP_KF_L3_IP4_DIP] = { 12635d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 12645d7e5b04SSteen Hegelund .offset = 104, 12655d7e5b04SSteen Hegelund .width = 32, 12665d7e5b04SSteen Hegelund }, 12675d7e5b04SSteen Hegelund [VCAP_KF_L3_IP4_SIP] = { 12685d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 12695d7e5b04SSteen Hegelund .offset = 136, 12705d7e5b04SSteen Hegelund .width = 32, 12715d7e5b04SSteen Hegelund }, 12725d7e5b04SSteen Hegelund [VCAP_KF_L3_DIP_EQ_SIP_IS] = { 12735d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 12745d7e5b04SSteen Hegelund .offset = 168, 12755d7e5b04SSteen Hegelund .width = 1, 12765d7e5b04SSteen Hegelund }, 12775d7e5b04SSteen Hegelund [VCAP_KF_L3_IP_PROTO] = { 12785d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 12795d7e5b04SSteen Hegelund .offset = 169, 12805d7e5b04SSteen Hegelund .width = 8, 12815d7e5b04SSteen Hegelund }, 12825d7e5b04SSteen Hegelund [VCAP_KF_L4_RNG] = { 12835d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 12845d7e5b04SSteen Hegelund .offset = 177, 12855d7e5b04SSteen Hegelund .width = 16, 12865d7e5b04SSteen Hegelund }, 12875d7e5b04SSteen Hegelund [VCAP_KF_L3_PAYLOAD] = { 12885d7e5b04SSteen Hegelund .type = VCAP_FIELD_U112, 12895d7e5b04SSteen Hegelund .offset = 193, 12905d7e5b04SSteen Hegelund .width = 96, 12915d7e5b04SSteen Hegelund }, 12925d7e5b04SSteen Hegelund }; 12935d7e5b04SSteen Hegelund 12945d7e5b04SSteen Hegelund static const struct vcap_field is2_ip6_std_keyfield[] = { 12955d7e5b04SSteen Hegelund [VCAP_KF_TYPE] = { 12965d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 12975d7e5b04SSteen Hegelund .offset = 0, 12985d7e5b04SSteen Hegelund .width = 4, 12995d7e5b04SSteen Hegelund }, 13005d7e5b04SSteen Hegelund [VCAP_KF_LOOKUP_FIRST_IS] = { 13015d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 13025d7e5b04SSteen Hegelund .offset = 4, 13035d7e5b04SSteen Hegelund .width = 1, 13045d7e5b04SSteen Hegelund }, 13055d7e5b04SSteen Hegelund [VCAP_KF_LOOKUP_PAG] = { 13065d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 13075d7e5b04SSteen Hegelund .offset = 5, 13085d7e5b04SSteen Hegelund .width = 8, 13095d7e5b04SSteen Hegelund }, 13105d7e5b04SSteen Hegelund [VCAP_KF_IF_IGR_PORT_MASK_L3] = { 13115d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 13125d7e5b04SSteen Hegelund .offset = 13, 13135d7e5b04SSteen Hegelund .width = 1, 13145d7e5b04SSteen Hegelund }, 13155d7e5b04SSteen Hegelund [VCAP_KF_IF_IGR_PORT_MASK_RNG] = { 13165d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 13175d7e5b04SSteen Hegelund .offset = 14, 13185d7e5b04SSteen Hegelund .width = 4, 13195d7e5b04SSteen Hegelund }, 13205d7e5b04SSteen Hegelund [VCAP_KF_IF_IGR_PORT_MASK_SEL] = { 13215d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 13225d7e5b04SSteen Hegelund .offset = 18, 13235d7e5b04SSteen Hegelund .width = 2, 13245d7e5b04SSteen Hegelund }, 13255d7e5b04SSteen Hegelund [VCAP_KF_IF_IGR_PORT_MASK] = { 13265d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 13275d7e5b04SSteen Hegelund .offset = 20, 13285d7e5b04SSteen Hegelund .width = 32, 13295d7e5b04SSteen Hegelund }, 13305d7e5b04SSteen Hegelund [VCAP_KF_L2_MC_IS] = { 13315d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 13325d7e5b04SSteen Hegelund .offset = 52, 13335d7e5b04SSteen Hegelund .width = 1, 13345d7e5b04SSteen Hegelund }, 13355d7e5b04SSteen Hegelund [VCAP_KF_L2_BC_IS] = { 13365d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 13375d7e5b04SSteen Hegelund .offset = 53, 13385d7e5b04SSteen Hegelund .width = 1, 13395d7e5b04SSteen Hegelund }, 13405d7e5b04SSteen Hegelund [VCAP_KF_8021Q_VLAN_TAGGED_IS] = { 13415d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 13425d7e5b04SSteen Hegelund .offset = 54, 13435d7e5b04SSteen Hegelund .width = 1, 13445d7e5b04SSteen Hegelund }, 13455d7e5b04SSteen Hegelund [VCAP_KF_ISDX_GT0_IS] = { 13465d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 13475d7e5b04SSteen Hegelund .offset = 55, 13485d7e5b04SSteen Hegelund .width = 1, 13495d7e5b04SSteen Hegelund }, 13505d7e5b04SSteen Hegelund [VCAP_KF_ISDX_CLS] = { 13515d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 13525d7e5b04SSteen Hegelund .offset = 56, 13535d7e5b04SSteen Hegelund .width = 12, 13545d7e5b04SSteen Hegelund }, 13555d7e5b04SSteen Hegelund [VCAP_KF_8021Q_VID_CLS] = { 13565d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 13575d7e5b04SSteen Hegelund .offset = 68, 13585d7e5b04SSteen Hegelund .width = 13, 13595d7e5b04SSteen Hegelund }, 13605d7e5b04SSteen Hegelund [VCAP_KF_8021Q_DEI_CLS] = { 13615d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 13625d7e5b04SSteen Hegelund .offset = 81, 13635d7e5b04SSteen Hegelund .width = 1, 13645d7e5b04SSteen Hegelund }, 13655d7e5b04SSteen Hegelund [VCAP_KF_8021Q_PCP_CLS] = { 13665d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 13675d7e5b04SSteen Hegelund .offset = 82, 13685d7e5b04SSteen Hegelund .width = 3, 13695d7e5b04SSteen Hegelund }, 13705d7e5b04SSteen Hegelund [VCAP_KF_L2_FWD_IS] = { 13715d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 13725d7e5b04SSteen Hegelund .offset = 85, 13735d7e5b04SSteen Hegelund .width = 1, 13745d7e5b04SSteen Hegelund }, 13755d7e5b04SSteen Hegelund [VCAP_KF_L3_RT_IS] = { 13765d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 13775d7e5b04SSteen Hegelund .offset = 88, 13785d7e5b04SSteen Hegelund .width = 1, 13795d7e5b04SSteen Hegelund }, 13805d7e5b04SSteen Hegelund [VCAP_KF_L3_TTL_GT0] = { 13815d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 13825d7e5b04SSteen Hegelund .offset = 90, 13835d7e5b04SSteen Hegelund .width = 1, 13845d7e5b04SSteen Hegelund }, 13855d7e5b04SSteen Hegelund [VCAP_KF_L3_IP6_SIP] = { 13865d7e5b04SSteen Hegelund .type = VCAP_FIELD_U128, 13875d7e5b04SSteen Hegelund .offset = 91, 13885d7e5b04SSteen Hegelund .width = 128, 13895d7e5b04SSteen Hegelund }, 13905d7e5b04SSteen Hegelund [VCAP_KF_L3_DIP_EQ_SIP_IS] = { 13915d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 13925d7e5b04SSteen Hegelund .offset = 219, 13935d7e5b04SSteen Hegelund .width = 1, 13945d7e5b04SSteen Hegelund }, 13955d7e5b04SSteen Hegelund [VCAP_KF_L3_IP_PROTO] = { 13965d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 13975d7e5b04SSteen Hegelund .offset = 220, 13985d7e5b04SSteen Hegelund .width = 8, 13995d7e5b04SSteen Hegelund }, 14005d7e5b04SSteen Hegelund [VCAP_KF_L4_RNG] = { 14015d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 14025d7e5b04SSteen Hegelund .offset = 228, 14035d7e5b04SSteen Hegelund .width = 16, 14045d7e5b04SSteen Hegelund }, 14055d7e5b04SSteen Hegelund [VCAP_KF_L3_PAYLOAD] = { 14065d7e5b04SSteen Hegelund .type = VCAP_FIELD_U48, 14075d7e5b04SSteen Hegelund .offset = 244, 14085d7e5b04SSteen Hegelund .width = 40, 14095d7e5b04SSteen Hegelund }, 14105d7e5b04SSteen Hegelund }; 14115d7e5b04SSteen Hegelund 14125d7e5b04SSteen Hegelund static const struct vcap_field is2_ip_7tuple_keyfield[] = { 14135d7e5b04SSteen Hegelund [VCAP_KF_TYPE] = { 14145d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 14155d7e5b04SSteen Hegelund .offset = 0, 14165d7e5b04SSteen Hegelund .width = 2, 14175d7e5b04SSteen Hegelund }, 14185d7e5b04SSteen Hegelund [VCAP_KF_LOOKUP_FIRST_IS] = { 14195d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 14205d7e5b04SSteen Hegelund .offset = 2, 14215d7e5b04SSteen Hegelund .width = 1, 14225d7e5b04SSteen Hegelund }, 14235d7e5b04SSteen Hegelund [VCAP_KF_LOOKUP_PAG] = { 14245d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 14255d7e5b04SSteen Hegelund .offset = 3, 14265d7e5b04SSteen Hegelund .width = 8, 14275d7e5b04SSteen Hegelund }, 14285d7e5b04SSteen Hegelund [VCAP_KF_IF_IGR_PORT_MASK_L3] = { 14295d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 14305d7e5b04SSteen Hegelund .offset = 11, 14315d7e5b04SSteen Hegelund .width = 1, 14325d7e5b04SSteen Hegelund }, 14335d7e5b04SSteen Hegelund [VCAP_KF_IF_IGR_PORT_MASK_RNG] = { 14345d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 14355d7e5b04SSteen Hegelund .offset = 12, 14365d7e5b04SSteen Hegelund .width = 4, 14375d7e5b04SSteen Hegelund }, 14385d7e5b04SSteen Hegelund [VCAP_KF_IF_IGR_PORT_MASK_SEL] = { 14395d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 14405d7e5b04SSteen Hegelund .offset = 16, 14415d7e5b04SSteen Hegelund .width = 2, 14425d7e5b04SSteen Hegelund }, 14435d7e5b04SSteen Hegelund [VCAP_KF_IF_IGR_PORT_MASK] = { 14445d7e5b04SSteen Hegelund .type = VCAP_FIELD_U72, 14455d7e5b04SSteen Hegelund .offset = 18, 14465d7e5b04SSteen Hegelund .width = 65, 14475d7e5b04SSteen Hegelund }, 14485d7e5b04SSteen Hegelund [VCAP_KF_L2_MC_IS] = { 14495d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 14505d7e5b04SSteen Hegelund .offset = 83, 14515d7e5b04SSteen Hegelund .width = 1, 14525d7e5b04SSteen Hegelund }, 14535d7e5b04SSteen Hegelund [VCAP_KF_L2_BC_IS] = { 14545d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 14555d7e5b04SSteen Hegelund .offset = 84, 14565d7e5b04SSteen Hegelund .width = 1, 14575d7e5b04SSteen Hegelund }, 14585d7e5b04SSteen Hegelund [VCAP_KF_8021Q_VLAN_TAGGED_IS] = { 14595d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 14605d7e5b04SSteen Hegelund .offset = 85, 14615d7e5b04SSteen Hegelund .width = 1, 14625d7e5b04SSteen Hegelund }, 14635d7e5b04SSteen Hegelund [VCAP_KF_ISDX_GT0_IS] = { 14645d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 14655d7e5b04SSteen Hegelund .offset = 86, 14665d7e5b04SSteen Hegelund .width = 1, 14675d7e5b04SSteen Hegelund }, 14685d7e5b04SSteen Hegelund [VCAP_KF_ISDX_CLS] = { 14695d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 14705d7e5b04SSteen Hegelund .offset = 87, 14715d7e5b04SSteen Hegelund .width = 12, 14725d7e5b04SSteen Hegelund }, 14735d7e5b04SSteen Hegelund [VCAP_KF_8021Q_VID_CLS] = { 14745d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 14755d7e5b04SSteen Hegelund .offset = 99, 14765d7e5b04SSteen Hegelund .width = 13, 14775d7e5b04SSteen Hegelund }, 14785d7e5b04SSteen Hegelund [VCAP_KF_8021Q_DEI_CLS] = { 14795d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 14805d7e5b04SSteen Hegelund .offset = 112, 14815d7e5b04SSteen Hegelund .width = 1, 14825d7e5b04SSteen Hegelund }, 14835d7e5b04SSteen Hegelund [VCAP_KF_8021Q_PCP_CLS] = { 14845d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 14855d7e5b04SSteen Hegelund .offset = 113, 14865d7e5b04SSteen Hegelund .width = 3, 14875d7e5b04SSteen Hegelund }, 14885d7e5b04SSteen Hegelund [VCAP_KF_L2_FWD_IS] = { 14895d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 14905d7e5b04SSteen Hegelund .offset = 116, 14915d7e5b04SSteen Hegelund .width = 1, 14925d7e5b04SSteen Hegelund }, 14935d7e5b04SSteen Hegelund [VCAP_KF_L3_RT_IS] = { 14945d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 14955d7e5b04SSteen Hegelund .offset = 119, 14965d7e5b04SSteen Hegelund .width = 1, 14975d7e5b04SSteen Hegelund }, 14985d7e5b04SSteen Hegelund [VCAP_KF_L3_DST_IS] = { 14995d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 15005d7e5b04SSteen Hegelund .offset = 120, 15015d7e5b04SSteen Hegelund .width = 1, 15025d7e5b04SSteen Hegelund }, 15035d7e5b04SSteen Hegelund [VCAP_KF_L2_DMAC] = { 15045d7e5b04SSteen Hegelund .type = VCAP_FIELD_U48, 15055d7e5b04SSteen Hegelund .offset = 121, 15065d7e5b04SSteen Hegelund .width = 48, 15075d7e5b04SSteen Hegelund }, 15085d7e5b04SSteen Hegelund [VCAP_KF_L2_SMAC] = { 15095d7e5b04SSteen Hegelund .type = VCAP_FIELD_U48, 15105d7e5b04SSteen Hegelund .offset = 169, 15115d7e5b04SSteen Hegelund .width = 48, 15125d7e5b04SSteen Hegelund }, 15135d7e5b04SSteen Hegelund [VCAP_KF_IP4_IS] = { 15145d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 15155d7e5b04SSteen Hegelund .offset = 217, 15165d7e5b04SSteen Hegelund .width = 1, 15175d7e5b04SSteen Hegelund }, 15185d7e5b04SSteen Hegelund [VCAP_KF_L3_TTL_GT0] = { 15195d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 15205d7e5b04SSteen Hegelund .offset = 218, 15215d7e5b04SSteen Hegelund .width = 1, 15225d7e5b04SSteen Hegelund }, 15235d7e5b04SSteen Hegelund [VCAP_KF_L3_TOS] = { 15245d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 15255d7e5b04SSteen Hegelund .offset = 219, 15265d7e5b04SSteen Hegelund .width = 8, 15275d7e5b04SSteen Hegelund }, 15285d7e5b04SSteen Hegelund [VCAP_KF_L3_IP6_DIP] = { 15295d7e5b04SSteen Hegelund .type = VCAP_FIELD_U128, 15305d7e5b04SSteen Hegelund .offset = 227, 15315d7e5b04SSteen Hegelund .width = 128, 15325d7e5b04SSteen Hegelund }, 15335d7e5b04SSteen Hegelund [VCAP_KF_L3_IP6_SIP] = { 15345d7e5b04SSteen Hegelund .type = VCAP_FIELD_U128, 15355d7e5b04SSteen Hegelund .offset = 355, 15365d7e5b04SSteen Hegelund .width = 128, 15375d7e5b04SSteen Hegelund }, 15385d7e5b04SSteen Hegelund [VCAP_KF_L3_DIP_EQ_SIP_IS] = { 15395d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 15405d7e5b04SSteen Hegelund .offset = 483, 15415d7e5b04SSteen Hegelund .width = 1, 15425d7e5b04SSteen Hegelund }, 15435d7e5b04SSteen Hegelund [VCAP_KF_TCP_UDP_IS] = { 15445d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 15455d7e5b04SSteen Hegelund .offset = 484, 15465d7e5b04SSteen Hegelund .width = 1, 15475d7e5b04SSteen Hegelund }, 15485d7e5b04SSteen Hegelund [VCAP_KF_TCP_IS] = { 15495d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 15505d7e5b04SSteen Hegelund .offset = 485, 15515d7e5b04SSteen Hegelund .width = 1, 15525d7e5b04SSteen Hegelund }, 15535d7e5b04SSteen Hegelund [VCAP_KF_L4_DPORT] = { 15545d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 15555d7e5b04SSteen Hegelund .offset = 486, 15565d7e5b04SSteen Hegelund .width = 16, 15575d7e5b04SSteen Hegelund }, 15585d7e5b04SSteen Hegelund [VCAP_KF_L4_SPORT] = { 15595d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 15605d7e5b04SSteen Hegelund .offset = 502, 15615d7e5b04SSteen Hegelund .width = 16, 15625d7e5b04SSteen Hegelund }, 15635d7e5b04SSteen Hegelund [VCAP_KF_L4_RNG] = { 15645d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 15655d7e5b04SSteen Hegelund .offset = 518, 15665d7e5b04SSteen Hegelund .width = 16, 15675d7e5b04SSteen Hegelund }, 15685d7e5b04SSteen Hegelund [VCAP_KF_L4_SPORT_EQ_DPORT_IS] = { 15695d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 15705d7e5b04SSteen Hegelund .offset = 534, 15715d7e5b04SSteen Hegelund .width = 1, 15725d7e5b04SSteen Hegelund }, 15735d7e5b04SSteen Hegelund [VCAP_KF_L4_SEQUENCE_EQ0_IS] = { 15745d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 15755d7e5b04SSteen Hegelund .offset = 535, 15765d7e5b04SSteen Hegelund .width = 1, 15775d7e5b04SSteen Hegelund }, 15785d7e5b04SSteen Hegelund [VCAP_KF_L4_FIN] = { 15795d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 15805d7e5b04SSteen Hegelund .offset = 536, 15815d7e5b04SSteen Hegelund .width = 1, 15825d7e5b04SSteen Hegelund }, 15835d7e5b04SSteen Hegelund [VCAP_KF_L4_SYN] = { 15845d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 15855d7e5b04SSteen Hegelund .offset = 537, 15865d7e5b04SSteen Hegelund .width = 1, 15875d7e5b04SSteen Hegelund }, 15885d7e5b04SSteen Hegelund [VCAP_KF_L4_RST] = { 15895d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 15905d7e5b04SSteen Hegelund .offset = 538, 15915d7e5b04SSteen Hegelund .width = 1, 15925d7e5b04SSteen Hegelund }, 15935d7e5b04SSteen Hegelund [VCAP_KF_L4_PSH] = { 15945d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 15955d7e5b04SSteen Hegelund .offset = 539, 15965d7e5b04SSteen Hegelund .width = 1, 15975d7e5b04SSteen Hegelund }, 15985d7e5b04SSteen Hegelund [VCAP_KF_L4_ACK] = { 15995d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 16005d7e5b04SSteen Hegelund .offset = 540, 16015d7e5b04SSteen Hegelund .width = 1, 16025d7e5b04SSteen Hegelund }, 16035d7e5b04SSteen Hegelund [VCAP_KF_L4_URG] = { 16045d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 16055d7e5b04SSteen Hegelund .offset = 541, 16065d7e5b04SSteen Hegelund .width = 1, 16075d7e5b04SSteen Hegelund }, 16085d7e5b04SSteen Hegelund [VCAP_KF_L4_PAYLOAD] = { 16095d7e5b04SSteen Hegelund .type = VCAP_FIELD_U64, 16105d7e5b04SSteen Hegelund .offset = 542, 16115d7e5b04SSteen Hegelund .width = 64, 16125d7e5b04SSteen Hegelund }, 16135d7e5b04SSteen Hegelund }; 16145d7e5b04SSteen Hegelund 16155d7e5b04SSteen Hegelund static const struct vcap_field es2_mac_etype_keyfield[] = { 16165d7e5b04SSteen Hegelund [VCAP_KF_TYPE] = { 16175d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 16185d7e5b04SSteen Hegelund .offset = 0, 16195d7e5b04SSteen Hegelund .width = 3, 16205d7e5b04SSteen Hegelund }, 16215d7e5b04SSteen Hegelund [VCAP_KF_LOOKUP_FIRST_IS] = { 16225d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 16235d7e5b04SSteen Hegelund .offset = 3, 16245d7e5b04SSteen Hegelund .width = 1, 16255d7e5b04SSteen Hegelund }, 16265d7e5b04SSteen Hegelund [VCAP_KF_L2_MC_IS] = { 16275d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 16285d7e5b04SSteen Hegelund .offset = 13, 16295d7e5b04SSteen Hegelund .width = 1, 16305d7e5b04SSteen Hegelund }, 16315d7e5b04SSteen Hegelund [VCAP_KF_L2_BC_IS] = { 16325d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 16335d7e5b04SSteen Hegelund .offset = 14, 16345d7e5b04SSteen Hegelund .width = 1, 16355d7e5b04SSteen Hegelund }, 16365d7e5b04SSteen Hegelund [VCAP_KF_ISDX_GT0_IS] = { 16375d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 16385d7e5b04SSteen Hegelund .offset = 15, 16395d7e5b04SSteen Hegelund .width = 1, 16405d7e5b04SSteen Hegelund }, 16415d7e5b04SSteen Hegelund [VCAP_KF_ISDX_CLS] = { 16425d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 16435d7e5b04SSteen Hegelund .offset = 16, 16445d7e5b04SSteen Hegelund .width = 12, 16455d7e5b04SSteen Hegelund }, 16465d7e5b04SSteen Hegelund [VCAP_KF_8021Q_VLAN_TAGGED_IS] = { 16475d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 16485d7e5b04SSteen Hegelund .offset = 28, 16495d7e5b04SSteen Hegelund .width = 1, 16505d7e5b04SSteen Hegelund }, 16515d7e5b04SSteen Hegelund [VCAP_KF_8021Q_VID_CLS] = { 16525d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 16535d7e5b04SSteen Hegelund .offset = 29, 16545d7e5b04SSteen Hegelund .width = 13, 16555d7e5b04SSteen Hegelund }, 16565d7e5b04SSteen Hegelund [VCAP_KF_IF_EGR_PORT_MASK_RNG] = { 16575d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 16585d7e5b04SSteen Hegelund .offset = 42, 16595d7e5b04SSteen Hegelund .width = 3, 16605d7e5b04SSteen Hegelund }, 16615d7e5b04SSteen Hegelund [VCAP_KF_IF_EGR_PORT_MASK] = { 16625d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 16635d7e5b04SSteen Hegelund .offset = 45, 16645d7e5b04SSteen Hegelund .width = 32, 16655d7e5b04SSteen Hegelund }, 16665d7e5b04SSteen Hegelund [VCAP_KF_IF_IGR_PORT_SEL] = { 16675d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 16685d7e5b04SSteen Hegelund .offset = 77, 16695d7e5b04SSteen Hegelund .width = 1, 16705d7e5b04SSteen Hegelund }, 16715d7e5b04SSteen Hegelund [VCAP_KF_IF_IGR_PORT] = { 16725d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 16735d7e5b04SSteen Hegelund .offset = 78, 16745d7e5b04SSteen Hegelund .width = 9, 16755d7e5b04SSteen Hegelund }, 16765d7e5b04SSteen Hegelund [VCAP_KF_8021Q_PCP_CLS] = { 16775d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 16785d7e5b04SSteen Hegelund .offset = 87, 16795d7e5b04SSteen Hegelund .width = 3, 16805d7e5b04SSteen Hegelund }, 16815d7e5b04SSteen Hegelund [VCAP_KF_8021Q_DEI_CLS] = { 16825d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 16835d7e5b04SSteen Hegelund .offset = 90, 16845d7e5b04SSteen Hegelund .width = 1, 16855d7e5b04SSteen Hegelund }, 16865d7e5b04SSteen Hegelund [VCAP_KF_COSID_CLS] = { 16875d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 16885d7e5b04SSteen Hegelund .offset = 91, 16895d7e5b04SSteen Hegelund .width = 3, 16905d7e5b04SSteen Hegelund }, 16915d7e5b04SSteen Hegelund [VCAP_KF_L3_DPL_CLS] = { 16925d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 16935d7e5b04SSteen Hegelund .offset = 94, 16945d7e5b04SSteen Hegelund .width = 1, 16955d7e5b04SSteen Hegelund }, 16965d7e5b04SSteen Hegelund [VCAP_KF_L3_RT_IS] = { 16975d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 16985d7e5b04SSteen Hegelund .offset = 95, 16995d7e5b04SSteen Hegelund .width = 1, 17005d7e5b04SSteen Hegelund }, 17015d7e5b04SSteen Hegelund [VCAP_KF_L2_DMAC] = { 17025d7e5b04SSteen Hegelund .type = VCAP_FIELD_U48, 17035d7e5b04SSteen Hegelund .offset = 99, 17045d7e5b04SSteen Hegelund .width = 48, 17055d7e5b04SSteen Hegelund }, 17065d7e5b04SSteen Hegelund [VCAP_KF_L2_SMAC] = { 17075d7e5b04SSteen Hegelund .type = VCAP_FIELD_U48, 17085d7e5b04SSteen Hegelund .offset = 147, 17095d7e5b04SSteen Hegelund .width = 48, 17105d7e5b04SSteen Hegelund }, 17115d7e5b04SSteen Hegelund [VCAP_KF_ETYPE_LEN_IS] = { 17125d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 17135d7e5b04SSteen Hegelund .offset = 195, 17145d7e5b04SSteen Hegelund .width = 1, 17155d7e5b04SSteen Hegelund }, 17165d7e5b04SSteen Hegelund [VCAP_KF_ETYPE] = { 17175d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 17185d7e5b04SSteen Hegelund .offset = 196, 17195d7e5b04SSteen Hegelund .width = 16, 17205d7e5b04SSteen Hegelund }, 17215d7e5b04SSteen Hegelund [VCAP_KF_L2_PAYLOAD_ETYPE] = { 17225d7e5b04SSteen Hegelund .type = VCAP_FIELD_U64, 17235d7e5b04SSteen Hegelund .offset = 212, 17245d7e5b04SSteen Hegelund .width = 64, 17255d7e5b04SSteen Hegelund }, 17265d7e5b04SSteen Hegelund [VCAP_KF_OAM_CCM_CNTS_EQ0] = { 17275d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 17285d7e5b04SSteen Hegelund .offset = 276, 17295d7e5b04SSteen Hegelund .width = 1, 17305d7e5b04SSteen Hegelund }, 17315d7e5b04SSteen Hegelund [VCAP_KF_OAM_Y1731_IS] = { 17325d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 17335d7e5b04SSteen Hegelund .offset = 277, 17345d7e5b04SSteen Hegelund .width = 1, 17355d7e5b04SSteen Hegelund }, 17365d7e5b04SSteen Hegelund }; 17375d7e5b04SSteen Hegelund 17385d7e5b04SSteen Hegelund static const struct vcap_field es2_arp_keyfield[] = { 17395d7e5b04SSteen Hegelund [VCAP_KF_TYPE] = { 17405d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 17415d7e5b04SSteen Hegelund .offset = 0, 17425d7e5b04SSteen Hegelund .width = 3, 17435d7e5b04SSteen Hegelund }, 17445d7e5b04SSteen Hegelund [VCAP_KF_LOOKUP_FIRST_IS] = { 17455d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 17465d7e5b04SSteen Hegelund .offset = 3, 17475d7e5b04SSteen Hegelund .width = 1, 17485d7e5b04SSteen Hegelund }, 17495d7e5b04SSteen Hegelund [VCAP_KF_L2_MC_IS] = { 17505d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 17515d7e5b04SSteen Hegelund .offset = 13, 17525d7e5b04SSteen Hegelund .width = 1, 17535d7e5b04SSteen Hegelund }, 17545d7e5b04SSteen Hegelund [VCAP_KF_L2_BC_IS] = { 17555d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 17565d7e5b04SSteen Hegelund .offset = 14, 17575d7e5b04SSteen Hegelund .width = 1, 17585d7e5b04SSteen Hegelund }, 17595d7e5b04SSteen Hegelund [VCAP_KF_ISDX_GT0_IS] = { 17605d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 17615d7e5b04SSteen Hegelund .offset = 15, 17625d7e5b04SSteen Hegelund .width = 1, 17635d7e5b04SSteen Hegelund }, 17645d7e5b04SSteen Hegelund [VCAP_KF_ISDX_CLS] = { 17655d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 17665d7e5b04SSteen Hegelund .offset = 16, 17675d7e5b04SSteen Hegelund .width = 12, 17685d7e5b04SSteen Hegelund }, 17695d7e5b04SSteen Hegelund [VCAP_KF_8021Q_VLAN_TAGGED_IS] = { 17705d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 17715d7e5b04SSteen Hegelund .offset = 28, 17725d7e5b04SSteen Hegelund .width = 1, 17735d7e5b04SSteen Hegelund }, 17745d7e5b04SSteen Hegelund [VCAP_KF_8021Q_VID_CLS] = { 17755d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 17765d7e5b04SSteen Hegelund .offset = 29, 17775d7e5b04SSteen Hegelund .width = 13, 17785d7e5b04SSteen Hegelund }, 17795d7e5b04SSteen Hegelund [VCAP_KF_IF_EGR_PORT_MASK_RNG] = { 17805d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 17815d7e5b04SSteen Hegelund .offset = 42, 17825d7e5b04SSteen Hegelund .width = 3, 17835d7e5b04SSteen Hegelund }, 17845d7e5b04SSteen Hegelund [VCAP_KF_IF_EGR_PORT_MASK] = { 17855d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 17865d7e5b04SSteen Hegelund .offset = 45, 17875d7e5b04SSteen Hegelund .width = 32, 17885d7e5b04SSteen Hegelund }, 17895d7e5b04SSteen Hegelund [VCAP_KF_IF_IGR_PORT_SEL] = { 17905d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 17915d7e5b04SSteen Hegelund .offset = 77, 17925d7e5b04SSteen Hegelund .width = 1, 17935d7e5b04SSteen Hegelund }, 17945d7e5b04SSteen Hegelund [VCAP_KF_IF_IGR_PORT] = { 17955d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 17965d7e5b04SSteen Hegelund .offset = 78, 17975d7e5b04SSteen Hegelund .width = 9, 17985d7e5b04SSteen Hegelund }, 17995d7e5b04SSteen Hegelund [VCAP_KF_8021Q_PCP_CLS] = { 18005d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 18015d7e5b04SSteen Hegelund .offset = 87, 18025d7e5b04SSteen Hegelund .width = 3, 18035d7e5b04SSteen Hegelund }, 18045d7e5b04SSteen Hegelund [VCAP_KF_8021Q_DEI_CLS] = { 18055d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 18065d7e5b04SSteen Hegelund .offset = 90, 18075d7e5b04SSteen Hegelund .width = 1, 18085d7e5b04SSteen Hegelund }, 18095d7e5b04SSteen Hegelund [VCAP_KF_COSID_CLS] = { 18105d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 18115d7e5b04SSteen Hegelund .offset = 91, 18125d7e5b04SSteen Hegelund .width = 3, 18135d7e5b04SSteen Hegelund }, 18145d7e5b04SSteen Hegelund [VCAP_KF_L3_DPL_CLS] = { 18155d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 18165d7e5b04SSteen Hegelund .offset = 94, 18175d7e5b04SSteen Hegelund .width = 1, 18185d7e5b04SSteen Hegelund }, 18195d7e5b04SSteen Hegelund [VCAP_KF_L2_SMAC] = { 18205d7e5b04SSteen Hegelund .type = VCAP_FIELD_U48, 18215d7e5b04SSteen Hegelund .offset = 98, 18225d7e5b04SSteen Hegelund .width = 48, 18235d7e5b04SSteen Hegelund }, 18245d7e5b04SSteen Hegelund [VCAP_KF_ARP_ADDR_SPACE_OK_IS] = { 18255d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 18265d7e5b04SSteen Hegelund .offset = 146, 18275d7e5b04SSteen Hegelund .width = 1, 18285d7e5b04SSteen Hegelund }, 18295d7e5b04SSteen Hegelund [VCAP_KF_ARP_PROTO_SPACE_OK_IS] = { 18305d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 18315d7e5b04SSteen Hegelund .offset = 147, 18325d7e5b04SSteen Hegelund .width = 1, 18335d7e5b04SSteen Hegelund }, 18345d7e5b04SSteen Hegelund [VCAP_KF_ARP_LEN_OK_IS] = { 18355d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 18365d7e5b04SSteen Hegelund .offset = 148, 18375d7e5b04SSteen Hegelund .width = 1, 18385d7e5b04SSteen Hegelund }, 18395d7e5b04SSteen Hegelund [VCAP_KF_ARP_TGT_MATCH_IS] = { 18405d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 18415d7e5b04SSteen Hegelund .offset = 149, 18425d7e5b04SSteen Hegelund .width = 1, 18435d7e5b04SSteen Hegelund }, 18445d7e5b04SSteen Hegelund [VCAP_KF_ARP_SENDER_MATCH_IS] = { 18455d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 18465d7e5b04SSteen Hegelund .offset = 150, 18475d7e5b04SSteen Hegelund .width = 1, 18485d7e5b04SSteen Hegelund }, 18495d7e5b04SSteen Hegelund [VCAP_KF_ARP_OPCODE_UNKNOWN_IS] = { 18505d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 18515d7e5b04SSteen Hegelund .offset = 151, 18525d7e5b04SSteen Hegelund .width = 1, 18535d7e5b04SSteen Hegelund }, 18545d7e5b04SSteen Hegelund [VCAP_KF_ARP_OPCODE] = { 18555d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 18565d7e5b04SSteen Hegelund .offset = 152, 18575d7e5b04SSteen Hegelund .width = 2, 18585d7e5b04SSteen Hegelund }, 18595d7e5b04SSteen Hegelund [VCAP_KF_L3_IP4_DIP] = { 18605d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 18615d7e5b04SSteen Hegelund .offset = 154, 18625d7e5b04SSteen Hegelund .width = 32, 18635d7e5b04SSteen Hegelund }, 18645d7e5b04SSteen Hegelund [VCAP_KF_L3_IP4_SIP] = { 18655d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 18665d7e5b04SSteen Hegelund .offset = 186, 18675d7e5b04SSteen Hegelund .width = 32, 18685d7e5b04SSteen Hegelund }, 18695d7e5b04SSteen Hegelund [VCAP_KF_L3_DIP_EQ_SIP_IS] = { 18705d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 18715d7e5b04SSteen Hegelund .offset = 218, 18725d7e5b04SSteen Hegelund .width = 1, 18735d7e5b04SSteen Hegelund }, 18745d7e5b04SSteen Hegelund }; 18755d7e5b04SSteen Hegelund 18765d7e5b04SSteen Hegelund static const struct vcap_field es2_ip4_tcp_udp_keyfield[] = { 18775d7e5b04SSteen Hegelund [VCAP_KF_TYPE] = { 18785d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 18795d7e5b04SSteen Hegelund .offset = 0, 18805d7e5b04SSteen Hegelund .width = 3, 18815d7e5b04SSteen Hegelund }, 18825d7e5b04SSteen Hegelund [VCAP_KF_LOOKUP_FIRST_IS] = { 18835d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 18845d7e5b04SSteen Hegelund .offset = 3, 18855d7e5b04SSteen Hegelund .width = 1, 18865d7e5b04SSteen Hegelund }, 18875d7e5b04SSteen Hegelund [VCAP_KF_L2_MC_IS] = { 18885d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 18895d7e5b04SSteen Hegelund .offset = 13, 18905d7e5b04SSteen Hegelund .width = 1, 18915d7e5b04SSteen Hegelund }, 18925d7e5b04SSteen Hegelund [VCAP_KF_L2_BC_IS] = { 18935d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 18945d7e5b04SSteen Hegelund .offset = 14, 18955d7e5b04SSteen Hegelund .width = 1, 18965d7e5b04SSteen Hegelund }, 18975d7e5b04SSteen Hegelund [VCAP_KF_ISDX_GT0_IS] = { 18985d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 18995d7e5b04SSteen Hegelund .offset = 15, 19005d7e5b04SSteen Hegelund .width = 1, 19015d7e5b04SSteen Hegelund }, 19025d7e5b04SSteen Hegelund [VCAP_KF_ISDX_CLS] = { 19035d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 19045d7e5b04SSteen Hegelund .offset = 16, 19055d7e5b04SSteen Hegelund .width = 12, 19065d7e5b04SSteen Hegelund }, 19075d7e5b04SSteen Hegelund [VCAP_KF_8021Q_VLAN_TAGGED_IS] = { 19085d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 19095d7e5b04SSteen Hegelund .offset = 28, 19105d7e5b04SSteen Hegelund .width = 1, 19115d7e5b04SSteen Hegelund }, 19125d7e5b04SSteen Hegelund [VCAP_KF_8021Q_VID_CLS] = { 19135d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 19145d7e5b04SSteen Hegelund .offset = 29, 19155d7e5b04SSteen Hegelund .width = 13, 19165d7e5b04SSteen Hegelund }, 19175d7e5b04SSteen Hegelund [VCAP_KF_IF_EGR_PORT_MASK_RNG] = { 19185d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 19195d7e5b04SSteen Hegelund .offset = 42, 19205d7e5b04SSteen Hegelund .width = 3, 19215d7e5b04SSteen Hegelund }, 19225d7e5b04SSteen Hegelund [VCAP_KF_IF_EGR_PORT_MASK] = { 19235d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 19245d7e5b04SSteen Hegelund .offset = 45, 19255d7e5b04SSteen Hegelund .width = 32, 19265d7e5b04SSteen Hegelund }, 19275d7e5b04SSteen Hegelund [VCAP_KF_IF_IGR_PORT_SEL] = { 19285d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 19295d7e5b04SSteen Hegelund .offset = 77, 19305d7e5b04SSteen Hegelund .width = 1, 19315d7e5b04SSteen Hegelund }, 19325d7e5b04SSteen Hegelund [VCAP_KF_IF_IGR_PORT] = { 19335d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 19345d7e5b04SSteen Hegelund .offset = 78, 19355d7e5b04SSteen Hegelund .width = 9, 19365d7e5b04SSteen Hegelund }, 19375d7e5b04SSteen Hegelund [VCAP_KF_8021Q_PCP_CLS] = { 19385d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 19395d7e5b04SSteen Hegelund .offset = 87, 19405d7e5b04SSteen Hegelund .width = 3, 19415d7e5b04SSteen Hegelund }, 19425d7e5b04SSteen Hegelund [VCAP_KF_8021Q_DEI_CLS] = { 19435d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 19445d7e5b04SSteen Hegelund .offset = 90, 19455d7e5b04SSteen Hegelund .width = 1, 19465d7e5b04SSteen Hegelund }, 19475d7e5b04SSteen Hegelund [VCAP_KF_COSID_CLS] = { 19485d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 19495d7e5b04SSteen Hegelund .offset = 91, 19505d7e5b04SSteen Hegelund .width = 3, 19515d7e5b04SSteen Hegelund }, 19525d7e5b04SSteen Hegelund [VCAP_KF_L3_DPL_CLS] = { 19535d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 19545d7e5b04SSteen Hegelund .offset = 94, 19555d7e5b04SSteen Hegelund .width = 1, 19565d7e5b04SSteen Hegelund }, 19575d7e5b04SSteen Hegelund [VCAP_KF_L3_RT_IS] = { 19585d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 19595d7e5b04SSteen Hegelund .offset = 95, 19605d7e5b04SSteen Hegelund .width = 1, 19615d7e5b04SSteen Hegelund }, 19625d7e5b04SSteen Hegelund [VCAP_KF_IP4_IS] = { 19635d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 19645d7e5b04SSteen Hegelund .offset = 99, 19655d7e5b04SSteen Hegelund .width = 1, 19665d7e5b04SSteen Hegelund }, 19675d7e5b04SSteen Hegelund [VCAP_KF_L3_FRAGMENT_TYPE] = { 19685d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 19695d7e5b04SSteen Hegelund .offset = 100, 19705d7e5b04SSteen Hegelund .width = 2, 19715d7e5b04SSteen Hegelund }, 19725d7e5b04SSteen Hegelund [VCAP_KF_L3_OPTIONS_IS] = { 19735d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 19745d7e5b04SSteen Hegelund .offset = 102, 19755d7e5b04SSteen Hegelund .width = 1, 19765d7e5b04SSteen Hegelund }, 19775d7e5b04SSteen Hegelund [VCAP_KF_L3_TTL_GT0] = { 19785d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 19795d7e5b04SSteen Hegelund .offset = 103, 19805d7e5b04SSteen Hegelund .width = 1, 19815d7e5b04SSteen Hegelund }, 19825d7e5b04SSteen Hegelund [VCAP_KF_L3_TOS] = { 19835d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 19845d7e5b04SSteen Hegelund .offset = 104, 19855d7e5b04SSteen Hegelund .width = 8, 19865d7e5b04SSteen Hegelund }, 19875d7e5b04SSteen Hegelund [VCAP_KF_L3_IP4_DIP] = { 19885d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 19895d7e5b04SSteen Hegelund .offset = 112, 19905d7e5b04SSteen Hegelund .width = 32, 19915d7e5b04SSteen Hegelund }, 19925d7e5b04SSteen Hegelund [VCAP_KF_L3_IP4_SIP] = { 19935d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 19945d7e5b04SSteen Hegelund .offset = 144, 19955d7e5b04SSteen Hegelund .width = 32, 19965d7e5b04SSteen Hegelund }, 19975d7e5b04SSteen Hegelund [VCAP_KF_L3_DIP_EQ_SIP_IS] = { 19985d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 19995d7e5b04SSteen Hegelund .offset = 176, 20005d7e5b04SSteen Hegelund .width = 1, 20015d7e5b04SSteen Hegelund }, 20025d7e5b04SSteen Hegelund [VCAP_KF_TCP_IS] = { 20035d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 20045d7e5b04SSteen Hegelund .offset = 177, 20055d7e5b04SSteen Hegelund .width = 1, 20065d7e5b04SSteen Hegelund }, 20075d7e5b04SSteen Hegelund [VCAP_KF_L4_DPORT] = { 20085d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 20095d7e5b04SSteen Hegelund .offset = 178, 20105d7e5b04SSteen Hegelund .width = 16, 20115d7e5b04SSteen Hegelund }, 20125d7e5b04SSteen Hegelund [VCAP_KF_L4_SPORT] = { 20135d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 20145d7e5b04SSteen Hegelund .offset = 194, 20155d7e5b04SSteen Hegelund .width = 16, 20165d7e5b04SSteen Hegelund }, 20175d7e5b04SSteen Hegelund [VCAP_KF_L4_RNG] = { 20185d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 20195d7e5b04SSteen Hegelund .offset = 210, 20205d7e5b04SSteen Hegelund .width = 16, 20215d7e5b04SSteen Hegelund }, 20225d7e5b04SSteen Hegelund [VCAP_KF_L4_SPORT_EQ_DPORT_IS] = { 20235d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 20245d7e5b04SSteen Hegelund .offset = 226, 20255d7e5b04SSteen Hegelund .width = 1, 20265d7e5b04SSteen Hegelund }, 20275d7e5b04SSteen Hegelund [VCAP_KF_L4_SEQUENCE_EQ0_IS] = { 20285d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 20295d7e5b04SSteen Hegelund .offset = 227, 20305d7e5b04SSteen Hegelund .width = 1, 20315d7e5b04SSteen Hegelund }, 20325d7e5b04SSteen Hegelund [VCAP_KF_L4_FIN] = { 20335d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 20345d7e5b04SSteen Hegelund .offset = 228, 20355d7e5b04SSteen Hegelund .width = 1, 20365d7e5b04SSteen Hegelund }, 20375d7e5b04SSteen Hegelund [VCAP_KF_L4_SYN] = { 20385d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 20395d7e5b04SSteen Hegelund .offset = 229, 20405d7e5b04SSteen Hegelund .width = 1, 20415d7e5b04SSteen Hegelund }, 20425d7e5b04SSteen Hegelund [VCAP_KF_L4_RST] = { 20435d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 20445d7e5b04SSteen Hegelund .offset = 230, 20455d7e5b04SSteen Hegelund .width = 1, 20465d7e5b04SSteen Hegelund }, 20475d7e5b04SSteen Hegelund [VCAP_KF_L4_PSH] = { 20485d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 20495d7e5b04SSteen Hegelund .offset = 231, 20505d7e5b04SSteen Hegelund .width = 1, 20515d7e5b04SSteen Hegelund }, 20525d7e5b04SSteen Hegelund [VCAP_KF_L4_ACK] = { 20535d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 20545d7e5b04SSteen Hegelund .offset = 232, 20555d7e5b04SSteen Hegelund .width = 1, 20565d7e5b04SSteen Hegelund }, 20575d7e5b04SSteen Hegelund [VCAP_KF_L4_URG] = { 20585d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 20595d7e5b04SSteen Hegelund .offset = 233, 20605d7e5b04SSteen Hegelund .width = 1, 20615d7e5b04SSteen Hegelund }, 20625d7e5b04SSteen Hegelund [VCAP_KF_L4_PAYLOAD] = { 20635d7e5b04SSteen Hegelund .type = VCAP_FIELD_U64, 20645d7e5b04SSteen Hegelund .offset = 234, 20655d7e5b04SSteen Hegelund .width = 64, 20665d7e5b04SSteen Hegelund }, 20675d7e5b04SSteen Hegelund }; 20685d7e5b04SSteen Hegelund 20695d7e5b04SSteen Hegelund static const struct vcap_field es2_ip4_other_keyfield[] = { 20705d7e5b04SSteen Hegelund [VCAP_KF_TYPE] = { 20715d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 20725d7e5b04SSteen Hegelund .offset = 0, 20735d7e5b04SSteen Hegelund .width = 3, 20745d7e5b04SSteen Hegelund }, 20755d7e5b04SSteen Hegelund [VCAP_KF_LOOKUP_FIRST_IS] = { 20765d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 20775d7e5b04SSteen Hegelund .offset = 3, 20785d7e5b04SSteen Hegelund .width = 1, 20795d7e5b04SSteen Hegelund }, 20805d7e5b04SSteen Hegelund [VCAP_KF_L2_MC_IS] = { 20815d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 20825d7e5b04SSteen Hegelund .offset = 13, 20835d7e5b04SSteen Hegelund .width = 1, 20845d7e5b04SSteen Hegelund }, 20855d7e5b04SSteen Hegelund [VCAP_KF_L2_BC_IS] = { 20865d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 20875d7e5b04SSteen Hegelund .offset = 14, 20885d7e5b04SSteen Hegelund .width = 1, 20895d7e5b04SSteen Hegelund }, 20905d7e5b04SSteen Hegelund [VCAP_KF_ISDX_GT0_IS] = { 20915d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 20925d7e5b04SSteen Hegelund .offset = 15, 20935d7e5b04SSteen Hegelund .width = 1, 20945d7e5b04SSteen Hegelund }, 20955d7e5b04SSteen Hegelund [VCAP_KF_ISDX_CLS] = { 20965d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 20975d7e5b04SSteen Hegelund .offset = 16, 20985d7e5b04SSteen Hegelund .width = 12, 20995d7e5b04SSteen Hegelund }, 21005d7e5b04SSteen Hegelund [VCAP_KF_8021Q_VLAN_TAGGED_IS] = { 21015d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 21025d7e5b04SSteen Hegelund .offset = 28, 21035d7e5b04SSteen Hegelund .width = 1, 21045d7e5b04SSteen Hegelund }, 21055d7e5b04SSteen Hegelund [VCAP_KF_8021Q_VID_CLS] = { 21065d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 21075d7e5b04SSteen Hegelund .offset = 29, 21085d7e5b04SSteen Hegelund .width = 13, 21095d7e5b04SSteen Hegelund }, 21105d7e5b04SSteen Hegelund [VCAP_KF_IF_EGR_PORT_MASK_RNG] = { 21115d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 21125d7e5b04SSteen Hegelund .offset = 42, 21135d7e5b04SSteen Hegelund .width = 3, 21145d7e5b04SSteen Hegelund }, 21155d7e5b04SSteen Hegelund [VCAP_KF_IF_EGR_PORT_MASK] = { 21165d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 21175d7e5b04SSteen Hegelund .offset = 45, 21185d7e5b04SSteen Hegelund .width = 32, 21195d7e5b04SSteen Hegelund }, 21205d7e5b04SSteen Hegelund [VCAP_KF_IF_IGR_PORT_SEL] = { 21215d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 21225d7e5b04SSteen Hegelund .offset = 77, 21235d7e5b04SSteen Hegelund .width = 1, 21245d7e5b04SSteen Hegelund }, 21255d7e5b04SSteen Hegelund [VCAP_KF_IF_IGR_PORT] = { 21265d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 21275d7e5b04SSteen Hegelund .offset = 78, 21285d7e5b04SSteen Hegelund .width = 9, 21295d7e5b04SSteen Hegelund }, 21305d7e5b04SSteen Hegelund [VCAP_KF_8021Q_PCP_CLS] = { 21315d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 21325d7e5b04SSteen Hegelund .offset = 87, 21335d7e5b04SSteen Hegelund .width = 3, 21345d7e5b04SSteen Hegelund }, 21355d7e5b04SSteen Hegelund [VCAP_KF_8021Q_DEI_CLS] = { 21365d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 21375d7e5b04SSteen Hegelund .offset = 90, 21385d7e5b04SSteen Hegelund .width = 1, 21395d7e5b04SSteen Hegelund }, 21405d7e5b04SSteen Hegelund [VCAP_KF_COSID_CLS] = { 21415d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 21425d7e5b04SSteen Hegelund .offset = 91, 21435d7e5b04SSteen Hegelund .width = 3, 21445d7e5b04SSteen Hegelund }, 21455d7e5b04SSteen Hegelund [VCAP_KF_L3_DPL_CLS] = { 21465d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 21475d7e5b04SSteen Hegelund .offset = 94, 21485d7e5b04SSteen Hegelund .width = 1, 21495d7e5b04SSteen Hegelund }, 21505d7e5b04SSteen Hegelund [VCAP_KF_L3_RT_IS] = { 21515d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 21525d7e5b04SSteen Hegelund .offset = 95, 21535d7e5b04SSteen Hegelund .width = 1, 21545d7e5b04SSteen Hegelund }, 21555d7e5b04SSteen Hegelund [VCAP_KF_IP4_IS] = { 21565d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 21575d7e5b04SSteen Hegelund .offset = 99, 21585d7e5b04SSteen Hegelund .width = 1, 21595d7e5b04SSteen Hegelund }, 21605d7e5b04SSteen Hegelund [VCAP_KF_L3_FRAGMENT_TYPE] = { 21615d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 21625d7e5b04SSteen Hegelund .offset = 100, 21635d7e5b04SSteen Hegelund .width = 2, 21645d7e5b04SSteen Hegelund }, 21655d7e5b04SSteen Hegelund [VCAP_KF_L3_OPTIONS_IS] = { 21665d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 21675d7e5b04SSteen Hegelund .offset = 102, 21685d7e5b04SSteen Hegelund .width = 1, 21695d7e5b04SSteen Hegelund }, 21705d7e5b04SSteen Hegelund [VCAP_KF_L3_TTL_GT0] = { 21715d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 21725d7e5b04SSteen Hegelund .offset = 103, 21735d7e5b04SSteen Hegelund .width = 1, 21745d7e5b04SSteen Hegelund }, 21755d7e5b04SSteen Hegelund [VCAP_KF_L3_TOS] = { 21765d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 21775d7e5b04SSteen Hegelund .offset = 104, 21785d7e5b04SSteen Hegelund .width = 8, 21795d7e5b04SSteen Hegelund }, 21805d7e5b04SSteen Hegelund [VCAP_KF_L3_IP4_DIP] = { 21815d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 21825d7e5b04SSteen Hegelund .offset = 112, 21835d7e5b04SSteen Hegelund .width = 32, 21845d7e5b04SSteen Hegelund }, 21855d7e5b04SSteen Hegelund [VCAP_KF_L3_IP4_SIP] = { 21865d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 21875d7e5b04SSteen Hegelund .offset = 144, 21885d7e5b04SSteen Hegelund .width = 32, 21895d7e5b04SSteen Hegelund }, 21905d7e5b04SSteen Hegelund [VCAP_KF_L3_DIP_EQ_SIP_IS] = { 21915d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 21925d7e5b04SSteen Hegelund .offset = 176, 21935d7e5b04SSteen Hegelund .width = 1, 21945d7e5b04SSteen Hegelund }, 21955d7e5b04SSteen Hegelund [VCAP_KF_L3_IP_PROTO] = { 21965d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 21975d7e5b04SSteen Hegelund .offset = 177, 21985d7e5b04SSteen Hegelund .width = 8, 21995d7e5b04SSteen Hegelund }, 22005d7e5b04SSteen Hegelund [VCAP_KF_L3_PAYLOAD] = { 22015d7e5b04SSteen Hegelund .type = VCAP_FIELD_U112, 22025d7e5b04SSteen Hegelund .offset = 185, 22035d7e5b04SSteen Hegelund .width = 96, 22045d7e5b04SSteen Hegelund }, 22055d7e5b04SSteen Hegelund }; 22065d7e5b04SSteen Hegelund 22075d7e5b04SSteen Hegelund static const struct vcap_field es2_ip_7tuple_keyfield[] = { 22085d7e5b04SSteen Hegelund [VCAP_KF_LOOKUP_FIRST_IS] = { 22095d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 22105d7e5b04SSteen Hegelund .offset = 0, 22115d7e5b04SSteen Hegelund .width = 1, 22125d7e5b04SSteen Hegelund }, 22135d7e5b04SSteen Hegelund [VCAP_KF_L2_MC_IS] = { 22145d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 22155d7e5b04SSteen Hegelund .offset = 10, 22165d7e5b04SSteen Hegelund .width = 1, 22175d7e5b04SSteen Hegelund }, 22185d7e5b04SSteen Hegelund [VCAP_KF_L2_BC_IS] = { 22195d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 22205d7e5b04SSteen Hegelund .offset = 11, 22215d7e5b04SSteen Hegelund .width = 1, 22225d7e5b04SSteen Hegelund }, 22235d7e5b04SSteen Hegelund [VCAP_KF_ISDX_GT0_IS] = { 22245d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 22255d7e5b04SSteen Hegelund .offset = 12, 22265d7e5b04SSteen Hegelund .width = 1, 22275d7e5b04SSteen Hegelund }, 22285d7e5b04SSteen Hegelund [VCAP_KF_ISDX_CLS] = { 22295d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 22305d7e5b04SSteen Hegelund .offset = 13, 22315d7e5b04SSteen Hegelund .width = 12, 22325d7e5b04SSteen Hegelund }, 22335d7e5b04SSteen Hegelund [VCAP_KF_8021Q_VLAN_TAGGED_IS] = { 22345d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 22355d7e5b04SSteen Hegelund .offset = 25, 22365d7e5b04SSteen Hegelund .width = 1, 22375d7e5b04SSteen Hegelund }, 22385d7e5b04SSteen Hegelund [VCAP_KF_8021Q_VID_CLS] = { 22395d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 22405d7e5b04SSteen Hegelund .offset = 26, 22415d7e5b04SSteen Hegelund .width = 13, 22425d7e5b04SSteen Hegelund }, 22435d7e5b04SSteen Hegelund [VCAP_KF_IF_EGR_PORT_MASK_RNG] = { 22445d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 22455d7e5b04SSteen Hegelund .offset = 39, 22465d7e5b04SSteen Hegelund .width = 3, 22475d7e5b04SSteen Hegelund }, 22485d7e5b04SSteen Hegelund [VCAP_KF_IF_EGR_PORT_MASK] = { 22495d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 22505d7e5b04SSteen Hegelund .offset = 42, 22515d7e5b04SSteen Hegelund .width = 32, 22525d7e5b04SSteen Hegelund }, 22535d7e5b04SSteen Hegelund [VCAP_KF_IF_IGR_PORT_SEL] = { 22545d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 22555d7e5b04SSteen Hegelund .offset = 74, 22565d7e5b04SSteen Hegelund .width = 1, 22575d7e5b04SSteen Hegelund }, 22585d7e5b04SSteen Hegelund [VCAP_KF_IF_IGR_PORT] = { 22595d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 22605d7e5b04SSteen Hegelund .offset = 75, 22615d7e5b04SSteen Hegelund .width = 9, 22625d7e5b04SSteen Hegelund }, 22635d7e5b04SSteen Hegelund [VCAP_KF_8021Q_PCP_CLS] = { 22645d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 22655d7e5b04SSteen Hegelund .offset = 84, 22665d7e5b04SSteen Hegelund .width = 3, 22675d7e5b04SSteen Hegelund }, 22685d7e5b04SSteen Hegelund [VCAP_KF_8021Q_DEI_CLS] = { 22695d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 22705d7e5b04SSteen Hegelund .offset = 87, 22715d7e5b04SSteen Hegelund .width = 1, 22725d7e5b04SSteen Hegelund }, 22735d7e5b04SSteen Hegelund [VCAP_KF_COSID_CLS] = { 22745d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 22755d7e5b04SSteen Hegelund .offset = 88, 22765d7e5b04SSteen Hegelund .width = 3, 22775d7e5b04SSteen Hegelund }, 22785d7e5b04SSteen Hegelund [VCAP_KF_L3_DPL_CLS] = { 22795d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 22805d7e5b04SSteen Hegelund .offset = 91, 22815d7e5b04SSteen Hegelund .width = 1, 22825d7e5b04SSteen Hegelund }, 22835d7e5b04SSteen Hegelund [VCAP_KF_L3_RT_IS] = { 22845d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 22855d7e5b04SSteen Hegelund .offset = 92, 22865d7e5b04SSteen Hegelund .width = 1, 22875d7e5b04SSteen Hegelund }, 22885d7e5b04SSteen Hegelund [VCAP_KF_L2_DMAC] = { 22895d7e5b04SSteen Hegelund .type = VCAP_FIELD_U48, 22905d7e5b04SSteen Hegelund .offset = 96, 22915d7e5b04SSteen Hegelund .width = 48, 22925d7e5b04SSteen Hegelund }, 22935d7e5b04SSteen Hegelund [VCAP_KF_L2_SMAC] = { 22945d7e5b04SSteen Hegelund .type = VCAP_FIELD_U48, 22955d7e5b04SSteen Hegelund .offset = 144, 22965d7e5b04SSteen Hegelund .width = 48, 22975d7e5b04SSteen Hegelund }, 22985d7e5b04SSteen Hegelund [VCAP_KF_IP4_IS] = { 22995d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 23005d7e5b04SSteen Hegelund .offset = 192, 23015d7e5b04SSteen Hegelund .width = 1, 23025d7e5b04SSteen Hegelund }, 23035d7e5b04SSteen Hegelund [VCAP_KF_L3_TTL_GT0] = { 23045d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 23055d7e5b04SSteen Hegelund .offset = 193, 23065d7e5b04SSteen Hegelund .width = 1, 23075d7e5b04SSteen Hegelund }, 23085d7e5b04SSteen Hegelund [VCAP_KF_L3_TOS] = { 23095d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 23105d7e5b04SSteen Hegelund .offset = 194, 23115d7e5b04SSteen Hegelund .width = 8, 23125d7e5b04SSteen Hegelund }, 23135d7e5b04SSteen Hegelund [VCAP_KF_L3_IP6_DIP] = { 23145d7e5b04SSteen Hegelund .type = VCAP_FIELD_U128, 23155d7e5b04SSteen Hegelund .offset = 202, 23165d7e5b04SSteen Hegelund .width = 128, 23175d7e5b04SSteen Hegelund }, 23185d7e5b04SSteen Hegelund [VCAP_KF_L3_IP6_SIP] = { 23195d7e5b04SSteen Hegelund .type = VCAP_FIELD_U128, 23205d7e5b04SSteen Hegelund .offset = 330, 23215d7e5b04SSteen Hegelund .width = 128, 23225d7e5b04SSteen Hegelund }, 23235d7e5b04SSteen Hegelund [VCAP_KF_L3_DIP_EQ_SIP_IS] = { 23245d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 23255d7e5b04SSteen Hegelund .offset = 458, 23265d7e5b04SSteen Hegelund .width = 1, 23275d7e5b04SSteen Hegelund }, 23285d7e5b04SSteen Hegelund [VCAP_KF_TCP_UDP_IS] = { 23295d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 23305d7e5b04SSteen Hegelund .offset = 459, 23315d7e5b04SSteen Hegelund .width = 1, 23325d7e5b04SSteen Hegelund }, 23335d7e5b04SSteen Hegelund [VCAP_KF_TCP_IS] = { 23345d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 23355d7e5b04SSteen Hegelund .offset = 460, 23365d7e5b04SSteen Hegelund .width = 1, 23375d7e5b04SSteen Hegelund }, 23385d7e5b04SSteen Hegelund [VCAP_KF_L4_DPORT] = { 23395d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 23405d7e5b04SSteen Hegelund .offset = 461, 23415d7e5b04SSteen Hegelund .width = 16, 23425d7e5b04SSteen Hegelund }, 23435d7e5b04SSteen Hegelund [VCAP_KF_L4_SPORT] = { 23445d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 23455d7e5b04SSteen Hegelund .offset = 477, 23465d7e5b04SSteen Hegelund .width = 16, 23475d7e5b04SSteen Hegelund }, 23485d7e5b04SSteen Hegelund [VCAP_KF_L4_RNG] = { 23495d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 23505d7e5b04SSteen Hegelund .offset = 493, 23515d7e5b04SSteen Hegelund .width = 16, 23525d7e5b04SSteen Hegelund }, 23535d7e5b04SSteen Hegelund [VCAP_KF_L4_SPORT_EQ_DPORT_IS] = { 23545d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 23555d7e5b04SSteen Hegelund .offset = 509, 23565d7e5b04SSteen Hegelund .width = 1, 23575d7e5b04SSteen Hegelund }, 23585d7e5b04SSteen Hegelund [VCAP_KF_L4_SEQUENCE_EQ0_IS] = { 23595d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 23605d7e5b04SSteen Hegelund .offset = 510, 23615d7e5b04SSteen Hegelund .width = 1, 23625d7e5b04SSteen Hegelund }, 23635d7e5b04SSteen Hegelund [VCAP_KF_L4_FIN] = { 23645d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 23655d7e5b04SSteen Hegelund .offset = 511, 23665d7e5b04SSteen Hegelund .width = 1, 23675d7e5b04SSteen Hegelund }, 23685d7e5b04SSteen Hegelund [VCAP_KF_L4_SYN] = { 23695d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 23705d7e5b04SSteen Hegelund .offset = 512, 23715d7e5b04SSteen Hegelund .width = 1, 23725d7e5b04SSteen Hegelund }, 23735d7e5b04SSteen Hegelund [VCAP_KF_L4_RST] = { 23745d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 23755d7e5b04SSteen Hegelund .offset = 513, 23765d7e5b04SSteen Hegelund .width = 1, 23775d7e5b04SSteen Hegelund }, 23785d7e5b04SSteen Hegelund [VCAP_KF_L4_PSH] = { 23795d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 23805d7e5b04SSteen Hegelund .offset = 514, 23815d7e5b04SSteen Hegelund .width = 1, 23825d7e5b04SSteen Hegelund }, 23835d7e5b04SSteen Hegelund [VCAP_KF_L4_ACK] = { 23845d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 23855d7e5b04SSteen Hegelund .offset = 515, 23865d7e5b04SSteen Hegelund .width = 1, 23875d7e5b04SSteen Hegelund }, 23885d7e5b04SSteen Hegelund [VCAP_KF_L4_URG] = { 23895d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 23905d7e5b04SSteen Hegelund .offset = 516, 23915d7e5b04SSteen Hegelund .width = 1, 23925d7e5b04SSteen Hegelund }, 23935d7e5b04SSteen Hegelund [VCAP_KF_L4_PAYLOAD] = { 23945d7e5b04SSteen Hegelund .type = VCAP_FIELD_U64, 23955d7e5b04SSteen Hegelund .offset = 517, 23965d7e5b04SSteen Hegelund .width = 64, 23975d7e5b04SSteen Hegelund }, 23985d7e5b04SSteen Hegelund }; 23995d7e5b04SSteen Hegelund 2400*a5cc98adSSteen Hegelund static const struct vcap_field es2_ip6_std_keyfield[] = { 2401*a5cc98adSSteen Hegelund [VCAP_KF_TYPE] = { 2402*a5cc98adSSteen Hegelund .type = VCAP_FIELD_U32, 2403*a5cc98adSSteen Hegelund .offset = 0, 2404*a5cc98adSSteen Hegelund .width = 3, 2405*a5cc98adSSteen Hegelund }, 2406*a5cc98adSSteen Hegelund [VCAP_KF_LOOKUP_FIRST_IS] = { 2407*a5cc98adSSteen Hegelund .type = VCAP_FIELD_BIT, 2408*a5cc98adSSteen Hegelund .offset = 3, 2409*a5cc98adSSteen Hegelund .width = 1, 2410*a5cc98adSSteen Hegelund }, 2411*a5cc98adSSteen Hegelund [VCAP_KF_L2_MC_IS] = { 2412*a5cc98adSSteen Hegelund .type = VCAP_FIELD_BIT, 2413*a5cc98adSSteen Hegelund .offset = 13, 2414*a5cc98adSSteen Hegelund .width = 1, 2415*a5cc98adSSteen Hegelund }, 2416*a5cc98adSSteen Hegelund [VCAP_KF_L2_BC_IS] = { 2417*a5cc98adSSteen Hegelund .type = VCAP_FIELD_BIT, 2418*a5cc98adSSteen Hegelund .offset = 14, 2419*a5cc98adSSteen Hegelund .width = 1, 2420*a5cc98adSSteen Hegelund }, 2421*a5cc98adSSteen Hegelund [VCAP_KF_ISDX_GT0_IS] = { 2422*a5cc98adSSteen Hegelund .type = VCAP_FIELD_BIT, 2423*a5cc98adSSteen Hegelund .offset = 15, 2424*a5cc98adSSteen Hegelund .width = 1, 2425*a5cc98adSSteen Hegelund }, 2426*a5cc98adSSteen Hegelund [VCAP_KF_ISDX_CLS] = { 2427*a5cc98adSSteen Hegelund .type = VCAP_FIELD_U32, 2428*a5cc98adSSteen Hegelund .offset = 16, 2429*a5cc98adSSteen Hegelund .width = 12, 2430*a5cc98adSSteen Hegelund }, 2431*a5cc98adSSteen Hegelund [VCAP_KF_8021Q_VLAN_TAGGED_IS] = { 2432*a5cc98adSSteen Hegelund .type = VCAP_FIELD_BIT, 2433*a5cc98adSSteen Hegelund .offset = 28, 2434*a5cc98adSSteen Hegelund .width = 1, 2435*a5cc98adSSteen Hegelund }, 2436*a5cc98adSSteen Hegelund [VCAP_KF_8021Q_VID_CLS] = { 2437*a5cc98adSSteen Hegelund .type = VCAP_FIELD_U32, 2438*a5cc98adSSteen Hegelund .offset = 29, 2439*a5cc98adSSteen Hegelund .width = 13, 2440*a5cc98adSSteen Hegelund }, 2441*a5cc98adSSteen Hegelund [VCAP_KF_IF_EGR_PORT_MASK_RNG] = { 2442*a5cc98adSSteen Hegelund .type = VCAP_FIELD_U32, 2443*a5cc98adSSteen Hegelund .offset = 42, 2444*a5cc98adSSteen Hegelund .width = 3, 2445*a5cc98adSSteen Hegelund }, 2446*a5cc98adSSteen Hegelund [VCAP_KF_IF_EGR_PORT_MASK] = { 2447*a5cc98adSSteen Hegelund .type = VCAP_FIELD_U32, 2448*a5cc98adSSteen Hegelund .offset = 45, 2449*a5cc98adSSteen Hegelund .width = 32, 2450*a5cc98adSSteen Hegelund }, 2451*a5cc98adSSteen Hegelund [VCAP_KF_IF_IGR_PORT_SEL] = { 2452*a5cc98adSSteen Hegelund .type = VCAP_FIELD_BIT, 2453*a5cc98adSSteen Hegelund .offset = 77, 2454*a5cc98adSSteen Hegelund .width = 1, 2455*a5cc98adSSteen Hegelund }, 2456*a5cc98adSSteen Hegelund [VCAP_KF_IF_IGR_PORT] = { 2457*a5cc98adSSteen Hegelund .type = VCAP_FIELD_U32, 2458*a5cc98adSSteen Hegelund .offset = 78, 2459*a5cc98adSSteen Hegelund .width = 9, 2460*a5cc98adSSteen Hegelund }, 2461*a5cc98adSSteen Hegelund [VCAP_KF_8021Q_PCP_CLS] = { 2462*a5cc98adSSteen Hegelund .type = VCAP_FIELD_U32, 2463*a5cc98adSSteen Hegelund .offset = 87, 2464*a5cc98adSSteen Hegelund .width = 3, 2465*a5cc98adSSteen Hegelund }, 2466*a5cc98adSSteen Hegelund [VCAP_KF_8021Q_DEI_CLS] = { 2467*a5cc98adSSteen Hegelund .type = VCAP_FIELD_BIT, 2468*a5cc98adSSteen Hegelund .offset = 90, 2469*a5cc98adSSteen Hegelund .width = 1, 2470*a5cc98adSSteen Hegelund }, 2471*a5cc98adSSteen Hegelund [VCAP_KF_COSID_CLS] = { 2472*a5cc98adSSteen Hegelund .type = VCAP_FIELD_U32, 2473*a5cc98adSSteen Hegelund .offset = 91, 2474*a5cc98adSSteen Hegelund .width = 3, 2475*a5cc98adSSteen Hegelund }, 2476*a5cc98adSSteen Hegelund [VCAP_KF_L3_DPL_CLS] = { 2477*a5cc98adSSteen Hegelund .type = VCAP_FIELD_BIT, 2478*a5cc98adSSteen Hegelund .offset = 94, 2479*a5cc98adSSteen Hegelund .width = 1, 2480*a5cc98adSSteen Hegelund }, 2481*a5cc98adSSteen Hegelund [VCAP_KF_L3_RT_IS] = { 2482*a5cc98adSSteen Hegelund .type = VCAP_FIELD_BIT, 2483*a5cc98adSSteen Hegelund .offset = 95, 2484*a5cc98adSSteen Hegelund .width = 1, 2485*a5cc98adSSteen Hegelund }, 2486*a5cc98adSSteen Hegelund [VCAP_KF_L3_TTL_GT0] = { 2487*a5cc98adSSteen Hegelund .type = VCAP_FIELD_BIT, 2488*a5cc98adSSteen Hegelund .offset = 99, 2489*a5cc98adSSteen Hegelund .width = 1, 2490*a5cc98adSSteen Hegelund }, 2491*a5cc98adSSteen Hegelund [VCAP_KF_L3_IP6_SIP] = { 2492*a5cc98adSSteen Hegelund .type = VCAP_FIELD_U128, 2493*a5cc98adSSteen Hegelund .offset = 100, 2494*a5cc98adSSteen Hegelund .width = 128, 2495*a5cc98adSSteen Hegelund }, 2496*a5cc98adSSteen Hegelund [VCAP_KF_L3_DIP_EQ_SIP_IS] = { 2497*a5cc98adSSteen Hegelund .type = VCAP_FIELD_BIT, 2498*a5cc98adSSteen Hegelund .offset = 228, 2499*a5cc98adSSteen Hegelund .width = 1, 2500*a5cc98adSSteen Hegelund }, 2501*a5cc98adSSteen Hegelund [VCAP_KF_L3_IP_PROTO] = { 2502*a5cc98adSSteen Hegelund .type = VCAP_FIELD_U32, 2503*a5cc98adSSteen Hegelund .offset = 229, 2504*a5cc98adSSteen Hegelund .width = 8, 2505*a5cc98adSSteen Hegelund }, 2506*a5cc98adSSteen Hegelund [VCAP_KF_L4_RNG] = { 2507*a5cc98adSSteen Hegelund .type = VCAP_FIELD_U32, 2508*a5cc98adSSteen Hegelund .offset = 237, 2509*a5cc98adSSteen Hegelund .width = 16, 2510*a5cc98adSSteen Hegelund }, 2511*a5cc98adSSteen Hegelund [VCAP_KF_L3_PAYLOAD] = { 2512*a5cc98adSSteen Hegelund .type = VCAP_FIELD_U48, 2513*a5cc98adSSteen Hegelund .offset = 253, 2514*a5cc98adSSteen Hegelund .width = 40, 2515*a5cc98adSSteen Hegelund }, 2516*a5cc98adSSteen Hegelund }; 2517*a5cc98adSSteen Hegelund 25185d7e5b04SSteen Hegelund static const struct vcap_field es2_ip4_vid_keyfield[] = { 25195d7e5b04SSteen Hegelund [VCAP_KF_LOOKUP_FIRST_IS] = { 25205d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 25215d7e5b04SSteen Hegelund .offset = 0, 25225d7e5b04SSteen Hegelund .width = 1, 25235d7e5b04SSteen Hegelund }, 25245d7e5b04SSteen Hegelund [VCAP_KF_ACL_GRP_ID] = { 25255d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 25265d7e5b04SSteen Hegelund .offset = 1, 25275d7e5b04SSteen Hegelund .width = 8, 25285d7e5b04SSteen Hegelund }, 25295d7e5b04SSteen Hegelund [VCAP_KF_PROT_ACTIVE] = { 25305d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 25315d7e5b04SSteen Hegelund .offset = 9, 25325d7e5b04SSteen Hegelund .width = 1, 25335d7e5b04SSteen Hegelund }, 25345d7e5b04SSteen Hegelund [VCAP_KF_L2_MC_IS] = { 25355d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 25365d7e5b04SSteen Hegelund .offset = 10, 25375d7e5b04SSteen Hegelund .width = 1, 25385d7e5b04SSteen Hegelund }, 25395d7e5b04SSteen Hegelund [VCAP_KF_L2_BC_IS] = { 25405d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 25415d7e5b04SSteen Hegelund .offset = 11, 25425d7e5b04SSteen Hegelund .width = 1, 25435d7e5b04SSteen Hegelund }, 25445d7e5b04SSteen Hegelund [VCAP_KF_ISDX_GT0_IS] = { 25455d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 25465d7e5b04SSteen Hegelund .offset = 12, 25475d7e5b04SSteen Hegelund .width = 1, 25485d7e5b04SSteen Hegelund }, 25495d7e5b04SSteen Hegelund [VCAP_KF_ISDX_CLS] = { 25505d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 25515d7e5b04SSteen Hegelund .offset = 13, 25525d7e5b04SSteen Hegelund .width = 12, 25535d7e5b04SSteen Hegelund }, 25545d7e5b04SSteen Hegelund [VCAP_KF_8021Q_VLAN_TAGGED_IS] = { 25555d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 25565d7e5b04SSteen Hegelund .offset = 25, 25575d7e5b04SSteen Hegelund .width = 1, 25585d7e5b04SSteen Hegelund }, 25595d7e5b04SSteen Hegelund [VCAP_KF_8021Q_VID_CLS] = { 25605d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 25615d7e5b04SSteen Hegelund .offset = 26, 25625d7e5b04SSteen Hegelund .width = 13, 25635d7e5b04SSteen Hegelund }, 25645d7e5b04SSteen Hegelund [VCAP_KF_8021Q_PCP_CLS] = { 25655d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 25665d7e5b04SSteen Hegelund .offset = 39, 25675d7e5b04SSteen Hegelund .width = 3, 25685d7e5b04SSteen Hegelund }, 25695d7e5b04SSteen Hegelund [VCAP_KF_8021Q_DEI_CLS] = { 25705d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 25715d7e5b04SSteen Hegelund .offset = 42, 25725d7e5b04SSteen Hegelund .width = 1, 25735d7e5b04SSteen Hegelund }, 25745d7e5b04SSteen Hegelund [VCAP_KF_COSID_CLS] = { 25755d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 25765d7e5b04SSteen Hegelund .offset = 43, 25775d7e5b04SSteen Hegelund .width = 3, 25785d7e5b04SSteen Hegelund }, 25795d7e5b04SSteen Hegelund [VCAP_KF_L3_DPL_CLS] = { 25805d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 25815d7e5b04SSteen Hegelund .offset = 46, 25825d7e5b04SSteen Hegelund .width = 1, 25835d7e5b04SSteen Hegelund }, 25845d7e5b04SSteen Hegelund [VCAP_KF_L3_RT_IS] = { 25855d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 25865d7e5b04SSteen Hegelund .offset = 47, 25875d7e5b04SSteen Hegelund .width = 1, 25885d7e5b04SSteen Hegelund }, 25895d7e5b04SSteen Hegelund [VCAP_KF_ES0_ISDX_KEY_ENA] = { 25905d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 25915d7e5b04SSteen Hegelund .offset = 48, 25925d7e5b04SSteen Hegelund .width = 1, 25935d7e5b04SSteen Hegelund }, 25949d712b8dSSteen Hegelund [VCAP_KF_MIRROR_PROBE] = { 25955d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 25965d7e5b04SSteen Hegelund .offset = 49, 25975d7e5b04SSteen Hegelund .width = 2, 25985d7e5b04SSteen Hegelund }, 25995d7e5b04SSteen Hegelund [VCAP_KF_IP4_IS] = { 26005d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 26015d7e5b04SSteen Hegelund .offset = 51, 26025d7e5b04SSteen Hegelund .width = 1, 26035d7e5b04SSteen Hegelund }, 26045d7e5b04SSteen Hegelund [VCAP_KF_L3_IP4_DIP] = { 26055d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 26065d7e5b04SSteen Hegelund .offset = 52, 26075d7e5b04SSteen Hegelund .width = 32, 26085d7e5b04SSteen Hegelund }, 26095d7e5b04SSteen Hegelund [VCAP_KF_L3_IP4_SIP] = { 26105d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 26115d7e5b04SSteen Hegelund .offset = 84, 26125d7e5b04SSteen Hegelund .width = 32, 26135d7e5b04SSteen Hegelund }, 26145d7e5b04SSteen Hegelund [VCAP_KF_L4_RNG] = { 26155d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 26165d7e5b04SSteen Hegelund .offset = 116, 26175d7e5b04SSteen Hegelund .width = 16, 26185d7e5b04SSteen Hegelund }, 26195d7e5b04SSteen Hegelund }; 26205d7e5b04SSteen Hegelund 26215d7e5b04SSteen Hegelund static const struct vcap_field es2_ip6_vid_keyfield[] = { 26225d7e5b04SSteen Hegelund [VCAP_KF_TYPE] = { 26235d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 26245d7e5b04SSteen Hegelund .offset = 0, 26255d7e5b04SSteen Hegelund .width = 3, 26265d7e5b04SSteen Hegelund }, 26275d7e5b04SSteen Hegelund [VCAP_KF_LOOKUP_FIRST_IS] = { 26285d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 26295d7e5b04SSteen Hegelund .offset = 3, 26305d7e5b04SSteen Hegelund .width = 1, 26315d7e5b04SSteen Hegelund }, 26325d7e5b04SSteen Hegelund [VCAP_KF_ACL_GRP_ID] = { 26335d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 26345d7e5b04SSteen Hegelund .offset = 4, 26355d7e5b04SSteen Hegelund .width = 8, 26365d7e5b04SSteen Hegelund }, 26375d7e5b04SSteen Hegelund [VCAP_KF_PROT_ACTIVE] = { 26385d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 26395d7e5b04SSteen Hegelund .offset = 12, 26405d7e5b04SSteen Hegelund .width = 1, 26415d7e5b04SSteen Hegelund }, 26425d7e5b04SSteen Hegelund [VCAP_KF_L2_MC_IS] = { 26435d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 26445d7e5b04SSteen Hegelund .offset = 13, 26455d7e5b04SSteen Hegelund .width = 1, 26465d7e5b04SSteen Hegelund }, 26475d7e5b04SSteen Hegelund [VCAP_KF_L2_BC_IS] = { 26485d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 26495d7e5b04SSteen Hegelund .offset = 14, 26505d7e5b04SSteen Hegelund .width = 1, 26515d7e5b04SSteen Hegelund }, 26525d7e5b04SSteen Hegelund [VCAP_KF_ISDX_GT0_IS] = { 26535d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 26545d7e5b04SSteen Hegelund .offset = 15, 26555d7e5b04SSteen Hegelund .width = 1, 26565d7e5b04SSteen Hegelund }, 26575d7e5b04SSteen Hegelund [VCAP_KF_ISDX_CLS] = { 26585d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 26595d7e5b04SSteen Hegelund .offset = 16, 26605d7e5b04SSteen Hegelund .width = 12, 26615d7e5b04SSteen Hegelund }, 26625d7e5b04SSteen Hegelund [VCAP_KF_8021Q_VLAN_TAGGED_IS] = { 26635d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 26645d7e5b04SSteen Hegelund .offset = 28, 26655d7e5b04SSteen Hegelund .width = 1, 26665d7e5b04SSteen Hegelund }, 26675d7e5b04SSteen Hegelund [VCAP_KF_8021Q_VID_CLS] = { 26685d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 26695d7e5b04SSteen Hegelund .offset = 29, 26705d7e5b04SSteen Hegelund .width = 13, 26715d7e5b04SSteen Hegelund }, 26725d7e5b04SSteen Hegelund [VCAP_KF_L3_RT_IS] = { 26735d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 26745d7e5b04SSteen Hegelund .offset = 42, 26755d7e5b04SSteen Hegelund .width = 1, 26765d7e5b04SSteen Hegelund }, 26775d7e5b04SSteen Hegelund [VCAP_KF_L3_IP6_DIP] = { 26785d7e5b04SSteen Hegelund .type = VCAP_FIELD_U128, 26795d7e5b04SSteen Hegelund .offset = 43, 26805d7e5b04SSteen Hegelund .width = 128, 26815d7e5b04SSteen Hegelund }, 26825d7e5b04SSteen Hegelund [VCAP_KF_L3_IP6_SIP] = { 26835d7e5b04SSteen Hegelund .type = VCAP_FIELD_U128, 26845d7e5b04SSteen Hegelund .offset = 171, 26855d7e5b04SSteen Hegelund .width = 128, 26865d7e5b04SSteen Hegelund }, 26875d7e5b04SSteen Hegelund }; 26885d7e5b04SSteen Hegelund 26895d7e5b04SSteen Hegelund /* keyfield_set */ 26905d7e5b04SSteen Hegelund static const struct vcap_set is0_keyfield_set[] = { 26915d7e5b04SSteen Hegelund [VCAP_KFS_LL_FULL] = { 26925d7e5b04SSteen Hegelund .type_id = 0, 26935d7e5b04SSteen Hegelund .sw_per_item = 6, 26945d7e5b04SSteen Hegelund .sw_cnt = 2, 26955d7e5b04SSteen Hegelund }, 26965d7e5b04SSteen Hegelund [VCAP_KFS_NORMAL_7TUPLE] = { 26975d7e5b04SSteen Hegelund .type_id = 0, 26985d7e5b04SSteen Hegelund .sw_per_item = 12, 26995d7e5b04SSteen Hegelund .sw_cnt = 1, 27005d7e5b04SSteen Hegelund }, 27015d7e5b04SSteen Hegelund [VCAP_KFS_NORMAL_5TUPLE_IP4] = { 27025d7e5b04SSteen Hegelund .type_id = 2, 27035d7e5b04SSteen Hegelund .sw_per_item = 6, 27045d7e5b04SSteen Hegelund .sw_cnt = 2, 27055d7e5b04SSteen Hegelund }, 27065d7e5b04SSteen Hegelund [VCAP_KFS_PURE_5TUPLE_IP4] = { 27075d7e5b04SSteen Hegelund .type_id = 2, 27085d7e5b04SSteen Hegelund .sw_per_item = 3, 27095d7e5b04SSteen Hegelund .sw_cnt = 4, 27105d7e5b04SSteen Hegelund }, 27115d7e5b04SSteen Hegelund [VCAP_KFS_ETAG] = { 27125d7e5b04SSteen Hegelund .type_id = 3, 27135d7e5b04SSteen Hegelund .sw_per_item = 2, 27145d7e5b04SSteen Hegelund .sw_cnt = 6, 27155d7e5b04SSteen Hegelund }, 27165d7e5b04SSteen Hegelund }; 27175d7e5b04SSteen Hegelund 27185d7e5b04SSteen Hegelund static const struct vcap_set is2_keyfield_set[] = { 27195d7e5b04SSteen Hegelund [VCAP_KFS_MAC_ETYPE] = { 27205d7e5b04SSteen Hegelund .type_id = 0, 27215d7e5b04SSteen Hegelund .sw_per_item = 6, 27225d7e5b04SSteen Hegelund .sw_cnt = 2, 27235d7e5b04SSteen Hegelund }, 27245d7e5b04SSteen Hegelund [VCAP_KFS_ARP] = { 27255d7e5b04SSteen Hegelund .type_id = 3, 27265d7e5b04SSteen Hegelund .sw_per_item = 6, 27275d7e5b04SSteen Hegelund .sw_cnt = 2, 27285d7e5b04SSteen Hegelund }, 27295d7e5b04SSteen Hegelund [VCAP_KFS_IP4_TCP_UDP] = { 27305d7e5b04SSteen Hegelund .type_id = 4, 27315d7e5b04SSteen Hegelund .sw_per_item = 6, 27325d7e5b04SSteen Hegelund .sw_cnt = 2, 27335d7e5b04SSteen Hegelund }, 27345d7e5b04SSteen Hegelund [VCAP_KFS_IP4_OTHER] = { 27355d7e5b04SSteen Hegelund .type_id = 5, 27365d7e5b04SSteen Hegelund .sw_per_item = 6, 27375d7e5b04SSteen Hegelund .sw_cnt = 2, 27385d7e5b04SSteen Hegelund }, 27395d7e5b04SSteen Hegelund [VCAP_KFS_IP6_STD] = { 27405d7e5b04SSteen Hegelund .type_id = 6, 27415d7e5b04SSteen Hegelund .sw_per_item = 6, 27425d7e5b04SSteen Hegelund .sw_cnt = 2, 27435d7e5b04SSteen Hegelund }, 27445d7e5b04SSteen Hegelund [VCAP_KFS_IP_7TUPLE] = { 27455d7e5b04SSteen Hegelund .type_id = 1, 27465d7e5b04SSteen Hegelund .sw_per_item = 12, 27475d7e5b04SSteen Hegelund .sw_cnt = 1, 27485d7e5b04SSteen Hegelund }, 27495d7e5b04SSteen Hegelund }; 27505d7e5b04SSteen Hegelund 27515d7e5b04SSteen Hegelund static const struct vcap_set es2_keyfield_set[] = { 27525d7e5b04SSteen Hegelund [VCAP_KFS_MAC_ETYPE] = { 27535d7e5b04SSteen Hegelund .type_id = 0, 27545d7e5b04SSteen Hegelund .sw_per_item = 6, 27555d7e5b04SSteen Hegelund .sw_cnt = 2, 27565d7e5b04SSteen Hegelund }, 27575d7e5b04SSteen Hegelund [VCAP_KFS_ARP] = { 27585d7e5b04SSteen Hegelund .type_id = 1, 27595d7e5b04SSteen Hegelund .sw_per_item = 6, 27605d7e5b04SSteen Hegelund .sw_cnt = 2, 27615d7e5b04SSteen Hegelund }, 27625d7e5b04SSteen Hegelund [VCAP_KFS_IP4_TCP_UDP] = { 27635d7e5b04SSteen Hegelund .type_id = 2, 27645d7e5b04SSteen Hegelund .sw_per_item = 6, 27655d7e5b04SSteen Hegelund .sw_cnt = 2, 27665d7e5b04SSteen Hegelund }, 27675d7e5b04SSteen Hegelund [VCAP_KFS_IP4_OTHER] = { 27685d7e5b04SSteen Hegelund .type_id = 3, 27695d7e5b04SSteen Hegelund .sw_per_item = 6, 27705d7e5b04SSteen Hegelund .sw_cnt = 2, 27715d7e5b04SSteen Hegelund }, 27725d7e5b04SSteen Hegelund [VCAP_KFS_IP_7TUPLE] = { 27735d7e5b04SSteen Hegelund .type_id = -1, 27745d7e5b04SSteen Hegelund .sw_per_item = 12, 27755d7e5b04SSteen Hegelund .sw_cnt = 1, 27765d7e5b04SSteen Hegelund }, 2777*a5cc98adSSteen Hegelund [VCAP_KFS_IP6_STD] = { 2778*a5cc98adSSteen Hegelund .type_id = 4, 2779*a5cc98adSSteen Hegelund .sw_per_item = 6, 2780*a5cc98adSSteen Hegelund .sw_cnt = 2, 2781*a5cc98adSSteen Hegelund }, 27825d7e5b04SSteen Hegelund [VCAP_KFS_IP4_VID] = { 27835d7e5b04SSteen Hegelund .type_id = -1, 27845d7e5b04SSteen Hegelund .sw_per_item = 3, 27855d7e5b04SSteen Hegelund .sw_cnt = 4, 27865d7e5b04SSteen Hegelund }, 27875d7e5b04SSteen Hegelund [VCAP_KFS_IP6_VID] = { 27885d7e5b04SSteen Hegelund .type_id = 5, 27895d7e5b04SSteen Hegelund .sw_per_item = 6, 27905d7e5b04SSteen Hegelund .sw_cnt = 2, 27915d7e5b04SSteen Hegelund }, 27925d7e5b04SSteen Hegelund }; 27935d7e5b04SSteen Hegelund 27945d7e5b04SSteen Hegelund /* keyfield_set map */ 27955d7e5b04SSteen Hegelund static const struct vcap_field *is0_keyfield_set_map[] = { 27965d7e5b04SSteen Hegelund [VCAP_KFS_LL_FULL] = is0_ll_full_keyfield, 27975d7e5b04SSteen Hegelund [VCAP_KFS_NORMAL_7TUPLE] = is0_normal_7tuple_keyfield, 27985d7e5b04SSteen Hegelund [VCAP_KFS_NORMAL_5TUPLE_IP4] = is0_normal_5tuple_ip4_keyfield, 27995d7e5b04SSteen Hegelund [VCAP_KFS_PURE_5TUPLE_IP4] = is0_pure_5tuple_ip4_keyfield, 28005d7e5b04SSteen Hegelund [VCAP_KFS_ETAG] = is0_etag_keyfield, 28015d7e5b04SSteen Hegelund }; 28025d7e5b04SSteen Hegelund 28035d7e5b04SSteen Hegelund static const struct vcap_field *is2_keyfield_set_map[] = { 28045d7e5b04SSteen Hegelund [VCAP_KFS_MAC_ETYPE] = is2_mac_etype_keyfield, 28055d7e5b04SSteen Hegelund [VCAP_KFS_ARP] = is2_arp_keyfield, 28065d7e5b04SSteen Hegelund [VCAP_KFS_IP4_TCP_UDP] = is2_ip4_tcp_udp_keyfield, 28075d7e5b04SSteen Hegelund [VCAP_KFS_IP4_OTHER] = is2_ip4_other_keyfield, 28085d7e5b04SSteen Hegelund [VCAP_KFS_IP6_STD] = is2_ip6_std_keyfield, 28095d7e5b04SSteen Hegelund [VCAP_KFS_IP_7TUPLE] = is2_ip_7tuple_keyfield, 28105d7e5b04SSteen Hegelund }; 28115d7e5b04SSteen Hegelund 28125d7e5b04SSteen Hegelund static const struct vcap_field *es2_keyfield_set_map[] = { 28135d7e5b04SSteen Hegelund [VCAP_KFS_MAC_ETYPE] = es2_mac_etype_keyfield, 28145d7e5b04SSteen Hegelund [VCAP_KFS_ARP] = es2_arp_keyfield, 28155d7e5b04SSteen Hegelund [VCAP_KFS_IP4_TCP_UDP] = es2_ip4_tcp_udp_keyfield, 28165d7e5b04SSteen Hegelund [VCAP_KFS_IP4_OTHER] = es2_ip4_other_keyfield, 28175d7e5b04SSteen Hegelund [VCAP_KFS_IP_7TUPLE] = es2_ip_7tuple_keyfield, 2818*a5cc98adSSteen Hegelund [VCAP_KFS_IP6_STD] = es2_ip6_std_keyfield, 28195d7e5b04SSteen Hegelund [VCAP_KFS_IP4_VID] = es2_ip4_vid_keyfield, 28205d7e5b04SSteen Hegelund [VCAP_KFS_IP6_VID] = es2_ip6_vid_keyfield, 28215d7e5b04SSteen Hegelund }; 28225d7e5b04SSteen Hegelund 28235d7e5b04SSteen Hegelund /* keyfield_set map sizes */ 28245d7e5b04SSteen Hegelund static int is0_keyfield_set_map_size[] = { 28255d7e5b04SSteen Hegelund [VCAP_KFS_LL_FULL] = ARRAY_SIZE(is0_ll_full_keyfield), 28265d7e5b04SSteen Hegelund [VCAP_KFS_NORMAL_7TUPLE] = ARRAY_SIZE(is0_normal_7tuple_keyfield), 28275d7e5b04SSteen Hegelund [VCAP_KFS_NORMAL_5TUPLE_IP4] = ARRAY_SIZE(is0_normal_5tuple_ip4_keyfield), 28285d7e5b04SSteen Hegelund [VCAP_KFS_PURE_5TUPLE_IP4] = ARRAY_SIZE(is0_pure_5tuple_ip4_keyfield), 28295d7e5b04SSteen Hegelund [VCAP_KFS_ETAG] = ARRAY_SIZE(is0_etag_keyfield), 28305d7e5b04SSteen Hegelund }; 28315d7e5b04SSteen Hegelund 28325d7e5b04SSteen Hegelund static int is2_keyfield_set_map_size[] = { 28335d7e5b04SSteen Hegelund [VCAP_KFS_MAC_ETYPE] = ARRAY_SIZE(is2_mac_etype_keyfield), 28345d7e5b04SSteen Hegelund [VCAP_KFS_ARP] = ARRAY_SIZE(is2_arp_keyfield), 28355d7e5b04SSteen Hegelund [VCAP_KFS_IP4_TCP_UDP] = ARRAY_SIZE(is2_ip4_tcp_udp_keyfield), 28365d7e5b04SSteen Hegelund [VCAP_KFS_IP4_OTHER] = ARRAY_SIZE(is2_ip4_other_keyfield), 28375d7e5b04SSteen Hegelund [VCAP_KFS_IP6_STD] = ARRAY_SIZE(is2_ip6_std_keyfield), 28385d7e5b04SSteen Hegelund [VCAP_KFS_IP_7TUPLE] = ARRAY_SIZE(is2_ip_7tuple_keyfield), 28395d7e5b04SSteen Hegelund }; 28405d7e5b04SSteen Hegelund 28415d7e5b04SSteen Hegelund static int es2_keyfield_set_map_size[] = { 28425d7e5b04SSteen Hegelund [VCAP_KFS_MAC_ETYPE] = ARRAY_SIZE(es2_mac_etype_keyfield), 28435d7e5b04SSteen Hegelund [VCAP_KFS_ARP] = ARRAY_SIZE(es2_arp_keyfield), 28445d7e5b04SSteen Hegelund [VCAP_KFS_IP4_TCP_UDP] = ARRAY_SIZE(es2_ip4_tcp_udp_keyfield), 28455d7e5b04SSteen Hegelund [VCAP_KFS_IP4_OTHER] = ARRAY_SIZE(es2_ip4_other_keyfield), 28465d7e5b04SSteen Hegelund [VCAP_KFS_IP_7TUPLE] = ARRAY_SIZE(es2_ip_7tuple_keyfield), 2847*a5cc98adSSteen Hegelund [VCAP_KFS_IP6_STD] = ARRAY_SIZE(es2_ip6_std_keyfield), 28485d7e5b04SSteen Hegelund [VCAP_KFS_IP4_VID] = ARRAY_SIZE(es2_ip4_vid_keyfield), 28495d7e5b04SSteen Hegelund [VCAP_KFS_IP6_VID] = ARRAY_SIZE(es2_ip6_vid_keyfield), 28505d7e5b04SSteen Hegelund }; 28515d7e5b04SSteen Hegelund 28525d7e5b04SSteen Hegelund /* actionfields */ 28535d7e5b04SSteen Hegelund static const struct vcap_field is0_classification_actionfield[] = { 28545d7e5b04SSteen Hegelund [VCAP_AF_TYPE] = { 28555d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 28565d7e5b04SSteen Hegelund .offset = 0, 28575d7e5b04SSteen Hegelund .width = 1, 28585d7e5b04SSteen Hegelund }, 28595d7e5b04SSteen Hegelund [VCAP_AF_DSCP_ENA] = { 28605d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 28615d7e5b04SSteen Hegelund .offset = 1, 28625d7e5b04SSteen Hegelund .width = 1, 28635d7e5b04SSteen Hegelund }, 28645d7e5b04SSteen Hegelund [VCAP_AF_DSCP_VAL] = { 28655d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 28665d7e5b04SSteen Hegelund .offset = 2, 28675d7e5b04SSteen Hegelund .width = 6, 28685d7e5b04SSteen Hegelund }, 28695d7e5b04SSteen Hegelund [VCAP_AF_QOS_ENA] = { 28705d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 28715d7e5b04SSteen Hegelund .offset = 12, 28725d7e5b04SSteen Hegelund .width = 1, 28735d7e5b04SSteen Hegelund }, 28745d7e5b04SSteen Hegelund [VCAP_AF_QOS_VAL] = { 28755d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 28765d7e5b04SSteen Hegelund .offset = 13, 28775d7e5b04SSteen Hegelund .width = 3, 28785d7e5b04SSteen Hegelund }, 28795d7e5b04SSteen Hegelund [VCAP_AF_DP_ENA] = { 28805d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 28815d7e5b04SSteen Hegelund .offset = 16, 28825d7e5b04SSteen Hegelund .width = 1, 28835d7e5b04SSteen Hegelund }, 28845d7e5b04SSteen Hegelund [VCAP_AF_DP_VAL] = { 28855d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 28865d7e5b04SSteen Hegelund .offset = 17, 28875d7e5b04SSteen Hegelund .width = 2, 28885d7e5b04SSteen Hegelund }, 28895d7e5b04SSteen Hegelund [VCAP_AF_DEI_ENA] = { 28905d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 28915d7e5b04SSteen Hegelund .offset = 19, 28925d7e5b04SSteen Hegelund .width = 1, 28935d7e5b04SSteen Hegelund }, 28945d7e5b04SSteen Hegelund [VCAP_AF_DEI_VAL] = { 28955d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 28965d7e5b04SSteen Hegelund .offset = 20, 28975d7e5b04SSteen Hegelund .width = 1, 28985d7e5b04SSteen Hegelund }, 28995d7e5b04SSteen Hegelund [VCAP_AF_PCP_ENA] = { 29005d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 29015d7e5b04SSteen Hegelund .offset = 21, 29025d7e5b04SSteen Hegelund .width = 1, 29035d7e5b04SSteen Hegelund }, 29045d7e5b04SSteen Hegelund [VCAP_AF_PCP_VAL] = { 29055d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 29065d7e5b04SSteen Hegelund .offset = 22, 29075d7e5b04SSteen Hegelund .width = 3, 29085d7e5b04SSteen Hegelund }, 29095d7e5b04SSteen Hegelund [VCAP_AF_MAP_LOOKUP_SEL] = { 29105d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 29115d7e5b04SSteen Hegelund .offset = 25, 29125d7e5b04SSteen Hegelund .width = 2, 29135d7e5b04SSteen Hegelund }, 29145d7e5b04SSteen Hegelund [VCAP_AF_MAP_KEY] = { 29155d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 29165d7e5b04SSteen Hegelund .offset = 27, 29175d7e5b04SSteen Hegelund .width = 3, 29185d7e5b04SSteen Hegelund }, 29195d7e5b04SSteen Hegelund [VCAP_AF_MAP_IDX] = { 29205d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 29215d7e5b04SSteen Hegelund .offset = 30, 29225d7e5b04SSteen Hegelund .width = 9, 29235d7e5b04SSteen Hegelund }, 29245d7e5b04SSteen Hegelund [VCAP_AF_CLS_VID_SEL] = { 29255d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 29265d7e5b04SSteen Hegelund .offset = 39, 29275d7e5b04SSteen Hegelund .width = 3, 29285d7e5b04SSteen Hegelund }, 29295d7e5b04SSteen Hegelund [VCAP_AF_VID_VAL] = { 29305d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 29315d7e5b04SSteen Hegelund .offset = 45, 29325d7e5b04SSteen Hegelund .width = 13, 29335d7e5b04SSteen Hegelund }, 29345d7e5b04SSteen Hegelund [VCAP_AF_ISDX_ADD_REPLACE_SEL] = { 29355d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 29365d7e5b04SSteen Hegelund .offset = 68, 29375d7e5b04SSteen Hegelund .width = 1, 29385d7e5b04SSteen Hegelund }, 29395d7e5b04SSteen Hegelund [VCAP_AF_ISDX_VAL] = { 29405d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 29415d7e5b04SSteen Hegelund .offset = 69, 29425d7e5b04SSteen Hegelund .width = 12, 29435d7e5b04SSteen Hegelund }, 29445d7e5b04SSteen Hegelund [VCAP_AF_PAG_OVERRIDE_MASK] = { 29455d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 29465d7e5b04SSteen Hegelund .offset = 109, 29475d7e5b04SSteen Hegelund .width = 8, 29485d7e5b04SSteen Hegelund }, 29495d7e5b04SSteen Hegelund [VCAP_AF_PAG_VAL] = { 29505d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 29515d7e5b04SSteen Hegelund .offset = 117, 29525d7e5b04SSteen Hegelund .width = 8, 29535d7e5b04SSteen Hegelund }, 29545d7e5b04SSteen Hegelund [VCAP_AF_NXT_IDX_CTRL] = { 29555d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 29565d7e5b04SSteen Hegelund .offset = 171, 29575d7e5b04SSteen Hegelund .width = 3, 29585d7e5b04SSteen Hegelund }, 29595d7e5b04SSteen Hegelund [VCAP_AF_NXT_IDX] = { 29605d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 29615d7e5b04SSteen Hegelund .offset = 174, 29625d7e5b04SSteen Hegelund .width = 12, 29635d7e5b04SSteen Hegelund }, 29645d7e5b04SSteen Hegelund }; 29655d7e5b04SSteen Hegelund 29665d7e5b04SSteen Hegelund static const struct vcap_field is0_full_actionfield[] = { 29675d7e5b04SSteen Hegelund [VCAP_AF_DSCP_ENA] = { 29685d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 29695d7e5b04SSteen Hegelund .offset = 0, 29705d7e5b04SSteen Hegelund .width = 1, 29715d7e5b04SSteen Hegelund }, 29725d7e5b04SSteen Hegelund [VCAP_AF_DSCP_VAL] = { 29735d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 29745d7e5b04SSteen Hegelund .offset = 1, 29755d7e5b04SSteen Hegelund .width = 6, 29765d7e5b04SSteen Hegelund }, 29775d7e5b04SSteen Hegelund [VCAP_AF_QOS_ENA] = { 29785d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 29795d7e5b04SSteen Hegelund .offset = 11, 29805d7e5b04SSteen Hegelund .width = 1, 29815d7e5b04SSteen Hegelund }, 29825d7e5b04SSteen Hegelund [VCAP_AF_QOS_VAL] = { 29835d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 29845d7e5b04SSteen Hegelund .offset = 12, 29855d7e5b04SSteen Hegelund .width = 3, 29865d7e5b04SSteen Hegelund }, 29875d7e5b04SSteen Hegelund [VCAP_AF_DP_ENA] = { 29885d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 29895d7e5b04SSteen Hegelund .offset = 15, 29905d7e5b04SSteen Hegelund .width = 1, 29915d7e5b04SSteen Hegelund }, 29925d7e5b04SSteen Hegelund [VCAP_AF_DP_VAL] = { 29935d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 29945d7e5b04SSteen Hegelund .offset = 16, 29955d7e5b04SSteen Hegelund .width = 2, 29965d7e5b04SSteen Hegelund }, 29975d7e5b04SSteen Hegelund [VCAP_AF_DEI_ENA] = { 29985d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 29995d7e5b04SSteen Hegelund .offset = 18, 30005d7e5b04SSteen Hegelund .width = 1, 30015d7e5b04SSteen Hegelund }, 30025d7e5b04SSteen Hegelund [VCAP_AF_DEI_VAL] = { 30035d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 30045d7e5b04SSteen Hegelund .offset = 19, 30055d7e5b04SSteen Hegelund .width = 1, 30065d7e5b04SSteen Hegelund }, 30075d7e5b04SSteen Hegelund [VCAP_AF_PCP_ENA] = { 30085d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 30095d7e5b04SSteen Hegelund .offset = 20, 30105d7e5b04SSteen Hegelund .width = 1, 30115d7e5b04SSteen Hegelund }, 30125d7e5b04SSteen Hegelund [VCAP_AF_PCP_VAL] = { 30135d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 30145d7e5b04SSteen Hegelund .offset = 21, 30155d7e5b04SSteen Hegelund .width = 3, 30165d7e5b04SSteen Hegelund }, 30175d7e5b04SSteen Hegelund [VCAP_AF_MAP_LOOKUP_SEL] = { 30185d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 30195d7e5b04SSteen Hegelund .offset = 24, 30205d7e5b04SSteen Hegelund .width = 2, 30215d7e5b04SSteen Hegelund }, 30225d7e5b04SSteen Hegelund [VCAP_AF_MAP_KEY] = { 30235d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 30245d7e5b04SSteen Hegelund .offset = 26, 30255d7e5b04SSteen Hegelund .width = 3, 30265d7e5b04SSteen Hegelund }, 30275d7e5b04SSteen Hegelund [VCAP_AF_MAP_IDX] = { 30285d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 30295d7e5b04SSteen Hegelund .offset = 29, 30305d7e5b04SSteen Hegelund .width = 9, 30315d7e5b04SSteen Hegelund }, 30325d7e5b04SSteen Hegelund [VCAP_AF_CLS_VID_SEL] = { 30335d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 30345d7e5b04SSteen Hegelund .offset = 38, 30355d7e5b04SSteen Hegelund .width = 3, 30365d7e5b04SSteen Hegelund }, 30375d7e5b04SSteen Hegelund [VCAP_AF_VID_VAL] = { 30385d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 30395d7e5b04SSteen Hegelund .offset = 44, 30405d7e5b04SSteen Hegelund .width = 13, 30415d7e5b04SSteen Hegelund }, 30425d7e5b04SSteen Hegelund [VCAP_AF_ISDX_ADD_REPLACE_SEL] = { 30435d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 30445d7e5b04SSteen Hegelund .offset = 67, 30455d7e5b04SSteen Hegelund .width = 1, 30465d7e5b04SSteen Hegelund }, 30475d7e5b04SSteen Hegelund [VCAP_AF_ISDX_VAL] = { 30485d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 30495d7e5b04SSteen Hegelund .offset = 68, 30505d7e5b04SSteen Hegelund .width = 12, 30515d7e5b04SSteen Hegelund }, 30525d7e5b04SSteen Hegelund [VCAP_AF_MASK_MODE] = { 30535d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 30545d7e5b04SSteen Hegelund .offset = 80, 30555d7e5b04SSteen Hegelund .width = 3, 30565d7e5b04SSteen Hegelund }, 30575d7e5b04SSteen Hegelund [VCAP_AF_PORT_MASK] = { 30585d7e5b04SSteen Hegelund .type = VCAP_FIELD_U72, 30595d7e5b04SSteen Hegelund .offset = 83, 30605d7e5b04SSteen Hegelund .width = 65, 30615d7e5b04SSteen Hegelund }, 30625d7e5b04SSteen Hegelund [VCAP_AF_PAG_OVERRIDE_MASK] = { 30635d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 30645d7e5b04SSteen Hegelund .offset = 204, 30655d7e5b04SSteen Hegelund .width = 8, 30665d7e5b04SSteen Hegelund }, 30675d7e5b04SSteen Hegelund [VCAP_AF_PAG_VAL] = { 30685d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 30695d7e5b04SSteen Hegelund .offset = 212, 30705d7e5b04SSteen Hegelund .width = 8, 30715d7e5b04SSteen Hegelund }, 30725d7e5b04SSteen Hegelund [VCAP_AF_NXT_IDX_CTRL] = { 30735d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 30745d7e5b04SSteen Hegelund .offset = 298, 30755d7e5b04SSteen Hegelund .width = 3, 30765d7e5b04SSteen Hegelund }, 30775d7e5b04SSteen Hegelund [VCAP_AF_NXT_IDX] = { 30785d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 30795d7e5b04SSteen Hegelund .offset = 301, 30805d7e5b04SSteen Hegelund .width = 12, 30815d7e5b04SSteen Hegelund }, 30825d7e5b04SSteen Hegelund }; 30835d7e5b04SSteen Hegelund 30845d7e5b04SSteen Hegelund static const struct vcap_field is0_class_reduced_actionfield[] = { 30855d7e5b04SSteen Hegelund [VCAP_AF_TYPE] = { 30865d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 30875d7e5b04SSteen Hegelund .offset = 0, 30885d7e5b04SSteen Hegelund .width = 1, 30895d7e5b04SSteen Hegelund }, 30905d7e5b04SSteen Hegelund [VCAP_AF_QOS_ENA] = { 30915d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 30925d7e5b04SSteen Hegelund .offset = 5, 30935d7e5b04SSteen Hegelund .width = 1, 30945d7e5b04SSteen Hegelund }, 30955d7e5b04SSteen Hegelund [VCAP_AF_QOS_VAL] = { 30965d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 30975d7e5b04SSteen Hegelund .offset = 6, 30985d7e5b04SSteen Hegelund .width = 3, 30995d7e5b04SSteen Hegelund }, 31005d7e5b04SSteen Hegelund [VCAP_AF_DP_ENA] = { 31015d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 31025d7e5b04SSteen Hegelund .offset = 9, 31035d7e5b04SSteen Hegelund .width = 1, 31045d7e5b04SSteen Hegelund }, 31055d7e5b04SSteen Hegelund [VCAP_AF_DP_VAL] = { 31065d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 31075d7e5b04SSteen Hegelund .offset = 10, 31085d7e5b04SSteen Hegelund .width = 2, 31095d7e5b04SSteen Hegelund }, 31105d7e5b04SSteen Hegelund [VCAP_AF_MAP_LOOKUP_SEL] = { 31115d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 31125d7e5b04SSteen Hegelund .offset = 12, 31135d7e5b04SSteen Hegelund .width = 2, 31145d7e5b04SSteen Hegelund }, 31155d7e5b04SSteen Hegelund [VCAP_AF_MAP_KEY] = { 31165d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 31175d7e5b04SSteen Hegelund .offset = 14, 31185d7e5b04SSteen Hegelund .width = 3, 31195d7e5b04SSteen Hegelund }, 31205d7e5b04SSteen Hegelund [VCAP_AF_CLS_VID_SEL] = { 31215d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 31225d7e5b04SSteen Hegelund .offset = 17, 31235d7e5b04SSteen Hegelund .width = 3, 31245d7e5b04SSteen Hegelund }, 31255d7e5b04SSteen Hegelund [VCAP_AF_VID_VAL] = { 31265d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 31275d7e5b04SSteen Hegelund .offset = 23, 31285d7e5b04SSteen Hegelund .width = 13, 31295d7e5b04SSteen Hegelund }, 31305d7e5b04SSteen Hegelund [VCAP_AF_ISDX_ADD_REPLACE_SEL] = { 31315d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 31325d7e5b04SSteen Hegelund .offset = 46, 31335d7e5b04SSteen Hegelund .width = 1, 31345d7e5b04SSteen Hegelund }, 31355d7e5b04SSteen Hegelund [VCAP_AF_ISDX_VAL] = { 31365d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 31375d7e5b04SSteen Hegelund .offset = 47, 31385d7e5b04SSteen Hegelund .width = 12, 31395d7e5b04SSteen Hegelund }, 31405d7e5b04SSteen Hegelund [VCAP_AF_NXT_IDX_CTRL] = { 31415d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 31425d7e5b04SSteen Hegelund .offset = 90, 31435d7e5b04SSteen Hegelund .width = 3, 31445d7e5b04SSteen Hegelund }, 31455d7e5b04SSteen Hegelund [VCAP_AF_NXT_IDX] = { 31465d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 31475d7e5b04SSteen Hegelund .offset = 93, 31485d7e5b04SSteen Hegelund .width = 12, 31495d7e5b04SSteen Hegelund }, 31505d7e5b04SSteen Hegelund }; 31515d7e5b04SSteen Hegelund 31525d7e5b04SSteen Hegelund static const struct vcap_field is2_base_type_actionfield[] = { 31535d7e5b04SSteen Hegelund [VCAP_AF_PIPELINE_FORCE_ENA] = { 31545d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 31555d7e5b04SSteen Hegelund .offset = 1, 31565d7e5b04SSteen Hegelund .width = 1, 31575d7e5b04SSteen Hegelund }, 31585d7e5b04SSteen Hegelund [VCAP_AF_PIPELINE_PT] = { 31595d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 31605d7e5b04SSteen Hegelund .offset = 2, 31615d7e5b04SSteen Hegelund .width = 5, 31625d7e5b04SSteen Hegelund }, 31635d7e5b04SSteen Hegelund [VCAP_AF_HIT_ME_ONCE] = { 31645d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 31655d7e5b04SSteen Hegelund .offset = 7, 31665d7e5b04SSteen Hegelund .width = 1, 31675d7e5b04SSteen Hegelund }, 31685d7e5b04SSteen Hegelund [VCAP_AF_INTR_ENA] = { 31695d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 31705d7e5b04SSteen Hegelund .offset = 8, 31715d7e5b04SSteen Hegelund .width = 1, 31725d7e5b04SSteen Hegelund }, 31735d7e5b04SSteen Hegelund [VCAP_AF_CPU_COPY_ENA] = { 31745d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 31755d7e5b04SSteen Hegelund .offset = 9, 31765d7e5b04SSteen Hegelund .width = 1, 31775d7e5b04SSteen Hegelund }, 31785d7e5b04SSteen Hegelund [VCAP_AF_CPU_QUEUE_NUM] = { 31795d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 31805d7e5b04SSteen Hegelund .offset = 10, 31815d7e5b04SSteen Hegelund .width = 3, 31825d7e5b04SSteen Hegelund }, 31835d7e5b04SSteen Hegelund [VCAP_AF_LRN_DIS] = { 31845d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 31855d7e5b04SSteen Hegelund .offset = 14, 31865d7e5b04SSteen Hegelund .width = 1, 31875d7e5b04SSteen Hegelund }, 31885d7e5b04SSteen Hegelund [VCAP_AF_RT_DIS] = { 31895d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 31905d7e5b04SSteen Hegelund .offset = 15, 31915d7e5b04SSteen Hegelund .width = 1, 31925d7e5b04SSteen Hegelund }, 31935d7e5b04SSteen Hegelund [VCAP_AF_POLICE_ENA] = { 31945d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 31955d7e5b04SSteen Hegelund .offset = 16, 31965d7e5b04SSteen Hegelund .width = 1, 31975d7e5b04SSteen Hegelund }, 31985d7e5b04SSteen Hegelund [VCAP_AF_POLICE_IDX] = { 31995d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 32005d7e5b04SSteen Hegelund .offset = 17, 32015d7e5b04SSteen Hegelund .width = 6, 32025d7e5b04SSteen Hegelund }, 32035d7e5b04SSteen Hegelund [VCAP_AF_IGNORE_PIPELINE_CTRL] = { 32045d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 32055d7e5b04SSteen Hegelund .offset = 23, 32065d7e5b04SSteen Hegelund .width = 1, 32075d7e5b04SSteen Hegelund }, 32085d7e5b04SSteen Hegelund [VCAP_AF_MASK_MODE] = { 32095d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 32105d7e5b04SSteen Hegelund .offset = 27, 32115d7e5b04SSteen Hegelund .width = 3, 32125d7e5b04SSteen Hegelund }, 32135d7e5b04SSteen Hegelund [VCAP_AF_PORT_MASK] = { 32145d7e5b04SSteen Hegelund .type = VCAP_FIELD_U72, 32155d7e5b04SSteen Hegelund .offset = 30, 32165d7e5b04SSteen Hegelund .width = 68, 32175d7e5b04SSteen Hegelund }, 32185d7e5b04SSteen Hegelund [VCAP_AF_MIRROR_PROBE] = { 32195d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 32205d7e5b04SSteen Hegelund .offset = 111, 32215d7e5b04SSteen Hegelund .width = 2, 32225d7e5b04SSteen Hegelund }, 32235d7e5b04SSteen Hegelund [VCAP_AF_MATCH_ID] = { 32245d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 32255d7e5b04SSteen Hegelund .offset = 159, 32265d7e5b04SSteen Hegelund .width = 16, 32275d7e5b04SSteen Hegelund }, 32285d7e5b04SSteen Hegelund [VCAP_AF_MATCH_ID_MASK] = { 32295d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 32305d7e5b04SSteen Hegelund .offset = 175, 32315d7e5b04SSteen Hegelund .width = 16, 32325d7e5b04SSteen Hegelund }, 32335d7e5b04SSteen Hegelund [VCAP_AF_CNT_ID] = { 32345d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 32355d7e5b04SSteen Hegelund .offset = 191, 32365d7e5b04SSteen Hegelund .width = 12, 32375d7e5b04SSteen Hegelund }, 32385d7e5b04SSteen Hegelund }; 32395d7e5b04SSteen Hegelund 32405d7e5b04SSteen Hegelund static const struct vcap_field es2_base_type_actionfield[] = { 32415d7e5b04SSteen Hegelund [VCAP_AF_HIT_ME_ONCE] = { 32425d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 32435d7e5b04SSteen Hegelund .offset = 0, 32445d7e5b04SSteen Hegelund .width = 1, 32455d7e5b04SSteen Hegelund }, 32465d7e5b04SSteen Hegelund [VCAP_AF_INTR_ENA] = { 32475d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 32485d7e5b04SSteen Hegelund .offset = 1, 32495d7e5b04SSteen Hegelund .width = 1, 32505d7e5b04SSteen Hegelund }, 32515d7e5b04SSteen Hegelund [VCAP_AF_FWD_MODE] = { 32525d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 32535d7e5b04SSteen Hegelund .offset = 2, 32545d7e5b04SSteen Hegelund .width = 2, 32555d7e5b04SSteen Hegelund }, 32565d7e5b04SSteen Hegelund [VCAP_AF_COPY_QUEUE_NUM] = { 32575d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 32585d7e5b04SSteen Hegelund .offset = 4, 32595d7e5b04SSteen Hegelund .width = 16, 32605d7e5b04SSteen Hegelund }, 32615d7e5b04SSteen Hegelund [VCAP_AF_COPY_PORT_NUM] = { 32625d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 32635d7e5b04SSteen Hegelund .offset = 20, 32645d7e5b04SSteen Hegelund .width = 7, 32655d7e5b04SSteen Hegelund }, 32665d7e5b04SSteen Hegelund [VCAP_AF_MIRROR_PROBE_ID] = { 32675d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 32685d7e5b04SSteen Hegelund .offset = 27, 32695d7e5b04SSteen Hegelund .width = 2, 32705d7e5b04SSteen Hegelund }, 32715d7e5b04SSteen Hegelund [VCAP_AF_CPU_COPY_ENA] = { 32725d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 32735d7e5b04SSteen Hegelund .offset = 29, 32745d7e5b04SSteen Hegelund .width = 1, 32755d7e5b04SSteen Hegelund }, 32765d7e5b04SSteen Hegelund [VCAP_AF_CPU_QUEUE_NUM] = { 32775d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 32785d7e5b04SSteen Hegelund .offset = 30, 32795d7e5b04SSteen Hegelund .width = 3, 32805d7e5b04SSteen Hegelund }, 32815d7e5b04SSteen Hegelund [VCAP_AF_POLICE_ENA] = { 32825d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 32835d7e5b04SSteen Hegelund .offset = 33, 32845d7e5b04SSteen Hegelund .width = 1, 32855d7e5b04SSteen Hegelund }, 32865d7e5b04SSteen Hegelund [VCAP_AF_POLICE_REMARK] = { 32875d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 32885d7e5b04SSteen Hegelund .offset = 34, 32895d7e5b04SSteen Hegelund .width = 1, 32905d7e5b04SSteen Hegelund }, 32915d7e5b04SSteen Hegelund [VCAP_AF_POLICE_IDX] = { 32925d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 32935d7e5b04SSteen Hegelund .offset = 35, 32945d7e5b04SSteen Hegelund .width = 6, 32955d7e5b04SSteen Hegelund }, 32965d7e5b04SSteen Hegelund [VCAP_AF_ES2_REW_CMD] = { 32975d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 32985d7e5b04SSteen Hegelund .offset = 41, 32995d7e5b04SSteen Hegelund .width = 3, 33005d7e5b04SSteen Hegelund }, 33015d7e5b04SSteen Hegelund [VCAP_AF_CNT_ID] = { 33025d7e5b04SSteen Hegelund .type = VCAP_FIELD_U32, 33035d7e5b04SSteen Hegelund .offset = 44, 33045d7e5b04SSteen Hegelund .width = 11, 33055d7e5b04SSteen Hegelund }, 33065d7e5b04SSteen Hegelund [VCAP_AF_IGNORE_PIPELINE_CTRL] = { 33075d7e5b04SSteen Hegelund .type = VCAP_FIELD_BIT, 33085d7e5b04SSteen Hegelund .offset = 55, 33095d7e5b04SSteen Hegelund .width = 1, 33105d7e5b04SSteen Hegelund }, 33115d7e5b04SSteen Hegelund }; 33125d7e5b04SSteen Hegelund 33135d7e5b04SSteen Hegelund /* actionfield_set */ 33145d7e5b04SSteen Hegelund static const struct vcap_set is0_actionfield_set[] = { 33155d7e5b04SSteen Hegelund [VCAP_AFS_CLASSIFICATION] = { 33165d7e5b04SSteen Hegelund .type_id = 1, 33175d7e5b04SSteen Hegelund .sw_per_item = 2, 33185d7e5b04SSteen Hegelund .sw_cnt = 6, 33195d7e5b04SSteen Hegelund }, 33205d7e5b04SSteen Hegelund [VCAP_AFS_FULL] = { 33215d7e5b04SSteen Hegelund .type_id = -1, 33225d7e5b04SSteen Hegelund .sw_per_item = 3, 33235d7e5b04SSteen Hegelund .sw_cnt = 4, 33245d7e5b04SSteen Hegelund }, 33255d7e5b04SSteen Hegelund [VCAP_AFS_CLASS_REDUCED] = { 33265d7e5b04SSteen Hegelund .type_id = 1, 33275d7e5b04SSteen Hegelund .sw_per_item = 1, 33285d7e5b04SSteen Hegelund .sw_cnt = 12, 33295d7e5b04SSteen Hegelund }, 33305d7e5b04SSteen Hegelund }; 33315d7e5b04SSteen Hegelund 33325d7e5b04SSteen Hegelund static const struct vcap_set is2_actionfield_set[] = { 33335d7e5b04SSteen Hegelund [VCAP_AFS_BASE_TYPE] = { 33345d7e5b04SSteen Hegelund .type_id = -1, 33355d7e5b04SSteen Hegelund .sw_per_item = 3, 33365d7e5b04SSteen Hegelund .sw_cnt = 4, 33375d7e5b04SSteen Hegelund }, 33385d7e5b04SSteen Hegelund }; 33395d7e5b04SSteen Hegelund 33405d7e5b04SSteen Hegelund static const struct vcap_set es2_actionfield_set[] = { 33415d7e5b04SSteen Hegelund [VCAP_AFS_BASE_TYPE] = { 33425d7e5b04SSteen Hegelund .type_id = -1, 33435d7e5b04SSteen Hegelund .sw_per_item = 3, 33445d7e5b04SSteen Hegelund .sw_cnt = 4, 33455d7e5b04SSteen Hegelund }, 33465d7e5b04SSteen Hegelund }; 33475d7e5b04SSteen Hegelund 33485d7e5b04SSteen Hegelund /* actionfield_set map */ 33495d7e5b04SSteen Hegelund static const struct vcap_field *is0_actionfield_set_map[] = { 33505d7e5b04SSteen Hegelund [VCAP_AFS_CLASSIFICATION] = is0_classification_actionfield, 33515d7e5b04SSteen Hegelund [VCAP_AFS_FULL] = is0_full_actionfield, 33525d7e5b04SSteen Hegelund [VCAP_AFS_CLASS_REDUCED] = is0_class_reduced_actionfield, 33535d7e5b04SSteen Hegelund }; 33545d7e5b04SSteen Hegelund 33555d7e5b04SSteen Hegelund static const struct vcap_field *is2_actionfield_set_map[] = { 33565d7e5b04SSteen Hegelund [VCAP_AFS_BASE_TYPE] = is2_base_type_actionfield, 33575d7e5b04SSteen Hegelund }; 33585d7e5b04SSteen Hegelund 33595d7e5b04SSteen Hegelund static const struct vcap_field *es2_actionfield_set_map[] = { 33605d7e5b04SSteen Hegelund [VCAP_AFS_BASE_TYPE] = es2_base_type_actionfield, 33615d7e5b04SSteen Hegelund }; 33625d7e5b04SSteen Hegelund 33635d7e5b04SSteen Hegelund /* actionfield_set map size */ 33645d7e5b04SSteen Hegelund static int is0_actionfield_set_map_size[] = { 33655d7e5b04SSteen Hegelund [VCAP_AFS_CLASSIFICATION] = ARRAY_SIZE(is0_classification_actionfield), 33665d7e5b04SSteen Hegelund [VCAP_AFS_FULL] = ARRAY_SIZE(is0_full_actionfield), 33675d7e5b04SSteen Hegelund [VCAP_AFS_CLASS_REDUCED] = ARRAY_SIZE(is0_class_reduced_actionfield), 33685d7e5b04SSteen Hegelund }; 33695d7e5b04SSteen Hegelund 33705d7e5b04SSteen Hegelund static int is2_actionfield_set_map_size[] = { 33715d7e5b04SSteen Hegelund [VCAP_AFS_BASE_TYPE] = ARRAY_SIZE(is2_base_type_actionfield), 33725d7e5b04SSteen Hegelund }; 33735d7e5b04SSteen Hegelund 33745d7e5b04SSteen Hegelund static int es2_actionfield_set_map_size[] = { 33755d7e5b04SSteen Hegelund [VCAP_AFS_BASE_TYPE] = ARRAY_SIZE(es2_base_type_actionfield), 33765d7e5b04SSteen Hegelund }; 33775d7e5b04SSteen Hegelund 33785d7e5b04SSteen Hegelund /* Type Groups */ 33795d7e5b04SSteen Hegelund static const struct vcap_typegroup is0_x12_keyfield_set_typegroups[] = { 33805d7e5b04SSteen Hegelund { 33815d7e5b04SSteen Hegelund .offset = 0, 33825d7e5b04SSteen Hegelund .width = 5, 33835d7e5b04SSteen Hegelund .value = 16, 33845d7e5b04SSteen Hegelund }, 33855d7e5b04SSteen Hegelund { 33865d7e5b04SSteen Hegelund .offset = 52, 33875d7e5b04SSteen Hegelund .width = 1, 33885d7e5b04SSteen Hegelund .value = 0, 33895d7e5b04SSteen Hegelund }, 33905d7e5b04SSteen Hegelund { 33915d7e5b04SSteen Hegelund .offset = 104, 33925d7e5b04SSteen Hegelund .width = 2, 33935d7e5b04SSteen Hegelund .value = 0, 33945d7e5b04SSteen Hegelund }, 33955d7e5b04SSteen Hegelund { 33965d7e5b04SSteen Hegelund .offset = 156, 33975d7e5b04SSteen Hegelund .width = 3, 33985d7e5b04SSteen Hegelund .value = 0, 33995d7e5b04SSteen Hegelund }, 34005d7e5b04SSteen Hegelund { 34015d7e5b04SSteen Hegelund .offset = 208, 34025d7e5b04SSteen Hegelund .width = 2, 34035d7e5b04SSteen Hegelund .value = 0, 34045d7e5b04SSteen Hegelund }, 34055d7e5b04SSteen Hegelund { 34065d7e5b04SSteen Hegelund .offset = 260, 34075d7e5b04SSteen Hegelund .width = 1, 34085d7e5b04SSteen Hegelund .value = 0, 34095d7e5b04SSteen Hegelund }, 34105d7e5b04SSteen Hegelund { 34115d7e5b04SSteen Hegelund .offset = 312, 34125d7e5b04SSteen Hegelund .width = 4, 34135d7e5b04SSteen Hegelund .value = 0, 34145d7e5b04SSteen Hegelund }, 34155d7e5b04SSteen Hegelund { 34165d7e5b04SSteen Hegelund .offset = 364, 34175d7e5b04SSteen Hegelund .width = 1, 34185d7e5b04SSteen Hegelund .value = 0, 34195d7e5b04SSteen Hegelund }, 34205d7e5b04SSteen Hegelund { 34215d7e5b04SSteen Hegelund .offset = 416, 34225d7e5b04SSteen Hegelund .width = 2, 34235d7e5b04SSteen Hegelund .value = 0, 34245d7e5b04SSteen Hegelund }, 34255d7e5b04SSteen Hegelund { 34265d7e5b04SSteen Hegelund .offset = 468, 34275d7e5b04SSteen Hegelund .width = 3, 34285d7e5b04SSteen Hegelund .value = 0, 34295d7e5b04SSteen Hegelund }, 34305d7e5b04SSteen Hegelund { 34315d7e5b04SSteen Hegelund .offset = 520, 34325d7e5b04SSteen Hegelund .width = 2, 34335d7e5b04SSteen Hegelund .value = 0, 34345d7e5b04SSteen Hegelund }, 34355d7e5b04SSteen Hegelund { 34365d7e5b04SSteen Hegelund .offset = 572, 34375d7e5b04SSteen Hegelund .width = 1, 34385d7e5b04SSteen Hegelund .value = 0, 34395d7e5b04SSteen Hegelund }, 34405d7e5b04SSteen Hegelund {} 34415d7e5b04SSteen Hegelund }; 34425d7e5b04SSteen Hegelund 34435d7e5b04SSteen Hegelund static const struct vcap_typegroup is0_x6_keyfield_set_typegroups[] = { 34445d7e5b04SSteen Hegelund { 34455d7e5b04SSteen Hegelund .offset = 0, 34465d7e5b04SSteen Hegelund .width = 4, 34475d7e5b04SSteen Hegelund .value = 8, 34485d7e5b04SSteen Hegelund }, 34495d7e5b04SSteen Hegelund { 34505d7e5b04SSteen Hegelund .offset = 52, 34515d7e5b04SSteen Hegelund .width = 1, 34525d7e5b04SSteen Hegelund .value = 0, 34535d7e5b04SSteen Hegelund }, 34545d7e5b04SSteen Hegelund { 34555d7e5b04SSteen Hegelund .offset = 104, 34565d7e5b04SSteen Hegelund .width = 2, 34575d7e5b04SSteen Hegelund .value = 0, 34585d7e5b04SSteen Hegelund }, 34595d7e5b04SSteen Hegelund { 34605d7e5b04SSteen Hegelund .offset = 156, 34615d7e5b04SSteen Hegelund .width = 3, 34625d7e5b04SSteen Hegelund .value = 0, 34635d7e5b04SSteen Hegelund }, 34645d7e5b04SSteen Hegelund { 34655d7e5b04SSteen Hegelund .offset = 208, 34665d7e5b04SSteen Hegelund .width = 2, 34675d7e5b04SSteen Hegelund .value = 0, 34685d7e5b04SSteen Hegelund }, 34695d7e5b04SSteen Hegelund { 34705d7e5b04SSteen Hegelund .offset = 260, 34715d7e5b04SSteen Hegelund .width = 1, 34725d7e5b04SSteen Hegelund .value = 0, 34735d7e5b04SSteen Hegelund }, 34745d7e5b04SSteen Hegelund {} 34755d7e5b04SSteen Hegelund }; 34765d7e5b04SSteen Hegelund 34775d7e5b04SSteen Hegelund static const struct vcap_typegroup is0_x3_keyfield_set_typegroups[] = { 34785d7e5b04SSteen Hegelund { 34795d7e5b04SSteen Hegelund .offset = 0, 34805d7e5b04SSteen Hegelund .width = 3, 34815d7e5b04SSteen Hegelund .value = 4, 34825d7e5b04SSteen Hegelund }, 34835d7e5b04SSteen Hegelund { 34845d7e5b04SSteen Hegelund .offset = 52, 34855d7e5b04SSteen Hegelund .width = 2, 34865d7e5b04SSteen Hegelund .value = 0, 34875d7e5b04SSteen Hegelund }, 34885d7e5b04SSteen Hegelund { 34895d7e5b04SSteen Hegelund .offset = 104, 34905d7e5b04SSteen Hegelund .width = 2, 34915d7e5b04SSteen Hegelund .value = 0, 34925d7e5b04SSteen Hegelund }, 34935d7e5b04SSteen Hegelund {} 34945d7e5b04SSteen Hegelund }; 34955d7e5b04SSteen Hegelund 34965d7e5b04SSteen Hegelund static const struct vcap_typegroup is0_x2_keyfield_set_typegroups[] = { 34975d7e5b04SSteen Hegelund { 34985d7e5b04SSteen Hegelund .offset = 0, 34995d7e5b04SSteen Hegelund .width = 2, 35005d7e5b04SSteen Hegelund .value = 2, 35015d7e5b04SSteen Hegelund }, 35025d7e5b04SSteen Hegelund { 35035d7e5b04SSteen Hegelund .offset = 52, 35045d7e5b04SSteen Hegelund .width = 1, 35055d7e5b04SSteen Hegelund .value = 0, 35065d7e5b04SSteen Hegelund }, 35075d7e5b04SSteen Hegelund {} 35085d7e5b04SSteen Hegelund }; 35095d7e5b04SSteen Hegelund 35105d7e5b04SSteen Hegelund static const struct vcap_typegroup is0_x1_keyfield_set_typegroups[] = { 35115d7e5b04SSteen Hegelund {} 35125d7e5b04SSteen Hegelund }; 35135d7e5b04SSteen Hegelund 35145d7e5b04SSteen Hegelund static const struct vcap_typegroup is2_x12_keyfield_set_typegroups[] = { 35155d7e5b04SSteen Hegelund { 35165d7e5b04SSteen Hegelund .offset = 0, 35175d7e5b04SSteen Hegelund .width = 3, 35185d7e5b04SSteen Hegelund .value = 4, 35195d7e5b04SSteen Hegelund }, 35205d7e5b04SSteen Hegelund { 35215d7e5b04SSteen Hegelund .offset = 156, 35225d7e5b04SSteen Hegelund .width = 1, 35235d7e5b04SSteen Hegelund .value = 0, 35245d7e5b04SSteen Hegelund }, 35255d7e5b04SSteen Hegelund { 35265d7e5b04SSteen Hegelund .offset = 312, 35275d7e5b04SSteen Hegelund .width = 2, 35285d7e5b04SSteen Hegelund .value = 0, 35295d7e5b04SSteen Hegelund }, 35305d7e5b04SSteen Hegelund { 35315d7e5b04SSteen Hegelund .offset = 468, 35325d7e5b04SSteen Hegelund .width = 1, 35335d7e5b04SSteen Hegelund .value = 0, 35345d7e5b04SSteen Hegelund }, 35355d7e5b04SSteen Hegelund {} 35365d7e5b04SSteen Hegelund }; 35375d7e5b04SSteen Hegelund 35385d7e5b04SSteen Hegelund static const struct vcap_typegroup is2_x6_keyfield_set_typegroups[] = { 35395d7e5b04SSteen Hegelund { 35405d7e5b04SSteen Hegelund .offset = 0, 35415d7e5b04SSteen Hegelund .width = 2, 35425d7e5b04SSteen Hegelund .value = 2, 35435d7e5b04SSteen Hegelund }, 35445d7e5b04SSteen Hegelund { 35455d7e5b04SSteen Hegelund .offset = 156, 35465d7e5b04SSteen Hegelund .width = 1, 35475d7e5b04SSteen Hegelund .value = 0, 35485d7e5b04SSteen Hegelund }, 35495d7e5b04SSteen Hegelund {} 35505d7e5b04SSteen Hegelund }; 35515d7e5b04SSteen Hegelund 35525d7e5b04SSteen Hegelund static const struct vcap_typegroup is2_x3_keyfield_set_typegroups[] = { 35535d7e5b04SSteen Hegelund {} 35545d7e5b04SSteen Hegelund }; 35555d7e5b04SSteen Hegelund 35565d7e5b04SSteen Hegelund static const struct vcap_typegroup is2_x1_keyfield_set_typegroups[] = { 35575d7e5b04SSteen Hegelund {} 35585d7e5b04SSteen Hegelund }; 35595d7e5b04SSteen Hegelund 35605d7e5b04SSteen Hegelund static const struct vcap_typegroup es2_x12_keyfield_set_typegroups[] = { 35615d7e5b04SSteen Hegelund { 35625d7e5b04SSteen Hegelund .offset = 0, 35635d7e5b04SSteen Hegelund .width = 3, 35645d7e5b04SSteen Hegelund .value = 4, 35655d7e5b04SSteen Hegelund }, 35665d7e5b04SSteen Hegelund { 35675d7e5b04SSteen Hegelund .offset = 156, 35685d7e5b04SSteen Hegelund .width = 1, 35695d7e5b04SSteen Hegelund .value = 0, 35705d7e5b04SSteen Hegelund }, 35715d7e5b04SSteen Hegelund { 35725d7e5b04SSteen Hegelund .offset = 312, 35735d7e5b04SSteen Hegelund .width = 2, 35745d7e5b04SSteen Hegelund .value = 0, 35755d7e5b04SSteen Hegelund }, 35765d7e5b04SSteen Hegelund { 35775d7e5b04SSteen Hegelund .offset = 468, 35785d7e5b04SSteen Hegelund .width = 1, 35795d7e5b04SSteen Hegelund .value = 0, 35805d7e5b04SSteen Hegelund }, 35815d7e5b04SSteen Hegelund {} 35825d7e5b04SSteen Hegelund }; 35835d7e5b04SSteen Hegelund 35845d7e5b04SSteen Hegelund static const struct vcap_typegroup es2_x6_keyfield_set_typegroups[] = { 35855d7e5b04SSteen Hegelund { 35865d7e5b04SSteen Hegelund .offset = 0, 35875d7e5b04SSteen Hegelund .width = 2, 35885d7e5b04SSteen Hegelund .value = 2, 35895d7e5b04SSteen Hegelund }, 35905d7e5b04SSteen Hegelund { 35915d7e5b04SSteen Hegelund .offset = 156, 35925d7e5b04SSteen Hegelund .width = 1, 35935d7e5b04SSteen Hegelund .value = 0, 35945d7e5b04SSteen Hegelund }, 35955d7e5b04SSteen Hegelund {} 35965d7e5b04SSteen Hegelund }; 35975d7e5b04SSteen Hegelund 35985d7e5b04SSteen Hegelund static const struct vcap_typegroup es2_x3_keyfield_set_typegroups[] = { 35995d7e5b04SSteen Hegelund { 36005d7e5b04SSteen Hegelund .offset = 0, 36015d7e5b04SSteen Hegelund .width = 1, 36025d7e5b04SSteen Hegelund .value = 1, 36035d7e5b04SSteen Hegelund }, 36045d7e5b04SSteen Hegelund {} 36055d7e5b04SSteen Hegelund }; 36065d7e5b04SSteen Hegelund 36075d7e5b04SSteen Hegelund static const struct vcap_typegroup es2_x1_keyfield_set_typegroups[] = { 36085d7e5b04SSteen Hegelund {} 36095d7e5b04SSteen Hegelund }; 36105d7e5b04SSteen Hegelund 36115d7e5b04SSteen Hegelund static const struct vcap_typegroup *is0_keyfield_set_typegroups[] = { 36125d7e5b04SSteen Hegelund [12] = is0_x12_keyfield_set_typegroups, 36135d7e5b04SSteen Hegelund [6] = is0_x6_keyfield_set_typegroups, 36145d7e5b04SSteen Hegelund [3] = is0_x3_keyfield_set_typegroups, 36155d7e5b04SSteen Hegelund [2] = is0_x2_keyfield_set_typegroups, 36165d7e5b04SSteen Hegelund [1] = is0_x1_keyfield_set_typegroups, 36175d7e5b04SSteen Hegelund [13] = NULL, 36185d7e5b04SSteen Hegelund }; 36195d7e5b04SSteen Hegelund 36205d7e5b04SSteen Hegelund static const struct vcap_typegroup *is2_keyfield_set_typegroups[] = { 36215d7e5b04SSteen Hegelund [12] = is2_x12_keyfield_set_typegroups, 36225d7e5b04SSteen Hegelund [6] = is2_x6_keyfield_set_typegroups, 36235d7e5b04SSteen Hegelund [3] = is2_x3_keyfield_set_typegroups, 36245d7e5b04SSteen Hegelund [1] = is2_x1_keyfield_set_typegroups, 36255d7e5b04SSteen Hegelund [13] = NULL, 36265d7e5b04SSteen Hegelund }; 36275d7e5b04SSteen Hegelund 36285d7e5b04SSteen Hegelund static const struct vcap_typegroup *es2_keyfield_set_typegroups[] = { 36295d7e5b04SSteen Hegelund [12] = es2_x12_keyfield_set_typegroups, 36305d7e5b04SSteen Hegelund [6] = es2_x6_keyfield_set_typegroups, 36315d7e5b04SSteen Hegelund [3] = es2_x3_keyfield_set_typegroups, 36325d7e5b04SSteen Hegelund [1] = es2_x1_keyfield_set_typegroups, 36335d7e5b04SSteen Hegelund [13] = NULL, 36345d7e5b04SSteen Hegelund }; 36355d7e5b04SSteen Hegelund 36365d7e5b04SSteen Hegelund static const struct vcap_typegroup is0_x3_actionfield_set_typegroups[] = { 36375d7e5b04SSteen Hegelund { 36385d7e5b04SSteen Hegelund .offset = 0, 36395d7e5b04SSteen Hegelund .width = 3, 36405d7e5b04SSteen Hegelund .value = 4, 36415d7e5b04SSteen Hegelund }, 36425d7e5b04SSteen Hegelund { 36435d7e5b04SSteen Hegelund .offset = 110, 36445d7e5b04SSteen Hegelund .width = 2, 36455d7e5b04SSteen Hegelund .value = 0, 36465d7e5b04SSteen Hegelund }, 36475d7e5b04SSteen Hegelund { 36485d7e5b04SSteen Hegelund .offset = 220, 36495d7e5b04SSteen Hegelund .width = 2, 36505d7e5b04SSteen Hegelund .value = 0, 36515d7e5b04SSteen Hegelund }, 36525d7e5b04SSteen Hegelund {} 36535d7e5b04SSteen Hegelund }; 36545d7e5b04SSteen Hegelund 36555d7e5b04SSteen Hegelund static const struct vcap_typegroup is0_x2_actionfield_set_typegroups[] = { 36565d7e5b04SSteen Hegelund { 36575d7e5b04SSteen Hegelund .offset = 0, 36585d7e5b04SSteen Hegelund .width = 2, 36595d7e5b04SSteen Hegelund .value = 2, 36605d7e5b04SSteen Hegelund }, 36615d7e5b04SSteen Hegelund { 36625d7e5b04SSteen Hegelund .offset = 110, 36635d7e5b04SSteen Hegelund .width = 1, 36645d7e5b04SSteen Hegelund .value = 0, 36655d7e5b04SSteen Hegelund }, 36665d7e5b04SSteen Hegelund {} 36675d7e5b04SSteen Hegelund }; 36685d7e5b04SSteen Hegelund 36695d7e5b04SSteen Hegelund static const struct vcap_typegroup is0_x1_actionfield_set_typegroups[] = { 36705d7e5b04SSteen Hegelund { 36715d7e5b04SSteen Hegelund .offset = 0, 36725d7e5b04SSteen Hegelund .width = 1, 36735d7e5b04SSteen Hegelund .value = 1, 36745d7e5b04SSteen Hegelund }, 36755d7e5b04SSteen Hegelund {} 36765d7e5b04SSteen Hegelund }; 36775d7e5b04SSteen Hegelund 36785d7e5b04SSteen Hegelund static const struct vcap_typegroup is2_x3_actionfield_set_typegroups[] = { 36795d7e5b04SSteen Hegelund { 36805d7e5b04SSteen Hegelund .offset = 0, 36815d7e5b04SSteen Hegelund .width = 2, 36825d7e5b04SSteen Hegelund .value = 2, 36835d7e5b04SSteen Hegelund }, 36845d7e5b04SSteen Hegelund { 36855d7e5b04SSteen Hegelund .offset = 110, 36865d7e5b04SSteen Hegelund .width = 1, 36875d7e5b04SSteen Hegelund .value = 0, 36885d7e5b04SSteen Hegelund }, 36895d7e5b04SSteen Hegelund { 36905d7e5b04SSteen Hegelund .offset = 220, 36915d7e5b04SSteen Hegelund .width = 1, 36925d7e5b04SSteen Hegelund .value = 0, 36935d7e5b04SSteen Hegelund }, 36945d7e5b04SSteen Hegelund {} 36955d7e5b04SSteen Hegelund }; 36965d7e5b04SSteen Hegelund 36975d7e5b04SSteen Hegelund static const struct vcap_typegroup is2_x1_actionfield_set_typegroups[] = { 36985d7e5b04SSteen Hegelund {} 36995d7e5b04SSteen Hegelund }; 37005d7e5b04SSteen Hegelund 37015d7e5b04SSteen Hegelund static const struct vcap_typegroup es2_x3_actionfield_set_typegroups[] = { 37025d7e5b04SSteen Hegelund { 37035d7e5b04SSteen Hegelund .offset = 0, 37045d7e5b04SSteen Hegelund .width = 2, 37055d7e5b04SSteen Hegelund .value = 2, 37065d7e5b04SSteen Hegelund }, 37075d7e5b04SSteen Hegelund { 37085d7e5b04SSteen Hegelund .offset = 21, 37095d7e5b04SSteen Hegelund .width = 1, 37105d7e5b04SSteen Hegelund .value = 0, 37115d7e5b04SSteen Hegelund }, 37125d7e5b04SSteen Hegelund { 37135d7e5b04SSteen Hegelund .offset = 42, 37145d7e5b04SSteen Hegelund .width = 1, 37155d7e5b04SSteen Hegelund .value = 0, 37165d7e5b04SSteen Hegelund }, 37175d7e5b04SSteen Hegelund {} 37185d7e5b04SSteen Hegelund }; 37195d7e5b04SSteen Hegelund 37205d7e5b04SSteen Hegelund static const struct vcap_typegroup es2_x1_actionfield_set_typegroups[] = { 37215d7e5b04SSteen Hegelund {} 37225d7e5b04SSteen Hegelund }; 37235d7e5b04SSteen Hegelund 37245d7e5b04SSteen Hegelund static const struct vcap_typegroup *is0_actionfield_set_typegroups[] = { 37255d7e5b04SSteen Hegelund [3] = is0_x3_actionfield_set_typegroups, 37265d7e5b04SSteen Hegelund [2] = is0_x2_actionfield_set_typegroups, 37275d7e5b04SSteen Hegelund [1] = is0_x1_actionfield_set_typegroups, 37285d7e5b04SSteen Hegelund [13] = NULL, 37295d7e5b04SSteen Hegelund }; 37305d7e5b04SSteen Hegelund 37315d7e5b04SSteen Hegelund static const struct vcap_typegroup *is2_actionfield_set_typegroups[] = { 37325d7e5b04SSteen Hegelund [3] = is2_x3_actionfield_set_typegroups, 37335d7e5b04SSteen Hegelund [1] = is2_x1_actionfield_set_typegroups, 37345d7e5b04SSteen Hegelund [13] = NULL, 37355d7e5b04SSteen Hegelund }; 37365d7e5b04SSteen Hegelund 37375d7e5b04SSteen Hegelund static const struct vcap_typegroup *es2_actionfield_set_typegroups[] = { 37385d7e5b04SSteen Hegelund [3] = es2_x3_actionfield_set_typegroups, 37395d7e5b04SSteen Hegelund [1] = es2_x1_actionfield_set_typegroups, 37405d7e5b04SSteen Hegelund [13] = NULL, 37415d7e5b04SSteen Hegelund }; 37425d7e5b04SSteen Hegelund 37435d7e5b04SSteen Hegelund /* Keyfieldset names */ 37445d7e5b04SSteen Hegelund static const char * const vcap_keyfield_set_names[] = { 37455d7e5b04SSteen Hegelund [VCAP_KFS_NO_VALUE] = "(None)", 37465d7e5b04SSteen Hegelund [VCAP_KFS_ARP] = "VCAP_KFS_ARP", 37475d7e5b04SSteen Hegelund [VCAP_KFS_ETAG] = "VCAP_KFS_ETAG", 37485d7e5b04SSteen Hegelund [VCAP_KFS_IP4_OTHER] = "VCAP_KFS_IP4_OTHER", 37495d7e5b04SSteen Hegelund [VCAP_KFS_IP4_TCP_UDP] = "VCAP_KFS_IP4_TCP_UDP", 37505d7e5b04SSteen Hegelund [VCAP_KFS_IP4_VID] = "VCAP_KFS_IP4_VID", 3751f274a659SSteen Hegelund [VCAP_KFS_IP6_OTHER] = "VCAP_KFS_IP6_OTHER", 37525d7e5b04SSteen Hegelund [VCAP_KFS_IP6_STD] = "VCAP_KFS_IP6_STD", 3753f274a659SSteen Hegelund [VCAP_KFS_IP6_TCP_UDP] = "VCAP_KFS_IP6_TCP_UDP", 37545d7e5b04SSteen Hegelund [VCAP_KFS_IP6_VID] = "VCAP_KFS_IP6_VID", 37555d7e5b04SSteen Hegelund [VCAP_KFS_IP_7TUPLE] = "VCAP_KFS_IP_7TUPLE", 3756*a5cc98adSSteen Hegelund [VCAP_KFS_ISDX] = "VCAP_KFS_ISDX", 37575d7e5b04SSteen Hegelund [VCAP_KFS_LL_FULL] = "VCAP_KFS_LL_FULL", 37585d7e5b04SSteen Hegelund [VCAP_KFS_MAC_ETYPE] = "VCAP_KFS_MAC_ETYPE", 3759f274a659SSteen Hegelund [VCAP_KFS_MAC_LLC] = "VCAP_KFS_MAC_LLC", 3760f274a659SSteen Hegelund [VCAP_KFS_MAC_SNAP] = "VCAP_KFS_MAC_SNAP", 37615d7e5b04SSteen Hegelund [VCAP_KFS_NORMAL_5TUPLE_IP4] = "VCAP_KFS_NORMAL_5TUPLE_IP4", 37625d7e5b04SSteen Hegelund [VCAP_KFS_NORMAL_7TUPLE] = "VCAP_KFS_NORMAL_7TUPLE", 3763f274a659SSteen Hegelund [VCAP_KFS_OAM] = "VCAP_KFS_OAM", 37645d7e5b04SSteen Hegelund [VCAP_KFS_PURE_5TUPLE_IP4] = "VCAP_KFS_PURE_5TUPLE_IP4", 3765f274a659SSteen Hegelund [VCAP_KFS_SMAC_SIP4] = "VCAP_KFS_SMAC_SIP4", 3766f274a659SSteen Hegelund [VCAP_KFS_SMAC_SIP6] = "VCAP_KFS_SMAC_SIP6", 37675d7e5b04SSteen Hegelund }; 37685d7e5b04SSteen Hegelund 37695d7e5b04SSteen Hegelund /* Actionfieldset names */ 37705d7e5b04SSteen Hegelund static const char * const vcap_actionfield_set_names[] = { 37715d7e5b04SSteen Hegelund [VCAP_AFS_NO_VALUE] = "(None)", 37725d7e5b04SSteen Hegelund [VCAP_AFS_BASE_TYPE] = "VCAP_AFS_BASE_TYPE", 37735d7e5b04SSteen Hegelund [VCAP_AFS_CLASSIFICATION] = "VCAP_AFS_CLASSIFICATION", 37745d7e5b04SSteen Hegelund [VCAP_AFS_CLASS_REDUCED] = "VCAP_AFS_CLASS_REDUCED", 3775*a5cc98adSSteen Hegelund [VCAP_AFS_ES0] = "VCAP_AFS_ES0", 37765d7e5b04SSteen Hegelund [VCAP_AFS_FULL] = "VCAP_AFS_FULL", 3777f274a659SSteen Hegelund [VCAP_AFS_SMAC_SIP] = "VCAP_AFS_SMAC_SIP", 37785d7e5b04SSteen Hegelund }; 37795d7e5b04SSteen Hegelund 37805d7e5b04SSteen Hegelund /* Keyfield names */ 37815d7e5b04SSteen Hegelund static const char * const vcap_keyfield_names[] = { 37825d7e5b04SSteen Hegelund [VCAP_KF_NO_VALUE] = "(None)", 37835d7e5b04SSteen Hegelund [VCAP_KF_8021BR_ECID_BASE] = "8021BR_ECID_BASE", 37845d7e5b04SSteen Hegelund [VCAP_KF_8021BR_ECID_EXT] = "8021BR_ECID_EXT", 37855d7e5b04SSteen Hegelund [VCAP_KF_8021BR_E_TAGGED] = "8021BR_E_TAGGED", 37865d7e5b04SSteen Hegelund [VCAP_KF_8021BR_GRP] = "8021BR_GRP", 37875d7e5b04SSteen Hegelund [VCAP_KF_8021BR_IGR_ECID_BASE] = "8021BR_IGR_ECID_BASE", 37885d7e5b04SSteen Hegelund [VCAP_KF_8021BR_IGR_ECID_EXT] = "8021BR_IGR_ECID_EXT", 37895d7e5b04SSteen Hegelund [VCAP_KF_8021Q_DEI0] = "8021Q_DEI0", 37905d7e5b04SSteen Hegelund [VCAP_KF_8021Q_DEI1] = "8021Q_DEI1", 37915d7e5b04SSteen Hegelund [VCAP_KF_8021Q_DEI2] = "8021Q_DEI2", 37925d7e5b04SSteen Hegelund [VCAP_KF_8021Q_DEI_CLS] = "8021Q_DEI_CLS", 37935d7e5b04SSteen Hegelund [VCAP_KF_8021Q_PCP0] = "8021Q_PCP0", 37945d7e5b04SSteen Hegelund [VCAP_KF_8021Q_PCP1] = "8021Q_PCP1", 37955d7e5b04SSteen Hegelund [VCAP_KF_8021Q_PCP2] = "8021Q_PCP2", 37965d7e5b04SSteen Hegelund [VCAP_KF_8021Q_PCP_CLS] = "8021Q_PCP_CLS", 3797*a5cc98adSSteen Hegelund [VCAP_KF_8021Q_TPID] = "8021Q_TPID", 37985d7e5b04SSteen Hegelund [VCAP_KF_8021Q_TPID0] = "8021Q_TPID0", 37995d7e5b04SSteen Hegelund [VCAP_KF_8021Q_TPID1] = "8021Q_TPID1", 38005d7e5b04SSteen Hegelund [VCAP_KF_8021Q_TPID2] = "8021Q_TPID2", 38015d7e5b04SSteen Hegelund [VCAP_KF_8021Q_VID0] = "8021Q_VID0", 38025d7e5b04SSteen Hegelund [VCAP_KF_8021Q_VID1] = "8021Q_VID1", 38035d7e5b04SSteen Hegelund [VCAP_KF_8021Q_VID2] = "8021Q_VID2", 38045d7e5b04SSteen Hegelund [VCAP_KF_8021Q_VID_CLS] = "8021Q_VID_CLS", 38055d7e5b04SSteen Hegelund [VCAP_KF_8021Q_VLAN_TAGGED_IS] = "8021Q_VLAN_TAGGED_IS", 38065d7e5b04SSteen Hegelund [VCAP_KF_8021Q_VLAN_TAGS] = "8021Q_VLAN_TAGS", 38075d7e5b04SSteen Hegelund [VCAP_KF_ACL_GRP_ID] = "ACL_GRP_ID", 38085d7e5b04SSteen Hegelund [VCAP_KF_ARP_ADDR_SPACE_OK_IS] = "ARP_ADDR_SPACE_OK_IS", 38095d7e5b04SSteen Hegelund [VCAP_KF_ARP_LEN_OK_IS] = "ARP_LEN_OK_IS", 38105d7e5b04SSteen Hegelund [VCAP_KF_ARP_OPCODE] = "ARP_OPCODE", 38115d7e5b04SSteen Hegelund [VCAP_KF_ARP_OPCODE_UNKNOWN_IS] = "ARP_OPCODE_UNKNOWN_IS", 38125d7e5b04SSteen Hegelund [VCAP_KF_ARP_PROTO_SPACE_OK_IS] = "ARP_PROTO_SPACE_OK_IS", 38135d7e5b04SSteen Hegelund [VCAP_KF_ARP_SENDER_MATCH_IS] = "ARP_SENDER_MATCH_IS", 38145d7e5b04SSteen Hegelund [VCAP_KF_ARP_TGT_MATCH_IS] = "ARP_TGT_MATCH_IS", 38155d7e5b04SSteen Hegelund [VCAP_KF_COSID_CLS] = "COSID_CLS", 38165d7e5b04SSteen Hegelund [VCAP_KF_ES0_ISDX_KEY_ENA] = "ES0_ISDX_KEY_ENA", 38175d7e5b04SSteen Hegelund [VCAP_KF_ETYPE] = "ETYPE", 38185d7e5b04SSteen Hegelund [VCAP_KF_ETYPE_LEN_IS] = "ETYPE_LEN_IS", 3819f274a659SSteen Hegelund [VCAP_KF_HOST_MATCH] = "HOST_MATCH", 38205d7e5b04SSteen Hegelund [VCAP_KF_IF_EGR_PORT_MASK] = "IF_EGR_PORT_MASK", 38215d7e5b04SSteen Hegelund [VCAP_KF_IF_EGR_PORT_MASK_RNG] = "IF_EGR_PORT_MASK_RNG", 3822*a5cc98adSSteen Hegelund [VCAP_KF_IF_EGR_PORT_NO] = "IF_EGR_PORT_NO", 38235d7e5b04SSteen Hegelund [VCAP_KF_IF_IGR_PORT] = "IF_IGR_PORT", 38245d7e5b04SSteen Hegelund [VCAP_KF_IF_IGR_PORT_MASK] = "IF_IGR_PORT_MASK", 38255d7e5b04SSteen Hegelund [VCAP_KF_IF_IGR_PORT_MASK_L3] = "IF_IGR_PORT_MASK_L3", 38265d7e5b04SSteen Hegelund [VCAP_KF_IF_IGR_PORT_MASK_RNG] = "IF_IGR_PORT_MASK_RNG", 38275d7e5b04SSteen Hegelund [VCAP_KF_IF_IGR_PORT_MASK_SEL] = "IF_IGR_PORT_MASK_SEL", 38285d7e5b04SSteen Hegelund [VCAP_KF_IF_IGR_PORT_SEL] = "IF_IGR_PORT_SEL", 38295d7e5b04SSteen Hegelund [VCAP_KF_IP4_IS] = "IP4_IS", 38305d7e5b04SSteen Hegelund [VCAP_KF_IP_MC_IS] = "IP_MC_IS", 38315d7e5b04SSteen Hegelund [VCAP_KF_IP_PAYLOAD_5TUPLE] = "IP_PAYLOAD_5TUPLE", 38325d7e5b04SSteen Hegelund [VCAP_KF_IP_SNAP_IS] = "IP_SNAP_IS", 38335d7e5b04SSteen Hegelund [VCAP_KF_ISDX_CLS] = "ISDX_CLS", 38345d7e5b04SSteen Hegelund [VCAP_KF_ISDX_GT0_IS] = "ISDX_GT0_IS", 38355d7e5b04SSteen Hegelund [VCAP_KF_L2_BC_IS] = "L2_BC_IS", 38365d7e5b04SSteen Hegelund [VCAP_KF_L2_DMAC] = "L2_DMAC", 3837f274a659SSteen Hegelund [VCAP_KF_L2_FRM_TYPE] = "L2_FRM_TYPE", 38385d7e5b04SSteen Hegelund [VCAP_KF_L2_FWD_IS] = "L2_FWD_IS", 3839f274a659SSteen Hegelund [VCAP_KF_L2_LLC] = "L2_LLC", 38405d7e5b04SSteen Hegelund [VCAP_KF_L2_MC_IS] = "L2_MC_IS", 3841f274a659SSteen Hegelund [VCAP_KF_L2_PAYLOAD0] = "L2_PAYLOAD0", 3842f274a659SSteen Hegelund [VCAP_KF_L2_PAYLOAD1] = "L2_PAYLOAD1", 3843f274a659SSteen Hegelund [VCAP_KF_L2_PAYLOAD2] = "L2_PAYLOAD2", 38445d7e5b04SSteen Hegelund [VCAP_KF_L2_PAYLOAD_ETYPE] = "L2_PAYLOAD_ETYPE", 38455d7e5b04SSteen Hegelund [VCAP_KF_L2_SMAC] = "L2_SMAC", 3846f274a659SSteen Hegelund [VCAP_KF_L2_SNAP] = "L2_SNAP", 38475d7e5b04SSteen Hegelund [VCAP_KF_L3_DIP_EQ_SIP_IS] = "L3_DIP_EQ_SIP_IS", 38485d7e5b04SSteen Hegelund [VCAP_KF_L3_DPL_CLS] = "L3_DPL_CLS", 38495d7e5b04SSteen Hegelund [VCAP_KF_L3_DSCP] = "L3_DSCP", 38505d7e5b04SSteen Hegelund [VCAP_KF_L3_DST_IS] = "L3_DST_IS", 3851f274a659SSteen Hegelund [VCAP_KF_L3_FRAGMENT] = "L3_FRAGMENT", 38525d7e5b04SSteen Hegelund [VCAP_KF_L3_FRAGMENT_TYPE] = "L3_FRAGMENT_TYPE", 38535d7e5b04SSteen Hegelund [VCAP_KF_L3_FRAG_INVLD_L4_LEN] = "L3_FRAG_INVLD_L4_LEN", 3854f274a659SSteen Hegelund [VCAP_KF_L3_FRAG_OFS_GT0] = "L3_FRAG_OFS_GT0", 38555d7e5b04SSteen Hegelund [VCAP_KF_L3_IP4_DIP] = "L3_IP4_DIP", 38565d7e5b04SSteen Hegelund [VCAP_KF_L3_IP4_SIP] = "L3_IP4_SIP", 38575d7e5b04SSteen Hegelund [VCAP_KF_L3_IP6_DIP] = "L3_IP6_DIP", 38585d7e5b04SSteen Hegelund [VCAP_KF_L3_IP6_SIP] = "L3_IP6_SIP", 38595d7e5b04SSteen Hegelund [VCAP_KF_L3_IP_PROTO] = "L3_IP_PROTO", 38605d7e5b04SSteen Hegelund [VCAP_KF_L3_OPTIONS_IS] = "L3_OPTIONS_IS", 38615d7e5b04SSteen Hegelund [VCAP_KF_L3_PAYLOAD] = "L3_PAYLOAD", 38625d7e5b04SSteen Hegelund [VCAP_KF_L3_RT_IS] = "L3_RT_IS", 38635d7e5b04SSteen Hegelund [VCAP_KF_L3_TOS] = "L3_TOS", 38645d7e5b04SSteen Hegelund [VCAP_KF_L3_TTL_GT0] = "L3_TTL_GT0", 3865f274a659SSteen Hegelund [VCAP_KF_L4_1588_DOM] = "L4_1588_DOM", 3866f274a659SSteen Hegelund [VCAP_KF_L4_1588_VER] = "L4_1588_VER", 38675d7e5b04SSteen Hegelund [VCAP_KF_L4_ACK] = "L4_ACK", 38685d7e5b04SSteen Hegelund [VCAP_KF_L4_DPORT] = "L4_DPORT", 38695d7e5b04SSteen Hegelund [VCAP_KF_L4_FIN] = "L4_FIN", 38705d7e5b04SSteen Hegelund [VCAP_KF_L4_PAYLOAD] = "L4_PAYLOAD", 38715d7e5b04SSteen Hegelund [VCAP_KF_L4_PSH] = "L4_PSH", 38725d7e5b04SSteen Hegelund [VCAP_KF_L4_RNG] = "L4_RNG", 38735d7e5b04SSteen Hegelund [VCAP_KF_L4_RST] = "L4_RST", 38745d7e5b04SSteen Hegelund [VCAP_KF_L4_SEQUENCE_EQ0_IS] = "L4_SEQUENCE_EQ0_IS", 38755d7e5b04SSteen Hegelund [VCAP_KF_L4_SPORT] = "L4_SPORT", 38765d7e5b04SSteen Hegelund [VCAP_KF_L4_SPORT_EQ_DPORT_IS] = "L4_SPORT_EQ_DPORT_IS", 38775d7e5b04SSteen Hegelund [VCAP_KF_L4_SYN] = "L4_SYN", 38785d7e5b04SSteen Hegelund [VCAP_KF_L4_URG] = "L4_URG", 38795d7e5b04SSteen Hegelund [VCAP_KF_LOOKUP_FIRST_IS] = "LOOKUP_FIRST_IS", 38805d7e5b04SSteen Hegelund [VCAP_KF_LOOKUP_GEN_IDX] = "LOOKUP_GEN_IDX", 38815d7e5b04SSteen Hegelund [VCAP_KF_LOOKUP_GEN_IDX_SEL] = "LOOKUP_GEN_IDX_SEL", 38825d7e5b04SSteen Hegelund [VCAP_KF_LOOKUP_PAG] = "LOOKUP_PAG", 38839d712b8dSSteen Hegelund [VCAP_KF_MIRROR_PROBE] = "MIRROR_PROBE", 38845d7e5b04SSteen Hegelund [VCAP_KF_OAM_CCM_CNTS_EQ0] = "OAM_CCM_CNTS_EQ0", 3885f274a659SSteen Hegelund [VCAP_KF_OAM_DETECTED] = "OAM_DETECTED", 3886f274a659SSteen Hegelund [VCAP_KF_OAM_FLAGS] = "OAM_FLAGS", 38875d7e5b04SSteen Hegelund [VCAP_KF_OAM_MEL_FLAGS] = "OAM_MEL_FLAGS", 3888f274a659SSteen Hegelund [VCAP_KF_OAM_MEPID] = "OAM_MEPID", 3889f274a659SSteen Hegelund [VCAP_KF_OAM_OPCODE] = "OAM_OPCODE", 3890f274a659SSteen Hegelund [VCAP_KF_OAM_VER] = "OAM_VER", 38915d7e5b04SSteen Hegelund [VCAP_KF_OAM_Y1731_IS] = "OAM_Y1731_IS", 38925d7e5b04SSteen Hegelund [VCAP_KF_PROT_ACTIVE] = "PROT_ACTIVE", 38935d7e5b04SSteen Hegelund [VCAP_KF_TCP_IS] = "TCP_IS", 38945d7e5b04SSteen Hegelund [VCAP_KF_TCP_UDP_IS] = "TCP_UDP_IS", 38955d7e5b04SSteen Hegelund [VCAP_KF_TYPE] = "TYPE", 38965d7e5b04SSteen Hegelund }; 38975d7e5b04SSteen Hegelund 38985d7e5b04SSteen Hegelund /* Actionfield names */ 38995d7e5b04SSteen Hegelund static const char * const vcap_actionfield_names[] = { 39005d7e5b04SSteen Hegelund [VCAP_AF_NO_VALUE] = "(None)", 3901f274a659SSteen Hegelund [VCAP_AF_ACL_ID] = "ACL_ID", 39025d7e5b04SSteen Hegelund [VCAP_AF_CLS_VID_SEL] = "CLS_VID_SEL", 39035d7e5b04SSteen Hegelund [VCAP_AF_CNT_ID] = "CNT_ID", 39045d7e5b04SSteen Hegelund [VCAP_AF_COPY_PORT_NUM] = "COPY_PORT_NUM", 39055d7e5b04SSteen Hegelund [VCAP_AF_COPY_QUEUE_NUM] = "COPY_QUEUE_NUM", 39065d7e5b04SSteen Hegelund [VCAP_AF_CPU_COPY_ENA] = "CPU_COPY_ENA", 3907*a5cc98adSSteen Hegelund [VCAP_AF_CPU_QU] = "CPU_QU", 39085d7e5b04SSteen Hegelund [VCAP_AF_CPU_QUEUE_NUM] = "CPU_QUEUE_NUM", 3909*a5cc98adSSteen Hegelund [VCAP_AF_DEI_A_VAL] = "DEI_A_VAL", 3910*a5cc98adSSteen Hegelund [VCAP_AF_DEI_B_VAL] = "DEI_B_VAL", 3911*a5cc98adSSteen Hegelund [VCAP_AF_DEI_C_VAL] = "DEI_C_VAL", 39125d7e5b04SSteen Hegelund [VCAP_AF_DEI_ENA] = "DEI_ENA", 39135d7e5b04SSteen Hegelund [VCAP_AF_DEI_VAL] = "DEI_VAL", 39145d7e5b04SSteen Hegelund [VCAP_AF_DP_ENA] = "DP_ENA", 39155d7e5b04SSteen Hegelund [VCAP_AF_DP_VAL] = "DP_VAL", 39165d7e5b04SSteen Hegelund [VCAP_AF_DSCP_ENA] = "DSCP_ENA", 3917*a5cc98adSSteen Hegelund [VCAP_AF_DSCP_SEL] = "DSCP_SEL", 39185d7e5b04SSteen Hegelund [VCAP_AF_DSCP_VAL] = "DSCP_VAL", 39195d7e5b04SSteen Hegelund [VCAP_AF_ES2_REW_CMD] = "ES2_REW_CMD", 3920*a5cc98adSSteen Hegelund [VCAP_AF_ESDX] = "ESDX", 3921f274a659SSteen Hegelund [VCAP_AF_FWD_KILL_ENA] = "FWD_KILL_ENA", 39225d7e5b04SSteen Hegelund [VCAP_AF_FWD_MODE] = "FWD_MODE", 3923*a5cc98adSSteen Hegelund [VCAP_AF_FWD_SEL] = "FWD_SEL", 39245d7e5b04SSteen Hegelund [VCAP_AF_HIT_ME_ONCE] = "HIT_ME_ONCE", 3925f274a659SSteen Hegelund [VCAP_AF_HOST_MATCH] = "HOST_MATCH", 39265d7e5b04SSteen Hegelund [VCAP_AF_IGNORE_PIPELINE_CTRL] = "IGNORE_PIPELINE_CTRL", 39275d7e5b04SSteen Hegelund [VCAP_AF_INTR_ENA] = "INTR_ENA", 39285d7e5b04SSteen Hegelund [VCAP_AF_ISDX_ADD_REPLACE_SEL] = "ISDX_ADD_REPLACE_SEL", 3929f274a659SSteen Hegelund [VCAP_AF_ISDX_ENA] = "ISDX_ENA", 39305d7e5b04SSteen Hegelund [VCAP_AF_ISDX_VAL] = "ISDX_VAL", 3931*a5cc98adSSteen Hegelund [VCAP_AF_LOOP_ENA] = "LOOP_ENA", 39325d7e5b04SSteen Hegelund [VCAP_AF_LRN_DIS] = "LRN_DIS", 39335d7e5b04SSteen Hegelund [VCAP_AF_MAP_IDX] = "MAP_IDX", 39345d7e5b04SSteen Hegelund [VCAP_AF_MAP_KEY] = "MAP_KEY", 39355d7e5b04SSteen Hegelund [VCAP_AF_MAP_LOOKUP_SEL] = "MAP_LOOKUP_SEL", 39365d7e5b04SSteen Hegelund [VCAP_AF_MASK_MODE] = "MASK_MODE", 39375d7e5b04SSteen Hegelund [VCAP_AF_MATCH_ID] = "MATCH_ID", 39385d7e5b04SSteen Hegelund [VCAP_AF_MATCH_ID_MASK] = "MATCH_ID_MASK", 3939f274a659SSteen Hegelund [VCAP_AF_MIRROR_ENA] = "MIRROR_ENA", 39405d7e5b04SSteen Hegelund [VCAP_AF_MIRROR_PROBE] = "MIRROR_PROBE", 39415d7e5b04SSteen Hegelund [VCAP_AF_MIRROR_PROBE_ID] = "MIRROR_PROBE_ID", 39425d7e5b04SSteen Hegelund [VCAP_AF_NXT_IDX] = "NXT_IDX", 39435d7e5b04SSteen Hegelund [VCAP_AF_NXT_IDX_CTRL] = "NXT_IDX_CTRL", 39445d7e5b04SSteen Hegelund [VCAP_AF_PAG_OVERRIDE_MASK] = "PAG_OVERRIDE_MASK", 39455d7e5b04SSteen Hegelund [VCAP_AF_PAG_VAL] = "PAG_VAL", 3946*a5cc98adSSteen Hegelund [VCAP_AF_PCP_A_VAL] = "PCP_A_VAL", 3947*a5cc98adSSteen Hegelund [VCAP_AF_PCP_B_VAL] = "PCP_B_VAL", 3948*a5cc98adSSteen Hegelund [VCAP_AF_PCP_C_VAL] = "PCP_C_VAL", 39495d7e5b04SSteen Hegelund [VCAP_AF_PCP_ENA] = "PCP_ENA", 39505d7e5b04SSteen Hegelund [VCAP_AF_PCP_VAL] = "PCP_VAL", 3951*a5cc98adSSteen Hegelund [VCAP_AF_PIPELINE_ACT] = "PIPELINE_ACT", 39525d7e5b04SSteen Hegelund [VCAP_AF_PIPELINE_FORCE_ENA] = "PIPELINE_FORCE_ENA", 39535d7e5b04SSteen Hegelund [VCAP_AF_PIPELINE_PT] = "PIPELINE_PT", 39545d7e5b04SSteen Hegelund [VCAP_AF_POLICE_ENA] = "POLICE_ENA", 39555d7e5b04SSteen Hegelund [VCAP_AF_POLICE_IDX] = "POLICE_IDX", 39565d7e5b04SSteen Hegelund [VCAP_AF_POLICE_REMARK] = "POLICE_REMARK", 3957f274a659SSteen Hegelund [VCAP_AF_POLICE_VCAP_ONLY] = "POLICE_VCAP_ONLY", 3958*a5cc98adSSteen Hegelund [VCAP_AF_POP_VAL] = "POP_VAL", 39595d7e5b04SSteen Hegelund [VCAP_AF_PORT_MASK] = "PORT_MASK", 3960*a5cc98adSSteen Hegelund [VCAP_AF_PUSH_CUSTOMER_TAG] = "PUSH_CUSTOMER_TAG", 3961*a5cc98adSSteen Hegelund [VCAP_AF_PUSH_INNER_TAG] = "PUSH_INNER_TAG", 3962*a5cc98adSSteen Hegelund [VCAP_AF_PUSH_OUTER_TAG] = "PUSH_OUTER_TAG", 39635d7e5b04SSteen Hegelund [VCAP_AF_QOS_ENA] = "QOS_ENA", 39645d7e5b04SSteen Hegelund [VCAP_AF_QOS_VAL] = "QOS_VAL", 3965f274a659SSteen Hegelund [VCAP_AF_REW_OP] = "REW_OP", 39665d7e5b04SSteen Hegelund [VCAP_AF_RT_DIS] = "RT_DIS", 3967*a5cc98adSSteen Hegelund [VCAP_AF_SWAP_MACS_ENA] = "SWAP_MACS_ENA", 3968*a5cc98adSSteen Hegelund [VCAP_AF_TAG_A_DEI_SEL] = "TAG_A_DEI_SEL", 3969*a5cc98adSSteen Hegelund [VCAP_AF_TAG_A_PCP_SEL] = "TAG_A_PCP_SEL", 3970*a5cc98adSSteen Hegelund [VCAP_AF_TAG_A_TPID_SEL] = "TAG_A_TPID_SEL", 3971*a5cc98adSSteen Hegelund [VCAP_AF_TAG_A_VID_SEL] = "TAG_A_VID_SEL", 3972*a5cc98adSSteen Hegelund [VCAP_AF_TAG_B_DEI_SEL] = "TAG_B_DEI_SEL", 3973*a5cc98adSSteen Hegelund [VCAP_AF_TAG_B_PCP_SEL] = "TAG_B_PCP_SEL", 3974*a5cc98adSSteen Hegelund [VCAP_AF_TAG_B_TPID_SEL] = "TAG_B_TPID_SEL", 3975*a5cc98adSSteen Hegelund [VCAP_AF_TAG_B_VID_SEL] = "TAG_B_VID_SEL", 3976*a5cc98adSSteen Hegelund [VCAP_AF_TAG_C_DEI_SEL] = "TAG_C_DEI_SEL", 3977*a5cc98adSSteen Hegelund [VCAP_AF_TAG_C_PCP_SEL] = "TAG_C_PCP_SEL", 3978*a5cc98adSSteen Hegelund [VCAP_AF_TAG_C_TPID_SEL] = "TAG_C_TPID_SEL", 3979*a5cc98adSSteen Hegelund [VCAP_AF_TAG_C_VID_SEL] = "TAG_C_VID_SEL", 39805d7e5b04SSteen Hegelund [VCAP_AF_TYPE] = "TYPE", 3981*a5cc98adSSteen Hegelund [VCAP_AF_UNTAG_VID_ENA] = "UNTAG_VID_ENA", 3982*a5cc98adSSteen Hegelund [VCAP_AF_VID_A_VAL] = "VID_A_VAL", 3983*a5cc98adSSteen Hegelund [VCAP_AF_VID_B_VAL] = "VID_B_VAL", 3984*a5cc98adSSteen Hegelund [VCAP_AF_VID_C_VAL] = "VID_C_VAL", 39855d7e5b04SSteen Hegelund [VCAP_AF_VID_VAL] = "VID_VAL", 39865d7e5b04SSteen Hegelund }; 39875d7e5b04SSteen Hegelund 39885d7e5b04SSteen Hegelund /* VCAPs */ 39895d7e5b04SSteen Hegelund const struct vcap_info kunit_test_vcaps[] = { 39905d7e5b04SSteen Hegelund [VCAP_TYPE_IS0] = { 39915d7e5b04SSteen Hegelund .name = "is0", 39925d7e5b04SSteen Hegelund .rows = 1024, 39935d7e5b04SSteen Hegelund .sw_count = 12, 39945d7e5b04SSteen Hegelund .sw_width = 52, 39955d7e5b04SSteen Hegelund .sticky_width = 1, 39965d7e5b04SSteen Hegelund .act_width = 110, 39975d7e5b04SSteen Hegelund .default_cnt = 140, 39985d7e5b04SSteen Hegelund .require_cnt_dis = 0, 39995d7e5b04SSteen Hegelund .version = 1, 40005d7e5b04SSteen Hegelund .keyfield_set = is0_keyfield_set, 40015d7e5b04SSteen Hegelund .keyfield_set_size = ARRAY_SIZE(is0_keyfield_set), 40025d7e5b04SSteen Hegelund .actionfield_set = is0_actionfield_set, 40035d7e5b04SSteen Hegelund .actionfield_set_size = ARRAY_SIZE(is0_actionfield_set), 40045d7e5b04SSteen Hegelund .keyfield_set_map = is0_keyfield_set_map, 40055d7e5b04SSteen Hegelund .keyfield_set_map_size = is0_keyfield_set_map_size, 40065d7e5b04SSteen Hegelund .actionfield_set_map = is0_actionfield_set_map, 40075d7e5b04SSteen Hegelund .actionfield_set_map_size = is0_actionfield_set_map_size, 40085d7e5b04SSteen Hegelund .keyfield_set_typegroups = is0_keyfield_set_typegroups, 40095d7e5b04SSteen Hegelund .actionfield_set_typegroups = is0_actionfield_set_typegroups, 40105d7e5b04SSteen Hegelund }, 40115d7e5b04SSteen Hegelund [VCAP_TYPE_IS2] = { 40125d7e5b04SSteen Hegelund .name = "is2", 40135d7e5b04SSteen Hegelund .rows = 256, 40145d7e5b04SSteen Hegelund .sw_count = 12, 40155d7e5b04SSteen Hegelund .sw_width = 52, 40165d7e5b04SSteen Hegelund .sticky_width = 1, 40175d7e5b04SSteen Hegelund .act_width = 110, 40185d7e5b04SSteen Hegelund .default_cnt = 73, 40195d7e5b04SSteen Hegelund .require_cnt_dis = 0, 40205d7e5b04SSteen Hegelund .version = 1, 40215d7e5b04SSteen Hegelund .keyfield_set = is2_keyfield_set, 40225d7e5b04SSteen Hegelund .keyfield_set_size = ARRAY_SIZE(is2_keyfield_set), 40235d7e5b04SSteen Hegelund .actionfield_set = is2_actionfield_set, 40245d7e5b04SSteen Hegelund .actionfield_set_size = ARRAY_SIZE(is2_actionfield_set), 40255d7e5b04SSteen Hegelund .keyfield_set_map = is2_keyfield_set_map, 40265d7e5b04SSteen Hegelund .keyfield_set_map_size = is2_keyfield_set_map_size, 40275d7e5b04SSteen Hegelund .actionfield_set_map = is2_actionfield_set_map, 40285d7e5b04SSteen Hegelund .actionfield_set_map_size = is2_actionfield_set_map_size, 40295d7e5b04SSteen Hegelund .keyfield_set_typegroups = is2_keyfield_set_typegroups, 40305d7e5b04SSteen Hegelund .actionfield_set_typegroups = is2_actionfield_set_typegroups, 40315d7e5b04SSteen Hegelund }, 40325d7e5b04SSteen Hegelund [VCAP_TYPE_ES2] = { 40335d7e5b04SSteen Hegelund .name = "es2", 40345d7e5b04SSteen Hegelund .rows = 1024, 40355d7e5b04SSteen Hegelund .sw_count = 12, 40365d7e5b04SSteen Hegelund .sw_width = 52, 40375d7e5b04SSteen Hegelund .sticky_width = 1, 40385d7e5b04SSteen Hegelund .act_width = 21, 40395d7e5b04SSteen Hegelund .default_cnt = 74, 40405d7e5b04SSteen Hegelund .require_cnt_dis = 0, 40415d7e5b04SSteen Hegelund .version = 1, 40425d7e5b04SSteen Hegelund .keyfield_set = es2_keyfield_set, 40435d7e5b04SSteen Hegelund .keyfield_set_size = ARRAY_SIZE(es2_keyfield_set), 40445d7e5b04SSteen Hegelund .actionfield_set = es2_actionfield_set, 40455d7e5b04SSteen Hegelund .actionfield_set_size = ARRAY_SIZE(es2_actionfield_set), 40465d7e5b04SSteen Hegelund .keyfield_set_map = es2_keyfield_set_map, 40475d7e5b04SSteen Hegelund .keyfield_set_map_size = es2_keyfield_set_map_size, 40485d7e5b04SSteen Hegelund .actionfield_set_map = es2_actionfield_set_map, 40495d7e5b04SSteen Hegelund .actionfield_set_map_size = es2_actionfield_set_map_size, 40505d7e5b04SSteen Hegelund .keyfield_set_typegroups = es2_keyfield_set_typegroups, 40515d7e5b04SSteen Hegelund .actionfield_set_typegroups = es2_actionfield_set_typegroups, 40525d7e5b04SSteen Hegelund }, 40535d7e5b04SSteen Hegelund }; 40545d7e5b04SSteen Hegelund 40555d7e5b04SSteen Hegelund const struct vcap_statistics kunit_test_vcap_stats = { 40565d7e5b04SSteen Hegelund .name = "kunit_test", 40575d7e5b04SSteen Hegelund .count = 3, 40585d7e5b04SSteen Hegelund .keyfield_set_names = vcap_keyfield_set_names, 40595d7e5b04SSteen Hegelund .actionfield_set_names = vcap_actionfield_set_names, 40605d7e5b04SSteen Hegelund .keyfield_names = vcap_keyfield_names, 40615d7e5b04SSteen Hegelund .actionfield_names = vcap_actionfield_names, 40625d7e5b04SSteen Hegelund }; 4063