NOTICE OF RELOCATION
[keystone-rtos/pa-lld.git] / nss_if.h
1 #ifndef _NSS_IF_H
2 #define _NSS_IF_H
3 /**
4  *   @file  nss_if.h
5  *
6  *   @brief   
7  *      This file defines Network Sub-System (NSS) transport layer related constants, and macros where
8  *      NSS consists of CPSW, PASS and SASS. The definitions here are not used by PA LLD itself. Instead,
9  *      they are used by the application module which invokes NSS including all PA unit tests and examples.
10  *
11  *  \par
12  *  NOTE:
13  *      (C) Copyright 2014 Texas Instruments, Inc.
14  * 
15  *  Redistribution and use in source and binary forms, with or without 
16  *  modification, are permitted provided that the following conditions 
17  *  are met:
18  *
19  *    Redistributions of source code must retain the above copyright 
20  *    notice, this list of conditions and the following disclaimer.
21  *
22  *    Redistributions in binary form must reproduce the above copyright
23  *    notice, this list of conditions and the following disclaimer in the 
24  *    documentation and/or other materials provided with the   
25  *    distribution.
26  *
27  *    Neither the name of Texas Instruments Incorporated nor the names of
28  *    its contributors may be used to endorse or promote products derived
29  *    from this software without specific prior written permission.
30  *
31  *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 
32  *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
33  *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
34  *  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 
35  *  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 
36  *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 
37  *  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
38  *  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
39  *  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
40  *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
41  *  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
42  *
43 */
45 #ifdef __cplusplus
46 extern "C" {
47 #endif
49 #include <ti/drv/pa/pa.h>
51 /** @defgroup nss_if_module NSS Interface
52  *  @{
53  */
54 /** @} */
57 /** @defgroup nss_if_constants NSS Constants (enum's and define's)
58  *  @ingroup nss_if_module
59  */
61 /**
62  *  @defgroup nssPktDmaGen1 NSS PKTDMA definitions for First Generation NSS
63  *  @ingroup nss_if_constants
64  *  @{
65  *
66  *  @name NSS PKTDMA definitions for First Generation NSS
67  *
68  *  Define NSS PKTDMA related constants for first generation NSS
69  */
70 /*@{*/
72 #define NSS_NUM_RX_PKTDMA_CHANNELS_GEN1       24    /**< Number of PKTDMA Receive channels at first generation NSS */ 
73 #define NSS_NUM_TX_PKTDMA_CHANNELS_GEN1        9    /**< Number of PKTDMA Transmit channels at first generation NSS */
75 /*@}*/ /* nssPktDmaGen1 */
76 /** @}*/ /* NSS PKTDMA definitions for First Generation NSS */
79 /**
80  *  @defgroup nssPktDmaGen2 NSS PKTDMA definitions for Second Generation NSS
81  *  @ingroup nss_if_constants
82  *  @{
83  *
84  *  @name NSS PKTDMA definitions for Second Generation NSS
85  *
86  *  Define NSS PKTDMA related constants for second generation NSS
87  */
88 /*@{*/
90 #define NSS_NUM_RX_PKTDMA_CHANNELS_GEN2       91    /**< Number of PKTDMA Receive channels at second generation NSS */ 
91 #define NSS_NUM_TX_PKTDMA_CHANNELS_GEN2       21    /**< Number of PKTDMA Transmit channels at second generation NSS */
93 /*@}*/ /* nssPktDmaGen2 */
94 /** @}*/ /* NSS PKTDMA definitions for Second Generation NSS */
96 /**
97  *  @defgroup nssPktDmaLite NSS PKTDMA definitions for NSS Lite
98  *  @ingroup nss_if_constants
99  *  @{
100  *
101  *  @name NSS PKTDMA definitions for NSS Lite
102  *
103  *  Define NSS PKTDMA related constants for NSS Lite
104  */
105 /*@{*/
107 #define NSS_NUM_RX_PKTDMA_CHANNELS_LITE       32    /**< Number of PKTDMA Receive channels at NSS Lite */ 
108 #define NSS_NUM_TX_PKTDMA_CHANNELS_LITE       21    /**< Number of PKTDMA Transmit channels at NSS Lite*/
110 /*@}*/ /* nssPktDmaLite */
111 /** @}*/ /* NSS PKTDMA definitions for NSS Lite */
114 /** NSS maximum number of PKTDMA channels in all devices */
115 #define NSS_MAX_RX_PKTDMA_CHANNELS            91
116 #if (NSS_MAX_RX_PKTDMA_CHANNELS < NSS_NUM_RX_PKTDMA_CHANNELS_GEN1) || \
117     (NSS_MAX_RX_PKTDMA_CHANNELS < NSS_NUM_RX_PKTDMA_CHANNELS_GEN2) || \
118     (NSS_MAX_RX_PKTDMA_CHANNELS < NSS_NUM_RX_PKTDMA_CHANNELS_LITE)
119 #error check NSS_MAX_RX_PKTDMA_CHANNELS
120 #endif
122 #define NSS_MAX_TX_PKTDMA_CHANNELS            21
123 #if (NSS_MAX_TX_PKTDMA_CHANNELS < NSS_NUM_TX_PKTDMA_CHANNELS_GEN1) || \
124     (NSS_MAX_TX_PKTDMA_CHANNELS < NSS_NUM_TX_PKTDMA_CHANNELS_GEN2) || \
125     (NSS_MAX_TX_PKTDMA_CHANNELS < NSS_NUM_TX_PKTDMA_CHANNELS_LITE)
126 #error check NSS_MAX_TX_PKTDMA_CHANNELS
127 #endif
129 /*@}*/ /* nssPktDmaGen2 */
130 /** @}*/ /* NSS PKTDMA definitions for Second Generation NSS */
132 /**
133  *  @defgroup nssPktDma NSS PKTDMA definitions 
134  *  @ingroup nss_if_constants
135  *  @{
136  *
137  *  @name NSS PKTDMA definitions 
138  *
139  *  Define NSS PKTDMA related constants 
140  *  @note: These definitions are also available at CPPI device files 
141  */
142 /*@{*/
144 #if defined (NSS_GEN2)
145 #define NSS_NUM_RX_PKTDMA_CHANNELS            NSS_NUM_RX_PKTDMA_CHANNELS_GEN2    /**< Number of PKTDMA Receive channels at NSS */
146 #define NSS_NUM_TX_PKTDMA_CHANNELS            NSS_NUM_TX_PKTDMA_CHANNELS_GEN2    /**< Number of PKTDMA Transmit channels at NSS */
147 #elif defined (NSS_LITE)
148 #define NSS_NUM_RX_PKTDMA_CHANNELS            NSS_NUM_RX_PKTDMA_CHANNELS_LITE    /**< Number of PKTDMA Receive channels at NSS */
149 #define NSS_NUM_TX_PKTDMA_CHANNELS            NSS_NUM_TX_PKTDMA_CHANNELS_LITE    /**< Number of PKTDMA Transmit channels at NSS */
150 #else
151 #define NSS_NUM_RX_PKTDMA_CHANNELS            NSS_NUM_RX_PKTDMA_CHANNELS_GEN1    /**< Number of PKTDMA Receive channels at NSS */
152 #define NSS_NUM_TX_PKTDMA_CHANNELS            NSS_NUM_TX_PKTDMA_CHANNELS_GEN1    /**< Number of PKTDMA Transmit channels at NSS */
153 #endif 
155 /*@}*/ /* nssPktDma */
156 /** @}*/ /* NSS PKTDMA definitions */
159 /* NSS PDSP related definitions */
161 /**
162  *  @defgroup nssPdspGen1 NSS PDSP related definitions for Dirst Generation NSS
163  *  @ingroup nss_if_constants
164  *  @{
165  *
166  *  @name NSS PDSP related definitions for First Generation NSS
167  *
168  *  Define NSS PDSP related constants for first generation NSS
169  */
170 /*@{*/
172 #define NSS_PA_NUM_PDSPS_GEN1                6                                 /**< Number of PASS PDSPs at first generation NSS */
173 #define NSS_SA_NUM_PDSPS_GEN1                2                                 /**< Number of SASS PDSPs at first generation NSS */
175 /*@}*/ /* nssPdspGen1 */
176 /** @}*/ /* PDSP related definitions for First Generation NSS */
179 /**
180  *  @defgroup nssPdspGen2 NSS PDSP related definitions for Second Generation NSS
181  *  @ingroup nss_if_constants
182  *  @{
183  *
184  *  @name NSS PDSP related definitions for Second Generation NSS
185  *
186  *  Define NSS PDSP related constants for second generation NSS
187  */
188 /*@{*/
190 #define NSS_PA_NUM_PDSPS_GEN2                15                                /**< Number of PASS PDSPs at second generation NSS */
191 #define NSS_SA_NUM_PDSPS_GEN2                3                                 /**< Number of SASS PDSPs at second generation NSS */
193 /*@}*/ /* nssPdspGen2 */
194 /** @}*/ /* PDSP related definitions for Second Generation NSS */
196 /** NSS maximum number of PDSPs in PA/SA respectively in all devices */
197 #define NSS_PA_MAX_PDSPS                     15   
198 #if (NSS_PA_MAX_PDSPS < NSS_PA_NUM_PDSPS_GEN1) || \
199     (NSS_PA_MAX_PDSPS < NSS_PA_NUM_PDSPS_GEN2)
200 #error check  NSS_PA_MAX_PDSPS
201 #endif
203 #define NSS_SA_MAX_PDSPS                     3   
204 #if (NSS_SA_MAX_PDSPS < NSS_SA_NUM_PDSPS_GEN1) || \
205     (NSS_SA_MAX_PDSPS < NSS_SA_NUM_PDSPS_GEN2)
206 #error check  NSS_SA_MAX_PDSPS
207 #endif
209 /**
210  *  @defgroup nssPdsp NSS PDSP related definitions
211  *  @ingroup nss_if_constants
212  *  @{
213  *
214  *  @name NSS PDSP related definitions
215  *
216  *  Define NSS PDSP related constants 
217  */
218 /*@{*/
220 #if defined (NSS_GEN2)
221 #define NSS_PA_NUM_PDSPS                     NSS_PA_NUM_PDSPS_GEN2        /**< Number of PASS PDSPs at NSS */
222 #define NSS_SA_NUM_PDSPS                     NSS_SA_NUM_PDSPS_GEN2        /**< Number of SASS PDSPs at NSS */
223 #elif defined (NSS_LITE)
224 #define NSS_PA_NUM_PDSPS                     0                            /**< Number of PASS PDSPs at NSS */
225 #define NSS_SA_NUM_PDSPS                     0                            /**< Number of SASS PDSPs at NSS */
226 #else
227 #define NSS_PA_NUM_PDSPS                     NSS_PA_NUM_PDSPS_GEN1        /**< Number of PASS PDSPs at NSS */
228 #define NSS_SA_NUM_PDSPS                     NSS_SA_NUM_PDSPS_GEN1        /**< Number of SASS PDSPs at NSS */
229 #endif
231 /*@}*/ /* nssPdsp */
232 /** @}*/ /* PDSP related definitions */
234 /**
235  *  @defgroup nssTxQueueGen1 NSS Transmit Queue related definitions for First Generation NSS
236  *  @ingroup nss_if_constants
237  *  @{
238  *
239  *  @name NSS Transmit Queue related definitions for First Generation NSS
240  *
241  *  Define NSS Transmit Queue related constants for first generation NSS
242  */
243 /*@{*/
245 #define NSS_NUM_TX_QUEUES_GEN1              9 
246                                                                        /**< Number of Transmit Queues at first Generation NSS */
247 #define NSS_PA_QUEUE_INPUT_INDEX_GEN1       pa_CMD_TX_DEST_0_GEN1      /**< Offset to the system input queue at first Generation NSS */
248 #define NSS_PA_QUEUE_MAC_INDEX_GEN1         pa_CMD_TX_DEST_0_GEN1      /**< Offset to the MAC input queue at first Generation NSS */
249 #define NSS_PA_QUEUE_OUTER_IP_INDEX_GEN1    pa_CMD_TX_DEST_1_GEN1      /**< Offset to the (Outer) IP input queue at first Generation NSS */
250 #define NSS_PA_QUEUE_INNER_IP_INDEX_GEN1    pa_CMD_TX_DEST_2_GEN1      /**< Offset to the Inner IP input queue at first Generation NSS */
251 #define NSS_PA_QUEUE_LUT2_INDEX_GEN1        pa_CMD_TX_DEST_3_GEN1      /**< Offset to the LUT2 (UDP/TCP) input queue at first Generation NSS */
252 #define NSS_PA_QUEUE_IPSEC_INDEX_GEN1       pa_CMD_TX_DEST_1_GEN1      /**< Offset to the first layer IPSEC input queue at first Generation NSS */
253 #define NSS_PA_QUEUE_IPSEC2_INDEX_GEN1      pa_CMD_TX_DEST_1_GEN1      /**< Offset to the second layer IPSEC input queue at first Generation NSS */
254 #define NSS_PA_QUEUE_POST_INDEX_GEN1        pa_CMD_TX_DEST_4_GEN1      /**< Offset to the post-classification input queue at first Generation NSS */
255 #define NSS_PA_QUEUE_TXCMD_INDEX_GEN1       pa_CMD_TX_DEST_5_GEN1      /**< Offset to the Tx command input queue at first Generation NSS */
257 #define NSS_SA_QUEUE_SASS_INDEX_GEN1        6                          /**< Offset to the first SASS input queue at first Generation NSS */
258 #define NSS_SA_QUEUE_SASS2_INDEX_GEN1       7                          /**< Offset to the second SASS input queue at first Generation NSS */
259 #define NSS_CPSW_QUEUE_ETH_INDEX_GEN1       8                          /**< Offset to the CPSW input queue at first Generation NSS */
260 #define NSS_CPSW_QUEUE_ETH_PRI0_INDEX_GEN1  8                          /**< Offset to the CPSW input queue for priority 0  packets at first Generation NSS */
261 #define NSS_CPSW_QUEUE_ETH_PRI1_INDEX_GEN1  8                          /**< Offset to the CPSW input queue for priority 1  packets at first Generation NSS */
262 #define NSS_CPSW_QUEUE_ETH_PRI2_INDEX_GEN1  8                          /**< Offset to the CPSW input queue for priority 2  packets at first Generation NSS */
263 #define NSS_CPSW_QUEUE_ETH_PRI3_INDEX_GEN1  8                          /**< Offset to the CPSW input queue for priority 3  packets at first Generation NSS */
264 #define NSS_CPSW_QUEUE_ETH_PRI4_INDEX_GEN1  8                          /**< Offset to the CPSW input queue for priority 4  packets at first Generation NSS */
265 #define NSS_CPSW_QUEUE_ETH_PRI5_INDEX_GEN1  8                          /**< Offset to the CPSW input queue for priority 5  packets at first Generation NSS */
266 #define NSS_CPSW_QUEUE_ETH_PRI6_INDEX_GEN1  8                          /**< Offset to the CPSW input queue for priority 6  packets at first Generation NSS */
267 #define NSS_CPSW_QUEUE_ETH_PRI7_INDEX_GEN1  8                          /**< Offset to the CPSW input queue for priority 7  packets at first Generation NSS */
269 /*@}*/ /* nssTxQueueGen1 */
270 /** @}*/ /* SS Transmit Queue related definitions for First Generation NSS */
272 /**
273  *  @defgroup nssTxQueueGen2 NSS Transmit Queue related definitions for Second Generation NSS
274  *  @ingroup nss_if_constants
275  *  @{
276  *
277  *  @name NSS Transmit Queue related definitions for Second Generation NSS
278  *
279  *  Define NSS Transmit Queue related constants for second generation NSS
280  */
281 /*@{*/
284 #define NSS_NUM_TX_QUEUES_GEN2              21                         /**< Number of Transmit Queues at second Generation NSS */
285                                                                        
286 #define NSS_PA_QUEUE_INPUT_INDEX_GEN2       pa_CMD_TX_DEST_0_GEN2      /**< Offset to the system input queue at second Generation NSS */
287 #define NSS_PA_QUEUE_MAC_INDEX_GEN2         pa_CMD_TX_DEST_0_GEN2      /**< Offset to the MAC input queue at second Generation NSS */
288 #define NSS_PA_QUEUE_OUTER_IP_INDEX_GEN2    pa_CMD_TX_DEST_1_GEN2      /**< Offset to the (Outer) IP input queue at second Generation NSS */
289 #define NSS_PA_QUEUE_INNER_IP_INDEX_GEN2    pa_CMD_TX_DEST_4_GEN2      /**< Offset to the Inner IP input queue at second Generation NSS */
290 #define NSS_PA_QUEUE_LUT2_INDEX_GEN2        pa_CMD_TX_DEST_4_GEN2      /**< Offset to the LUT2 (UDP/TCP) input queue at second Generation NSS */
291 #define NSS_PA_QUEUE_IPSEC_INDEX_GEN2       pa_CMD_TX_DEST_1_GEN2      /**< Offset to the first layer IPSEC input queue at second Generation NSS */
292 #define NSS_PA_QUEUE_IPSEC2_INDEX_GEN2      pa_CMD_TX_DEST_2_GEN2      /**< Offset to the second layer IPSEC input queue at second Generation NSS */
293 #define NSS_PA_QUEUE_POST_INDEX_GEN2        pa_CMD_TX_DEST_5_GEN2      /**< Offset to the post-classification input queue at second Generation NSS */
294 #define NSS_PA_QUEUE_TXCMD_INDEX_GEN2       pa_CMD_TX_DEST_6_GEN2      /**< Offset to the Tx command input queue at second Generation NSS */
295 #define NSS_PA_QUEUE_FIREWALL_INDEX_GEN2    pa_CMD_TX_DEST_0_GEN2      /**< Offset to the first Firewall (ACL) input queue at second Generation NSS */
296 #define NSS_PA_QUEUE_FIREWALL2_INDEX_GEN2   pa_CMD_TX_DEST_3_GEN2      /**< Offset to the second Firewall (ACL) input queue at second Generation NSS */
297 #define NSS_PA_QUEUE_EGRESS0_INDEX_GEN2     pa_CMD_TX_DEST_6_GEN2      /**< Offset to the input queue of the first egress stage at second Generation NSS */
298 #define NSS_PA_QUEUE_EGRESS1_INDEX_GEN2     pa_CMD_TX_DEST_7_GEN2      /**< Offset to the input queue of the second egress stage at second Generation NSS */
299 #define NSS_PA_QUEUE_EGRESS2_INDEX_GEN2     pa_CMD_TX_DEST_8_GEN2      /**< Offset to the input queue of the third egress stage at second Generation NSS */
300                                                                        
301 #define NSS_SA_QUEUE_SASS_INDEX_GEN2         18                        /**< Offset to the first SASS input queue at second Generation NSS */
302 #define NSS_SA_QUEUE_SASS2_INDEX_GEN2        19                        /**< Offset to the second SASS input queue at second Generation NSS */
303 #define NSS_CPSW_QUEUE_ETH_INDEX_GEN2        0                         /**< Offset to the CPSW input queue at second Generation NSS */
304 #define NSS_CPSW_QUEUE_ETH_PRI0_INDEX_GEN2   0                         /**< Offset to the CPSW input queue for priority 0  packets at second Generation NSS */
305 #define NSS_CPSW_QUEUE_ETH_PRI1_INDEX_GEN2   1                         /**< Offset to the CPSW input queue for priority 1  packets at second Generation NSS */
306 #define NSS_CPSW_QUEUE_ETH_PRI2_INDEX_GEN2   2                         /**< Offset to the CPSW input queue for priority 2  packets at second Generation NSS */
307 #define NSS_CPSW_QUEUE_ETH_PRI3_INDEX_GEN2   3                         /**< Offset to the CPSW input queue for priority 3  packets at second Generation NSS */
308 #define NSS_CPSW_QUEUE_ETH_PRI4_INDEX_GEN2   4                         /**< Offset to the CPSW input queue for priority 4  packets at second Generation NSS */
309 #define NSS_CPSW_QUEUE_ETH_PRI5_INDEX_GEN2   5                         /**< Offset to the CPSW input queue for priority 5  packets at second Generation NSS */
310 #define NSS_CPSW_QUEUE_ETH_PRI6_INDEX_GEN2   6                         /**< Offset to the CPSW input queue for priority 6  packets at second Generation NSS */
311 #define NSS_CPSW_QUEUE_ETH_PRI7_INDEX_GEN2   7                         /**< Offset to the CPSW input queue for priority 7  packets at second Generation NSS */
313 /*@}*/ /* nssTxQueueGen2 */
314 /** @}*/ /* NSS Transmit Queue related definitions for Second Generation NSS */
316 /**
317  *  @defgroup nssTxQueueLite NSS Transmit Queue related definitions for NSS Lite
318  *  @ingroup nss_if_constants
319  *  @{
320  *
321  *  @name NSS Transmit Queue related definitions for NSS Lite
322  *
323  *  Define NSS Transmit Queue related constants for NSS Lite
324  */
325 /*@{*/
328 #define NSS_NUM_TX_QUEUES_LITE               9                        /**< Number of Transmit Queues at NSS Lite */
329                                                                        
330                                                                        
331 #define NSS_SA_QUEUE_SASS_INDEX_LITE         0                        /**< Offset to the first SASS input queue at NSS Lite */
332 #define NSS_SA_QUEUE_SASS2_INDEX_LITE        0                        /**< Offset to the second SASS input queue at NSS Lite */
333 #define NSS_CPSW_QUEUE_ETH_INDEX_LITE        1                        /**< Offset to the CPSW input queue at NSS Lite */
334 #define NSS_CPSW_QUEUE_ETH_PRI0_INDEX_LITE   1                        /**< Offset to the CPSW input queue for priority 0  packets at NSS Lite */
335 #define NSS_CPSW_QUEUE_ETH_PRI1_INDEX_LITE   2                        /**< Offset to the CPSW input queue for priority 1  packets at NSS Lite */
336 #define NSS_CPSW_QUEUE_ETH_PRI2_INDEX_LITE   3                        /**< Offset to the CPSW input queue for priority 2  packets at NSS Lite */
337 #define NSS_CPSW_QUEUE_ETH_PRI3_INDEX_LITE   4                        /**< Offset to the CPSW input queue for priority 3  packets at NSS Lite */
338 #define NSS_CPSW_QUEUE_ETH_PRI4_INDEX_LITE   5                        /**< Offset to the CPSW input queue for priority 4  packets at NSS Lite */
339 #define NSS_CPSW_QUEUE_ETH_PRI5_INDEX_LITE   6                        /**< Offset to the CPSW input queue for priority 5  packets at NSS Lite */
340 #define NSS_CPSW_QUEUE_ETH_PRI6_INDEX_LITE   7                        /**< Offset to the CPSW input queue for priority 6  packets at NSS Lite */
341 #define NSS_CPSW_QUEUE_ETH_PRI7_INDEX_LITE   8                        /**< Offset to the CPSW input queue for priority 7  packets at NSS Lite */
343 /*@}*/ /* nssTxQueueLite */
344 /** @}*/ /* NSS Transmit Queue related definitions for NSS Lite */
346 /** NSS maximum number of Tx queues in all devices */
347 #define NSS_MAX_TX_QUEUES                    21   
348 #if (NSS_MAX_TX_QUEUES < NSS_NUM_TX_QUEUES_GEN1) || \
349     (NSS_MAX_TX_QUEUES < NSS_NUM_TX_QUEUES_GEN2) || \
350     (NSS_MAX_TX_QUEUES < NSS_NUM_TX_QUEUES_LITE)    
351 #error check  NSS_MAX_TX_QUEUES
352 #endif
354 /**
355  *  @defgroup nssTxQueue NSS Transmit Queue related definitions
356  *  @ingroup nss_if_constants
357  *  @{
358  *
359  *  @name NSS Transmit Queue related definitions
360  *
361  *  Define NSS Transmit Queue related constants
362  */
363 /*@{*/
365 #if defined (NSS_GEN2)
366 #define NSS_NUM_TX_QUEUES                    NSS_NUM_TX_QUEUES_GEN2                /**< Number of Transmit Queues at NSS */
368 #define NSS_PA_QUEUE_INPUT_INDEX             NSS_PA_QUEUE_INPUT_INDEX_GEN2         /**< Offset to the system input queue at NSS */
369 #define NSS_PA_QUEUE_MAC_INDEX               NSS_PA_QUEUE_MAC_INDEX_GEN2           /**< Offset to the MAC input queue at NSS */
370 #define NSS_PA_QUEUE_OUTER_IP_INDEX          NSS_PA_QUEUE_OUTER_IP_INDEX_GEN2      /**< Offset to the (Outer) IP input queue at NSS */
371 #define NSS_PA_QUEUE_INNER_IP_INDEX          NSS_PA_QUEUE_INNER_IP_INDEX_GEN2      /**< Offset to the Inner IP input queue at NSS */
372 #define NSS_PA_QUEUE_LUT2_INDEX              NSS_PA_QUEUE_LUT2_INDEX_GEN2          /**< Offset to the LUT2 (UDP/TCP) input queue at NSS */
373 #define NSS_PA_QUEUE_IPSEC_INDEX             NSS_PA_QUEUE_IPSEC_INDEX_GEN2         /**< Offset to the first layer IPSEC input queue at NSS */
374 #define NSS_PA_QUEUE_IPSEC2_INDEX            NSS_PA_QUEUE_IPSEC2_INDEX_GEN2        /**< Offset to the second layer IPSEC input queue at NSS */
375 #define NSS_PA_QUEUE_POST_INDEX              NSS_PA_QUEUE_POST_INDEX_GEN2          /**< Offset to the post-classification input queue at NSS */
376 #define NSS_PA_QUEUE_TXCMD_INDEX             NSS_PA_QUEUE_TXCMD_INDEX_GEN2         /**< Offset to the Tx command input queue at NSS */
377 #define NSS_PA_QUEUE_FIREWALL_INDEX          NSS_PA_QUEUE_FIREWALL_INDEX_GEN2      /**< Offset to the first Firewall (ACL) input queue at NSS */
378 #define NSS_PA_QUEUE_FIREWALL2_INDEX         NSS_PA_QUEUE_FIREWALL2_INDEX_GEN2     /**< Offset to the second Firewall (ACL) input queue at NSS */
379 #define NSS_PA_QUEUE_EGRESS0_INDEX           NSS_PA_QUEUE_EGRESS0_INDEX_GEN2       /**< Offset to the input queue of the first egress stage at NSS */
380 #define NSS_PA_QUEUE_EGRESS1_INDEX           NSS_PA_QUEUE_EGRESS1_INDEX_GEN2       /**< Offset to the input queue of the second egress stage at NSS */
381 #define NSS_PA_QUEUE_EGRESS2_INDEX           NSS_PA_QUEUE_EGRESS2_INDEX_GEN2       /**< Offset to the input queue of the third egress stage at NSS */
383 #define NSS_SA_QUEUE_SASS_INDEX              NSS_SA_QUEUE_SASS_INDEX_GEN2          /**< Offset to the first SASS input queue at NSS */
384 #define NSS_SA_QUEUE_SASS2_INDEX             NSS_SA_QUEUE_SASS2_INDEX_GEN2         /**< Offset to the second SASS input queue at NSS */
385 #define NSS_CPSW_QUEUE_ETH_INDEX             NSS_CPSW_QUEUE_ETH_INDEX_GEN2         /**< Offset to the CPSW input queue at NSS */
386 #define NSS_CPSW_QUEUE_ETH_PRI0_INDEX        NSS_CPSW_QUEUE_ETH_PRI0_INDEX_GEN2    /**< Offset to the CPSW input queue for priority 0  packets at NSS */
387 #define NSS_CPSW_QUEUE_ETH_PRI1_INDEX        NSS_CPSW_QUEUE_ETH_PRI1_INDEX_GEN2    /**< Offset to the CPSW input queue for priority 1  packets at NSS */
388 #define NSS_CPSW_QUEUE_ETH_PRI2_INDEX        NSS_CPSW_QUEUE_ETH_PRI2_INDEX_GEN2    /**< Offset to the CPSW input queue for priority 2  packets at NSS */
389 #define NSS_CPSW_QUEUE_ETH_PRI3_INDEX        NSS_CPSW_QUEUE_ETH_PRI3_INDEX_GEN2    /**< Offset to the CPSW input queue for priority 3  packets at NSS */
390 #define NSS_CPSW_QUEUE_ETH_PRI4_INDEX        NSS_CPSW_QUEUE_ETH_PRI4_INDEX_GEN2    /**< Offset to the CPSW input queue for priority 4  packets at NSS */
391 #define NSS_CPSW_QUEUE_ETH_PRI5_INDEX        NSS_CPSW_QUEUE_ETH_PRI5_INDEX_GEN2    /**< Offset to the CPSW input queue for priority 5  packets at NSS */
392 #define NSS_CPSW_QUEUE_ETH_PRI6_INDEX        NSS_CPSW_QUEUE_ETH_PRI6_INDEX_GEN2    /**< Offset to the CPSW input queue for priority 6  packets at NSS */
393 #define NSS_CPSW_QUEUE_ETH_PRI7_INDEX        NSS_CPSW_QUEUE_ETH_PRI7_INDEX_GEN2    /**< Offset to the CPSW input queue for priority 7  packets at NSS */
395 #elif defined (NSS_LITE)
396 #define NSS_NUM_TX_QUEUES                    NSS_NUM_TX_QUEUES_LITE                /**< Number of Transmit Queues at NSS */
398 #define NSS_PA_QUEUE_INPUT_INDEX             -1                                    /**< Offset to the system input queue at NSS */
399 #define NSS_PA_QUEUE_MAC_INDEX               -1                                    /**< Offset to the MAC input queue at NSS */
400 #define NSS_PA_QUEUE_OUTER_IP_INDEX          -1                                    /**< Offset to the (Outer) IP input queue at NSS */
401 #define NSS_PA_QUEUE_INNER_IP_INDEX          -1                                    /**< Offset to the Inner IP input queue at NSS */
402 #define NSS_PA_QUEUE_LUT2_INDEX              -1                                    /**< Offset to the LUT2 (UDP/TCP) input queue at NSS */
403 #define NSS_PA_QUEUE_IPSEC_INDEX             -1                                    /**< Offset to the first layer IPSEC input queue at NSS */
404 #define NSS_PA_QUEUE_IPSEC2_INDEX            -1                                    /**< Offset to the second layer IPSEC input queue at NSS */
405 #define NSS_PA_QUEUE_POST_INDEX              -1                                    /**< Offset to the post-classification input queue at NSS */
406 #define NSS_PA_QUEUE_TXCMD_INDEX             -1                                    /**< Offset to the Tx command input queue at NSS */
407 #define NSS_PA_QUEUE_FIREWALL_INDEX          -1                                    /**< Offset to the first Firewall (ACL) input queue at NSS */
408 #define NSS_PA_QUEUE_FIREWALL2_INDEX         -1                                    /**< Offset to the second Firewall (ACL) input queue at NSS */
409 #define NSS_PA_QUEUE_EGRESS0_INDEX           -1                                    /**< Offset to the input queue of the first egress stage at NSS */
410 #define NSS_PA_QUEUE_EGRESS1_INDEX           -1                                    /**< Offset to the input queue of the second egress stage at NSS */
411 #define NSS_PA_QUEUE_EGRESS2_INDEX           -1                                    /**< Offset to the input queue of the third egress stage at NSS */
412 #define NSS_SA_QUEUE_SASS_INDEX              NSS_SA_QUEUE_SASS_INDEX_LITE          /**< Offset to the first SASS input queue at NSS */
413 #define NSS_SA_QUEUE_SASS2_INDEX             NSS_SA_QUEUE_SASS2_INDEX_LITE         /**< Offset to the second SASS input queue at NSS */
414 #define NSS_CPSW_QUEUE_ETH_INDEX             NSS_CPSW_QUEUE_ETH_INDEX_LITE         /**< Offset to the CPSW input queue at NSS */
415 #define NSS_CPSW_QUEUE_ETH_PRI0_INDEX        NSS_CPSW_QUEUE_ETH_PRI0_INDEX_LITE    /**< Offset to the CPSW input queue for priority 0  packets at NSS */
416 #define NSS_CPSW_QUEUE_ETH_PRI1_INDEX        NSS_CPSW_QUEUE_ETH_PRI1_INDEX_LITE    /**< Offset to the CPSW input queue for priority 1  packets at NSS */
417 #define NSS_CPSW_QUEUE_ETH_PRI2_INDEX        NSS_CPSW_QUEUE_ETH_PRI2_INDEX_LITE    /**< Offset to the CPSW input queue for priority 2  packets at NSS */
418 #define NSS_CPSW_QUEUE_ETH_PRI3_INDEX        NSS_CPSW_QUEUE_ETH_PRI3_INDEX_LITE    /**< Offset to the CPSW input queue for priority 3  packets at NSS */
419 #define NSS_CPSW_QUEUE_ETH_PRI4_INDEX        NSS_CPSW_QUEUE_ETH_PRI4_INDEX_LITE    /**< Offset to the CPSW input queue for priority 4  packets at NSS */
420 #define NSS_CPSW_QUEUE_ETH_PRI5_INDEX        NSS_CPSW_QUEUE_ETH_PRI5_INDEX_LITE    /**< Offset to the CPSW input queue for priority 5  packets at NSS */
421 #define NSS_CPSW_QUEUE_ETH_PRI6_INDEX        NSS_CPSW_QUEUE_ETH_PRI6_INDEX_LITE    /**< Offset to the CPSW input queue for priority 6  packets at NSS */
422 #define NSS_CPSW_QUEUE_ETH_PRI7_INDEX        NSS_CPSW_QUEUE_ETH_PRI7_INDEX_LITE    /**< Offset to the CPSW input queue for priority 7  packets at NSS */
424 #else
426 #define NSS_NUM_TX_QUEUES                    NSS_NUM_TX_QUEUES_GEN1                /**< Number of Transmit Queues at NSS */
428 #define NSS_PA_QUEUE_INPUT_INDEX             NSS_PA_QUEUE_INPUT_INDEX_GEN1         /**< Offset to the system input queue at NSS */
429 #define NSS_PA_QUEUE_MAC_INDEX               NSS_PA_QUEUE_MAC_INDEX_GEN1           /**< Offset to the MAC input queue at NSS */
430 #define NSS_PA_QUEUE_OUTER_IP_INDEX          NSS_PA_QUEUE_OUTER_IP_INDEX_GEN1      /**< Offset to the (Outer) IP input queue at NSS */
431 #define NSS_PA_QUEUE_INNER_IP_INDEX          NSS_PA_QUEUE_INNER_IP_INDEX_GEN1      /**< Offset to the Inner IP input queue at NSS */
432 #define NSS_PA_QUEUE_LUT2_INDEX              NSS_PA_QUEUE_LUT2_INDEX_GEN1          /**< Offset to the LUT2 (UDP/TCP) input queue at NSS */
433 #define NSS_PA_QUEUE_IPSEC_INDEX             NSS_PA_QUEUE_IPSEC_INDEX_GEN1         /**< Offset to the first layer IPSEC input queue at NSS */
434 #define NSS_PA_QUEUE_IPSEC2_INDEX            NSS_PA_QUEUE_IPSEC2_INDEX_GEN1        /**< Offset to the second layer IPSEC input queue at NSS */
435 #define NSS_PA_QUEUE_POST_INDEX              NSS_PA_QUEUE_POST_INDEX_GEN1          /**< Offset to the post-classification input queue at NSS */
436 #define NSS_PA_QUEUE_TXCMD_INDEX             NSS_PA_QUEUE_TXCMD_INDEX_GEN1         /**< Offset to the Tx command input queue at NSS */
437 #define NSS_PA_QUEUE_FIREWALL_INDEX          -1                                    /**< Offset to the first Firewall (ACL) input queue at NSS */
438 #define NSS_PA_QUEUE_FIREWALL2_INDEX         -1                                    /**< Offset to the second Firewall (ACL) input queue at NSS */
439 #define NSS_PA_QUEUE_EGRESS0_INDEX           -1                                    /**< Offset to the input queue of the first egress stage at NSS */
440 #define NSS_PA_QUEUE_EGRESS1_INDEX           -1                                    /**< Offset to the input queue of the second egress stage at NSS */
441 #define NSS_PA_QUEUE_EGRESS2_INDEX           -1                                    /**< Offset to the input queue of the third egress stage at NSS */
443 #define NSS_SA_QUEUE_SASS_INDEX              NSS_SA_QUEUE_SASS_INDEX_GEN1          /**< Offset to the first SASS input queue at NSS */
444 #define NSS_SA_QUEUE_SASS2_INDEX             NSS_SA_QUEUE_SASS2_INDEX_GEN1         /**< Offset to the second SASS input queue at NSS */
445 #define NSS_CPSW_QUEUE_ETH_INDEX             NSS_CPSW_QUEUE_ETH_INDEX_GEN1         /**< Offset to the CPSW input queue at NSS */
446 #define NSS_CPSW_QUEUE_ETH_PRI0_INDEX        NSS_CPSW_QUEUE_ETH_PRI0_INDEX_GEN1    /**< Offset to the CPSW input queue for priority 0  packets at NSS */
447 #define NSS_CPSW_QUEUE_ETH_PRI1_INDEX        NSS_CPSW_QUEUE_ETH_PRI1_INDEX_GEN1    /**< Offset to the CPSW input queue for priority 1  packets at NSS */
448 #define NSS_CPSW_QUEUE_ETH_PRI2_INDEX        NSS_CPSW_QUEUE_ETH_PRI2_INDEX_GEN1    /**< Offset to the CPSW input queue for priority 2  packets at NSS */
449 #define NSS_CPSW_QUEUE_ETH_PRI3_INDEX        NSS_CPSW_QUEUE_ETH_PRI3_INDEX_GEN1    /**< Offset to the CPSW input queue for priority 3  packets at NSS */
450 #define NSS_CPSW_QUEUE_ETH_PRI4_INDEX        NSS_CPSW_QUEUE_ETH_PRI4_INDEX_GEN1    /**< Offset to the CPSW input queue for priority 4  packets at NSS */
451 #define NSS_CPSW_QUEUE_ETH_PRI5_INDEX        NSS_CPSW_QUEUE_ETH_PRI5_INDEX_GEN1    /**< Offset to the CPSW input queue for priority 5  packets at NSS */
452 #define NSS_CPSW_QUEUE_ETH_PRI6_INDEX        NSS_CPSW_QUEUE_ETH_PRI6_INDEX_GEN1    /**< Offset to the CPSW input queue for priority 6  packets at NSS */
453 #define NSS_CPSW_QUEUE_ETH_PRI7_INDEX        NSS_CPSW_QUEUE_ETH_PRI7_INDEX_GEN1    /**< Offset to the CPSW input queue for priority 7  packets at NSS */
455 #endif
457 /*@}*/ /* nssTxQueue */
458 /** @}*/ /* NSS Transmit Queue related definitions */
461 #ifdef __cplusplus
463 #endif
465 #endif  /* _NSS_IF_H */