The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/contrib/ncsw/Peripherals/FM/Pcd/fm_manip.h

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 /*
    2  * Copyright 2008-2012 Freescale Semiconductor Inc.
    3  *
    4  * Redistribution and use in source and binary forms, with or without
    5  * modification, are permitted provided that the following conditions are met:
    6  *     * Redistributions of source code must retain the above copyright
    7  *       notice, this list of conditions and the following disclaimer.
    8  *     * Redistributions in binary form must reproduce the above copyright
    9  *       notice, this list of conditions and the following disclaimer in the
   10  *       documentation and/or other materials provided with the distribution.
   11  *     * Neither the name of Freescale Semiconductor nor the
   12  *       names of its contributors may be used to endorse or promote products
   13  *       derived from this software without specific prior written permission.
   14  *
   15  *
   16  * ALTERNATIVELY, this software may be distributed under the terms of the
   17  * GNU General Public License ("GPL") as published by the Free Software
   18  * Foundation, either version 2 of that License or (at your option) any
   19  * later version.
   20  *
   21  * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
   22  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
   23  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   24  * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
   25  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
   26  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
   27  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   28  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
   29  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
   30  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
   31  */
   32 
   33 
   34 /******************************************************************************
   35  @File          fm_manip.h
   36 
   37  @Description   FM PCD manip...
   38 *//***************************************************************************/
   39 #ifndef __FM_MANIP_H
   40 #define __FM_MANIP_H
   41 
   42 #include "std_ext.h"
   43 #include "error_ext.h"
   44 #include "list_ext.h"
   45 
   46 #include "fm_cc.h"
   47 
   48 
   49 /***********************************************************************/
   50 /*          Header manipulations defines                              */
   51 /***********************************************************************/
   52 
   53 #define NUM_OF_SCRATCH_POOL_BUFFERS             1000 /*TODO - Change it!!*/
   54 
   55 #if (defined(FM_CAPWAP_SUPPORT) && (DPAA_VERSION == 10))
   56 #define HMAN_OC_RMV_N_OR_INSRT_INT_FRM_HDR                      0x2e
   57 #define HMAN_OC_INSRT_HDR_BY_TEMPL_N_OR_FRAG_AFTER              0x31
   58 #define HMAN_OC_MV_INT_FRAME_HDR_FROM_FRM_TO_BUFFER_PREFFIX     0x2f
   59 #define HMAN_OC_CAPWAP_RMV_DTLS_IF_EXIST                        0x30
   60 #define HMAN_OC_CAPWAP_REASSEMBLY                               0x11 /* dummy */
   61 #define HMAN_OC_CAPWAP_INDEXED_STATS                            0x32 /* dummy */
   62 #define HMAN_OC_CAPWAP_FRAGMENTATION                            0x33
   63 #else
   64 #define HMAN_OC_CAPWAP_MANIP                                    0x2F
   65 #define HMAN_OC_CAPWAP_FRAG_CHECK                               0x2E
   66 #define HMAN_OC_CAPWAP_FRAGMENTATION                            0x33
   67 #define HMAN_OC_CAPWAP_REASSEMBLY                               0x30
   68 #endif /* (defined(FM_CAPWAP_SUPPORT) && (DPAA_VERSION == 10)) */
   69 #define HMAN_OC_IP_MANIP                                        0x34
   70 #define HMAN_OC_IP_FRAGMENTATION                                0x74
   71 #define HMAN_OC_IP_REASSEMBLY                                   0xB4
   72 #define HMAN_OC_IPSEC_MANIP                                     0xF4
   73 #define HMAN_OC                                                 0x35
   74 
   75 #if (defined(FM_CAPWAP_SUPPORT) && (DPAA_VERSION == 10))
   76 #define HMAN_RMV_HDR                               0x80000000
   77 #define HMAN_INSRT_INT_FRM_HDR                     0x40000000
   78 
   79 #define UDP_CHECKSUM_FIELD_OFFSET_FROM_UDP          6
   80 #define UDP_CHECKSUM_FIELD_SIZE                     2
   81 #define UDP_LENGTH_FIELD_OFFSET_FROM_UDP            4
   82 
   83 #define IPv4_DSCECN_FIELD_OFFSET_FROM_IP            1
   84 #define IPv4_TOTALLENGTH_FIELD_OFFSET_FROM_IP       2
   85 #define IPv4_HDRCHECKSUM_FIELD_OFFSET_FROM_IP       10
   86 #define VLAN_TAG_FIELD_OFFSET_FROM_ETH              12
   87 #define IPv4_ID_FIELD_OFFSET_FROM_IP                4
   88 
   89 #define IPv6_PAYLOAD_LENGTH_OFFSET_FROM_IP          4
   90 #define IPv6_NEXT_HEADER_OFFSET_FROM_IP             6
   91 
   92 #define FM_PCD_MANIP_CAPWAP_REASM_TABLE_SIZE               0x80
   93 #define FM_PCD_MANIP_CAPWAP_REASM_TABLE_ALIGN              8
   94 #define FM_PCD_MANIP_CAPWAP_REASM_RFD_SIZE                 32
   95 #define FM_PCD_MANIP_CAPWAP_REASM_AUTO_LEARNING_HASH_ENTRY_SIZE 4
   96 #define FM_PCD_MANIP_CAPWAP_REASM_TIME_OUT_ENTRY_SIZE      8
   97 
   98 
   99 #define FM_PCD_MANIP_CAPWAP_REASM_TIME_OUT_BETWEEN_FRAMES          0x40000000
  100 #define FM_PCD_MANIP_CAPWAP_REASM_HALT_ON_DUPLICATE_FRAG           0x10000000
  101 #define FM_PCD_MANIP_CAPWAP_REASM_AUTOMATIC_LEARNIN_HASH_8_WAYS    0x08000000
  102 #define FM_PCD_MANIP_CAPWAP_REASM_PR_COPY                          0x00800000
  103 
  104 #define FM_PCD_MANIP_CAPWAP_FRAG_COMPR_OPTION_FIELD_EN             0x80000000
  105 
  106 #define FM_PCD_MANIP_INDEXED_STATS_ENTRY_SIZE               4
  107 #define FM_PCD_MANIP_INDEXED_STATS_CNIA                     0x20000000
  108 #define FM_PCD_MANIP_INDEXED_STATS_DPD                      0x10000000
  109 #endif /* (defined(FM_CAPWAP_SUPPORT) && (DPAA_VERSION == 10)) */
  110 
  111 #if (DPAA_VERSION >= 11)
  112 #define FM_PCD_MANIP_CAPWAP_DTLS                            0x00040000
  113 #define FM_PCD_MANIP_CAPWAP_NADEN                           0x20000000
  114 
  115 #define FM_PCD_MANIP_CAPWAP_FRAG_CHECK_MTU_SHIFT            16
  116 #define FM_PCD_MANIP_CAPWAP_FRAG_CHECK_NO_FRAGMENTATION     0xFFFF0000
  117 #define FM_PCD_MANIP_CAPWAP_FRAG_CHECK_CNIA                 0x20000000
  118 
  119 #define FM_PCD_MANIP_CAPWAP_FRAG_COMPRESS_EN                0x04000000
  120 #define FM_PCD_MANIP_CAPWAP_FRAG_SCRATCH_BPID               24
  121 #define FM_PCD_MANIP_CAPWAP_FRAG_SG_BDID_EN                 0x08000000
  122 #define FM_PCD_MANIP_CAPWAP_FRAG_SG_BDID_MASK               0xFF000000
  123 #define FM_PCD_MANIP_CAPWAP_FRAG_SG_BDID_SHIFT              24
  124 #endif /* (DPAA_VERSION >= 11) */
  125 
  126 #define FM_PCD_MANIP_REASM_TABLE_SIZE                    0x40
  127 #define FM_PCD_MANIP_REASM_TABLE_ALIGN                   8
  128 
  129 #define FM_PCD_MANIP_REASM_COMMON_PARAM_TABLE_SIZE       64
  130 #define FM_PCD_MANIP_REASM_COMMON_PARAM_TABLE_ALIGN      8
  131 #define FM_PCD_MANIP_REASM_TIME_OUT_BETWEEN_FRAMES       0x80000000
  132 #define FM_PCD_MANIP_REASM_COUPLING_ENABLE               0x40000000
  133 #define FM_PCD_MANIP_REASM_COUPLING_MASK                 0xFF000000
  134 #define FM_PCD_MANIP_REASM_COUPLING_SHIFT                24
  135 #define FM_PCD_MANIP_REASM_LIODN_MASK                    0x0000003F
  136 #define FM_PCD_MANIP_REASM_LIODN_SHIFT                   56
  137 #define FM_PCD_MANIP_REASM_ELIODN_MASK                   0x000003c0
  138 #define FM_PCD_MANIP_REASM_ELIODN_SHIFT                  38
  139 #define FM_PCD_MANIP_REASM_COMMON_INT_BUFFER_IDX_MASK    0x000000FF
  140 #define FM_PCD_MANIP_REASM_COMMON_INT_BUFFER_IDX_SHIFT   24
  141 #define FM_PCD_MANIP_REASM_TIMEOUT_THREAD_THRESH        1024
  142 
  143 #define FM_PCD_MANIP_IP_MTU_SHIFT                           16
  144 #define FM_PCD_MANIP_IP_NO_FRAGMENTATION                    0xFFFF0000
  145 #define FM_PCD_MANIP_IP_CNIA                                0x20000000
  146 
  147 #define FM_PCD_MANIP_IP_FRAG_DF_SHIFT                       28
  148 #define FM_PCD_MANIP_IP_FRAG_SCRATCH_BPID                   24
  149 #define FM_PCD_MANIP_IP_FRAG_SG_BDID_EN                     0x08000000
  150 #define FM_PCD_MANIP_IP_FRAG_SG_BDID_MASK                   0xFF000000
  151 #define FM_PCD_MANIP_IP_FRAG_SG_BDID_SHIFT                  24
  152 
  153 #define FM_PCD_MANIP_IPSEC_DEC                              0x10000000
  154 #define FM_PCD_MANIP_IPSEC_VIPV_EN                          0x08000000
  155 #define FM_PCD_MANIP_IPSEC_ECN_EN                           0x04000000
  156 #define FM_PCD_MANIP_IPSEC_DSCP_EN                          0x02000000
  157 #define FM_PCD_MANIP_IPSEC_VIPL_EN                          0x01000000
  158 #define FM_PCD_MANIP_IPSEC_NADEN                            0x20000000
  159 
  160 #define FM_PCD_MANIP_IPSEC_IP_HDR_LEN_MASK                  0x00FF0000
  161 #define FM_PCD_MANIP_IPSEC_IP_HDR_LEN_SHIFT                 16
  162 
  163 #define FM_PCD_MANIP_IPSEC_ARW_SIZE_MASK                    0xFFFF0000
  164 #define FM_PCD_MANIP_IPSEC_ARW_SIZE_SHIFT                   16
  165 
  166 #define e_FM_MANIP_IP_INDX                                  1
  167 
  168 #define HMCD_OPCODE_GENERIC_RMV                 0x01
  169 #define HMCD_OPCODE_GENERIC_INSRT               0x02
  170 #define HMCD_OPCODE_GENERIC_REPLACE             0x05
  171 #define HMCD_OPCODE_L2_RMV                      0x08
  172 #define HMCD_OPCODE_L2_INSRT                    0x09
  173 #define HMCD_OPCODE_VLAN_PRI_UPDATE             0x0B
  174 #define HMCD_OPCODE_IPV4_UPDATE                 0x0C
  175 #define HMCD_OPCODE_IPV6_UPDATE                 0x10
  176 #define HMCD_OPCODE_TCP_UDP_UPDATE              0x0E
  177 #define HMCD_OPCODE_TCP_UDP_CHECKSUM            0x14
  178 #define HMCD_OPCODE_REPLACE_IP                  0x12
  179 #define HMCD_OPCODE_RMV_TILL                    0x15
  180 #define HMCD_OPCODE_UDP_INSRT                   0x16
  181 #define HMCD_OPCODE_IP_INSRT                    0x17
  182 #define HMCD_OPCODE_CAPWAP_RMV                  0x18
  183 #define HMCD_OPCODE_CAPWAP_INSRT                0x18
  184 #define HMCD_OPCODE_GEN_FIELD_REPLACE           0x19
  185 
  186 #define HMCD_LAST                               0x00800000
  187 
  188 #define HMCD_DSCP_VALUES                        64
  189 
  190 #define HMCD_BASIC_SIZE                         4
  191 #define HMCD_PTR_SIZE                           4
  192 #define HMCD_PARAM_SIZE                         4
  193 #define HMCD_IPV4_ADDR_SIZE                     4
  194 #define HMCD_IPV6_ADDR_SIZE                     0x10
  195 #define HMCD_L4_HDR_SIZE                        8
  196 
  197 #define HMCD_CAPWAP_INSRT                       0x00010000
  198 #define HMCD_INSRT_UDP_LITE                     0x00010000
  199 #define HMCD_IP_ID_MASK                         0x0000FFFF
  200 #define HMCD_IP_SIZE_MASK                       0x0000FF00
  201 #define HMCD_IP_SIZE_SHIFT                      8
  202 #define HMCD_IP_LAST_PID_MASK                   0x000000FF
  203 #define HMCD_IP_OR_QOS                          0x00010000
  204 #define HMCD_IP_L4_CS_CALC                      0x00040000
  205 #define HMCD_IP_DF_MODE                         0x00400000
  206 
  207 
  208 #define HMCD_OC_SHIFT                           24
  209 
  210 #define HMCD_RMV_OFFSET_SHIFT                   0
  211 #define HMCD_RMV_SIZE_SHIFT                     8
  212 
  213 #define HMCD_INSRT_OFFSET_SHIFT                 0
  214 #define HMCD_INSRT_SIZE_SHIFT                   8
  215 
  216 #define HMTD_CFG_TYPE                           0x4000
  217 #define HMTD_CFG_EXT_HMCT                       0x0080
  218 #define HMTD_CFG_PRS_AFTER_HM                   0x0040
  219 #define HMTD_CFG_NEXT_AD_EN                     0x0020
  220 
  221 #define HMCD_RMV_L2_ETHERNET                    0
  222 #define HMCD_RMV_L2_STACKED_QTAGS               1
  223 #define HMCD_RMV_L2_ETHERNET_AND_MPLS           2
  224 #define HMCD_RMV_L2_MPLS                        3
  225 #define HMCD_RMV_L2_PPPOE                        4
  226 
  227 #define HMCD_INSRT_L2_MPLS                      0
  228 #define HMCD_INSRT_N_UPDATE_L2_MPLS             1
  229 #define HMCD_INSRT_L2_PPPOE                     2
  230 #define HMCD_INSRT_L2_SIZE_SHIFT                24
  231 
  232 #define HMCD_L2_MODE_SHIFT                      16
  233 
  234 #define HMCD_VLAN_PRI_REP_MODE_SHIFT            16
  235 #define HMCD_VLAN_PRI_UPDATE                    0
  236 #define HMCD_VLAN_PRI_UPDATE_DSCP_TO_VPRI       1
  237 
  238 #define HMCD_IPV4_UPDATE_TTL                    0x00000001
  239 #define HMCD_IPV4_UPDATE_TOS                    0x00000002
  240 #define HMCD_IPV4_UPDATE_DST                    0x00000020
  241 #define HMCD_IPV4_UPDATE_SRC                    0x00000040
  242 #define HMCD_IPV4_UPDATE_ID                     0x00000080
  243 #define HMCD_IPV4_UPDATE_TOS_SHIFT              8
  244 
  245 #define HMCD_IPV6_UPDATE_HL                     0x00000001
  246 #define HMCD_IPV6_UPDATE_TC                     0x00000002
  247 #define HMCD_IPV6_UPDATE_DST                    0x00000040
  248 #define HMCD_IPV6_UPDATE_SRC                    0x00000080
  249 #define HMCD_IPV6_UPDATE_TC_SHIFT               8
  250 
  251 #define HMCD_TCP_UDP_UPDATE_DST                 0x00004000
  252 #define HMCD_TCP_UDP_UPDATE_SRC                 0x00008000
  253 #define HMCD_TCP_UDP_UPDATE_SRC_SHIFT           16
  254 
  255 #define HMCD_IP_REPLACE_REPLACE_IPV4            0x00000000
  256 #define HMCD_IP_REPLACE_REPLACE_IPV6            0x00010000
  257 #define HMCD_IP_REPLACE_TTL_HL                  0x00200000
  258 #define HMCD_IP_REPLACE_ID                      0x00400000
  259 
  260 #define HMCD_IP_REPLACE_L3HDRSIZE_SHIFT         24
  261 
  262 #define HMCD_GEN_FIELD_SIZE_SHIFT               16
  263 #define HMCD_GEN_FIELD_SRC_OFF_SHIFT            8
  264 #define HMCD_GEN_FIELD_DST_OFF_SHIFT            0
  265 #define HMCD_GEN_FIELD_MASK_EN                  0x00400000
  266 
  267 #define HMCD_GEN_FIELD_MASK_OFF_SHIFT           16
  268 #define HMCD_GEN_FIELD_MASK_SHIFT               24
  269 
  270 #define DSCP_TO_VLAN_TABLE_SIZE                    32
  271 
  272 #define MANIP_GET_HMCT_SIZE(h_Manip)                    (((t_FmPcdManip *)h_Manip)->tableSize)
  273 #define MANIP_GET_DATA_SIZE(h_Manip)                    (((t_FmPcdManip *)h_Manip)->dataSize)
  274 
  275 #define MANIP_GET_HMCT_PTR(h_Manip)                     (((t_FmPcdManip *)h_Manip)->p_Hmct)
  276 #define MANIP_GET_DATA_PTR(h_Manip)                     (((t_FmPcdManip *)h_Manip)->p_Data)
  277 
  278 #define MANIP_SET_HMCT_PTR(h_Manip, h_NewPtr)           (((t_FmPcdManip *)h_Manip)->p_Hmct = h_NewPtr)
  279 #define MANIP_SET_DATA_PTR(h_Manip, h_NewPtr)           (((t_FmPcdManip *)h_Manip)->p_Data = h_NewPtr)
  280 
  281 #define MANIP_GET_HMTD_PTR(h_Manip)                     (((t_FmPcdManip *)h_Manip)->h_Ad)
  282 #define MANIP_DONT_REPARSE(h_Manip)                     (((t_FmPcdManip *)h_Manip)->dontParseAfterManip)
  283 #define MANIP_SET_PREV(h_Manip, h_Prev)                 (((t_FmPcdManip *)h_Manip)->h_PrevManip = h_Prev)
  284 #define MANIP_GET_OWNERS(h_Manip)                       (((t_FmPcdManip *)h_Manip)->owner)
  285 #define MANIP_GET_TYPE(h_Manip)                         (((t_FmPcdManip *)h_Manip)->type)
  286 #define MANIP_SET_UNIFIED_TBL_PTR_INDICATION(h_Manip)   (((t_FmPcdManip *)h_Manip)->unifiedTablePtr = TRUE)
  287 #define MANIP_GET_MURAM(h_Manip)                        (((t_FmPcd *)((t_FmPcdManip *)h_Manip)->h_FmPcd)->h_FmMuram)
  288 #define MANIP_FREE_HMTD(h_Manip)                        \
  289         {if (((t_FmPcdManip *)h_Manip)->muramAllocate)    \
  290             FM_MURAM_FreeMem(((t_FmPcd *)((t_FmPcdManip *)h_Manip)->h_FmPcd)->h_FmMuram, ((t_FmPcdManip *)h_Manip)->h_Ad);\
  291         else                                            \
  292             XX_Free(((t_FmPcdManip *)h_Manip)->h_Ad);    \
  293         ((t_FmPcdManip *)h_Manip)->h_Ad = NULL;            \
  294         }
  295 /* position regarding Manip SW structure */
  296 #define MANIP_IS_FIRST(h_Manip)                         (!(((t_FmPcdManip *)h_Manip)->h_PrevManip))
  297 #define MANIP_IS_CASCADED(h_Manip)                       (((t_FmPcdManip *)h_Manip)->cascaded)
  298 #define MANIP_IS_UNIFIED(h_Manip)                       (!(((t_FmPcdManip *)h_Manip)->unifiedPosition == e_MANIP_UNIFIED_NONE))
  299 #define MANIP_IS_UNIFIED_NON_FIRST(h_Manip)             ((((t_FmPcdManip *)h_Manip)->unifiedPosition == e_MANIP_UNIFIED_MID) || \
  300                                                          (((t_FmPcdManip *)h_Manip)->unifiedPosition == e_MANIP_UNIFIED_LAST))
  301 #define MANIP_IS_UNIFIED_NON_LAST(h_Manip)              ((((t_FmPcdManip *)h_Manip)->unifiedPosition == e_MANIP_UNIFIED_FIRST) ||\
  302                                                          (((t_FmPcdManip *)h_Manip)->unifiedPosition == e_MANIP_UNIFIED_MID))
  303 #define MANIP_IS_UNIFIED_FIRST(h_Manip)                    (((t_FmPcdManip *)h_Manip)->unifiedPosition == e_MANIP_UNIFIED_FIRST)
  304 #define MANIP_IS_UNIFIED_LAST(h_Manip)                   (((t_FmPcdManip *)h_Manip)->unifiedPosition == e_MANIP_UNIFIED_LAST)
  305 
  306 #define MANIP_UPDATE_UNIFIED_POSITION(h_Manip)          (((t_FmPcdManip *)h_Manip)->unifiedPosition = \
  307                                                          (((t_FmPcdManip *)h_Manip)->unifiedPosition == e_MANIP_UNIFIED_NONE)? \
  308                                                             e_MANIP_UNIFIED_LAST : e_MANIP_UNIFIED_MID)
  309 
  310 typedef enum e_ManipUnifiedPosition {
  311     e_MANIP_UNIFIED_NONE = 0,
  312     e_MANIP_UNIFIED_FIRST,
  313     e_MANIP_UNIFIED_MID,
  314     e_MANIP_UNIFIED_LAST
  315 } e_ManipUnifiedPosition;
  316 
  317 typedef enum e_ManipInfo {
  318     e_MANIP_HMTD,
  319     e_MANIP_HMCT,
  320     e_MANIP_HANDLER_TABLE_OWNER
  321 }e_ManipInfo;
  322 /***********************************************************************/
  323 /*          Memory map                                                 */
  324 /***********************************************************************/
  325 #if defined(__MWERKS__) && !defined(__GNUC__)
  326 #pragma pack(push,1)
  327 #endif /* defined(__MWERKS__) && ... */
  328 
  329 #if (defined(FM_CAPWAP_SUPPORT) && (DPAA_VERSION == 10))
  330 typedef struct t_CapwapReasmPram {
  331     volatile uint32_t mode;
  332     volatile uint32_t autoLearnHashTblPtr;
  333     volatile uint32_t intStatsTblPtr;
  334     volatile uint32_t reasmFrmDescPoolTblPtr;
  335     volatile uint32_t reasmFrmDescIndexPoolTblPtr;
  336     volatile uint32_t timeOutTblPtr;
  337     volatile uint32_t bufferPoolIdAndRisc1SetIndexes;
  338     volatile uint32_t risc23SetIndexes;
  339     volatile uint32_t risc4SetIndexesAndExtendedStatsTblPtr;
  340     volatile uint32_t extendedStatsTblPtr;
  341     volatile uint32_t expirationDelay;
  342     volatile uint32_t totalProcessedFragCounter;
  343     volatile uint32_t totalUnsuccessfulReasmFramesCounter;
  344     volatile uint32_t totalDuplicatedFragCounter;
  345     volatile uint32_t totalMalformdFragCounter;
  346     volatile uint32_t totalTimeOutCounter;
  347     volatile uint32_t totalSetBusyCounter;
  348     volatile uint32_t totalRfdPoolBusyCounter;
  349     volatile uint32_t totalDiscardedFragsCounter;
  350     volatile uint32_t totalMoreThan16FramesCounter;
  351     volatile uint32_t internalBufferBusy;
  352     volatile uint32_t externalBufferBusy;
  353     volatile uint32_t reserved1[4];
  354 } t_CapwapReasmPram;
  355 #endif /* (defined(FM_CAPWAP_SUPPORT) && (DPAA_VERSION == 10)) */
  356 
  357 typedef _Packed struct t_ReassTbl {
  358     volatile uint16_t waysNumAndSetSize;
  359     volatile uint16_t autoLearnHashKeyMask;
  360     volatile uint32_t reassCommonPrmTblPtr;
  361     volatile uint32_t liodnAlAndAutoLearnHashTblPtrHi;
  362     volatile uint32_t autoLearnHashTblPtrLow;
  363     volatile uint32_t liodnSlAndAutoLearnSetLockTblPtrHi;
  364     volatile uint32_t autoLearnSetLockTblPtrLow;
  365     volatile uint16_t minFragSize; /* Not relevant for CAPWAP*/
  366     volatile uint16_t maxReassemblySize; /* Only relevant for CAPWAP*/
  367     volatile uint32_t totalSuccessfullyReasmFramesCounter;
  368     volatile uint32_t totalValidFragmentCounter;
  369     volatile uint32_t totalProcessedFragCounter;
  370     volatile uint32_t totalMalformdFragCounter;
  371     volatile uint32_t totalSetBusyCounter;
  372     volatile uint32_t totalDiscardedFragsCounter;
  373     volatile uint32_t totalMoreThan16FramesCounter;
  374     volatile uint32_t reserved2[2];
  375 } _PackedType t_ReassTbl;
  376 
  377 typedef struct t_ReassCommonTbl {
  378     volatile uint32_t timeoutModeAndFqid;
  379     volatile uint32_t reassFrmDescIndexPoolTblPtr;
  380     volatile uint32_t liodnAndReassFrmDescPoolPtrHi;
  381     volatile uint32_t reassFrmDescPoolPtrLow;
  382     volatile uint32_t timeOutTblPtr;
  383     volatile uint32_t expirationDelay;
  384     volatile uint32_t internalBufferManagement;
  385     volatile uint32_t reserved2;
  386     volatile uint32_t totalTimeOutCounter;
  387     volatile uint32_t totalRfdPoolBusyCounter;
  388     volatile uint32_t totalInternalBufferBusy;
  389     volatile uint32_t totalExternalBufferBusy;
  390     volatile uint32_t totalSgFragmentCounter;
  391     volatile uint32_t totalDmaSemaphoreDepletionCounter;
  392     volatile uint32_t totalNCSPCounter;
  393     volatile uint32_t discardMask;
  394 } t_ReassCommonTbl;
  395 
  396 typedef _Packed struct t_Hmtd {
  397     volatile uint16_t   cfg;
  398     volatile uint8_t    eliodnOffset;
  399     volatile uint8_t    extHmcdBasePtrHi;
  400     volatile uint32_t   hmcdBasePtr;
  401     volatile uint16_t   nextAdIdx;
  402     volatile uint8_t    res1;
  403     volatile uint8_t    opCode;
  404     volatile uint32_t   res2;
  405 } _PackedType t_Hmtd;
  406 
  407 #if defined(__MWERKS__) && !defined(__GNUC__)
  408 #pragma pack(pop)
  409 #endif /* defined(__MWERKS__) && ... */
  410 
  411 
  412 /***********************************************************************/
  413 /*  Driver's internal structures                                       */
  414 /***********************************************************************/
  415 #if (defined(FM_CAPWAP_SUPPORT) && (DPAA_VERSION == 10))
  416 typedef struct
  417 {
  418     t_Handle p_AutoLearnHashTbl;
  419     t_Handle p_ReassmFrmDescrPoolTbl;
  420     t_Handle p_ReassmFrmDescrIndxPoolTbl;
  421     t_Handle p_TimeOutTbl;
  422     uint16_t maxNumFramesInProcess;
  423     uint8_t  numOfTasks;
  424     //uint8_t  poolId;
  425     uint8_t  prOffset;
  426     uint16_t dataOffset;
  427     uint8_t  sgBpid;
  428     uint8_t  hwPortId;
  429     uint32_t fqidForTimeOutFrames;
  430     uint32_t timeoutRoutineRequestTime;
  431     uint32_t bitFor1Micro;
  432 } t_CapwapFragParams;
  433 #endif /* (defined(FM_CAPWAP_SUPPORT) && (DPAA_VERSION == 10)) */
  434 
  435 typedef struct
  436 {
  437     t_AdOfTypeContLookup    *p_Frag;
  438 #if (DPAA_VERSION == 10)
  439     uint8_t                 scratchBpid;
  440 #endif /* (DPAA_VERSION == 10) */
  441 } t_FragParams;
  442 
  443 typedef struct t_ReassmParams
  444 {
  445     e_NetHeaderType                 hdr; /* Header selection */
  446     t_ReassCommonTbl                    *p_ReassCommonTbl;
  447     uintptr_t                       reassFrmDescrIndxPoolTblAddr;
  448     uintptr_t                       reassFrmDescrPoolTblAddr;
  449     uintptr_t                       timeOutTblAddr;
  450     uintptr_t                       internalBufferPoolManagementIndexAddr;
  451     uintptr_t                       internalBufferPoolAddr;
  452     uint32_t                        maxNumFramesInProcess;
  453     uint8_t                         sgBpid;
  454     uint8_t                         dataMemId;
  455     uint16_t                        dataLiodnOffset;
  456     uint32_t                        fqidForTimeOutFrames;
  457     e_FmPcdManipReassemTimeOutMode  timeOutMode;
  458     uint32_t                        timeoutThresholdForReassmProcess;
  459     union {
  460         struct {
  461                 t_Handle                h_Ipv4Ad;
  462             t_Handle                h_Ipv6Ad;
  463             bool                    ipv6Assigned;
  464             t_ReassTbl                          *p_Ipv4ReassTbl;
  465             t_ReassTbl              *p_Ipv6ReassTbl;
  466             uintptr_t               ipv4AutoLearnHashTblAddr;
  467             uintptr_t               ipv6AutoLearnHashTblAddr;
  468             uintptr_t               ipv4AutoLearnSetLockTblAddr;
  469             uintptr_t               ipv6AutoLearnSetLockTblAddr;
  470             uint16_t                        minFragSize[2];
  471             e_FmPcdManipReassemWaysNumber   numOfFramesPerHashEntry[2];
  472             uint8_t                         relativeSchemeId[2];
  473             t_Handle                        h_Ipv4Scheme;
  474             t_Handle                        h_Ipv6Scheme;
  475             uint32_t                        nonConsistentSpFqid;
  476         } ip;
  477         struct {
  478                 t_Handle                h_Ad;
  479             t_ReassTbl                          *p_ReassTbl;
  480             uintptr_t               autoLearnHashTblAddr;
  481             uintptr_t               autoLearnSetLockTblAddr;
  482             uint16_t                maxRessembledsSize;
  483             e_FmPcdManipReassemWaysNumber   numOfFramesPerHashEntry;
  484             uint8_t                 relativeSchemeId;
  485             t_Handle                h_Scheme;
  486         } capwap;
  487     };
  488 } t_ReassmParams;
  489 
  490 typedef struct{
  491     e_FmPcdManipType        type;
  492     t_FmPcdManipParams      manipParams;
  493     bool                    muramAllocate;
  494     t_Handle                h_Ad;
  495     uint32_t                opcode;
  496     bool                    rmv;
  497     bool                    insrt;
  498     t_Handle                h_NextManip;
  499     t_Handle                h_PrevManip;
  500     e_FmPcdManipType        nextManipType;
  501     /* HdrManip parameters*/
  502     uint8_t                 *p_Hmct;
  503     uint8_t                 *p_Data;
  504     bool                    dontParseAfterManip;
  505     bool                    fieldUpdate;
  506     bool                    custom;
  507     uint16_t                tableSize;
  508     uint8_t                 dataSize;
  509     bool                    cascaded;
  510     e_ManipUnifiedPosition  unifiedPosition;
  511     /* end HdrManip */
  512     uint8_t                 *p_Template;
  513     uint16_t                owner;
  514     uint32_t                updateParams;
  515     uint32_t                shadowUpdateParams;
  516     bool                    frag;
  517     bool                    reassm;
  518     uint16_t                sizeForFragmentation;
  519 #if (defined(FM_CAPWAP_SUPPORT) && (DPAA_VERSION == 10))
  520     t_Handle                h_Frag;
  521     t_CapwapFragParams      capwapFragParams;
  522 #endif /* (defined(FM_CAPWAP_SUPPORT) && (DPAA_VERSION == 10)) */
  523     union {
  524         t_ReassmParams          reassmParams;
  525         t_FragParams            fragParams;
  526     };
  527     uint8_t                 icOffset;
  528     uint16_t                ownerTmp;
  529     bool                    cnia;
  530     t_Handle                p_StatsTbl;
  531     t_Handle                h_FmPcd;
  532     t_List                  nodesLst;
  533     t_Handle                h_Spinlock;
  534 } t_FmPcdManip;
  535 
  536 typedef struct t_FmPcdCcSavedManipParams
  537 {
  538     union
  539     {
  540         struct
  541         {
  542             uint16_t    dataOffset;
  543             //uint8_t     poolId;
  544         }capwapParams;
  545         struct
  546         {
  547             uint16_t    dataOffset;
  548             uint8_t     poolId;
  549         }ipParams;
  550     };
  551 
  552 } t_FmPcdCcSavedManipParams;
  553 
  554 
  555 #endif /* __FM_MANIP_H */

Cache object: 8f83a67399ad7ebb79896bc3b3fbcf87


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.