1*852ba100SJustin Hibbits /* 2*852ba100SJustin Hibbits * Copyright 2008-2012 Freescale Semiconductor Inc. 30aeed3e9SJustin Hibbits * 40aeed3e9SJustin Hibbits * Redistribution and use in source and binary forms, with or without 50aeed3e9SJustin Hibbits * modification, are permitted provided that the following conditions are met: 60aeed3e9SJustin Hibbits * * Redistributions of source code must retain the above copyright 70aeed3e9SJustin Hibbits * notice, this list of conditions and the following disclaimer. 80aeed3e9SJustin Hibbits * * Redistributions in binary form must reproduce the above copyright 90aeed3e9SJustin Hibbits * notice, this list of conditions and the following disclaimer in the 100aeed3e9SJustin Hibbits * documentation and/or other materials provided with the distribution. 110aeed3e9SJustin Hibbits * * Neither the name of Freescale Semiconductor nor the 120aeed3e9SJustin Hibbits * names of its contributors may be used to endorse or promote products 130aeed3e9SJustin Hibbits * derived from this software without specific prior written permission. 140aeed3e9SJustin Hibbits * 150aeed3e9SJustin Hibbits * 160aeed3e9SJustin Hibbits * ALTERNATIVELY, this software may be distributed under the terms of the 170aeed3e9SJustin Hibbits * GNU General Public License ("GPL") as published by the Free Software 180aeed3e9SJustin Hibbits * Foundation, either version 2 of that License or (at your option) any 190aeed3e9SJustin Hibbits * later version. 200aeed3e9SJustin Hibbits * 210aeed3e9SJustin Hibbits * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY 220aeed3e9SJustin Hibbits * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 230aeed3e9SJustin Hibbits * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 240aeed3e9SJustin Hibbits * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY 250aeed3e9SJustin Hibbits * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 260aeed3e9SJustin Hibbits * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 270aeed3e9SJustin Hibbits * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 280aeed3e9SJustin Hibbits * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 290aeed3e9SJustin Hibbits * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 300aeed3e9SJustin Hibbits * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 310aeed3e9SJustin Hibbits */ 320aeed3e9SJustin Hibbits 33*852ba100SJustin Hibbits 340aeed3e9SJustin Hibbits /****************************************************************************** 350aeed3e9SJustin Hibbits @File fm_manip.h 360aeed3e9SJustin Hibbits 370aeed3e9SJustin Hibbits @Description FM PCD manip... 380aeed3e9SJustin Hibbits *//***************************************************************************/ 390aeed3e9SJustin Hibbits #ifndef __FM_MANIP_H 400aeed3e9SJustin Hibbits #define __FM_MANIP_H 410aeed3e9SJustin Hibbits 420aeed3e9SJustin Hibbits #include "std_ext.h" 430aeed3e9SJustin Hibbits #include "error_ext.h" 440aeed3e9SJustin Hibbits #include "list_ext.h" 450aeed3e9SJustin Hibbits 460aeed3e9SJustin Hibbits #include "fm_cc.h" 470aeed3e9SJustin Hibbits 480aeed3e9SJustin Hibbits 490aeed3e9SJustin Hibbits /***********************************************************************/ 500aeed3e9SJustin Hibbits /* Header manipulations defines */ 510aeed3e9SJustin Hibbits /***********************************************************************/ 520aeed3e9SJustin Hibbits 53*852ba100SJustin Hibbits #define NUM_OF_SCRATCH_POOL_BUFFERS 1000 /*TODO - Change it!!*/ 54*852ba100SJustin Hibbits 55*852ba100SJustin Hibbits #if (defined(FM_CAPWAP_SUPPORT) && (DPAA_VERSION == 10)) 560aeed3e9SJustin Hibbits #define HMAN_OC_RMV_N_OR_INSRT_INT_FRM_HDR 0x2e 570aeed3e9SJustin Hibbits #define HMAN_OC_INSRT_HDR_BY_TEMPL_N_OR_FRAG_AFTER 0x31 580aeed3e9SJustin Hibbits #define HMAN_OC_MV_INT_FRAME_HDR_FROM_FRM_TO_BUFFER_PREFFIX 0x2f 590aeed3e9SJustin Hibbits #define HMAN_OC_CAPWAP_RMV_DTLS_IF_EXIST 0x30 600aeed3e9SJustin Hibbits #define HMAN_OC_CAPWAP_REASSEMBLY 0x11 /* dummy */ 610aeed3e9SJustin Hibbits #define HMAN_OC_CAPWAP_INDEXED_STATS 0x32 /* dummy */ 62*852ba100SJustin Hibbits #define HMAN_OC_CAPWAP_FRAGMENTATION 0x33 63*852ba100SJustin Hibbits #else 64*852ba100SJustin Hibbits #define HMAN_OC_CAPWAP_MANIP 0x2F 65*852ba100SJustin Hibbits #define HMAN_OC_CAPWAP_FRAG_CHECK 0x2E 66*852ba100SJustin Hibbits #define HMAN_OC_CAPWAP_FRAGMENTATION 0x33 67*852ba100SJustin Hibbits #define HMAN_OC_CAPWAP_REASSEMBLY 0x30 68*852ba100SJustin Hibbits #endif /* (defined(FM_CAPWAP_SUPPORT) && (DPAA_VERSION == 10)) */ 69*852ba100SJustin Hibbits #define HMAN_OC_IP_MANIP 0x34 70*852ba100SJustin Hibbits #define HMAN_OC_IP_FRAGMENTATION 0x74 71*852ba100SJustin Hibbits #define HMAN_OC_IP_REASSEMBLY 0xB4 72*852ba100SJustin Hibbits #define HMAN_OC_IPSEC_MANIP 0xF4 73*852ba100SJustin Hibbits #define HMAN_OC 0x35 740aeed3e9SJustin Hibbits 75*852ba100SJustin Hibbits #if (defined(FM_CAPWAP_SUPPORT) && (DPAA_VERSION == 10)) 760aeed3e9SJustin Hibbits #define HMAN_RMV_HDR 0x80000000 770aeed3e9SJustin Hibbits #define HMAN_INSRT_INT_FRM_HDR 0x40000000 780aeed3e9SJustin Hibbits 79*852ba100SJustin Hibbits #define UDP_CHECKSUM_FIELD_OFFSET_FROM_UDP 6 80*852ba100SJustin Hibbits #define UDP_CHECKSUM_FIELD_SIZE 2 81*852ba100SJustin Hibbits #define UDP_LENGTH_FIELD_OFFSET_FROM_UDP 4 820aeed3e9SJustin Hibbits 83*852ba100SJustin Hibbits #define IPv4_DSCECN_FIELD_OFFSET_FROM_IP 1 84*852ba100SJustin Hibbits #define IPv4_TOTALLENGTH_FIELD_OFFSET_FROM_IP 2 85*852ba100SJustin Hibbits #define IPv4_HDRCHECKSUM_FIELD_OFFSET_FROM_IP 10 860aeed3e9SJustin Hibbits #define VLAN_TAG_FIELD_OFFSET_FROM_ETH 12 87*852ba100SJustin Hibbits #define IPv4_ID_FIELD_OFFSET_FROM_IP 4 880aeed3e9SJustin Hibbits 89*852ba100SJustin Hibbits #define IPv6_PAYLOAD_LENGTH_OFFSET_FROM_IP 4 90*852ba100SJustin Hibbits #define IPv6_NEXT_HEADER_OFFSET_FROM_IP 6 91*852ba100SJustin Hibbits 92*852ba100SJustin Hibbits #define FM_PCD_MANIP_CAPWAP_REASM_TABLE_SIZE 0x80 930aeed3e9SJustin Hibbits #define FM_PCD_MANIP_CAPWAP_REASM_TABLE_ALIGN 8 940aeed3e9SJustin Hibbits #define FM_PCD_MANIP_CAPWAP_REASM_RFD_SIZE 32 950aeed3e9SJustin Hibbits #define FM_PCD_MANIP_CAPWAP_REASM_AUTO_LEARNING_HASH_ENTRY_SIZE 4 960aeed3e9SJustin Hibbits #define FM_PCD_MANIP_CAPWAP_REASM_TIME_OUT_ENTRY_SIZE 8 970aeed3e9SJustin Hibbits 980aeed3e9SJustin Hibbits 990aeed3e9SJustin Hibbits #define FM_PCD_MANIP_CAPWAP_REASM_TIME_OUT_BETWEEN_FRAMES 0x40000000 1000aeed3e9SJustin Hibbits #define FM_PCD_MANIP_CAPWAP_REASM_HALT_ON_DUPLICATE_FRAG 0x10000000 1010aeed3e9SJustin Hibbits #define FM_PCD_MANIP_CAPWAP_REASM_AUTOMATIC_LEARNIN_HASH_8_WAYS 0x08000000 1020aeed3e9SJustin Hibbits #define FM_PCD_MANIP_CAPWAP_REASM_PR_COPY 0x00800000 1030aeed3e9SJustin Hibbits 1040aeed3e9SJustin Hibbits #define FM_PCD_MANIP_CAPWAP_FRAG_COMPR_OPTION_FIELD_EN 0x80000000 1050aeed3e9SJustin Hibbits 1060aeed3e9SJustin Hibbits #define FM_PCD_MANIP_INDEXED_STATS_ENTRY_SIZE 4 1070aeed3e9SJustin Hibbits #define FM_PCD_MANIP_INDEXED_STATS_CNIA 0x20000000 1080aeed3e9SJustin Hibbits #define FM_PCD_MANIP_INDEXED_STATS_DPD 0x10000000 109*852ba100SJustin Hibbits #endif /* (defined(FM_CAPWAP_SUPPORT) && (DPAA_VERSION == 10)) */ 1100aeed3e9SJustin Hibbits 111*852ba100SJustin Hibbits #if (DPAA_VERSION >= 11) 112*852ba100SJustin Hibbits #define FM_PCD_MANIP_CAPWAP_DTLS 0x00040000 113*852ba100SJustin Hibbits #define FM_PCD_MANIP_CAPWAP_NADEN 0x20000000 1140aeed3e9SJustin Hibbits 115*852ba100SJustin Hibbits #define FM_PCD_MANIP_CAPWAP_FRAG_CHECK_MTU_SHIFT 16 116*852ba100SJustin Hibbits #define FM_PCD_MANIP_CAPWAP_FRAG_CHECK_NO_FRAGMENTATION 0xFFFF0000 117*852ba100SJustin Hibbits #define FM_PCD_MANIP_CAPWAP_FRAG_CHECK_CNIA 0x20000000 1180aeed3e9SJustin Hibbits 119*852ba100SJustin Hibbits #define FM_PCD_MANIP_CAPWAP_FRAG_COMPRESS_EN 0x04000000 120*852ba100SJustin Hibbits #define FM_PCD_MANIP_CAPWAP_FRAG_SCRATCH_BPID 24 121*852ba100SJustin Hibbits #define FM_PCD_MANIP_CAPWAP_FRAG_SG_BDID_EN 0x08000000 122*852ba100SJustin Hibbits #define FM_PCD_MANIP_CAPWAP_FRAG_SG_BDID_MASK 0xFF000000 123*852ba100SJustin Hibbits #define FM_PCD_MANIP_CAPWAP_FRAG_SG_BDID_SHIFT 24 124*852ba100SJustin Hibbits #endif /* (DPAA_VERSION >= 11) */ 1250aeed3e9SJustin Hibbits 126*852ba100SJustin Hibbits #define FM_PCD_MANIP_REASM_TABLE_SIZE 0x40 127*852ba100SJustin Hibbits #define FM_PCD_MANIP_REASM_TABLE_ALIGN 8 128*852ba100SJustin Hibbits 129*852ba100SJustin Hibbits #define FM_PCD_MANIP_REASM_COMMON_PARAM_TABLE_SIZE 64 130*852ba100SJustin Hibbits #define FM_PCD_MANIP_REASM_COMMON_PARAM_TABLE_ALIGN 8 131*852ba100SJustin Hibbits #define FM_PCD_MANIP_REASM_TIME_OUT_BETWEEN_FRAMES 0x80000000 132*852ba100SJustin Hibbits #define FM_PCD_MANIP_REASM_COUPLING_ENABLE 0x40000000 133*852ba100SJustin Hibbits #define FM_PCD_MANIP_REASM_COUPLING_MASK 0xFF000000 134*852ba100SJustin Hibbits #define FM_PCD_MANIP_REASM_COUPLING_SHIFT 24 135*852ba100SJustin Hibbits #define FM_PCD_MANIP_REASM_LIODN_MASK 0x0000003F 136*852ba100SJustin Hibbits #define FM_PCD_MANIP_REASM_LIODN_SHIFT 56 137*852ba100SJustin Hibbits #define FM_PCD_MANIP_REASM_ELIODN_MASK 0x000003c0 138*852ba100SJustin Hibbits #define FM_PCD_MANIP_REASM_ELIODN_SHIFT 38 139*852ba100SJustin Hibbits #define FM_PCD_MANIP_REASM_COMMON_INT_BUFFER_IDX_MASK 0x000000FF 140*852ba100SJustin Hibbits #define FM_PCD_MANIP_REASM_COMMON_INT_BUFFER_IDX_SHIFT 24 141*852ba100SJustin Hibbits #define FM_PCD_MANIP_REASM_TIMEOUT_THREAD_THRESH 1024 142*852ba100SJustin Hibbits 143*852ba100SJustin Hibbits #define FM_PCD_MANIP_IP_MTU_SHIFT 16 144*852ba100SJustin Hibbits #define FM_PCD_MANIP_IP_NO_FRAGMENTATION 0xFFFF0000 145*852ba100SJustin Hibbits #define FM_PCD_MANIP_IP_CNIA 0x20000000 146*852ba100SJustin Hibbits 147*852ba100SJustin Hibbits #define FM_PCD_MANIP_IP_FRAG_DF_SHIFT 28 148*852ba100SJustin Hibbits #define FM_PCD_MANIP_IP_FRAG_SCRATCH_BPID 24 149*852ba100SJustin Hibbits #define FM_PCD_MANIP_IP_FRAG_SG_BDID_EN 0x08000000 150*852ba100SJustin Hibbits #define FM_PCD_MANIP_IP_FRAG_SG_BDID_MASK 0xFF000000 151*852ba100SJustin Hibbits #define FM_PCD_MANIP_IP_FRAG_SG_BDID_SHIFT 24 152*852ba100SJustin Hibbits 153*852ba100SJustin Hibbits #define FM_PCD_MANIP_IPSEC_DEC 0x10000000 154*852ba100SJustin Hibbits #define FM_PCD_MANIP_IPSEC_VIPV_EN 0x08000000 155*852ba100SJustin Hibbits #define FM_PCD_MANIP_IPSEC_ECN_EN 0x04000000 156*852ba100SJustin Hibbits #define FM_PCD_MANIP_IPSEC_DSCP_EN 0x02000000 157*852ba100SJustin Hibbits #define FM_PCD_MANIP_IPSEC_VIPL_EN 0x01000000 158*852ba100SJustin Hibbits #define FM_PCD_MANIP_IPSEC_NADEN 0x20000000 159*852ba100SJustin Hibbits 160*852ba100SJustin Hibbits #define FM_PCD_MANIP_IPSEC_IP_HDR_LEN_MASK 0x00FF0000 161*852ba100SJustin Hibbits #define FM_PCD_MANIP_IPSEC_IP_HDR_LEN_SHIFT 16 162*852ba100SJustin Hibbits 163*852ba100SJustin Hibbits #define FM_PCD_MANIP_IPSEC_ARW_SIZE_MASK 0xFFFF0000 164*852ba100SJustin Hibbits #define FM_PCD_MANIP_IPSEC_ARW_SIZE_SHIFT 16 165*852ba100SJustin Hibbits 1660aeed3e9SJustin Hibbits #define e_FM_MANIP_IP_INDX 1 1670aeed3e9SJustin Hibbits 168*852ba100SJustin Hibbits #define HMCD_OPCODE_GENERIC_RMV 0x01 169*852ba100SJustin Hibbits #define HMCD_OPCODE_GENERIC_INSRT 0x02 170*852ba100SJustin Hibbits #define HMCD_OPCODE_GENERIC_REPLACE 0x05 171*852ba100SJustin Hibbits #define HMCD_OPCODE_L2_RMV 0x08 172*852ba100SJustin Hibbits #define HMCD_OPCODE_L2_INSRT 0x09 173*852ba100SJustin Hibbits #define HMCD_OPCODE_VLAN_PRI_UPDATE 0x0B 174*852ba100SJustin Hibbits #define HMCD_OPCODE_IPV4_UPDATE 0x0C 175*852ba100SJustin Hibbits #define HMCD_OPCODE_IPV6_UPDATE 0x10 176*852ba100SJustin Hibbits #define HMCD_OPCODE_TCP_UDP_UPDATE 0x0E 177*852ba100SJustin Hibbits #define HMCD_OPCODE_TCP_UDP_CHECKSUM 0x14 178*852ba100SJustin Hibbits #define HMCD_OPCODE_REPLACE_IP 0x12 179*852ba100SJustin Hibbits #define HMCD_OPCODE_RMV_TILL 0x15 180*852ba100SJustin Hibbits #define HMCD_OPCODE_UDP_INSRT 0x16 181*852ba100SJustin Hibbits #define HMCD_OPCODE_IP_INSRT 0x17 182*852ba100SJustin Hibbits #define HMCD_OPCODE_CAPWAP_RMV 0x18 183*852ba100SJustin Hibbits #define HMCD_OPCODE_CAPWAP_INSRT 0x18 184*852ba100SJustin Hibbits #define HMCD_OPCODE_GEN_FIELD_REPLACE 0x19 185*852ba100SJustin Hibbits 186*852ba100SJustin Hibbits #define HMCD_LAST 0x00800000 187*852ba100SJustin Hibbits 188*852ba100SJustin Hibbits #define HMCD_DSCP_VALUES 64 189*852ba100SJustin Hibbits 190*852ba100SJustin Hibbits #define HMCD_BASIC_SIZE 4 191*852ba100SJustin Hibbits #define HMCD_PTR_SIZE 4 192*852ba100SJustin Hibbits #define HMCD_PARAM_SIZE 4 193*852ba100SJustin Hibbits #define HMCD_IPV4_ADDR_SIZE 4 194*852ba100SJustin Hibbits #define HMCD_IPV6_ADDR_SIZE 0x10 195*852ba100SJustin Hibbits #define HMCD_L4_HDR_SIZE 8 196*852ba100SJustin Hibbits 197*852ba100SJustin Hibbits #define HMCD_CAPWAP_INSRT 0x00010000 198*852ba100SJustin Hibbits #define HMCD_INSRT_UDP_LITE 0x00010000 199*852ba100SJustin Hibbits #define HMCD_IP_ID_MASK 0x0000FFFF 200*852ba100SJustin Hibbits #define HMCD_IP_SIZE_MASK 0x0000FF00 201*852ba100SJustin Hibbits #define HMCD_IP_SIZE_SHIFT 8 202*852ba100SJustin Hibbits #define HMCD_IP_LAST_PID_MASK 0x000000FF 203*852ba100SJustin Hibbits #define HMCD_IP_OR_QOS 0x00010000 204*852ba100SJustin Hibbits #define HMCD_IP_L4_CS_CALC 0x00040000 205*852ba100SJustin Hibbits #define HMCD_IP_DF_MODE 0x00400000 2060aeed3e9SJustin Hibbits 2070aeed3e9SJustin Hibbits 208*852ba100SJustin Hibbits #define HMCD_OC_SHIFT 24 209*852ba100SJustin Hibbits 210*852ba100SJustin Hibbits #define HMCD_RMV_OFFSET_SHIFT 0 211*852ba100SJustin Hibbits #define HMCD_RMV_SIZE_SHIFT 8 212*852ba100SJustin Hibbits 213*852ba100SJustin Hibbits #define HMCD_INSRT_OFFSET_SHIFT 0 214*852ba100SJustin Hibbits #define HMCD_INSRT_SIZE_SHIFT 8 215*852ba100SJustin Hibbits 216*852ba100SJustin Hibbits #define HMTD_CFG_TYPE 0x4000 217*852ba100SJustin Hibbits #define HMTD_CFG_EXT_HMCT 0x0080 218*852ba100SJustin Hibbits #define HMTD_CFG_PRS_AFTER_HM 0x0040 219*852ba100SJustin Hibbits #define HMTD_CFG_NEXT_AD_EN 0x0020 220*852ba100SJustin Hibbits 221*852ba100SJustin Hibbits #define HMCD_RMV_L2_ETHERNET 0 222*852ba100SJustin Hibbits #define HMCD_RMV_L2_STACKED_QTAGS 1 223*852ba100SJustin Hibbits #define HMCD_RMV_L2_ETHERNET_AND_MPLS 2 224*852ba100SJustin Hibbits #define HMCD_RMV_L2_MPLS 3 225*852ba100SJustin Hibbits #define HMCD_RMV_L2_PPPOE 4 226*852ba100SJustin Hibbits 227*852ba100SJustin Hibbits #define HMCD_INSRT_L2_MPLS 0 228*852ba100SJustin Hibbits #define HMCD_INSRT_N_UPDATE_L2_MPLS 1 229*852ba100SJustin Hibbits #define HMCD_INSRT_L2_PPPOE 2 230*852ba100SJustin Hibbits #define HMCD_INSRT_L2_SIZE_SHIFT 24 231*852ba100SJustin Hibbits 232*852ba100SJustin Hibbits #define HMCD_L2_MODE_SHIFT 16 233*852ba100SJustin Hibbits 234*852ba100SJustin Hibbits #define HMCD_VLAN_PRI_REP_MODE_SHIFT 16 235*852ba100SJustin Hibbits #define HMCD_VLAN_PRI_UPDATE 0 236*852ba100SJustin Hibbits #define HMCD_VLAN_PRI_UPDATE_DSCP_TO_VPRI 1 237*852ba100SJustin Hibbits 238*852ba100SJustin Hibbits #define HMCD_IPV4_UPDATE_TTL 0x00000001 239*852ba100SJustin Hibbits #define HMCD_IPV4_UPDATE_TOS 0x00000002 240*852ba100SJustin Hibbits #define HMCD_IPV4_UPDATE_DST 0x00000020 241*852ba100SJustin Hibbits #define HMCD_IPV4_UPDATE_SRC 0x00000040 242*852ba100SJustin Hibbits #define HMCD_IPV4_UPDATE_ID 0x00000080 243*852ba100SJustin Hibbits #define HMCD_IPV4_UPDATE_TOS_SHIFT 8 244*852ba100SJustin Hibbits 245*852ba100SJustin Hibbits #define HMCD_IPV6_UPDATE_HL 0x00000001 246*852ba100SJustin Hibbits #define HMCD_IPV6_UPDATE_TC 0x00000002 247*852ba100SJustin Hibbits #define HMCD_IPV6_UPDATE_DST 0x00000040 248*852ba100SJustin Hibbits #define HMCD_IPV6_UPDATE_SRC 0x00000080 249*852ba100SJustin Hibbits #define HMCD_IPV6_UPDATE_TC_SHIFT 8 250*852ba100SJustin Hibbits 251*852ba100SJustin Hibbits #define HMCD_TCP_UDP_UPDATE_DST 0x00004000 252*852ba100SJustin Hibbits #define HMCD_TCP_UDP_UPDATE_SRC 0x00008000 253*852ba100SJustin Hibbits #define HMCD_TCP_UDP_UPDATE_SRC_SHIFT 16 254*852ba100SJustin Hibbits 255*852ba100SJustin Hibbits #define HMCD_IP_REPLACE_REPLACE_IPV4 0x00000000 256*852ba100SJustin Hibbits #define HMCD_IP_REPLACE_REPLACE_IPV6 0x00010000 257*852ba100SJustin Hibbits #define HMCD_IP_REPLACE_TTL_HL 0x00200000 258*852ba100SJustin Hibbits #define HMCD_IP_REPLACE_ID 0x00400000 259*852ba100SJustin Hibbits 260*852ba100SJustin Hibbits #define HMCD_IP_REPLACE_L3HDRSIZE_SHIFT 24 261*852ba100SJustin Hibbits 262*852ba100SJustin Hibbits #define HMCD_GEN_FIELD_SIZE_SHIFT 16 263*852ba100SJustin Hibbits #define HMCD_GEN_FIELD_SRC_OFF_SHIFT 8 264*852ba100SJustin Hibbits #define HMCD_GEN_FIELD_DST_OFF_SHIFT 0 265*852ba100SJustin Hibbits #define HMCD_GEN_FIELD_MASK_EN 0x00400000 266*852ba100SJustin Hibbits 267*852ba100SJustin Hibbits #define HMCD_GEN_FIELD_MASK_OFF_SHIFT 16 268*852ba100SJustin Hibbits #define HMCD_GEN_FIELD_MASK_SHIFT 24 269*852ba100SJustin Hibbits 270*852ba100SJustin Hibbits #define DSCP_TO_VLAN_TABLE_SIZE 32 271*852ba100SJustin Hibbits 272*852ba100SJustin Hibbits #define MANIP_GET_HMCT_SIZE(h_Manip) (((t_FmPcdManip *)h_Manip)->tableSize) 273*852ba100SJustin Hibbits #define MANIP_GET_DATA_SIZE(h_Manip) (((t_FmPcdManip *)h_Manip)->dataSize) 274*852ba100SJustin Hibbits 275*852ba100SJustin Hibbits #define MANIP_GET_HMCT_PTR(h_Manip) (((t_FmPcdManip *)h_Manip)->p_Hmct) 276*852ba100SJustin Hibbits #define MANIP_GET_DATA_PTR(h_Manip) (((t_FmPcdManip *)h_Manip)->p_Data) 277*852ba100SJustin Hibbits 278*852ba100SJustin Hibbits #define MANIP_SET_HMCT_PTR(h_Manip, h_NewPtr) (((t_FmPcdManip *)h_Manip)->p_Hmct = h_NewPtr) 279*852ba100SJustin Hibbits #define MANIP_SET_DATA_PTR(h_Manip, h_NewPtr) (((t_FmPcdManip *)h_Manip)->p_Data = h_NewPtr) 280*852ba100SJustin Hibbits 281*852ba100SJustin Hibbits #define MANIP_GET_HMTD_PTR(h_Manip) (((t_FmPcdManip *)h_Manip)->h_Ad) 282*852ba100SJustin Hibbits #define MANIP_DONT_REPARSE(h_Manip) (((t_FmPcdManip *)h_Manip)->dontParseAfterManip) 283*852ba100SJustin Hibbits #define MANIP_SET_PREV(h_Manip, h_Prev) (((t_FmPcdManip *)h_Manip)->h_PrevManip = h_Prev) 284*852ba100SJustin Hibbits #define MANIP_GET_OWNERS(h_Manip) (((t_FmPcdManip *)h_Manip)->owner) 285*852ba100SJustin Hibbits #define MANIP_GET_TYPE(h_Manip) (((t_FmPcdManip *)h_Manip)->type) 286*852ba100SJustin Hibbits #define MANIP_SET_UNIFIED_TBL_PTR_INDICATION(h_Manip) (((t_FmPcdManip *)h_Manip)->unifiedTablePtr = TRUE) 287*852ba100SJustin Hibbits #define MANIP_GET_MURAM(h_Manip) (((t_FmPcd *)((t_FmPcdManip *)h_Manip)->h_FmPcd)->h_FmMuram) 288*852ba100SJustin Hibbits #define MANIP_FREE_HMTD(h_Manip) \ 289*852ba100SJustin Hibbits {if (((t_FmPcdManip *)h_Manip)->muramAllocate) \ 290*852ba100SJustin Hibbits FM_MURAM_FreeMem(((t_FmPcd *)((t_FmPcdManip *)h_Manip)->h_FmPcd)->h_FmMuram, ((t_FmPcdManip *)h_Manip)->h_Ad);\ 291*852ba100SJustin Hibbits else \ 292*852ba100SJustin Hibbits XX_Free(((t_FmPcdManip *)h_Manip)->h_Ad); \ 293*852ba100SJustin Hibbits ((t_FmPcdManip *)h_Manip)->h_Ad = NULL; \ 294*852ba100SJustin Hibbits } 295*852ba100SJustin Hibbits /* position regarding Manip SW structure */ 296*852ba100SJustin Hibbits #define MANIP_IS_FIRST(h_Manip) (!(((t_FmPcdManip *)h_Manip)->h_PrevManip)) 297*852ba100SJustin Hibbits #define MANIP_IS_CASCADED(h_Manip) (((t_FmPcdManip *)h_Manip)->cascaded) 298*852ba100SJustin Hibbits #define MANIP_IS_UNIFIED(h_Manip) (!(((t_FmPcdManip *)h_Manip)->unifiedPosition == e_MANIP_UNIFIED_NONE)) 299*852ba100SJustin Hibbits #define MANIP_IS_UNIFIED_NON_FIRST(h_Manip) ((((t_FmPcdManip *)h_Manip)->unifiedPosition == e_MANIP_UNIFIED_MID) || \ 300*852ba100SJustin Hibbits (((t_FmPcdManip *)h_Manip)->unifiedPosition == e_MANIP_UNIFIED_LAST)) 301*852ba100SJustin Hibbits #define MANIP_IS_UNIFIED_NON_LAST(h_Manip) ((((t_FmPcdManip *)h_Manip)->unifiedPosition == e_MANIP_UNIFIED_FIRST) ||\ 302*852ba100SJustin Hibbits (((t_FmPcdManip *)h_Manip)->unifiedPosition == e_MANIP_UNIFIED_MID)) 303*852ba100SJustin Hibbits #define MANIP_IS_UNIFIED_FIRST(h_Manip) (((t_FmPcdManip *)h_Manip)->unifiedPosition == e_MANIP_UNIFIED_FIRST) 304*852ba100SJustin Hibbits #define MANIP_IS_UNIFIED_LAST(h_Manip) (((t_FmPcdManip *)h_Manip)->unifiedPosition == e_MANIP_UNIFIED_LAST) 305*852ba100SJustin Hibbits 306*852ba100SJustin Hibbits #define MANIP_UPDATE_UNIFIED_POSITION(h_Manip) (((t_FmPcdManip *)h_Manip)->unifiedPosition = \ 307*852ba100SJustin Hibbits (((t_FmPcdManip *)h_Manip)->unifiedPosition == e_MANIP_UNIFIED_NONE)? \ 308*852ba100SJustin Hibbits e_MANIP_UNIFIED_LAST : e_MANIP_UNIFIED_MID) 309*852ba100SJustin Hibbits 310*852ba100SJustin Hibbits typedef enum e_ManipUnifiedPosition { 311*852ba100SJustin Hibbits e_MANIP_UNIFIED_NONE = 0, 312*852ba100SJustin Hibbits e_MANIP_UNIFIED_FIRST, 313*852ba100SJustin Hibbits e_MANIP_UNIFIED_MID, 314*852ba100SJustin Hibbits e_MANIP_UNIFIED_LAST 315*852ba100SJustin Hibbits } e_ManipUnifiedPosition; 316*852ba100SJustin Hibbits 317*852ba100SJustin Hibbits typedef enum e_ManipInfo { 318*852ba100SJustin Hibbits e_MANIP_HMTD, 319*852ba100SJustin Hibbits e_MANIP_HMCT, 320*852ba100SJustin Hibbits e_MANIP_HANDLER_TABLE_OWNER 321*852ba100SJustin Hibbits }e_ManipInfo; 3220aeed3e9SJustin Hibbits /***********************************************************************/ 3230aeed3e9SJustin Hibbits /* Memory map */ 3240aeed3e9SJustin Hibbits /***********************************************************************/ 3250aeed3e9SJustin Hibbits #if defined(__MWERKS__) && !defined(__GNUC__) 3260aeed3e9SJustin Hibbits #pragma pack(push,1) 3270aeed3e9SJustin Hibbits #endif /* defined(__MWERKS__) && ... */ 3280aeed3e9SJustin Hibbits 329*852ba100SJustin Hibbits #if (defined(FM_CAPWAP_SUPPORT) && (DPAA_VERSION == 10)) 330*852ba100SJustin Hibbits typedef struct t_CapwapReasmPram { 3310aeed3e9SJustin Hibbits volatile uint32_t mode; 3320aeed3e9SJustin Hibbits volatile uint32_t autoLearnHashTblPtr; 3330aeed3e9SJustin Hibbits volatile uint32_t intStatsTblPtr; 3340aeed3e9SJustin Hibbits volatile uint32_t reasmFrmDescPoolTblPtr; 3350aeed3e9SJustin Hibbits volatile uint32_t reasmFrmDescIndexPoolTblPtr; 3360aeed3e9SJustin Hibbits volatile uint32_t timeOutTblPtr; 3370aeed3e9SJustin Hibbits volatile uint32_t bufferPoolIdAndRisc1SetIndexes; 3380aeed3e9SJustin Hibbits volatile uint32_t risc23SetIndexes; 3390aeed3e9SJustin Hibbits volatile uint32_t risc4SetIndexesAndExtendedStatsTblPtr; 3400aeed3e9SJustin Hibbits volatile uint32_t extendedStatsTblPtr; 3410aeed3e9SJustin Hibbits volatile uint32_t expirationDelay; 3420aeed3e9SJustin Hibbits volatile uint32_t totalProcessedFragCounter; 3430aeed3e9SJustin Hibbits volatile uint32_t totalUnsuccessfulReasmFramesCounter; 3440aeed3e9SJustin Hibbits volatile uint32_t totalDuplicatedFragCounter; 3450aeed3e9SJustin Hibbits volatile uint32_t totalMalformdFragCounter; 3460aeed3e9SJustin Hibbits volatile uint32_t totalTimeOutCounter; 3470aeed3e9SJustin Hibbits volatile uint32_t totalSetBusyCounter; 3480aeed3e9SJustin Hibbits volatile uint32_t totalRfdPoolBusyCounter; 3490aeed3e9SJustin Hibbits volatile uint32_t totalDiscardedFragsCounter; 3500aeed3e9SJustin Hibbits volatile uint32_t totalMoreThan16FramesCounter; 3510aeed3e9SJustin Hibbits volatile uint32_t internalBufferBusy; 3520aeed3e9SJustin Hibbits volatile uint32_t externalBufferBusy; 353*852ba100SJustin Hibbits volatile uint32_t reserved1[4]; 354*852ba100SJustin Hibbits } t_CapwapReasmPram; 355*852ba100SJustin Hibbits #endif /* (defined(FM_CAPWAP_SUPPORT) && (DPAA_VERSION == 10)) */ 3560aeed3e9SJustin Hibbits 357*852ba100SJustin Hibbits typedef _Packed struct t_ReassTbl { 3580aeed3e9SJustin Hibbits volatile uint16_t waysNumAndSetSize; 3590aeed3e9SJustin Hibbits volatile uint16_t autoLearnHashKeyMask; 360*852ba100SJustin Hibbits volatile uint32_t reassCommonPrmTblPtr; 3610aeed3e9SJustin Hibbits volatile uint32_t liodnAlAndAutoLearnHashTblPtrHi; 3620aeed3e9SJustin Hibbits volatile uint32_t autoLearnHashTblPtrLow; 3630aeed3e9SJustin Hibbits volatile uint32_t liodnSlAndAutoLearnSetLockTblPtrHi; 3640aeed3e9SJustin Hibbits volatile uint32_t autoLearnSetLockTblPtrLow; 365*852ba100SJustin Hibbits volatile uint16_t minFragSize; /* Not relevant for CAPWAP*/ 366*852ba100SJustin Hibbits volatile uint16_t maxReassemblySize; /* Only relevant for CAPWAP*/ 3670aeed3e9SJustin Hibbits volatile uint32_t totalSuccessfullyReasmFramesCounter; 3680aeed3e9SJustin Hibbits volatile uint32_t totalValidFragmentCounter; 3690aeed3e9SJustin Hibbits volatile uint32_t totalProcessedFragCounter; 3700aeed3e9SJustin Hibbits volatile uint32_t totalMalformdFragCounter; 3710aeed3e9SJustin Hibbits volatile uint32_t totalSetBusyCounter; 3720aeed3e9SJustin Hibbits volatile uint32_t totalDiscardedFragsCounter; 3730aeed3e9SJustin Hibbits volatile uint32_t totalMoreThan16FramesCounter; 3740aeed3e9SJustin Hibbits volatile uint32_t reserved2[2]; 375*852ba100SJustin Hibbits } _PackedType t_ReassTbl; 3760aeed3e9SJustin Hibbits 377*852ba100SJustin Hibbits typedef struct t_ReassCommonTbl { 3780aeed3e9SJustin Hibbits volatile uint32_t timeoutModeAndFqid; 3790aeed3e9SJustin Hibbits volatile uint32_t reassFrmDescIndexPoolTblPtr; 3800aeed3e9SJustin Hibbits volatile uint32_t liodnAndReassFrmDescPoolPtrHi; 3810aeed3e9SJustin Hibbits volatile uint32_t reassFrmDescPoolPtrLow; 3820aeed3e9SJustin Hibbits volatile uint32_t timeOutTblPtr; 3830aeed3e9SJustin Hibbits volatile uint32_t expirationDelay; 384*852ba100SJustin Hibbits volatile uint32_t internalBufferManagement; 385*852ba100SJustin Hibbits volatile uint32_t reserved2; 3860aeed3e9SJustin Hibbits volatile uint32_t totalTimeOutCounter; 3870aeed3e9SJustin Hibbits volatile uint32_t totalRfdPoolBusyCounter; 3880aeed3e9SJustin Hibbits volatile uint32_t totalInternalBufferBusy; 3890aeed3e9SJustin Hibbits volatile uint32_t totalExternalBufferBusy; 390*852ba100SJustin Hibbits volatile uint32_t totalSgFragmentCounter; 391*852ba100SJustin Hibbits volatile uint32_t totalDmaSemaphoreDepletionCounter; 392*852ba100SJustin Hibbits volatile uint32_t totalNCSPCounter; 393*852ba100SJustin Hibbits volatile uint32_t discardMask; 394*852ba100SJustin Hibbits } t_ReassCommonTbl; 3950aeed3e9SJustin Hibbits 396*852ba100SJustin Hibbits typedef _Packed struct t_Hmtd { 397*852ba100SJustin Hibbits volatile uint16_t cfg; 398*852ba100SJustin Hibbits volatile uint8_t eliodnOffset; 399*852ba100SJustin Hibbits volatile uint8_t extHmcdBasePtrHi; 400*852ba100SJustin Hibbits volatile uint32_t hmcdBasePtr; 401*852ba100SJustin Hibbits volatile uint16_t nextAdIdx; 402*852ba100SJustin Hibbits volatile uint8_t res1; 403*852ba100SJustin Hibbits volatile uint8_t opCode; 404*852ba100SJustin Hibbits volatile uint32_t res2; 405*852ba100SJustin Hibbits } _PackedType t_Hmtd; 4060aeed3e9SJustin Hibbits 4070aeed3e9SJustin Hibbits #if defined(__MWERKS__) && !defined(__GNUC__) 4080aeed3e9SJustin Hibbits #pragma pack(pop) 4090aeed3e9SJustin Hibbits #endif /* defined(__MWERKS__) && ... */ 4100aeed3e9SJustin Hibbits 4110aeed3e9SJustin Hibbits 4120aeed3e9SJustin Hibbits /***********************************************************************/ 4130aeed3e9SJustin Hibbits /* Driver's internal structures */ 4140aeed3e9SJustin Hibbits /***********************************************************************/ 415*852ba100SJustin Hibbits #if (defined(FM_CAPWAP_SUPPORT) && (DPAA_VERSION == 10)) 4160aeed3e9SJustin Hibbits typedef struct 4170aeed3e9SJustin Hibbits { 4180aeed3e9SJustin Hibbits t_Handle p_AutoLearnHashTbl; 4190aeed3e9SJustin Hibbits t_Handle p_ReassmFrmDescrPoolTbl; 4200aeed3e9SJustin Hibbits t_Handle p_ReassmFrmDescrIndxPoolTbl; 4210aeed3e9SJustin Hibbits t_Handle p_TimeOutTbl; 422*852ba100SJustin Hibbits uint16_t maxNumFramesInProcess; 4230aeed3e9SJustin Hibbits uint8_t numOfTasks; 424*852ba100SJustin Hibbits //uint8_t poolId; 4250aeed3e9SJustin Hibbits uint8_t prOffset; 4260aeed3e9SJustin Hibbits uint16_t dataOffset; 427*852ba100SJustin Hibbits uint8_t sgBpid; 4280aeed3e9SJustin Hibbits uint8_t hwPortId; 4290aeed3e9SJustin Hibbits uint32_t fqidForTimeOutFrames; 4300aeed3e9SJustin Hibbits uint32_t timeoutRoutineRequestTime; 4310aeed3e9SJustin Hibbits uint32_t bitFor1Micro; 432*852ba100SJustin Hibbits } t_CapwapFragParams; 433*852ba100SJustin Hibbits #endif /* (defined(FM_CAPWAP_SUPPORT) && (DPAA_VERSION == 10)) */ 4340aeed3e9SJustin Hibbits 4350aeed3e9SJustin Hibbits typedef struct 4360aeed3e9SJustin Hibbits { 437*852ba100SJustin Hibbits t_AdOfTypeContLookup *p_Frag; 438*852ba100SJustin Hibbits #if (DPAA_VERSION == 10) 439*852ba100SJustin Hibbits uint8_t scratchBpid; 440*852ba100SJustin Hibbits #endif /* (DPAA_VERSION == 10) */ 441*852ba100SJustin Hibbits } t_FragParams; 4420aeed3e9SJustin Hibbits 443*852ba100SJustin Hibbits typedef struct t_ReassmParams 4440aeed3e9SJustin Hibbits { 445*852ba100SJustin Hibbits e_NetHeaderType hdr; /* Header selection */ 446*852ba100SJustin Hibbits t_ReassCommonTbl *p_ReassCommonTbl; 447*852ba100SJustin Hibbits uintptr_t reassFrmDescrIndxPoolTblAddr; 448*852ba100SJustin Hibbits uintptr_t reassFrmDescrPoolTblAddr; 449*852ba100SJustin Hibbits uintptr_t timeOutTblAddr; 450*852ba100SJustin Hibbits uintptr_t internalBufferPoolManagementIndexAddr; 451*852ba100SJustin Hibbits uintptr_t internalBufferPoolAddr; 452*852ba100SJustin Hibbits uint32_t maxNumFramesInProcess; 453*852ba100SJustin Hibbits uint8_t sgBpid; 454*852ba100SJustin Hibbits uint8_t dataMemId; 455*852ba100SJustin Hibbits uint16_t dataLiodnOffset; 456*852ba100SJustin Hibbits uint32_t fqidForTimeOutFrames; 457*852ba100SJustin Hibbits e_FmPcdManipReassemTimeOutMode timeOutMode; 458*852ba100SJustin Hibbits uint32_t timeoutThresholdForReassmProcess; 459*852ba100SJustin Hibbits union { 460*852ba100SJustin Hibbits struct { 4610aeed3e9SJustin Hibbits t_Handle h_Ipv4Ad; 4620aeed3e9SJustin Hibbits t_Handle h_Ipv6Ad; 463*852ba100SJustin Hibbits bool ipv6Assigned; 464*852ba100SJustin Hibbits t_ReassTbl *p_Ipv4ReassTbl; 465*852ba100SJustin Hibbits t_ReassTbl *p_Ipv6ReassTbl; 466*852ba100SJustin Hibbits uintptr_t ipv4AutoLearnHashTblAddr; 467*852ba100SJustin Hibbits uintptr_t ipv6AutoLearnHashTblAddr; 468*852ba100SJustin Hibbits uintptr_t ipv4AutoLearnSetLockTblAddr; 469*852ba100SJustin Hibbits uintptr_t ipv6AutoLearnSetLockTblAddr; 470*852ba100SJustin Hibbits uint16_t minFragSize[2]; 471*852ba100SJustin Hibbits e_FmPcdManipReassemWaysNumber numOfFramesPerHashEntry[2]; 472*852ba100SJustin Hibbits uint8_t relativeSchemeId[2]; 473*852ba100SJustin Hibbits t_Handle h_Ipv4Scheme; 474*852ba100SJustin Hibbits t_Handle h_Ipv6Scheme; 475*852ba100SJustin Hibbits uint32_t nonConsistentSpFqid; 476*852ba100SJustin Hibbits } ip; 477*852ba100SJustin Hibbits struct { 478*852ba100SJustin Hibbits t_Handle h_Ad; 479*852ba100SJustin Hibbits t_ReassTbl *p_ReassTbl; 480*852ba100SJustin Hibbits uintptr_t autoLearnHashTblAddr; 481*852ba100SJustin Hibbits uintptr_t autoLearnSetLockTblAddr; 482*852ba100SJustin Hibbits uint16_t maxRessembledsSize; 4830aeed3e9SJustin Hibbits e_FmPcdManipReassemWaysNumber numOfFramesPerHashEntry; 484*852ba100SJustin Hibbits uint8_t relativeSchemeId; 485*852ba100SJustin Hibbits t_Handle h_Scheme; 486*852ba100SJustin Hibbits } capwap; 487*852ba100SJustin Hibbits }; 488*852ba100SJustin Hibbits } t_ReassmParams; 4890aeed3e9SJustin Hibbits 4900aeed3e9SJustin Hibbits typedef struct{ 491*852ba100SJustin Hibbits e_FmPcdManipType type; 492*852ba100SJustin Hibbits t_FmPcdManipParams manipParams; 4930aeed3e9SJustin Hibbits bool muramAllocate; 4940aeed3e9SJustin Hibbits t_Handle h_Ad; 495*852ba100SJustin Hibbits uint32_t opcode; 4960aeed3e9SJustin Hibbits bool rmv; 4970aeed3e9SJustin Hibbits bool insrt; 498*852ba100SJustin Hibbits t_Handle h_NextManip; 499*852ba100SJustin Hibbits t_Handle h_PrevManip; 500*852ba100SJustin Hibbits e_FmPcdManipType nextManipType; 501*852ba100SJustin Hibbits /* HdrManip parameters*/ 502*852ba100SJustin Hibbits uint8_t *p_Hmct; 503*852ba100SJustin Hibbits uint8_t *p_Data; 504*852ba100SJustin Hibbits bool dontParseAfterManip; 505*852ba100SJustin Hibbits bool fieldUpdate; 506*852ba100SJustin Hibbits bool custom; 507*852ba100SJustin Hibbits uint16_t tableSize; 508*852ba100SJustin Hibbits uint8_t dataSize; 509*852ba100SJustin Hibbits bool cascaded; 510*852ba100SJustin Hibbits e_ManipUnifiedPosition unifiedPosition; 511*852ba100SJustin Hibbits /* end HdrManip */ 5120aeed3e9SJustin Hibbits uint8_t *p_Template; 513*852ba100SJustin Hibbits uint16_t owner; 514*852ba100SJustin Hibbits uint32_t updateParams; 515*852ba100SJustin Hibbits uint32_t shadowUpdateParams; 5160aeed3e9SJustin Hibbits bool frag; 5170aeed3e9SJustin Hibbits bool reassm; 5180aeed3e9SJustin Hibbits uint16_t sizeForFragmentation; 519*852ba100SJustin Hibbits #if (defined(FM_CAPWAP_SUPPORT) && (DPAA_VERSION == 10)) 520*852ba100SJustin Hibbits t_Handle h_Frag; 521*852ba100SJustin Hibbits t_CapwapFragParams capwapFragParams; 522*852ba100SJustin Hibbits #endif /* (defined(FM_CAPWAP_SUPPORT) && (DPAA_VERSION == 10)) */ 523*852ba100SJustin Hibbits union { 524*852ba100SJustin Hibbits t_ReassmParams reassmParams; 5250aeed3e9SJustin Hibbits t_FragParams fragParams; 526*852ba100SJustin Hibbits }; 5270aeed3e9SJustin Hibbits uint8_t icOffset; 5280aeed3e9SJustin Hibbits uint16_t ownerTmp; 5290aeed3e9SJustin Hibbits bool cnia; 5300aeed3e9SJustin Hibbits t_Handle p_StatsTbl; 5310aeed3e9SJustin Hibbits t_Handle h_FmPcd; 532*852ba100SJustin Hibbits t_List nodesLst; 533*852ba100SJustin Hibbits t_Handle h_Spinlock; 5340aeed3e9SJustin Hibbits } t_FmPcdManip; 5350aeed3e9SJustin Hibbits 5360aeed3e9SJustin Hibbits typedef struct t_FmPcdCcSavedManipParams 5370aeed3e9SJustin Hibbits { 5380aeed3e9SJustin Hibbits union 5390aeed3e9SJustin Hibbits { 5400aeed3e9SJustin Hibbits struct 5410aeed3e9SJustin Hibbits { 5420aeed3e9SJustin Hibbits uint16_t dataOffset; 543*852ba100SJustin Hibbits //uint8_t poolId; 5440aeed3e9SJustin Hibbits }capwapParams; 5450aeed3e9SJustin Hibbits struct 5460aeed3e9SJustin Hibbits { 5470aeed3e9SJustin Hibbits uint16_t dataOffset; 5480aeed3e9SJustin Hibbits uint8_t poolId; 5490aeed3e9SJustin Hibbits }ipParams; 5500aeed3e9SJustin Hibbits }; 5510aeed3e9SJustin Hibbits 5520aeed3e9SJustin Hibbits } t_FmPcdCcSavedManipParams; 5530aeed3e9SJustin Hibbits 5540aeed3e9SJustin Hibbits 5550aeed3e9SJustin Hibbits #endif /* __FM_MANIP_H */ 556