xref: /freebsd/sys/contrib/ncsw/Peripherals/FM/Pcd/fm_manip.h (revision c2c014f24c10f90d85126ac5fbd4d8524de32b1c)
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