1 /*
2  * Copyright 2021-2023 NXP
3  *
4  * SPDX-License-Identifier: BSD-3-Clause
5  */
6 
7 #ifndef NETC_ETHSWT_IP_TYPES_H
8 #define NETC_ETHSWT_IP_TYPES_H
9 
10 /**
11  *   @file Netc_EthSwt_Ip_Types.h
12  *   @addtogroup NETC_ETHSWT_IP NETC_ETHSWT Driver
13  *   @{
14  */
15 
16 #ifdef __cplusplus
17 extern "C"{
18 #endif
19 
20 
21 /*==================================================================================================
22 *                                          INCLUDE FILES
23 * 1) system and project includes
24 * 2) needed interfaces from external units
25 * 3) internal and external interfaces from this unit
26 ==================================================================================================*/
27 #include "Netc_EthSwt_Ip_Cfg.h"
28 #include "Netc_EthSwt_Ip_Cfg_Defines.h"
29 #include "Eth_GeneralTypes.h"
30 #include "StandardTypes.h"
31 
32 /*==================================================================================================
33 *                                 SOURCE FILE VERSION INFORMATION
34 ==================================================================================================*/
35 #define NETC_ETHSWT_IP_TYPES_VENDOR_ID                    43
36 #define NETC_ETHSWT_IP_TYPES_MODULE_ID                    89
37 #define NETC_ETHSWT_IP_TYPES_AR_RELEASE_MAJOR_VERSION     4
38 #define NETC_ETHSWT_IP_TYPES_AR_RELEASE_MINOR_VERSION     7
39 #define NETC_ETHSWT_IP_TYPES_AR_RELEASE_REVISION_VERSION  0
40 #define NETC_ETHSWT_IP_TYPES_SW_MAJOR_VERSION             1
41 #define NETC_ETHSWT_IP_TYPES_SW_MINOR_VERSION             0
42 #define NETC_ETHSWT_IP_TYPES_SW_PATCH_VERSION             0
43 
44 /*==================================================================================================
45 *                                       FILE VERSION CHECKS
46 ==================================================================================================*/
47 
48 /* Checks against Netc_EthSwt_Ip_Cfg.h */
49 #if (NETC_ETHSWT_IP_TYPES_VENDOR_ID !=  NETC_ETHSWT_IP_CFG_VENDOR_ID)
50     #error "Netc_EthSwt_Ip_Types.h and Netc_EthSwt_Ip_Cfg.h have different vendor ids"
51 #endif
52 #if (( NETC_ETHSWT_IP_TYPES_AR_RELEASE_MAJOR_VERSION    !=  NETC_ETHSWT_IP_CFG_AR_RELEASE_MAJOR_VERSION) || \
53      ( NETC_ETHSWT_IP_TYPES_AR_RELEASE_MINOR_VERSION    !=  NETC_ETHSWT_IP_CFG_AR_RELEASE_MINOR_VERSION) || \
54      ( NETC_ETHSWT_IP_TYPES_AR_RELEASE_REVISION_VERSION !=  NETC_ETHSWT_IP_CFG_AR_RELEASE_REVISION_VERSION))
55      #error "AUTOSAR Version Numbers of Netc_EthSwt_Ip_Types.h and Netc_EthSwt_Ip_Cfg.h are different"
56 #endif
57 #if (( NETC_ETHSWT_IP_TYPES_SW_MAJOR_VERSION !=  NETC_ETHSWT_IP_CFG_SW_MAJOR_VERSION) || \
58      ( NETC_ETHSWT_IP_TYPES_SW_MINOR_VERSION !=  NETC_ETHSWT_IP_CFG_SW_MINOR_VERSION) || \
59      ( NETC_ETHSWT_IP_TYPES_SW_PATCH_VERSION !=  NETC_ETHSWT_IP_CFG_SW_PATCH_VERSION))
60     #error "Software Version Numbers of Netc_EthSwt_Ip_Types.h and Netc_EthSwt_Ip_Cfg.h are different"
61 #endif
62 
63 /* Checks against Netc_EthSwt_Ip_Cfg_Defines.h */
64 #if (NETC_ETHSWT_IP_TYPES_VENDOR_ID !=  NETC_ETHSWT_IP_CFG_DEFINES_VENDOR_ID)
65     #error "Netc_EthSwt_Ip_Types.c and Netc_EthSwt_Ip_Cfg_Defines.h have different vendor ids"
66 #endif
67 #if (( NETC_ETHSWT_IP_TYPES_AR_RELEASE_MAJOR_VERSION    !=  NETC_ETHSWT_IP_CFG_DEFINES_AR_RELEASE_MAJOR_VERSION) || \
68      ( NETC_ETHSWT_IP_TYPES_AR_RELEASE_MINOR_VERSION    !=  NETC_ETHSWT_IP_CFG_DEFINES_AR_RELEASE_MINOR_VERSION) || \
69      ( NETC_ETHSWT_IP_TYPES_AR_RELEASE_REVISION_VERSION !=  NETC_ETHSWT_IP_CFG_DEFINES_AR_RELEASE_REVISION_VERSION))
70      #error "AUTOSAR Version Numbers of Netc_EthSwt_Ip_Types.c and Netc_EthSwt_Ip_Cfg_Defines.h are different"
71 #endif
72 #if (( NETC_ETHSWT_IP_TYPES_SW_MAJOR_VERSION !=  NETC_ETHSWT_IP_CFG_DEFINES_SW_MAJOR_VERSION) || \
73      ( NETC_ETHSWT_IP_TYPES_SW_MINOR_VERSION !=  NETC_ETHSWT_IP_CFG_DEFINES_SW_MINOR_VERSION) || \
74      ( NETC_ETHSWT_IP_TYPES_SW_PATCH_VERSION !=  NETC_ETHSWT_IP_CFG_DEFINES_SW_PATCH_VERSION))
75     #error "Software Version Numbers of Netc_EthSwt_Ip_Types.c and Netc_EthSwt_Ip_Cfg_Defines.h are different"
76 #endif
77 
78 #ifndef DISABLE_MCAL_INTERMODULE_ASR_CHECK
79 	#if ((NETC_ETHSWT_IP_TYPES_AR_RELEASE_MAJOR_VERSION != ETH_GENERALTYPES_AR_RELEASE_MAJOR_VERSION) || \
80 		 (NETC_ETHSWT_IP_TYPES_AR_RELEASE_MINOR_VERSION != ETH_GENERALTYPES_AR_RELEASE_MINOR_VERSION) \
81 		)
82 		#error "AutoSar Version Numbers of Netc_EthSwt_Ip_Types.h and Eth_GeneralTypes.h are different"
83 	#endif
84     /* Check if header file and StandardTypes.h are of the same AUTOSAR version */
85     #if ((NETC_ETHSWT_IP_TYPES_AR_RELEASE_MAJOR_VERSION != STD_AR_RELEASE_MAJOR_VERSION) || \
86          (NETC_ETHSWT_IP_TYPES_AR_RELEASE_MINOR_VERSION != STD_AR_RELEASE_MINOR_VERSION))
87         #error "AUTOSAR Version Numbers of Netc_EthSwt_Ip_Types.h and StandardTypes.h are different"
88     #endif
89 #endif
90 /*==================================================================================================
91 *                                            CONSTANTS
92 ==================================================================================================*/
93 
94 #define NETC_ETHSWT_NUMBER_OF_PSEUDO_PORT (1U)  /*!< number of pseudoport */
95 #define NETC_ETHSWT_NUMBER_OF_PORTS       3  /*!< number of ports */
96 #define NETC_ETHSWT_NUMBER_OF_MAC_PORTS   (2U)  /*!< number of mac ports*/
97 #define NETC_ETHSWT_NUMBER_OF_VID_PER_PORT (255U)   /*!< 3 number of vid per port */
98 
99 #define NETC_ETHSWT_IP_FDB_KEYE_DATA_ITEMS                 (3U)      /*!< 3 uint32 items of FDB table KEYE DATA Format */
100 #define NETC_ETHSWT_IP_FDB_SEARCH_CRITERIA_DATA_ITEMS      (8U)      /*!< 8 uint32 items of FDB table SEARCH CRITERIA Format */
101 
102 #define NETC_ETHSWT_TABLE_CFGEDATA_ITEMS                   (4U)      /*!< 4 uint32 items of CFGE_DATA Format for Tables */
103 
104 #define NETC_ETHSWT_IP_INGRESSPORTFILTERTABLE_KEYE_DATA_LEN      (53U)      /*!< 53 uint32 items of Ingress Port Filter Table KEYE_DATA Format */
105 
106 #define NETC_ETHSWT_NUMBER_OF_PROFILES (2U)
107 #define NETC_ETHSWT_NUMBER_OF_PCP_DEI (16U)
108 #define NETC_ETHSWT_NUMBER_OF_PCP     (8U)
109 #define NETC_ETHSWT_NUMBER_OF_IPV     (8U)
110 #define NETC_ETHSWT_NUMBER_OF_DR      (4U)
111 
112 #define NETC_ETHSWT_EFMEID_FOR_MIRRORING                (0U)        /* Default egress frame modification entry id for mirroring */
113 #define NETC_ETHSWT_EFM_LEN_CHANGE_FOR_MIRRORING        (4U)        /* EFM_LEN_CHANGE value for double tagging when modifying mirrored egress frames */
114 /*==================================================================================================
115 *                                       DEFINES AND MACROS
116 ==================================================================================================*/
117 
118 /*==================================================================================================
119 *                                              ENUMS
120 ==================================================================================================*/
121 
122 
123 /*!
124  * @brief Ingress congestion management priority. Used for congestion management.
125  */
126 typedef enum
127 {
128     NETC_ETHSWT_IP_ICM_LOW_PRIORITY  = 0U,    /*!< ICM low priority */
129     NETC_ETHSWT_IP_ICM_HIGH_PRIORITY = 1U     /*!< ICM high priority */
130 } Netc_EthSwt_Ip_ICMType;
131 
132 /*!
133  * @brief Callback function invoked when a general event is encountered
134  */
135 typedef void (*Netc_EthSwt_Ip_CallbackType)(uint8 Instance);
136 
137 /*!
138  * @brief Callback function invoked when a channel event is encountered
139  */
140 typedef void (*Netc_EthSwt_Ip_ChCallbackType)(uint8 Instance, uint8 Channel);
141 
142 /*==================================================================================================
143 *                                  STRUCTURES AND OTHER TYPEDEFS
144 ==================================================================================================*/
145 /*!
146  * @brief Query action enum types for tables in Switch.
147  */
148 typedef enum {
149     NETC_ETHSWT_TABLES_FULL_QUERY = 0x0U,               /*!< Full Query */
150     NETC_ETHSWT_TABLES_ENTRY_ID_QUERY = 0x1U            /*!< Entry_Id query only */
151 } Netc_EthSwt_Ip_TablesQueryActionType;
152 
153 /*!
154  * @brief defines FDB entries.
155  * @implements Netc_EthSwt_Ip_FdbEntryDataType_struct
156  */
157 typedef struct
158 {
159     uint8 MacAddr[6];                                   /*!< MAC Address */
160     uint16 FID;                                         /*!< Filtering ID */
161     uint32 SwitchPortEgressBitMask;                     /*!< Port Bitmap */
162     uint32 ET_EID;                                      /*!< Egress Treatment Table Entry ID */
163     uint8 CutThroughDisable;                            /*!< CTD */
164     uint8 OverridETEID;                                 /*!< OETEID */
165     uint8 EgressPort;                                   /*!< EPORT */
166     boolean IngressMirroringEnable;                     /*!< IMIRE */
167     boolean DynamicEntry;                               /*!< 0b = Static entry, 1b = Dynamic entry */
168     boolean TimeStampCapture;                           /*!< TIMECAPE */
169 } Netc_EthSwt_Ip_FdbEntryDataType;
170 
171 /*!
172  * @brief defines Vlan Filter entries.
173  * @implements Netc_EthSwt_Ip_VlanFilterEntryDataType_struct
174  */
175 typedef struct
176 {
177     uint32 PortMembershipBitmap;                        /*!< Port Membership Bitmap */
178     uint16 VlanID;                                      /*!< Vlan ID */
179     uint16 FID;                                         /*!< Filtering ID */
180     uint32 EgressTreatmentApplicabilityPortBitmap;      /*!< Egress Treatment Applicability Port Bitmap */
181     uint32 BaseEgressTreatmentEntryID;                  /*!< Base Egress Treatment Entry ID */
182     uint8 SpanningTreeGroupMemberId;                    /*!< STG_ID */
183     uint8 MacForwardingOptions;                         /*!< MFO */
184     uint8 MacLearningOptions;                           /*!< MLO */
185     boolean IpMulticastFloodingEnable;                  /*!< IP Multicast Flooding Enable */
186     boolean IpMulticastFilteringEnable;                 /*!< IP Multicast Filtering Enable */
187 } Netc_EthSwt_Ip_VlanFilterEntryDataType;
188 
189 /******************************************************************************
190 * Definitions
191 *****************************************************************************/
192 #define NETC_ETHSWT_IP_FDB_TABLE_ID                     (15U)    /*!< FDB table id */
193 #define NETC_ETHSWT_IP_VLAN_FILTER_TABLE_ID             (18U)    /*!< Vlan filter table id */
194 #define NETC_ETHSWT_IP_EGRESS_COUNT_TABLE_ID            (39U)    /*!< Egress Count table id */
195 #define NETC_ETHSWT_IP_EGRESS_TREATMENT_TABLE_ID        (33U)    /*!< Egress Treatment table id */
196 #define NETC_ETHSWT_IP_FRM_MODIFICATION_TABLE_ID        (40U)    /*!< Frame Modification table id */
197 #define NETC_ETHSWT_IP_INGRESS_PORT_FILTER_TABLE_ID     (13U)    /*!< Ingress Port Filter table id */
198 #define NETC_ETHSWT_IP_TIME_GATE_SCHEDULING_TABLE_ID    (5U)     /*!< Ingress Port Filter table id */
199 #define NETC_ETHSWT_IP_RATE_POLICER_TABLE_ID            (10U)    /*!< Rate Policer table id */
200 #define NETC_ETHSWT_IP_INGRESS_STREAM_IDEN_TABLE_ID     (30U)    /*!< Ingress Stream Identification table id */
201 #define NETC_ETHSWT_IP_INGRESS_STREAM_TABLE_ID          (31U)    /*!< Ingress Stream table id */
202 #define NETC_ETHSWT_IP_INGRESS_STREAM_FILTER_TABLE_ID   (32U)    /*!< Ingress Stream Filter table id */
203 #define NETC_ETHSWT_IP_INGRESS_SEQ_GENERATION_TABLE_ID  (34U)    /*!< Ingress Sequence Generation table id */
204 #define NETC_ETHSWT_IP_EGRESS_SEQ_RECOVERY_TABLE_ID     (35U)    /*!< Egress Sequence Recovery table id */
205 #define NETC_ETHSWT_IP_STREAM_GATE_INSTANCE_TABLE_ID    (36U)    /*!< Stream Gate Instance table id */
206 #define NETC_ETHSWT_IP_STREAM_GATE_CTRL_LIST_TABLE_ID   (37U)    /*!< Stream Gate Control List table id */
207 #define NETC_ETHSWT_IP_CLASS_SCHEDULER_TABLE_ID         (23U)    /*!< ETM Class Scheduler table id */
208 #define NETC_ETHSWT_IP_INGRESS_STREAM_COUNT_TABLE_ID    (38U)    /*!< INgress Stream Count table id */
209 
210 #define NETC_ETHSWT_IP_BD_ENTRY_EXIST              (1U)     /*!< BD entry exist */
211 #define NETC_ETHSWT_IP_BD_ENTRY_NOT_EXIST          (0U)     /*!< BD entry not exist*/
212 
213 #define NETC_ETHSWT_IP_BD_NULL_ENTRY_ID            (0xFFFFFFFFUL)       /*!< BD null entry */
214 
215 /*!
216  * @brief defines CBDR status type.
217  */
218 typedef uint32 Netc_EthSwt_Ip_CBDRStatusType;
219 #define NETC_ETHSWT_CBDRSTATUS_SUCCES                                           (0x0UL)     /*!< cbdr status success */
220 #define NETC_ETHSWT_CBDRSTATUS_INDEX_ERROR                                      (0x1UL)     /*!< index of ring should be 0 or 1 */
221 #define NETC_ETHSWT_CBDRSTATUS_RINGFULL                                         (0x2UL)     /*!< Ring is full */
222 #define NETC_ETHSWT_CBDRSTATUS_RR_ERROR                                         (0x3UL)     /*!< The hardware does not consume the command, or the operation has not finished by hardware. */
223 #define NETC_ETHSWT_CBDRSTATUS_NUMMATCHED_ERROR                                 (0x4UL)     /*!< The NUM_MATCHED field should be 1 when the entry exists for any commands */
224 #define NETC_ETHSWT_CBDRSTATUS_ACCESSMETHOD_ERROR                               (0x5UL)     /*!< Access_method should be 0, 1, or 2, or the command is not supported by this access method */
225 #define NETC_ETHSWT_CBDRSTATUS_TABLE_OPERATION_TIMEOUT                          (0x6UL)     /*!< Table operations timeout for commands like add, query, delete etc. */
226 #define NETC_ETHSWT_CBDRSTATUS_INVALID_TABLE_ID                                 (0x080UL)   /*!< Invalid table ID */
227 #define NETC_ETHSWT_CBDRSTATUS_NOT_SUPPORTED_ACCESS_METHOD                      (0x081UL)   /*!< Access method specified is not supported */
228 #define NETC_ETHSWT_CBDRSTATUS_TABLE_INDEX_OUTOFRANGE                           (0x082UL)   /*!< Table index out of range */
229 #define NETC_ETHSWT_CBDRSTATUS_BUFFER_NOT_SUFFICIENT                            (0x083UL)   /*!< Request data buffer size or response data buffer size is not sufficient */
230 #define NETC_ETHSWT_CBDRSTATUS_INVALID_CMD                                      (0x084UL)   /*!< Invalid command */
231 #define NETC_ETHSWT_CBDRSTATUS_REQUEST_DATA_BUFFER_ERROR                        (0x085UL)   /*!< Request Data buffer error */
232 #define NETC_ETHSWT_CBDRSTATUS_ECC_OR_PARITY_ERROR                              (0x086UL)   /*!< Multi-bit ECC or parity error observed during command processing */
233 #define NETC_ETHSWT_CBDRSTATUS_EXCEEDED_HASH_ENTRY_LIMIT                        (0x087UL)   /*!< Exceeded hash entry limit */
234 #define NETC_ETHSWT_CBDRSTATUS_EXCEEDED_MAXIMUM_HASH_COLLISION_CHAIN_LIMIT      (0x088UL)   /*!< Exceeded maximum hash collision chain limit */
235 #define NETC_ETHSWT_CBDRSTATUS_INVALID_ENTRY_ID                                 (0x089UL)   /*!< Invalid ENTRY_ID for HW Managed tables (hash, TCAM) */
236 #define NETC_ETHSWT_CBDRSTATUS_SEARCH_CMD_FILLED_THE_RESPONSE_DATA_BUFFER       (0x08AUL)   /*!< Search command filled the response data buffer before completing the command */
237 #define NETC_ETHSWT_CBDRSTATUS_CMD_FOR_INDEX_TABLE_BEFORE_OSR                   (0x08BUL)   /*!< Command for index table before OSR[ITM_STATE]=0 */
238 #define NETC_ETHSWT_CBDRSTATUS_INVALID_QUERRY_ACTION                            (0x08CUL)   /*!< Query action specifed is invalid */
239 #define NETC_ETHSWT_CBDRSTATUS_INVALID_TABLE_ACCESS_PRIVILEGE                   (0x08DUL)   /*!< Invalid table access privilege */
240 #define NETC_ETHSWT_CBDRSTATUS_SYSTEM_BUS_READ_ERROR                            (0x08EUL)   /*!< System Bus Read Error encountered while processing the command. */
241 #define NETC_ETHSWT_CBDRSTATUS_SYSTEM_BUS_WRITE_ERROR                           (0x08FUL)   /*!< System Bus Write Error encountered while processing the command. */
242 #define NETC_ETHSWT_CBDRSTATUS_CLIENT_FAULT                                     (0x090UL)   /*!< Client encountered a fault while processing the command. */
243 #define NETC_ETHSWT_CBDRSTATUS_RESERVED_ERROR                                   (0x091UL)   /*!< 0x091 to 0x0FF = reserved */
244 #define NETC_ETHSWT_CBDRSTATUS_TABLE_SPECIFIC_ERROR                             (0x100UL)   /*!< 0x100 to 0xFFF = Table specific error codes */
245 #define NETC_ETHSWT_CBDRSTATUS_UPTATE_EXISTING_ADMIN_GATE_CONTROL               (0x0D1UL)   /* Update action attempted on an existing admin gate control. An existing admin gate control list cannot be modified, Delete admin gate control list first before creating a new admin list. (Use update action with ADMIN_CONTROL_LIST_LENGTH =0 to perform delete). */
246 #define NETC_ETHSWT_CBDRSTATUS_UPDATE_ACTION_EXCEED_MAX_GCL_LEN                 (0x0D2UL)   /* Update action attempted exceeds TGSTCAPR[MAX_GCL_LEN]. */
247 #define NETC_ETHSWT_CBDRSTATUS_UPDATE_ACTION_EXCEED_NUM_WORDS                   (0x0D3UL)   /* Update action attempted exceeds TGSTCAPR[NUM_WORDS]. */
248 #define NETC_ETHSWT_CBDRSTATUS_INSUFFICIENT_RESOURCES                           (0x0D4UL)   /* Insufficient resources to perform the requested operation (not enough free time gate list entries) */
249 #define NETC_ETHSWT_CBDRSTATUS_TRANSMITTING_TIME_NOT_SUFFICIENT                 (0x0D5UL)   /* Update action attempted with ADMIN_CYCLE_TIME, ADMIN_TIME_INTERVAL_GE_i or truncated ADMIN_TIME_INTERVAL_GE_n due ADMIN_CYCLE_TIME specified is not sufficient to transmit 64 byte of frame data + header overhead. Where header overhead = PTXSDUOR[PTXSDUOR] + PTXSDUOR[PPDU_BCO]. */
250 #define NETC_ETHSWT_CBDRSTATUS_ADMIN_BASE_TIME_IS_MORE_THAN_1S                  (0x0D6UL)   /* Update action attempted with ADMIN_BASE_TIME specified is more than one second in the past from tcs advance time. */
251 #define NETC_ETHSWT_CBDRSTATUS_ADMIN_CYCLE_TIME_OVERFLOW                        (0x0D7UL)   /* Update action attempted with ADMIN_CYCLE_TIME + ADMIN_CYCLE_TIME_EXT is greater than 2^32-1. */
252 #define NETC_ETHSWT_CBDRSTATUS_RETRY_QUERY                                      (0x0D8UL)   /* Query action issued when config change occurred. Retry query. */
253 #define NETC_ETHSWT_CBDRSTATUS_INVALID_ADMIN_HR_CB_GE                           (0x0D9UL)   /* Update action attempted with ADMIN_HR_CB_GE_i set to an invalid value. */
254 
255 /*!
256  * @brief defines access method type.
257  */
258 typedef enum {
259     NETC_ETHSWT_ENTRY_ID_MATCH = 0x0U,                  /*!< if entry id match */
260     NETC_ETHSWT_EXACT_MATCH_KEY_ELEMENT_MATCH,          /*!< if exact match key element match */
261     NETC_ETHSWT_SEARCH_METHOD,                          /*!< search method */
262     NETC_ETHSWT_TERNARY_MATCH_KEY_ELEMENT_MATCH         /*!< if ternary match key element */
263 } Netc_EthSwt_Ip_AccessMethodType;
264 
265 /*!
266  * @brief defines commands type.
267  * @implements Netc_EthSwt_Ip_CommandsType_enum
268  */
269 typedef enum {
270     NETC_ETHSWT_DELETE_CMD = 0x1U,                                  /*!< delete command */
271     NETC_ETHSWT_UPDATE_CMD = 0x2U,                                  /*!< update command */
272     NETC_ETHSWT_QUERY_CMD = 0x4U,                                   /*!< query command*/
273     NETC_ETHSWT_QUERY_FOLLOWEDBY_DELETE_CMD = 0x5U,                 /*!< query followed by delete command */
274     NETC_ETHSWT_QUERY_FOLLOWEDBY_UPDATE_CMD = 0x6U,                 /*!< query followed by update command */
275     NETC_ETHSWT_ADD_CMD = 0x8U,                                     /*!< add a command */
276     NETC_ETHSWT_ADD_OR_UPDATE_CMD = 0xAU,                           /*!< add or update a command */
277     NETC_ETHSWT_ADD_FOLLOWEDBY_QUERY_CMD = 0xCU,                    /*!< add followed by query command */
278     NETC_ETHSWT_ADD_FOLLOWEDBY_QUERY_FOLLOWEDBY_UPDATE_CMD = 0xEU   /*!< add followed by query followed by update command */
279 } Netc_EthSwt_Ip_CommandsType;
280 
281 /*!
282  * @brief CMBDR requeste length field.
283  */
284 #define NETC_ETHSWT_IP_CMDBD_REQFMT_REQUEST_LENGTH_SHIFT               (20U)
285 /*!
286  * @brief CMBDR requeste length field mask.
287  */
288 #define NETC_ETHSWT_IP_CMDBD_REQFMT_REQUEST_LENGTH_MASK                (0xFFF00000UL)
289 /*!
290  * @brief CMBDR requeste lengtht.
291  */
292 #define NETC_ETHSWT_IP_CMDBD_REQFMT_REQUEST_LENGTH(x)                  (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_CMDBD_REQFMT_REQUEST_LENGTH_SHIFT)) & NETC_ETHSWT_IP_CMDBD_REQFMT_REQUEST_LENGTH_MASK)
293 
294 /*!
295  * @brief CMBDR response length field.
296  */
297 #define NETC_ETHSWT_IP_CMDBD_REQFMT_RESPONSE_LENGTH_SHIFT               (0U)
298 /*!
299  * @brief CMBDR response length field mask.
300  */
301 #define NETC_ETHSWT_IP_CMDBD_REQFMT_RESPONSE_LENGTH_MASK                (0x000FFFFFUL)
302 /*!
303  * @brief CMBDR response length.
304  */
305 #define NETC_ETHSWT_IP_CMDBD_REQFMT_RESPONSE_LENGTH(x)                  (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_CMDBD_REQFMT_RESPONSE_LENGTH_SHIFT)) & NETC_ETHSWT_IP_CMDBD_REQFMT_RESPONSE_LENGTH_MASK)
306 
307 /** @brief CMD field */
308 #define NETC_ETHSWT_IP_CMDBD_REQFMT_CONFIG_FIELD_CMD_SHIFT              (0U)
309 /** @brief CMD field mask */
310 #define NETC_ETHSWT_IP_CMDBD_REQFMT_CONFIG_FIELD_CMD_MASK               (0x0000000FUL)
311 /** @brief CMD field set */
312 #define NETC_ETHSWT_IP_CMDBD_REQFMT_CONFIG_FIELD_CMD(x)                 (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_CMDBD_REQFMT_CONFIG_FIELD_CMD_SHIFT)) & NETC_ETHSWT_IP_CMDBD_REQFMT_CONFIG_FIELD_CMD_MASK)
313 
314 /*!
315  * @brief CMBDR request config access method field.
316  */
317 #define NETC_ETHSWT_IP_CMDBD_REQFMT_CONFIG_FIELD_ACCESS_METHOD_SHIFT    (12U)
318 /*!
319  * @brief CMBDR request config access method field mask.
320  */
321 #define NETC_ETHSWT_IP_CMDBD_REQFMT_CONFIG_FIELD_ACCESS_METHOD_MASK     (0x00003000UL)
322 /*!
323  * @brief CMBDR request config field access method.
324  */
325 #define NETC_ETHSWT_IP_CMDBD_REQFMT_CONFIG_FIELD_ACCESS_METHOD(x)       (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_CMDBD_REQFMT_CONFIG_FIELD_ACCESS_METHOD_SHIFT)) & NETC_ETHSWT_IP_CMDBD_REQFMT_CONFIG_FIELD_ACCESS_METHOD_MASK)
326 
327 /*!
328  * @brief CMBDR request config field table id.
329  */
330 #define NETC_ETHSWT_IP_CMDBD_REQFMT_CONFIG_FIELD_TABLE_ID_SHIFT         (16U)
331 /*!
332  * @brief CMBDR request config field table id mask.
333  */
334 #define NETC_ETHSWT_IP_CMDBD_REQFMT_CONFIG_FIELD_TABLE_ID_MASK          (0x00FF0000UL)
335 /*!
336  * @brief CMBDR request config table id.
337  */
338 #define NETC_ETHSWT_IP_CMDBD_REQFMT_CONFIG_FIELD_TABLE_ID(x)            (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_CMDBD_REQFMT_CONFIG_FIELD_TABLE_ID_SHIFT)) & NETC_ETHSWT_IP_CMDBD_REQFMT_CONFIG_FIELD_TABLE_ID_MASK)
339 
340 /*!
341  * @brief CMBDR request version field.
342  */
343 #define NETC_ETHSWT_IP_CMDBD_REQFMT_CONFIG_FIELD_VERSION_SHIFT          (24U)
344 /*!
345  * @brief CMBDR request version field mask.
346  */
347 #define NETC_ETHSWT_IP_CMDBD_REQFMT_CONFIG_FIELD_VERSION_MASK           (0x3F000000UL)
348 /*!
349  * @brief CMBDR request version.
350  */
351 #define NETC_ETHSWT_IP_CMDBD_REQFMT_CONFIG_FIELD_VERSION(x)             (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_CMDBD_REQFMT_CONFIG_FIELD_VERSION_SHIFT)) & NETC_ETHSWT_IP_CMDBD_REQFMT_CONFIG_FIELD_VERSION_MASK)
352 
353 /*!
354  * @brief CMBDR request config field.
355  */
356 #define NETC_ETHSWT_IP_CMDBD_REQFMT_CONFIG_FIELD_CCI_SHIFT              (30U)
357 /*!
358  * @brief CMBDR request config field mask.
359  */
360 #define NETC_ETHSWT_IP_CMDBD_REQFMT_CONFIG_FIELD_CCI_MASK               (0x4F000000UL)
361 /*!
362  * @brief CMBDR request config.
363  */
364 #define NETC_ETHSWT_IP_CMDBD_REQFMT_CONFIG_FIELD_CCI(x)                 (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_CMDBD_REQFMT_CONFIG_FIELD_CCI_SHIFT)) & NETC_ETHSWT_IP_CMDBD_REQFMT_CONFIG_FIELD_CCI_MASK)
365 
366 /*!
367  * @brief CMBDR request RR field.
368  */
369 #define NETC_ETHSWT_IP_CMDBD_REQFMT_CONFIG_FIELD_RR_SHIFT                (31U)
370 /*!
371  * @brief CMBDR request RR field mask.
372  */
373 #define NETC_ETHSWT_IP_CMDBD_REQFMT_CONFIG_FIELD_RR_MASK                 (0x80000000UL)
374 /*!
375  * @brief CMBDR request RR.
376  */
377 #define NETC_ETHSWT_IP_CMDBD_REQFMT_CONFIG_FIELD_RR(x)                   (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_CMDBD_REQFMT_CONFIG_FIELD_RR_SHIFT)) & NETC_ETHSWT_IP_CMDBD_REQFMT_CONFIG_FIELD_RR_MASK)
378 
379 /*!
380  * @brief CMBDR request NPF field.
381  */
382 #define NETC_ETHSWT_IP_CMDBD_REQFMT_NPF_FIELD_SHIFT                      (15U)
383 /*!
384  * @brief CMBDR request NPF field mask.
385  */
386 #define NETC_ETHSWT_IP_CMDBD_REQFMT_NPF_FIELD_MASK                       (0x00008000UL)
387 /*!
388  * @brief CMBDR request NPF.
389  */
390 #define NETC_ETHSWT_IP_CMDBD_REQFMT_NPF_FIELD(x)                         (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_CMDBD_REQFMT_NPF_FIELD_SHIFT)) & NETC_ETHSWT_IP_CMDBD_REQFMT_NPF_FIELD_MASK)
391 
392 /*!
393 * @brief Rate Policer Table FEE_DATA Format
394 */
395 #define NETC_ETHSWT_IP_RATEPOLICERTABLE_FEE_DATA_FEN_SHIFT              (0U)
396 #define NETC_ETHSWT_IP_RATEPOLICERTABLE_FEE_DATA_FEN_MASK               (0x00000001UL)
397 #define NETC_ETHSWT_IP_RATEPOLICERTABLE_FEE_DATA_FEN(x)                 (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_RATEPOLICERTABLE_FEE_DATA_FEN_SHIFT)) & NETC_ETHSWT_IP_RATEPOLICERTABLE_FEE_DATA_FEN_MASK)
398 
399 /*!
400 * @brief Rate Policer Table CFGE_DATA config bits Format
401 */
402 #define NETC_ETHSWT_IP_RATEPOLICERTABLE_CFGE_DATA_MREN_SHIFT            (0U)
403 #define NETC_ETHSWT_IP_RATEPOLICERTABLE_CFGE_DATA_MREN_MASK             (0x00000001UL)
404 #define NETC_ETHSWT_IP_RATEPOLICERTABLE_CFGE_DATA_MREN(x)               (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_RATEPOLICERTABLE_CFGE_DATA_MREN_SHIFT)) & NETC_ETHSWT_IP_RATEPOLICERTABLE_CFGE_DATA_MREN_MASK)
405 
406 #define NETC_ETHSWT_IP_RATEPOLICERTABLE_CFGE_DATA_DOY_SHIFT             (1U)
407 #define NETC_ETHSWT_IP_RATEPOLICERTABLE_CFGE_DATA_DOY_MASK              (0x00000002UL)
408 #define NETC_ETHSWT_IP_RATEPOLICERTABLE_CFGE_DATA_DOY(x)                (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_RATEPOLICERTABLE_CFGE_DATA_DOY_SHIFT)) & NETC_ETHSWT_IP_RATEPOLICERTABLE_CFGE_DATA_DOY_MASK)
409 
410 #define NETC_ETHSWT_IP_RATEPOLICERTABLE_CFGE_DATA_CM_SHIFT              (2U)
411 #define NETC_ETHSWT_IP_RATEPOLICERTABLE_CFGE_DATA_CM_MASK               (0x00000004UL)
412 #define NETC_ETHSWT_IP_RATEPOLICERTABLE_CFGE_DATA_CM(x)                 (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_RATEPOLICERTABLE_CFGE_DATA_CM_SHIFT)) & NETC_ETHSWT_IP_RATEPOLICERTABLE_CFGE_DATA_CM_MASK)
413 
414 #define NETC_ETHSWT_IP_RATEPOLICERTABLE_CFGE_DATA_CF_SHIFT              (3U)
415 #define NETC_ETHSWT_IP_RATEPOLICERTABLE_CFGE_DATA_CF_MASK               (0x00000008UL)
416 #define NETC_ETHSWT_IP_RATEPOLICERTABLE_CFGE_DATA_CF(x)                 (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_RATEPOLICERTABLE_CFGE_DATA_CF_SHIFT)) & NETC_ETHSWT_IP_RATEPOLICERTABLE_CFGE_DATA_CF_MASK)
417 
418 #define NETC_ETHSWT_IP_RATEPOLICERTABLE_CFGE_DATA_NDOR_SHIFT            (4U)
419 #define NETC_ETHSWT_IP_RATEPOLICERTABLE_CFGE_DATA_NDOR_MASK             (0x00000010UL)
420 #define NETC_ETHSWT_IP_RATEPOLICERTABLE_CFGE_DATA_NDOR(x)               (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_RATEPOLICERTABLE_CFGE_DATA_NDOR_SHIFT)) & NETC_ETHSWT_IP_RATEPOLICERTABLE_CFGE_DATA_NDOR_MASK)
421 
422 #define NETC_ETHSWT_IP_RATEPOLICERTABLE_CFGE_DATA_SDU_TYPE_SHIFT        (5U)
423 #define NETC_ETHSWT_IP_RATEPOLICERTABLE_CFGE_DATA_SDU_TYPE_MASK         (0x00000060UL)
424 #define NETC_ETHSWT_IP_RATEPOLICERTABLE_CFGE_DATA_SDU_TYPE(x)           (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_RATEPOLICERTABLE_CFGE_DATA_SDU_TYPE_SHIFT)) & NETC_ETHSWT_IP_RATEPOLICERTABLE_CFGE_DATA_SDU_TYPE_MASK)
425 
426 /*!
427 * @brief Ingress Stream Table CFGE_DATA config bits Format
428 */
429 #define NETC_ETHSWT_IP_INGRESSSTREAMTABLE_CFGE_SFE_SHIFT                (0U)
430 #define NETC_ETHSWT_IP_INGRESSSTREAMTABLE_CFGE_SFE_MASK                 (0x00000001UL)
431 #define NETC_ETHSWT_IP_INGRESSSTREAMTABLE_CFGE_SFE(x)                   (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_INGRESSSTREAMTABLE_CFGE_SFE_SHIFT)) & NETC_ETHSWT_IP_INGRESSSTREAMTABLE_CFGE_SFE_MASK)
432 
433 #define NETC_ETHSWT_IP_INGRESSSTREAMTABLE_CFGE_IPV_SHIFT                (4U)
434 #define NETC_ETHSWT_IP_INGRESSSTREAMTABLE_CFGE_IPV_MASK                 (0x000000F0UL)
435 #define NETC_ETHSWT_IP_INGRESSSTREAMTABLE_CFGE_IPV(x)                   (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_INGRESSSTREAMTABLE_CFGE_IPV_SHIFT)) & NETC_ETHSWT_IP_INGRESSSTREAMTABLE_CFGE_IPV_MASK)
436 
437 #define NETC_ETHSWT_IP_INGRESSSTREAMTABLE_CFGE_OIPV_SHIFT               (8U)
438 #define NETC_ETHSWT_IP_INGRESSSTREAMTABLE_CFGE_OIPV_MASK                (0x00000100UL)
439 #define NETC_ETHSWT_IP_INGRESSSTREAMTABLE_CFGE_OIPV(x)                  (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_INGRESSSTREAMTABLE_CFGE_OIPV_SHIFT)) & NETC_ETHSWT_IP_INGRESSSTREAMTABLE_CFGE_OIPV_MASK)
440 
441 #define NETC_ETHSWT_IP_INGRESSSTREAMTABLE_CFGE_DR_SHIFT                 (9U)
442 #define NETC_ETHSWT_IP_INGRESSSTREAMTABLE_CFGE_DR_MASK                  (0x00000600UL)
443 #define NETC_ETHSWT_IP_INGRESSSTREAMTABLE_CFGE_DR(x)                    (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_INGRESSSTREAMTABLE_CFGE_DR_SHIFT)) & NETC_ETHSWT_IP_INGRESSSTREAMTABLE_CFGE_DR_MASK)
444 
445 #define NETC_ETHSWT_IP_INGRESSSTREAMTABLE_CFGE_ODR_SHIFT                (11U)
446 #define NETC_ETHSWT_IP_INGRESSSTREAMTABLE_CFGE_ODR_MASK                 (0x00000800UL)
447 #define NETC_ETHSWT_IP_INGRESSSTREAMTABLE_CFGE_ODR(x)                   (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_INGRESSSTREAMTABLE_CFGE_ODR_SHIFT)) & NETC_ETHSWT_IP_INGRESSSTREAMTABLE_CFGE_ODR_MASK)
448 
449 #define NETC_ETHSWT_IP_INGRESSSTREAMTABLE_CFGE_IMIRE_SHIFT              (12U)
450 #define NETC_ETHSWT_IP_INGRESSSTREAMTABLE_CFGE_IMIRE_MASK               (0x00001000UL)
451 #define NETC_ETHSWT_IP_INGRESSSTREAMTABLE_CFGE_IMIRE(x)                 (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_INGRESSSTREAMTABLE_CFGE_IMIRE_SHIFT)) & NETC_ETHSWT_IP_INGRESSSTREAMTABLE_CFGE_IMIRE_MASK)
452 
453 #define NETC_ETHSWT_IP_INGRESSSTREAMTABLE_CFGE_TIMECAPE_SHIFT           (13U)
454 #define NETC_ETHSWT_IP_INGRESSSTREAMTABLE_CFGE_TIMECAPE_MASK            (0x00002000UL)
455 #define NETC_ETHSWT_IP_INGRESSSTREAMTABLE_CFGE_TIMECAPE(x)              (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_INGRESSSTREAMTABLE_CFGE_TIMECAPE_SHIFT)) & NETC_ETHSWT_IP_INGRESSSTREAMTABLE_CFGE_TIMECAPE_MASK)
456 
457 #define NETC_ETHSWT_IP_INGRESSSTREAMTABLE_CFGE_SPPD_SHIFT               (15U)
458 #define NETC_ETHSWT_IP_INGRESSSTREAMTABLE_CFGE_SPPD_MASK                (0x00008000UL)
459 #define NETC_ETHSWT_IP_INGRESSSTREAMTABLE_CFGE_SPPD(x)                  (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_INGRESSSTREAMTABLE_CFGE_SPPD_SHIFT)) & NETC_ETHSWT_IP_INGRESSSTREAMTABLE_CFGE_SPPD_MASK)
460 
461 #define NETC_ETHSWT_IP_INGRESSSTREAMTABLE_CFGE_ISQA_SHIFT               (16U)
462 #define NETC_ETHSWT_IP_INGRESSSTREAMTABLE_CFGE_ISQA_MASK                (0x00030000UL)
463 #define NETC_ETHSWT_IP_INGRESSSTREAMTABLE_CFGE_ISQA(x)                  (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_INGRESSSTREAMTABLE_CFGE_ISQA_SHIFT)) & NETC_ETHSWT_IP_INGRESSSTREAMTABLE_CFGE_ISQA_MASK)
464 
465 #define NETC_ETHSWT_IP_INGRESSSTREAMTABLE_CFGE_ORP_SHIFT                (18U)
466 #define NETC_ETHSWT_IP_INGRESSSTREAMTABLE_CFGE_ORP_MASK                 (0x00040000UL)
467 #define NETC_ETHSWT_IP_INGRESSSTREAMTABLE_CFGE_ORP(x)                   (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_INGRESSSTREAMTABLE_CFGE_ORP_SHIFT)) & NETC_ETHSWT_IP_INGRESSSTREAMTABLE_CFGE_ORP_MASK)
468 
469 #define NETC_ETHSWT_IP_INGRESSSTREAMTABLE_CFGE_OSGI_SHIFT               (19U)
470 #define NETC_ETHSWT_IP_INGRESSSTREAMTABLE_CFGE_OSGI_MASK                (0x00080000UL)
471 #define NETC_ETHSWT_IP_INGRESSSTREAMTABLE_CFGE_OSGI(x)                  (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_INGRESSSTREAMTABLE_CFGE_OSGI_SHIFT)) & NETC_ETHSWT_IP_INGRESSSTREAMTABLE_CFGE_OSGI_MASK)
472 
473 #define NETC_ETHSWT_IP_INGRESSSTREAMTABLE_CFGE_HR_SHIFT                 (20U)
474 #define NETC_ETHSWT_IP_INGRESSSTREAMTABLE_CFGE_HR_MASK                  (0x00F00000UL)
475 #define NETC_ETHSWT_IP_INGRESSSTREAMTABLE_CFGE_HR(x)                    (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_INGRESSSTREAMTABLE_CFGE_HR_SHIFT)) & NETC_ETHSWT_IP_INGRESSSTREAMTABLE_CFGE_HR_MASK)
476 
477 #define NETC_ETHSWT_IP_INGRESSSTREAMTABLE_CFGE_FA_SHIFT                 (24U)
478 #define NETC_ETHSWT_IP_INGRESSSTREAMTABLE_CFGE_FA_MASK                  (0x07000000UL)
479 #define NETC_ETHSWT_IP_INGRESSSTREAMTABLE_CFGE_FA(x)                    (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_INGRESSSTREAMTABLE_CFGE_FA_SHIFT)) & NETC_ETHSWT_IP_INGRESSSTREAMTABLE_CFGE_FA_MASK)
480 
481 #define NETC_ETHSWT_IP_INGRESSSTREAMTABLE_CFGE_SDUTYPE_SHIFT            (27U)
482 #define NETC_ETHSWT_IP_INGRESSSTREAMTABLE_CFGE_SDUTYPE_MASK             (0x18000000UL)
483 #define NETC_ETHSWT_IP_INGRESSSTREAMTABLE_CFGE_SDUTYPE(x)               (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_INGRESSSTREAMTABLE_CFGE_SDUTYPE_SHIFT)) & NETC_ETHSWT_IP_INGRESSSTREAMTABLE_CFGE_SDUTYPE_MASK)
484 
485 #define NETC_ETHSWT_IP_INGRESSSTREAMTABLE_CFGE_MSDU_SHIFT               (0U)
486 #define NETC_ETHSWT_IP_INGRESSSTREAMTABLE_CFGE_MSDU_MASK                (0x0000FFFFUL)
487 #define NETC_ETHSWT_IP_INGRESSSTREAMTABLE_CFGE_MSDU(x)                  (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_INGRESSSTREAMTABLE_CFGE_MSDU_SHIFT)) & NETC_ETHSWT_IP_INGRESSSTREAMTABLE_CFGE_MSDU_MASK)
488 
489 #define NETC_ETHSWT_IP_INGRESSSTREAMTABLE_CFGE_IFMELENCHG_SHIFT         (16U)
490 #define NETC_ETHSWT_IP_INGRESSSTREAMTABLE_CFGE_IFMELENCHG_MASK          (0x007F0000UL)
491 #define NETC_ETHSWT_IP_INGRESSSTREAMTABLE_CFGE_IFMELENCHG(x)            (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_INGRESSSTREAMTABLE_CFGE_IFMELENCHG_SHIFT)) & NETC_ETHSWT_IP_INGRESSSTREAMTABLE_CFGE_IFMELENCHG_MASK)
492 
493 #define NETC_ETHSWT_IP_INGRESSSTREAMTABLE_CFGE_EPORT_SHIFT              (23U)
494 #define NETC_ETHSWT_IP_INGRESSSTREAMTABLE_CFGE_EPORT_MASK               (0x0F800000UL)
495 #define NETC_ETHSWT_IP_INGRESSSTREAMTABLE_CFGE_EPORT(x)                 (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_INGRESSSTREAMTABLE_CFGE_EPORT_SHIFT)) & NETC_ETHSWT_IP_INGRESSSTREAMTABLE_CFGE_EPORT_MASK)
496 
497 #define NETC_ETHSWT_IP_INGRESSSTREAMTABLE_CFGE_OETEID_SHIFT             (28U)
498 #define NETC_ETHSWT_IP_INGRESSSTREAMTABLE_CFGE_OETEID_MASK              (0x30000000UL)
499 #define NETC_ETHSWT_IP_INGRESSSTREAMTABLE_CFGE_OETEID(x)                (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_INGRESSSTREAMTABLE_CFGE_OETEID_SHIFT)) & NETC_ETHSWT_IP_INGRESSSTREAMTABLE_CFGE_OETEID_MASK)
500 
501 #define NETC_ETHSWT_IP_INGRESSSTREAMTABLE_CFGE_CTD_SHIFT                (30U)
502 #define NETC_ETHSWT_IP_INGRESSSTREAMTABLE_CFGE_CTD_MASK                 (0xC0000000UL)
503 #define NETC_ETHSWT_IP_INGRESSSTREAMTABLE_CFGE_CTD(x)                   (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_INGRESSSTREAMTABLE_CFGE_CTD_SHIFT)) & NETC_ETHSWT_IP_INGRESSSTREAMTABLE_CFGE_CTD_MASK)
504 
505 #define NETC_ETHSWT_IP_INGRESSSTREAMTABLE_CFGE_EGRESSPORTMAP_SHIFT      (0U)
506 #define NETC_ETHSWT_IP_INGRESSSTREAMTABLE_CFGE_EGRESSPORTMAP_MASK       (0x00FFFFFFUL)
507 #define NETC_ETHSWT_IP_INGRESSSTREAMTABLE_CFGE_EGRESSPORTMAP(x)         (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_INGRESSSTREAMTABLE_CFGE_EGRESSPORTMAP_SHIFT)) & NETC_ETHSWT_IP_INGRESSSTREAMTABLE_CFGE_EGRESSPORTMAP_MASK)
508 
509 #define NETC_ETHSWT_IP_INGRESSSTREAMTABLE_CFGE_SIMAP_SHIFT              (0U)
510 #define NETC_ETHSWT_IP_INGRESSSTREAMTABLE_CFGE_SIMAP_MASK               (0x0000FFFFUL)
511 #define NETC_ETHSWT_IP_INGRESSSTREAMTABLE_CFGE_SIMAP(x)                 (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_INGRESSSTREAMTABLE_CFGE_SIMAP_SHIFT)) & NETC_ETHSWT_IP_INGRESSSTREAMTABLE_CFGE_SIMAP_MASK)
512 
513 /*!
514 * @brief Ingress Stream Filter Table KEYE_DATA config bits Format
515 */
516 #define NETC_ETHSWT_IP_ISFILTERTABLE_KEYE_PCP_SHIFT          (0U)
517 #define NETC_ETHSWT_IP_ISFILTERTABLE_KEYE_PCP_MASK           (0x00000007UL)
518 #define NETC_ETHSWT_IP_ISFILTERTABLE_KEYE_PCP(x)             (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_ISFILTERTABLE_KEYE_PCP_SHIFT)) & NETC_ETHSWT_IP_ISFILTERTABLE_KEYE_PCP_MASK)
519 
520 /*!
521 * @brief Ingress Stream Filter Table CFGE_DATA config bits Format
522 */
523 #define NETC_ETHSWT_IP_ISFILTERTABLE_CFGE_IPV_SHIFT                (0U)
524 #define NETC_ETHSWT_IP_ISFILTERTABLE_CFGE_IPV_MASK                 (0x0000000FUL)
525 #define NETC_ETHSWT_IP_ISFILTERTABLE_CFGE_IPV(x)                   (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_ISFILTERTABLE_CFGE_IPV_SHIFT)) & NETC_ETHSWT_IP_ISFILTERTABLE_CFGE_IPV_MASK)
526 
527 #define NETC_ETHSWT_IP_ISFILTERTABLE_CFGE_OIPV_SHIFT               (4U)
528 #define NETC_ETHSWT_IP_ISFILTERTABLE_CFGE_OIPV_MASK                (0x00000010UL)
529 #define NETC_ETHSWT_IP_ISFILTERTABLE_CFGE_OIPV(x)                  (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_ISFILTERTABLE_CFGE_OIPV_SHIFT)) & NETC_ETHSWT_IP_ISFILTERTABLE_CFGE_OIPV_MASK)
530 
531 #define NETC_ETHSWT_IP_ISFILTERTABLE_CFGE_DR_SHIFT                 (5U)
532 #define NETC_ETHSWT_IP_ISFILTERTABLE_CFGE_DR_MASK                  (0x00000060UL)
533 #define NETC_ETHSWT_IP_ISFILTERTABLE_CFGE_DR(x)                    (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_ISFILTERTABLE_CFGE_DR_SHIFT)) & NETC_ETHSWT_IP_ISFILTERTABLE_CFGE_DR_MASK)
534 
535 #define NETC_ETHSWT_IP_ISFILTERTABLE_CFGE_ODR_SHIFT                (7U)
536 #define NETC_ETHSWT_IP_ISFILTERTABLE_CFGE_ODR_MASK                 (0x00000080UL)
537 #define NETC_ETHSWT_IP_ISFILTERTABLE_CFGE_ODR(x)                   (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_ISFILTERTABLE_CFGE_ODR_SHIFT)) & NETC_ETHSWT_IP_ISFILTERTABLE_CFGE_ODR_MASK)
538 
539 #define NETC_ETHSWT_IP_ISFILTERTABLE_CFGE_IMIRE_SHIFT              (8U)
540 #define NETC_ETHSWT_IP_ISFILTERTABLE_CFGE_IMIRE_MASK               (0x00000100UL)
541 #define NETC_ETHSWT_IP_ISFILTERTABLE_CFGE_IMIRE(x)                 (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_ISFILTERTABLE_CFGE_IMIRE_SHIFT)) & NETC_ETHSWT_IP_ISFILTERTABLE_CFGE_IMIRE_MASK)
542 
543 #define NETC_ETHSWT_IP_ISFILTERTABLE_CFGE_TIMECAPE_SHIFT           (9U)
544 #define NETC_ETHSWT_IP_ISFILTERTABLE_CFGE_TIMECAPE_MASK            (0x00000200UL)
545 #define NETC_ETHSWT_IP_ISFILTERTABLE_CFGE_TIMECAPE(x)              (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_ISFILTERTABLE_CFGE_TIMECAPE_SHIFT)) & NETC_ETHSWT_IP_ISFILTERTABLE_CFGE_TIMECAPE_MASK)
546 
547 #define NETC_ETHSWT_IP_ISFILTERTABLE_CFGE_OSGI_SHIFT               (10U)
548 #define NETC_ETHSWT_IP_ISFILTERTABLE_CFGE_OSGI_MASK                (0x00000400UL)
549 #define NETC_ETHSWT_IP_ISFILTERTABLE_CFGE_OSGI(x)                  (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_ISFILTERTABLE_CFGE_OSGI_SHIFT)) & NETC_ETHSWT_IP_ISFILTERTABLE_CFGE_OSGI_MASK)
550 
551 #define NETC_ETHSWT_IP_ISFILTERTABLE_CFGE_CTD_SHIFT                (11U)
552 #define NETC_ETHSWT_IP_ISFILTERTABLE_CFGE_CTD_MASK                 (0x00000800UL)
553 #define NETC_ETHSWT_IP_ISFILTERTABLE_CFGE_CTD(x)                   (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_ISFILTERTABLE_CFGE_CTD_SHIFT)) & NETC_ETHSWT_IP_ISFILTERTABLE_CFGE_CTD_MASK)
554 
555 #define NETC_ETHSWT_IP_ISFILTERTABLE_CFGE_ORP_SHIFT                (12U)
556 #define NETC_ETHSWT_IP_ISFILTERTABLE_CFGE_ORP_MASK                 (0x00001000UL)
557 #define NETC_ETHSWT_IP_ISFILTERTABLE_CFGE_ORP(x)                   (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_ISFILTERTABLE_CFGE_ORP_SHIFT)) & NETC_ETHSWT_IP_ISFILTERTABLE_CFGE_ORP_MASK)
558 
559 #define NETC_ETHSWT_IP_ISFILTERTABLE_CFGE_SDUTYPE_SHIFT            (13U)
560 #define NETC_ETHSWT_IP_ISFILTERTABLE_CFGE_SDUTYPE_MASK             (0x00006000UL)
561 #define NETC_ETHSWT_IP_ISFILTERTABLE_CFGE_SDUTYPE(x)               (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_ISFILTERTABLE_CFGE_SDUTYPE_SHIFT)) & NETC_ETHSWT_IP_ISFILTERTABLE_CFGE_SDUTYPE_MASK)
562 
563 #define NETC_ETHSWT_IP_ISFILTERTABLE_CFGE_MSDU_SHIFT               (16U)
564 #define NETC_ETHSWT_IP_ISFILTERTABLE_CFGE_MSDU_MASK                (0xFFFF0000UL)
565 #define NETC_ETHSWT_IP_ISFILTERTABLE_CFGE_MSDU(x)                  (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_ISFILTERTABLE_CFGE_MSDU_SHIFT)) & NETC_ETHSWT_IP_ISFILTERTABLE_CFGE_MSDU_MASK)
566 
567 /*!
568  * @brief Stream Gate Instance Table Request Data Buffer ACFGEU (Admin Configuration Element Update.) field.
569  */
570 #define NETC_ETHSWT_IP_SGITABLE_REQFMT_ACFGEU_SHIFT                 (0U)
571 #define NETC_ETHSWT_IP_SGITABLE_REQFMT_ACFGEU_MASK                  (0x00000001UL)
572 #define NETC_ETHSWT_IP_SGITABLE_REQFMT_ACFGEU(x)                    (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_SGITABLE_REQFMT_ACFGEU_SHIFT)) & NETC_ETHSWT_IP_SGITABLE_REQFMT_ACFGEU_MASK)
573 
574 /*!
575  * @brief Stream Gate Instance Table Request Data Buffer CFGEU (Configuration Element Update) field.
576  */
577 #define NETC_ETHSWT_IP_SGITABLE_REQFMT_CFGEU_SHIFT                  (1U)
578 #define NETC_ETHSWT_IP_SGITABLE_REQFMT_CFGEU_MASK                   (0x00000002UL)
579 #define NETC_ETHSWT_IP_SGITABLE_REQFMT_CFGEU(x)                     (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_SGITABLE_REQFMT_CFGEU_SHIFT)) & NETC_ETHSWT_IP_SGITABLE_REQFMT_CFGEU_MASK)
580 
581 /*!
582  * @brief Stream Gate Instance Table Request Data Buffer SGISEU (Stream Gate Instance State Element Update) field.
583  */
584 #define NETC_ETHSWT_IP_SGITABLE_REQFMT_SGISEU_SHIFT                 (2U)
585 #define NETC_ETHSWT_IP_SGITABLE_REQFMT_SGISEU_MASK                  (0x00000004UL)
586 #define NETC_ETHSWT_IP_SGITABLE_REQFMT_SGISEU(x)                    (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_SGITABLE_REQFMT_SGISEU_SHIFT)) & NETC_ETHSWT_IP_SGITABLE_REQFMT_SGISEU_MASK)
587 
588 /*!
589 * @brief Stream Gate Instance Table CFGE_DATA config bits Format
590 */
591 /* Octets Exceeded Enable */
592 #define NETC_ETHSWT_IP_SGITABLE_CFGE_OEXEN_SHIFT            (0U)
593 #define NETC_ETHSWT_IP_SGITABLE_CFGE_OEXEN_MASK             (0x00000001UL)
594 #define NETC_ETHSWT_IP_SGITABLE_CFGE_OEXEN(x)               (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_SGITABLE_CFGE_OEXEN_SHIFT)) & NETC_ETHSWT_IP_SGITABLE_CFGE_OEXEN_MASK)
595 
596 /* Invalid Receive Enable */
597 #define NETC_ETHSWT_IP_SGITABLE_CFGE_IRXEN_SHIFT            (1U)
598 #define NETC_ETHSWT_IP_SGITABLE_CFGE_IRXEN_MASK             (0x00000002UL)
599 #define NETC_ETHSWT_IP_SGITABLE_CFGE_IRXEN(x)               (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_SGITABLE_CFGE_IRXEN_SHIFT)) & NETC_ETHSWT_IP_SGITABLE_CFGE_IRXEN_MASK)
600 
601 /* Protocol/Service Data Unit */
602 #define NETC_ETHSWT_IP_SGITABLE_CFGE_SDUTYPE_SHIFT          (2U)
603 #define NETC_ETHSWT_IP_SGITABLE_CFGE_SDUTYPE_MASK           (0x0000000CUL)
604 #define NETC_ETHSWT_IP_SGITABLE_CFGE_SDUTYPE(x)             (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_SGITABLE_CFGE_SDUTYPE_SHIFT)) & NETC_ETHSWT_IP_SGITABLE_CFGE_SDUTYPE_MASK)
605 
606 /*!
607 * @brief Stream Gate Instance Table ICFGE_DATA config bits Format
608 */
609 #define NETC_ETHSWT_IP_SGITABLE_ICFGE_IPV_SHIFT             (0U)
610 #define NETC_ETHSWT_IP_SGITABLE_ICFGE_IPV_MASK              (0x0000000FUL)
611 #define NETC_ETHSWT_IP_SGITABLE_ICFGE_IPV(x)                (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_SGITABLE_ICFGE_IPV_SHIFT)) & NETC_ETHSWT_IP_SGITABLE_ICFGE_IPV_MASK)
612 
613 #define NETC_ETHSWT_IP_SGITABLE_ICFGE_OIPV_SHIFT            (4U)
614 #define NETC_ETHSWT_IP_SGITABLE_ICFGE_OIPV_MASK             (0x00000010UL)
615 #define NETC_ETHSWT_IP_SGITABLE_ICFGE_OIPV(x)               (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_SGITABLE_ICFGE_OIPV_SHIFT)) & NETC_ETHSWT_IP_SGITABLE_ICFGE_OIPV_MASK)
616 
617 /* Gate State */
618 #define NETC_ETHSWT_IP_SGITABLE_ICFGE_GST_SHIFT             (5U)
619 #define NETC_ETHSWT_IP_SGITABLE_ICFGE_GST_MASK              (0x00000020UL)
620 #define NETC_ETHSWT_IP_SGITABLE_ICFGE_GST(x)                (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_SGITABLE_ICFGE_GST_SHIFT)) & NETC_ETHSWT_IP_SGITABLE_ICFGE_GST_MASK)
621 
622 /* Cut Through Disabled */
623 #define NETC_ETHSWT_IP_SGITABLE_ICFGE_CTD_SHIFT             (6U)
624 #define NETC_ETHSWT_IP_SGITABLE_ICFGE_CTD_MASK              (0x00000040UL)
625 #define NETC_ETHSWT_IP_SGITABLE_ICFGE_CTD(x)                (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_SGITABLE_ICFGE_CTD_SHIFT)) & NETC_ETHSWT_IP_SGITABLE_ICFGE_CTD_MASK)
626 
627 /*!
628  * @brief ICFGE_DATA Gate State data format enum type.
629  * This field specifies the gate state to use before the administrative stream gate control list takes affect.
630  */
631 typedef uint32 Netc_EthSwt_Ip_SGITABLE_GateStateType;
632 #define NETC_ETHSWT_IP_SGITABLE_GATE_CLOSE                  (0x0U)      /*!< 0b = Closed; frames are not permitted to pass through. */
633 #define NETC_ETHSWT_IP_SGITABLE_GATE_OPEN                   (0x1U)      /*!< 1b = Open; frames are permitted to pass through. */
634 
635 /*!
636 * @brief Stream Gate Instance Table SGISE_DATA config bits Format
637 */
638 #define NETC_ETHSWT_IP_SGITABLE_SGISE_OEX_SHIFT                 (0U)
639 #define NETC_ETHSWT_IP_SGITABLE_SGISE_OEX_MASK                  (0x00000001UL)
640 #define NETC_ETHSWT_IP_SGITABLE_SGISE_OEX(x)                    (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_SGITABLE_SGISE_OEX_SHIFT)) & NETC_ETHSWT_IP_SGITABLE_SGISE_OEX_MASK)
641 
642 #define NETC_ETHSWT_IP_SGITABLE_SGISE_IRX_SHIFT                 (1U)
643 #define NETC_ETHSWT_IP_SGITABLE_SGISE_IRX_MASK                  (0x00000002UL)
644 #define NETC_ETHSWT_IP_SGITABLE_SGISE_IRX(x)                    (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_SGITABLE_SGISE_IRX_SHIFT)) & NETC_ETHSWT_IP_SGITABLE_SGISE_IRX_MASK)
645 
646 #define NETC_ETHSWT_IP_SGITABLE_SGISE_STATE_SHIFT               (2U)
647 #define NETC_ETHSWT_IP_SGITABLE_SGISE_STATE_MASK                (0x0000001CUL)
648 #define NETC_ETHSWT_IP_SGITABLE_SGISE_STATE(x)                  (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_SGITABLE_SGISE_STATE_SHIFT)) & NETC_ETHSWT_IP_SGITABLE_SGISE_STATE_MASK)
649 
650 /*!
651 * @brief Stream Gate Control List Table CFGE_DATA config bits Format
652 */
653 #define NETC_ETHSWT_IP_SGCLTABLE_CFGE_LISTLEN_SHIFT             (0U)
654 #define NETC_ETHSWT_IP_SGCLTABLE_CFGE_LISTLEN_MASK              (0x000000FFUL)
655 #define NETC_ETHSWT_IP_SGCLTABLE_CFGE_LISTLEN(x)                (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_SGCLTABLE_CFGE_LISTLEN_SHIFT)) & NETC_ETHSWT_IP_SGCLTABLE_CFGE_LISTLEN_MASK)
656 
657 #define NETC_ETHSWT_IP_SGCLTABLE_CFGE_EXTOIPV_SHIFT             (16U)
658 #define NETC_ETHSWT_IP_SGCLTABLE_CFGE_EXTOIPV_MASK              (0x00010000UL)
659 #define NETC_ETHSWT_IP_SGCLTABLE_CFGE_EXTOIPV(x)                (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_SGCLTABLE_CFGE_EXTOIPV_SHIFT)) & NETC_ETHSWT_IP_SGCLTABLE_CFGE_EXTOIPV_MASK)
660 
661 #define NETC_ETHSWT_IP_SGCLTABLE_CFGE_EXTIPV_SHIFT              (17U)
662 #define NETC_ETHSWT_IP_SGCLTABLE_CFGE_EXTIPV_MASK               (0x001E0000UL)
663 #define NETC_ETHSWT_IP_SGCLTABLE_CFGE_EXTIPV(x)                 (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_SGCLTABLE_CFGE_EXTIPV_SHIFT)) & NETC_ETHSWT_IP_SGCLTABLE_CFGE_EXTIPV_MASK)
664 
665 #define NETC_ETHSWT_IP_SGCLTABLE_CFGE_EXTCTD_SHIFT              (21U)
666 #define NETC_ETHSWT_IP_SGCLTABLE_CFGE_EXTCTD_MASK               (0x00200000UL)
667 #define NETC_ETHSWT_IP_SGCLTABLE_CFGE_EXTCTD(x)                 (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_SGCLTABLE_CFGE_EXTCTD_SHIFT)) & NETC_ETHSWT_IP_SGCLTABLE_CFGE_EXTCTD_MASK)
668 
669 #define NETC_ETHSWT_IP_SGCLTABLE_CFGE_EXTGTST_SHIFT             (22U)
670 #define NETC_ETHSWT_IP_SGCLTABLE_CFGE_EXTGTST_MASK              (0x00400000UL)
671 #define NETC_ETHSWT_IP_SGCLTABLE_CFGE_EXTGTST(x)                (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_SGCLTABLE_CFGE_EXTGTST_SHIFT)) & NETC_ETHSWT_IP_SGCLTABLE_CFGE_EXTGTST_MASK)
672 
673 #define NETC_ETHSWT_IP_SGCLTABLE_CFGE_IOM_SHIFT                 (0U)
674 #define NETC_ETHSWT_IP_SGCLTABLE_CFGE_IOM_MASK                  (0x00FFFFFFUL)
675 #define NETC_ETHSWT_IP_SGCLTABLE_CFGE_IOM(x)                    (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_SGCLTABLE_CFGE_IOM_SHIFT)) & NETC_ETHSWT_IP_SGCLTABLE_CFGE_IOM_MASK)
676 
677 #define NETC_ETHSWT_IP_SGCLTABLE_CFGE_IPV_SHIFT                 (24U)
678 #define NETC_ETHSWT_IP_SGCLTABLE_CFGE_IPV_MASK                  (0x0F000000UL)
679 #define NETC_ETHSWT_IP_SGCLTABLE_CFGE_IPV(x)                    (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_SGCLTABLE_CFGE_IPV_SHIFT)) & NETC_ETHSWT_IP_SGCLTABLE_CFGE_IPV_MASK)
680 
681 #define NETC_ETHSWT_IP_SGCLTABLE_CFGE_OIPV_SHIFT                (28U)
682 #define NETC_ETHSWT_IP_SGCLTABLE_CFGE_OIPV_MASK                 (0x10000000UL)
683 #define NETC_ETHSWT_IP_SGCLTABLE_CFGE_OIPV(x)                   (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_SGCLTABLE_CFGE_OIPV_SHIFT)) & NETC_ETHSWT_IP_SGCLTABLE_CFGE_OIPV_MASK)
684 
685 #define NETC_ETHSWT_IP_SGCLTABLE_CFGE_CTD_SHIFT                 (29U)
686 #define NETC_ETHSWT_IP_SGCLTABLE_CFGE_CTD_MASK                  (0x20000000UL)
687 #define NETC_ETHSWT_IP_SGCLTABLE_CFGE_CTD(x)                    (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_SGCLTABLE_CFGE_CTD_SHIFT)) & NETC_ETHSWT_IP_SGCLTABLE_CFGE_CTD_MASK)
688 
689 #define NETC_ETHSWT_IP_SGCLTABLE_CFGE_IOMEN_SHIFT               (30U)
690 #define NETC_ETHSWT_IP_SGCLTABLE_CFGE_IOMEN_MASK                (0x40000000UL)
691 #define NETC_ETHSWT_IP_SGCLTABLE_CFGE_IOMEN(x)                  (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_SGCLTABLE_CFGE_IOMEN_SHIFT)) & NETC_ETHSWT_IP_SGCLTABLE_CFGE_IOMEN_MASK)
692 
693 #define NETC_ETHSWT_IP_SGCLTABLE_CFGE_GTST_SHIFT                (31U)
694 #define NETC_ETHSWT_IP_SGCLTABLE_CFGE_GTST_MASK                 (0x80000000UL)
695 #define NETC_ETHSWT_IP_SGCLTABLE_CFGE_GTST(x)                   (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_SGCLTABLE_CFGE_GTST_SHIFT)) & NETC_ETHSWT_IP_SGCLTABLE_CFGE_GTST_MASK)
696 
697 /*!
698  * @brief Stream Gate Control List Table SGCLSE_DATA format enum type.
699  * This field indicates whether or not a stream gate control list (SGCL) is in-use in a Stream Gate Instance (SGI).
700  */
701 typedef uint32 Netc_EthSwt_Ip_SGCLTABLE_RefCountType;
702 #define NETC_ETHSWT_IP_SGCLTABLE_NOT_INUSE_BYSGI                (0x00U)      /*!< Not in-use by an SGI. */
703 #define NETC_ETHSWT_IP_SGCLTABLE_INUSE_BYSGI                    (0x01U)      /*!< In-use by an SGI. */
704 #define NETC_ETHSWT_IP_SGCLTABLE_REFCOUNT_RESERVED              (0x02U)      /*!< others reserved. */
705 
706 /*!
707 * @brief Stream Gate Control List Table SGCLSE_DATA Format*/
708 #define NETC_ETHSWT_IP_SGCLTABLE_SGCLSE_REFCOUNT_SHIFT          (0U)
709 #define NETC_ETHSWT_IP_SGCLTABLE_SGCLSE_REFCOUNT_MASK           (0x000000FFUL)
710 #define NETC_ETHSWT_IP_SGCLTABLE_SGCLSE_REFCOUNT(x)             (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_SGCLTABLE_SGCLSE_REFCOUNT_SHIFT)) & NETC_ETHSWT_IP_SGCLTABLE_SGCLSE_REFCOUNT_MASK)
711 
712 typedef uint32 Netc_EthSwt_Ip_ISQGTABLE_SQTagType;
713 #define NETC_ETHSWT_IP_ISQGTABLE_RSVDTYPE                       (0x00U)      /*!< reserved. */
714 #define NETC_ETHSWT_IP_ISQGTABLE_DRAFT20_RTAG                   (0x01U)      /*!< 802.1CB draft 2.0 R-TAG. */
715 #define NETC_ETHSWT_IP_ISQGTABLE_RTAG                           (0x02U)      /*!< 802.1CB R-TAG.. */
716 #define NETC_ETHSWT_IP_ISQGTABLE_HSRTAG                         (0x03U)      /*!< HSR Tag. */
717 
718 /*!
719 * @brief Ingress Sequence Generation Table CFGE_DATA config bits Format
720 */
721 #define NETC_ETHSWT_IP_ISQGTABLE_CFGE_SQTAG_SHIFT               (0U)
722 #define NETC_ETHSWT_IP_ISQGTABLE_CFGE_SQTAG_MASK                (0x00000007UL)
723 #define NETC_ETHSWT_IP_ISQGTABLE_CFGE_SQTAG(x)                  (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_ISQGTABLE_CFGE_SQTAG_SHIFT)) & NETC_ETHSWT_IP_ISQGTABLE_CFGE_SQTAG_MASK)
724 
725 /*!
726 * @brief Egress Sequence Recovery Table CFGE_DATA config bits Format
727 */
728 #define NETC_ETHSWT_IP_EGRSQRTABLE_CFGE_SQTAG_SHIFT             (0U)
729 #define NETC_ETHSWT_IP_EGRSQRTABLE_CFGE_SQTAG_MASK              (0x00000007UL)
730 #define NETC_ETHSWT_IP_EGRSQRTABLE_CFGE_SQTAG(x)                (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_EGRSQRTABLE_CFGE_SQTAG_SHIFT)) & NETC_ETHSWT_IP_EGRSQRTABLE_CFGE_SQTAG_MASK)
731 
732 #define NETC_ETHSWT_IP_EGRSQRTABLE_CFGE_SQRTNSQ_SHIFT           (3U)
733 #define NETC_ETHSWT_IP_EGRSQRTABLE_CFGE_SQRTNSQ_MASK            (0x00000008UL)
734 #define NETC_ETHSWT_IP_EGRSQRTABLE_CFGE_SQRTNSQ(x)              (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_EGRSQRTABLE_CFGE_SQRTNSQ_SHIFT)) & NETC_ETHSWT_IP_EGRSQRTABLE_CFGE_SQRTNSQ_MASK)
735 
736 #define NETC_ETHSWT_IP_EGRSQRTABLE_CFGE_SQRALG_SHIFT            (4U)
737 #define NETC_ETHSWT_IP_EGRSQRTABLE_CFGE_SQRALG_MASK             (0x00000010UL)
738 #define NETC_ETHSWT_IP_EGRSQRTABLE_CFGE_SQRALG(x)               (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_EGRSQRTABLE_CFGE_SQRALG_SHIFT)) & NETC_ETHSWT_IP_EGRSQRTABLE_CFGE_SQRALG_MASK)
739 
740 #define NETC_ETHSWT_IP_EGRSQRTABLE_CFGE_SQRTYPE_SHIFT           (5U)
741 #define NETC_ETHSWT_IP_EGRSQRTABLE_CFGE_SQRTYPE_MASK            (0x00000020UL)
742 #define NETC_ETHSWT_IP_EGRSQRTABLE_CFGE_SQRTYPE(x)              (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_EGRSQRTABLE_CFGE_SQRTYPE_SHIFT)) & NETC_ETHSWT_IP_EGRSQRTABLE_CFGE_SQRTYPE_MASK)
743 
744 #define NETC_ETHSWT_IP_EGRSQRTABLE_CFGE_SQRHL_SHIFT             (8U)
745 #define NETC_ETHSWT_IP_EGRSQRTABLE_CFGE_SQRHL_MASK              (0x00007F00UL)
746 #define NETC_ETHSWT_IP_EGRSQRTABLE_CFGE_SQRHL(x)                (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_EGRSQRTABLE_CFGE_SQRHL_SHIFT)) & NETC_ETHSWT_IP_EGRSQRTABLE_CFGE_SQRHL_MASK)
747 
748 #define NETC_ETHSWT_IP_EGRSQRTABLE_CFGE_SQRFWL_SHIFT            (16U)
749 #define NETC_ETHSWT_IP_EGRSQRTABLE_CFGE_SQRFWL_MASK             (0x0FFF0000UL)
750 #define NETC_ETHSWT_IP_EGRSQRTABLE_CFGE_SQRFWL(x)               (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_EGRSQRTABLE_CFGE_SQRFWL_SHIFT)) & NETC_ETHSWT_IP_EGRSQRTABLE_CFGE_SQRFWL_MASK)
751 
752 #define NETC_ETHSWT_IP_EGRSQRTABLE_CFGE_SQRTP_SHIFT             (0U)
753 #define NETC_ETHSWT_IP_EGRSQRTABLE_CFGE_SQRTP_MASK              (0x00000FFFUL)
754 #define NETC_ETHSWT_IP_EGRSQRTABLE_CFGE_SQRTP(x)                (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_EGRSQRTABLE_CFGE_SQRTP_SHIFT)) & NETC_ETHSWT_IP_EGRSQRTABLE_CFGE_SQRTP_MASK)
755 
756 /*!
757 * @brief Egress Sequence Recovery Table SRSE_DATA config bits Format
758 */
759 #define NETC_ETHSWT_IP_EGRSQRTABLE_SRSE_SQRNUM_SHIFT            (0U)
760 #define NETC_ETHSWT_IP_EGRSQRTABLE_SRSE_SQRNUM_MASK             (0x0000FFFFUL)
761 #define NETC_ETHSWT_IP_EGRSQRTABLE_SRSE_SQRNUM(x)               (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_EGRSQRTABLE_SRSE_SQRNUM_SHIFT)) & NETC_ETHSWT_IP_EGRSQRTABLE_SRSE_SQRNUM_MASK)
762 
763 #define NETC_ETHSWT_IP_EGRSQRTABLE_SRSE_TAKEANY_SHIFT           (16U)
764 #define NETC_ETHSWT_IP_EGRSQRTABLE_SRSE_TAKEANY_MASK            (0x00010000UL)
765 #define NETC_ETHSWT_IP_EGRSQRTABLE_SRSE_TAKEANY(x)              (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_EGRSQRTABLE_SRSE_TAKEANY_SHIFT)) & NETC_ETHSWT_IP_EGRSQRTABLE_SRSE_TAKEANY_MASK)
766 
767 #define NETC_ETHSWT_IP_EGRSQRTABLE_SRSE_LCE_SHIFT               (17U)
768 #define NETC_ETHSWT_IP_EGRSQRTABLE_SRSE_LCE_MASK                (0x00020000UL)
769 #define NETC_ETHSWT_IP_EGRSQRTABLE_SRSE_LCE(x)                  (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_EGRSQRTABLE_SRSE_LCE_SHIFT)) & NETC_ETHSWT_IP_EGRSQRTABLE_SRSE_LCE_MASK)
770 
771 #define NETC_ETHSWT_IP_EGRSQRTABLE_SRSE_SQRTS_SHIFT             (18U)
772 #define NETC_ETHSWT_IP_EGRSQRTABLE_SRSE_SQRTS_MASK              (0x3FFC0000UL)
773 #define NETC_ETHSWT_IP_EGRSQRTABLE_SRSE_SQRTS(x)                (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_EGRSQRTABLE_SRSE_SQRTS_SHIFT)) & NETC_ETHSWT_IP_EGRSQRTABLE_SRSE_SQRTS_MASK)
774 
775 /*!
776 * @brief Ingres Stream Identification (ISI) Table KEYE_DATA bits Format
777 */
778 #define NETC_ETHSWT_IP_ISITABLE_KEYE_KEYTYPE_SHIFT          (0U)
779 #define NETC_ETHSWT_IP_ISITABLE_KEYE_KEYTYPE_MASK           (0x00000003UL)
780 #define NETC_ETHSWT_IP_ISITABLE_KEYE_KEYTYPE(x)             (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_ISITABLE_KEYE_KEYTYPE_SHIFT)) & NETC_ETHSWT_IP_ISITABLE_KEYE_KEYTYPE_MASK)
781 
782 #define NETC_ETHSWT_IP_ISITABLE_KEYE_SRCPORTID_SHIFT        (2U)
783 #define NETC_ETHSWT_IP_ISITABLE_KEYE_SRCPORTID_MASK         (0x0000007CUL)
784 #define NETC_ETHSWT_IP_ISITABLE_KEYE_SRCPORTID(x)           (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_ISITABLE_KEYE_SRCPORTID_SHIFT)) & NETC_ETHSWT_IP_ISITABLE_KEYE_SRCPORTID_MASK)
785 
786 #define NETC_ETHSWT_IP_ISITABLE_KEYE_SPM_SHIFT              (7U)
787 #define NETC_ETHSWT_IP_ISITABLE_KEYE_SPM_MASK               (0x00000080UL)
788 #define NETC_ETHSWT_IP_ISITABLE_KEYE_SPM(x)                 (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_ISITABLE_KEYE_SPM_SHIFT)) & NETC_ETHSWT_IP_ISITABLE_KEYE_SPM_MASK)
789 
790 typedef uint32 Netc_EthSwt_Ip_KeyTypeIdxType;
791 #define NETC_ETHSWT_IP_SWT_KEYTYPE_0                        (0x00U)         /* Switch function, key construction is specified in ISIDKC0CR0 */
792 #define NETC_ETHSWT_IP_SWT_KEYTYPE_1                        (0x01U)         /* Switch function, key construction is specified in ISIDKC1CR0 */
793 #define NETC_ETHSWT_IP_SWT_KEYTYPE_2                        (0x02U)         /* Switch function, key construction is specified in ISIDKC2CR0 */
794 #define NETC_ETHSWT_IP_SWT_KEYTYPE_3                        (0x03U)         /* Switch function, key construction is specified in ISIDKC3CR0 */
795 #define NETC_ETHSWT_IP_ENETC_KEYTYPE_0                      (0x00U)         /* Enetc function, key construction is specified in ISIDKC0CR0 */
796 #define NETC_ETHSWT_IP_ENETC_KEYTYPE_1                      (0x01U)         /* Enetc function, key construction is specified in ISIDKC1CR0 */
797 
798 typedef uint32 Netc_EthSwt_Ip_SrcPortMasqIdxType;
799 #define NETC_ETHSWT_IP_MATCH_FROM_SWT_PORTS                 (0x00U)         /* Match frames from switch port(s). */
800 #define NETC_ETHSWT_IP_MATCH_FROM_SWT_MANAGEMENT_PORTS      (0x01U)         /* Match frame from switch management port(s) that has switch port masquerading. */
801 
802 /*!
803  * @brief NTMP request and response message header format for buffer descriptors of command rings.
804  */
805 typedef struct {
806     uint32 MessageHeaderDataField[8U];                 /*!< used for both request and response message header data format */
807 } Netc_EthSwt_Ip_NTMPMessageHeaderFormatType;
808 
809 /*!
810  * @brief NTMP request message header format index enum for buffer descriptors of command rings.
811  */
812 typedef enum {
813     NETC_ETHSWT_IP_REQHEADER_ADDR_L = 0x0U,            /*!< a 16-byte aligned low part of memory address for a table, offset: 0x0 */
814     NETC_ETHSWT_IP_REQHEADER_ADDR_H = 0x1U,            /*!< a 16-byte aligned high part of memory address for a table, offset: 0x1 */
815     NETC_ETHSWT_IP_REQHEADER_LENGTHFIELD = 0x2U,       /*!< request and response buffer length in Request Header, offset: 0x2 */
816     NETC_ETHSWT_IP_REQHEADER_CONFIGFIELD = 0x3U,       /*!< config field includes Table id, access method, command etc. in Request Header, offset: 0x3 */
817     NETC_ETHSWT_IP_REQHEADER_NPFFIELD = 0x7U           /*!< NPF field in Request Header, offsext: 0x7 */
818 } Netc_EthSwt_Ip_NTMPReqHeaderFormatIndexType;
819 
820 #define NETC_ETHSWT_IP_RSPHEADER_STATUS_FIELD_INDEX     (0x3U)  /*!< status field includes RR bit, ERROR field and NUM_MATCHED field in Response Header Format */
821 
822 /*!
823  * @brief NTMP request message header format index enum for buffer descriptors of command rings.
824  */
825 typedef struct {
826     uint16 ReqBuffLength;                               /*!< Table Request data buffer length field of NTMP Request Message Header Data Format */
827     uint16 RspBuffLength;                               /*!< Table Response data buffer length field of NTMP Request Message Header Data Format */
828     uint8 CmdCompletionInt;                             /*!< CCI (Command Completion Interrupt) in config field of Request Message Header Data Format */
829     uint8 Version;                                      /*!< Protocol Version in config field of Request Message Header Data Format */
830     uint8 TableId;                                      /*!< TABLE_ID in config field of Request Message Header Data Format */
831     Netc_EthSwt_Ip_AccessMethodType AccessMethod;       /*!< ACCESS_METHOD in config field of Request Message Header Data Format */
832     Netc_EthSwt_Ip_CommandsType Cmd;                    /*!< COMMAND in config field of Request Message Header Data Format */
833 } NetcEthSwt_Ip_ReqHeaderTableOperationDataType;
834 
835 /*!
836  * @brief buffer descriptors of command rings.
837  */
838 typedef struct {
839     Netc_EthSwt_Ip_NTMPMessageHeaderFormatType  *CmdBDAddr;      /*!< Address where command buffer descriptor will be saved. The address must be 128 byte aligned. */
840     uint8 lengthCBDR;      /*!< the length of command ring. */
841 } Netc_EthSwt_Ip_CmdBDType;
842 /* ---bits field for NTMP request message--- */
843 
844 /* +++bits field for NTMP response message+++ */
845 /*!
846  * @brief CMBDR RR status field.
847  */
848 #define NETC_ETHSWT_IP_CMDBD_RSPFMT_STATUS_FIELD_RR_SHIFT             (31U)
849 /*!
850  * @brief CMBDR RR status field mask.
851  */
852 #define NETC_ETHSWT_IP_CMDBD_RSPFMT_STATUS_FIELD_RR_MASK              (0x80000000UL)
853 
854 /*!
855  * @brief CMBDR error status field.
856  */
857 #define NETC_ETHSWT_IP_CMDBD_RSPFMT_STATUS_FIELD_ERROR_SHIFT          (16U)
858 /*!
859  * @brief CMBDR error status field mask.
860  */
861 #define NETC_ETHSWT_IP_CMDBD_RSPFMT_STATUS_FIELD_ERROR_MASK           (0x0FFF0000UL)
862 
863 /*!
864  * @brief CMBDR status field num matched.
865  */
866 #define NETC_ETHSWT_IP_CMDBD_RSPFMT_STATUS_FIELD_NUMMATCHED_SHIFT     (0U)
867 /*!
868  * @brief CMBDR status field num matched mask.
869  */
870 #define NETC_ETHSWT_IP_CMDBD_RSPFMT_STATUS_FIELD_NUMMATCHED_MASK      (0x0000FFFFUL)
871 /* ---bits field for NTMP response message--- */
872 
873 /* +++bits field and structure for CFGE_DATA format+++ */
874 /*!
875  * @brief FDB table config port bitmap field.
876  */
877 #define NETC_ETHSWT_IP_FDBTABLE_CFGE_PORT_BITMAP_SHIFT                (0U)
878 /*!
879  * @brief FDB table config port bitmap map mask.
880  */
881 #define NETC_ETHSWT_IP_FDBTABLE_CFGE_PORT_BITMAP_MASK                 (0x00FFFFFFUL)
882 /*!
883  * @brief FDB table config port bitmap.
884  */
885 #define NETC_ETHSWT_IP_FDBTABLE_CFGE_PORT_BITMAP(x)                   (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_FDBTABLE_CFGE_PORT_BITMAP_SHIFT)) & NETC_ETHSWT_IP_FDBTABLE_CFGE_PORT_BITMAP_MASK)
886 
887 /*!
888  * @brief FDB table config port OETEID field.
889  */
890 #define NETC_ETHSWT_IP_FDBTABLE_CFGE_CONFIG_FIELD_OETEID_SHIFT        (0U)
891 /*!
892  * @brief FDB table config port OETEID field mask.
893  */
894 #define NETC_ETHSWT_IP_FDBTABLE_CFGE_CONFIG_FIELD_OETEID_MASK         (0x00000003UL)
895 /*!
896  * @brief FDB table config port OETEID.
897  */
898 #define NETC_ETHSWT_IP_FDBTABLE_CFGE_CONFIG_FIELD_OETEID(x)           (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_FDBTABLE_CFGE_CONFIG_FIELD_OETEID_SHIFT)) & NETC_ETHSWT_IP_FDBTABLE_CFGE_CONFIG_FIELD_OETEID_MASK)
899 
900 /*!
901  * @brief FDB table config port EPORT field.
902  */
903 #define NETC_ETHSWT_IP_FDBTABLE_CFGE_CONFIG_FIELD_EPORT_SHIFT         (2U)
904 /*!
905  * @brief FDB table config port EPORT field mask.
906  */
907 #define NETC_ETHSWT_IP_FDBTABLE_CFGE_CONFIG_FIELD_EPORT_MASK          (0x0000007CUL)
908 /*!
909  * @brief FDB table config port EPORT.
910  */
911 #define NETC_ETHSWT_IP_FDBTABLE_CFGE_CONFIG_FIELD_EPORT(x)            (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_FDBTABLE_CFGE_CONFIG_FIELD_EPORT_SHIFT)) & NETC_ETHSWT_IP_FDBTABLE_CFGE_CONFIG_FIELD_EPORT_MASK)
912 
913 /*!
914  * @brief FDB table config port IMIRE field.
915  */
916 #define NETC_ETHSWT_IP_FDBTABLE_CFGE_CONFIG_FIELD_IMIRE_SHIFT         (7U)
917 /*!
918  * @brief FDB table config port IMIRE field mask.
919  */
920 #define NETC_ETHSWT_IP_FDBTABLE_CFGE_CONFIG_FIELD_IMIRE_MASK          (0x00000080UL)
921 /*!
922  * @brief FDB table config port IMIRE.
923  */
924 #define NETC_ETHSWT_IP_FDBTABLE_CFGE_CONFIG_FIELD_IMIRE(x)            (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_FDBTABLE_CFGE_CONFIG_FIELD_IMIRE_SHIFT)) & NETC_ETHSWT_IP_FDBTABLE_CFGE_CONFIG_FIELD_IMIRE_MASK)
925 
926 /*!
927  * @brief FDB table config port CTD field.
928  */
929 #define NETC_ETHSWT_IP_FDBTABLE_CFGE_CONFIG_FIELD_CTD_SHIFT           (9U)
930 /*!
931  * @brief FDB table config port CTD field mask.
932  */
933 #define NETC_ETHSWT_IP_FDBTABLE_CFGE_CONFIG_FIELD_CTD_MASK            (0x00000600UL)
934 /*!
935  * @brief FDB table config port CTD.
936  */
937 #define NETC_ETHSWT_IP_FDBTABLE_CFGE_CONFIG_FIELD_CTD(x)              (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_FDBTABLE_CFGE_CONFIG_FIELD_CTD_SHIFT)) & NETC_ETHSWT_IP_FDBTABLE_CFGE_CONFIG_FIELD_CTD_MASK)
938 
939 /*!
940  * @brief FDB table config port DYNAMIC field.
941  */
942 #define NETC_ETHSWT_IP_FDBTABLE_CFGE_CONFIG_FIELD_DYNAMIC_SHIFT       (11U)
943 /*!
944  * @brief FDB table config port DYNAMIC field mask.
945  */
946 #define NETC_ETHSWT_IP_FDBTABLE_CFGE_CONFIG_FIELD_DYNAMIC_MASK        (0x00000800UL)
947 /*!
948  * @brief FDB table config port DYNAMIC.
949  */
950 #define NETC_ETHSWT_IP_FDBTABLE_CFGE_CONFIG_FIELD_DYNAMIC(x)          (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_FDBTABLE_CFGE_CONFIG_FIELD_DYNAMIC_SHIFT)) & NETC_ETHSWT_IP_FDBTABLE_CFGE_CONFIG_FIELD_DYNAMIC_MASK)
951 
952 /*!
953  * @brief FDB table config port TIMECAPE field.
954  */
955 #define NETC_ETHSWT_IP_FDBTABLE_CFGE_CONFIG_FIELD_TIMECAPE_SHIFT      (12U)
956 /*!
957  * @brief FDB table config port TIMECAPE field mask.
958  */
959 #define NETC_ETHSWT_IP_FDBTABLE_CFGE_CONFIG_FIELD_TIMECAPE_MASK       (0x00001000UL)
960 /*!
961  * @brief FDB table config port TIMECAPE field.
962  */
963 #define NETC_ETHSWT_IP_FDBTABLE_CFGE_CONFIG_FIELD_TIMECAPE(x)         (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_FDBTABLE_CFGE_CONFIG_FIELD_TIMECAPE_SHIFT)) & NETC_ETHSWT_IP_FDBTABLE_CFGE_CONFIG_FIELD_TIMECAPE_MASK)
964 
965 /*!
966  * @brief FDB Table CFGE_DATA format.
967  */
968 typedef struct {
969     uint32 Cfge_PortBitmap;        /*!< FDB table config port bitmap */
970     uint32 Cfge_ConfigField;       /*!< FDB table config field */
971     uint32 Cfge_EtEid;             /*!< FDB table eid */
972 } Netc_EthSwt_Ip_FDBTableCFGEDataType;
973 
974 /*!
975  * @brief Rate policer Table Service Data Unit enum type.
976  */
977 typedef enum
978 {
979     NETC_ETHSWT_IP_PPDU = 0U,       /*!< Physical Layer PDU */
980     NETC_ETHSWT_IP_MPDU = 1U,       /*!< MAC PDU */
981     NETC_ETHSWT_IP_MSDU = 2U,       /*!< MAC SDU */
982     NETC_ETHSWT_IP_RSDTYPE = 3U     /* reservered type */
983 }Netc_EthSwt_Ip_SDUType;
984 
985 /*!
986  * @brief Rate Policer Table CFGE_DATA Format.
987  */
988 typedef struct {
989     uint32 Cfge_Cir;            /*!< Committed Information Rate (CIR) field */
990     uint32 Cfge_Cbs;            /*!< Committed Burst SizeExpressed (CBS) field */
991     uint32 Cfge_Eir;            /*!< Excess Information Rate (EIR) field */
992     uint32 Cfge_Ebs;            /*!< Excess Burst Size (EBS) field */
993     boolean Cfge_Mren;          /*!< Mark All Frames Red Enable, 0:disable, 1:enable */
994     boolean Cfge_Doy;           /*!< Drop on Yellow, 0:not dropped, 1:dropped */
995     boolean Cfge_Cm;            /*!< Color mode, 0:color blind, 1:color aware */
996     boolean Cfge_Cf;            /*!< Coupling flag, 0:C and E token buckets are not coupled. 1:C and E token buckets are coupled*/
997     boolean Cfge_Ndor;          /*!< No Drop on Red, 0:frames marded "red" are alwayts dropped, 1: not dropped */
998     Netc_EthSwt_Ip_SDUType Cfge_SduType;     /*!< Service Data Unit Type */
999 } Netc_EthSwt_Ip_RatePolicerTableCFGEDataType;
1000 
1001 /*!
1002  * @brief Rate Policer Table STSE_DATA Format.
1003  */
1004 typedef struct {
1005     uint64 Stse_ByteCount;            /*!< Number of bytes received by the rate policer instance */
1006     uint32 Stse_DropFrames;           /*!< Number of frames dropped by the rate policer instance */
1007     uint32 Stse_Dr0GrnFrames;         /*!< Number of frames marked green with DR=0 by the rate policer instance */
1008     uint32 Stse_Dr1GrnFrames;         /*!< Number of frames marked green with DR=1 by the rate policer instance */
1009     uint32 Stse_Dr2YlwFrames;         /*!< Number of frames marked yellow with DR=2 by the rate policer instance */
1010     uint32 Stse_RemarkYlwFrames;      /*!< Number of frames re-marked from green to yellow by the rate policer instance */
1011     uint32 Stse_Dr3RedFrames;         /*!< Number of frames marked red (DR=3) by the rate policer instance */
1012     uint32 Stse_RemarkRedFrames;      /*!< Number of frames re-marked from green or yellow to red by the rate policer instance */
1013     uint32 Stse_Lts;                  /*!< Last timestamp */
1014     uint32 Stse_CommittedTokenBucketInteger;    /*!< Committed token bucket contents, integer portion */
1015     uint32 Stse_CommittedTokenBucketFractional; /*!< Committed token bucket contents, fractional portion (31 bits) + sign bit (1 bit, BCS) */
1016     uint32 Stse_ExcessTokenBucketInteger;       /*!< Excess token bucket contents, integer portion (32 bits)*/
1017     uint32 Stse_ExcessTokenBucketFractional;   /*!< Excess token bucket contents, fractional portion (31 bits) + sign bit (1 bit, BES) */
1018 } Netc_EthSwt_Ip_RatePolicerTableSTSEDataType;
1019 
1020 /*!
1021  * @brief defines Rate Policer entries.
1022  */
1023 typedef struct
1024 {
1025     uint32 RatePolicerEntryId;                  /* Entry ID */
1026     Netc_EthSwt_Ip_RatePolicerTableCFGEDataType RatePolicerCfgeData;    /* CFGE Data */
1027     boolean ConfigurationElementUpdate;         /* Update Actions, CFGEU */
1028     boolean FunctionalEnableElementUpdate;      /* Update Actions, FEEU */
1029     boolean PolicerStateElementUpdate;          /* Update Actions, PSEU */
1030     boolean StatisticsElementUpdate;            /* Update Actions, STSEU */
1031     boolean RatePolicerFunctionEnable;          /* False = The rate policer instance is disabled; True 1b = The rate policer instance is enabled */
1032 } Netc_EthSwt_Ip_RatePolicerEntryDataType;
1033 
1034 /*!
1035  * @brief defines Rate Policer entrie response data.
1036  */
1037 typedef struct
1038 {
1039     uint32 RatePolicerEntryId;                  /* Entry ID */
1040     Netc_EthSwt_Ip_RatePolicerTableSTSEDataType RatePolicerStseData;    /* Statistics Element Data */
1041     Netc_EthSwt_Ip_RatePolicerTableCFGEDataType RatePolicerCfgeData;    /* CFGE Data */
1042     boolean RatePolicerFunctionEnable;          /* False = The rate policer instance is disabled; True 1b = The rate policer instance is enabled */
1043     boolean MarkRedFlag;                        /* 0b = Indicates that the rate policer blocking "mark all frames red" function has not been triggered */
1044                                                 /* 1b = Indicates that all frames arriving at this rate policer are marked red by the rate policer blocking "mark all frames red" function. */
1045 } Netc_EthSwt_Ip_RatePolicerEntryRspDataType;
1046 
1047 /*!
1048  * @brief Forwarding Action data type definitions for Ingress Stream Table.
1049  */
1050 typedef uint32 Netc_EthSwt_Ip_SwtForwardingActionDataType;
1051 #define NETC_ETHSWT_IP_SWT_DISCARDFRAMES                (0x0U)           /*!< discard frames */
1052 #define NETC_ETHSWT_IP_SWT_REDIRECTFRAMES               (0x1U)           /*!< Re-direct frame to switch management port without any frame modification */
1053 #define NETC_ETHSWT_IP_SWT_STREAMFORWARDING             (0x2U)           /*!< Stream forwarding */
1054 #define NETC_ETHSWT_IP_SWT_BRIDGEFORWARDING             (0x3U)           /*!< 802.1Q bridge forwarding */
1055 #define NETC_ETHSWT_IP_SWT_COPYANDSTREAMFORWARDING      (0x4U)           /*!< Copy to switch management port with specified HR and stream forwarding */
1056 #define NETC_ETHSWT_IP_SWT_COPYANDBRIDGEFORWARDING      (0x5U)           /*!< Copy to switch management port with specified HR and Bridge forwarding */
1057 
1058 typedef uint32 Netc_EthSwt_Ip_EnetcForwardingActionDataType;
1059 #define NETC_ETHSWT_IP_ENETC_DISCARDFRAMES                (0x0U)           /*!< discard frames */
1060 #define NETC_ETHSWT_IP_ENETC_ALLOWWITHOUTSIBITMAP         (0x1U)           /*!< Allow without setting the pre L2 filtering SI bitmap. */
1061 #define NETC_ETHSWT_IP_SWT_ALLOWWITHSIBITMAP              (0x2U)           /*!< Allow with setting the pre L2 filtering SI bitmap to the value configured in the SI_MAP field of this entry. */
1062 
1063 /*!
1064  * @brief Override ET_EID data format enum type.
1065  */
1066 typedef uint32 Netc_EthSwt_Ip_OETEIDIdxType;
1067 #define  NETC_ETHSWT_IP_NO_EGRESS_PKT_PROCESSING_ACTIONS_SPECIFIED  (0x0U)      /*!< No egress packet processing actions specified */
1068 #define NETC_ETHSWT_IP_SINGLEPORT_EGRESS_TREATMENT_TABLE_ACCESS     (0x1U)      /*!< Single-port Egress Treatment table access. */
1069 #define NETC_ETHSWT_IP_MULTIPORT_PKT_EGRESS_TREATMENT_TABLE_ACCESS  (0x2U)      /*!< Multi-port packet Egress Treatment table access */
1070 #define NETC_ETHSWT_IP_MULTIPORT_ABS_EGRESS_TREATMENT_TABLE_ACCESS  (0x3U)      /*!< Multi-port absolute Egress Treatment table access */
1071 
1072 /*!
1073  * @brief Cut-Through Disable data format enum type.
1074  */
1075 typedef uint32 Netc_EthSwt_Ip_CutThroughtDisableIdxType;
1076 #define NETC_ETHSWT_IP_DONOT_OVERRIDE_CUTTHROUGH_STATE          (0x0U)      /*!< Do not override cut-through state */
1077 #define NETC_ETHSWT_IP_DISABLE_CUTTHROUGH_FOR_OUTGOING_PORT     (0x1U)      /*!< Disable cut-through for the outgoing port specified in the EPORT field */
1078 #define NETC_ETHSWT_IP_DISABLE_CUTTHROUGH_FOR_ALL_PORTS         (0x2U)      /*!< Disable cut-through for all ports specified in the destination port bitmap */
1079 #define NETC_ETHSWT_IP_DISABLE_CUTTHROUGH_RESERVED              (0x3U)      /*!< Reserved */
1080 
1081 /*!
1082  * @brief Ingress Sequence Action data format enum type.
1083  */
1084 typedef uint32 Netc_EthSwt_Ip_IngressSeqActionIdxType;
1085 #define NETC_ETHSWT_IP_FRER_SEQ_GENERATION_FUNC_NOT_PERFORMED   (0x0U)      /*!< FRER sequence generation function is not performed. */
1086 #define NETC_ETHSWT_IP_FRER_SEQ_GENERATION_FUNC_PERFORMED       (0x1U)      /*!< FRER sequence generation function is performed. */
1087 
1088 /*!
1089  * @brief Egress Sequence Recovery Table CFGE_DATA enum type.
1090  */
1091 typedef uint32 Netc_EthSwt_Ip_ESQRTABLE_CFGE_SQRTnsqIdxType;
1092 #define NETC_ETHSWT_IP_ESQRTABLE_DISCARD_FRAME_AND_COUNT        (0x0U)      /*!< Discard frame and count in both the TAGLESS_PACKETS counter and in the port's PTXDCR register. */
1093 #define NETC_ETHSWT_IP_ESQRTABLE_ACCEPT_FRAME_AND_NORECOVERY    (0x1U)      /*!< Accept frame and do not perform recovery function. */
1094 
1095 typedef uint32 Netc_EthSwt_Ip_ESQRTABLE_CFGE_SQRAlgIdxType;
1096 #define NETC_ETHSWT_IP_ESQRTABLE_VECTOR_ALGORITHM               (0x0U)      /*!< Vector algorithm. */
1097 #define NETC_ETHSWT_IP_ESQRTABLE_MATCH_ALGORITHM                (0x1U)      /*!< Match algorithm. */
1098 
1099 typedef uint32 Netc_EthSwt_Ip_ESQRTABLE_CFGE_SQRTypeIdxType;
1100 #define NETC_ETHSWT_IP_ESQRTABLE_SEQUENCY_REC_FUNC              (0x0U)      /*!< Sequence recovery function. */
1101 #define NETC_ETHSWT_IP_ESQRTABLE_INDIVIDUAL_REC_FUNC            (0x1U)      /*!< Individual recovery function. */
1102 
1103 /*!
1104  * @brief Ingress Stream Table CFGE_DATA Format.
1105  */
1106 typedef struct {
1107     uint32 IngressSeqGeneration_EID;                         /*!< Ingress Sequence Generation Entry ID */
1108     uint32 RatePolicer_EID;                                  /*!< Rate Policer Entry ID */
1109     uint32 StreamGateInstance_EID;                           /*!< Stream Gate Instance Entry ID */
1110     uint32 IngressFrmModification_EID;                       /*!< Ingress Frame Modification Entry ID */
1111     uint32 EgressTreatment_EID;                              /*!< Egress Treatment Entry ID */
1112     uint32 IngressStreamCounter_EID;                         /*!< Ingress Stream counter Index */
1113     uint32 EgressPortBitMap;                                 /*!< Egress Port bitmap */
1114     uint16 StationInterfaceMap;                              /*!< Station Interface Map */
1115     uint16 MaximumServiceDataUnit;                           /*!< Maximum Service Data Unit */
1116     uint8 IngressFrmModiEntryFrmLenChange;                   /*!< Ingress Frame Modification Entry Frame Length Change */
1117     uint8 EgressPort;                                        /*!< Egress Port */
1118     Netc_EthSwt_Ip_OETEIDIdxType OverrideET_EID;             /*!< Override ET_EID */
1119     Netc_EthSwt_Ip_CutThroughtDisableIdxType CutThrDisable;  /*!< Cut-Trought disable */
1120     Netc_EthSwt_Ip_SDUType SduType;                          /*!< Service Data Unit type to use for MSDU (Maximum Service Data Unit) field. */
1121     Netc_EthSwt_Ip_SwtForwardingActionDataType ForwardingActions;   /*!< Forwarding actions */
1122     uint8 HostReason;                                               /*!< Host reason */
1123     uint8 DropResilience;                                           /*!< New Drop Resilience (DR) to be assigned to the frame, if ODR is 1. */
1124     uint8 InternalPriorityValue;                                    /*!< Internal Priority Value (IPV) */
1125     boolean OverrideStreamGateInstanceEID;                          /*!< Override Stream Gate Instance Entry ID */
1126     boolean OverrideRatePolicerInstanceEID;                         /*!< Override Rate Policer (instance) ID. */
1127     Netc_EthSwt_Ip_IngressSeqActionIdxType IngressSeqAction;        /*!< Ingress Sequence Action */
1128     boolean SrcPortPruningDisable;                                  /*!< Source Port Pruning Disable. */
1129     boolean TimeStampCaptureEnable;                                 /*!< Timestamp Capture Enable */
1130     boolean IngressMirroringEnable;                                 /*!< Ingress Mirroring Enable */
1131     boolean OverrideDR;                                             /*!< Override Drop Resilience (DR) */
1132     boolean OverrideIPV;                                            /*!< Override Internal Priority Value (IPV) */
1133     boolean StreamFilteringEnable;                                  /*!< Stream Filtering Enable */
1134 } Netc_EthSwt_Ip_IngressStreamTableCFGEDataType;
1135 
1136 /*!
1137  * @brief defines Ingress Stream entries.
1138  * @implements Netc_EthSwt_Ip_IngressStreamEntryDataType_struct
1139  */
1140 typedef struct
1141 {
1142     uint32 IngressStreamEntryId;                  /* Entry ID */
1143     Netc_EthSwt_Ip_IngressStreamTableCFGEDataType IngressStreamCfgeData;    /* CFGE Data */
1144 } Netc_EthSwt_Ip_IngressStreamEntryDataType;
1145 
1146 /*!
1147  * @brief Ingress Stream Filter Table CFGE_DATA Format.
1148  */
1149 typedef struct {
1150     uint32 RatePolicer_EID;                                         /*!< Rate Policer Entry ID */
1151     uint32 StreamGateInstance_EID;                                  /*!< Stream Gate Instance Entry ID */
1152     uint32 IngressStreamCounter_EID;                                /*!< Ingress Stream counter Index */
1153     uint16 MaximumServiceDataUnit;                                  /*!< Maximum Service Data Unit */
1154     uint8 InternalPriorityValue;                                    /*!< Internal Priority Value (IPV) */
1155     uint8 DropResilience;                                           /*!< New Drop Resilience (DR) to be assigned to the frame, if ODR is 1. */
1156     Netc_EthSwt_Ip_CutThroughtDisableIdxType CutThrDisable;         /*!< Cut-Trought disable */
1157     Netc_EthSwt_Ip_SDUType SduType;                                 /*!< Service Data Unit type to use for MSDU (Maximum Service Data Unit) field. */
1158     boolean OverrideIPV;                                            /*!< Override Internal Priority Value (IPV) */
1159     boolean OverrideDR;                                             /*!< Override Drop Resilience (DR) */
1160     boolean TimeStampCaptureEnable;                                 /*!< Timestamp Capture Enable */
1161     boolean IngressMirroringEnable;                                 /*!< Ingress Mirroring Enable */
1162     boolean OverrideStreamGateInstanceEID;                          /*!< Override Stream Gate Instance Entry ID */
1163     boolean OverrideRatePolicerInstanceEID;                         /*!< Override Rate Policer (instance) ID. */
1164 } Netc_EthSwt_Ip_IngressStreamFilterTableCFGEDataType;
1165 
1166 
1167 /*!
1168  * @brief Define Ingress Stream Counter entries
1169  */
1170 typedef struct
1171 {
1172     uint32 RxCount;                                                 /*!< Receive Count. */
1173     uint32 MSduDropCount;                                           /*!< MSDU (Maximum Service Data Unit) Drop Count. */
1174     uint32 PolicerDropCount;                                        /*!< Policer Drop Count. */
1175     uint32 StreamGateDropCount;                                     /*!< Stream Gating Drop Count. */
1176 } Netc_EthSwt_Ip_IngressStreamCountTableSTSEDataType;
1177 
1178 /*!
1179  * @implements Netc_EthSwt_Ip_IngressStreamCountTableRspDataType_struct
1180  */
1181 typedef struct
1182 {
1183     uint32 IngressStreamCountId;
1184     Netc_EthSwt_Ip_IngressStreamCountTableSTSEDataType IngressStreamCountStseData;
1185 } Netc_EthSwt_Ip_IngressStreamCountTableRspDataType;
1186 
1187 /*!
1188  * @brief Ingress Stream Filter Table KEYE_DATA Format.
1189  */
1190 typedef struct {
1191     uint32 IngressStream_EID;                           /*!< Ingress Stream Entry ID */
1192     uint8 Pcp;                                          /*!< Priority Code Point. Outer VLAN TAG PCP of the received frame */
1193 } Netc_EthSwt_Ip_IngressStreamFilterTableKEYEDataType;
1194 
1195 /*!
1196  * @brief defines Ingress Stream Filter entries.
1197  * @implements Netc_EthSwt_Ip_IngressStreamFilterEntryDataType_struct
1198  */
1199 typedef struct
1200 {
1201     Netc_EthSwt_Ip_IngressStreamFilterTableCFGEDataType IngressStreamFilterCfgeData;    /* CFGE Data */
1202     Netc_EthSwt_Ip_IngressStreamFilterTableKEYEDataType IngressStreamFilterKeyeData;    /* KEYE Data */
1203     uint32 IngressStreamFilterEntryId;                  /* Entry ID */
1204 } Netc_EthSwt_Ip_IngressStreamFilterEntryDataType;
1205 
1206 /*!
1207  * @brief defines Stream Gate Instance entries.
1208  * @implements Netc_EthSwt_Ip_StreamGateInstanceEntryDataType_struct
1209  */
1210 typedef struct
1211 {
1212     uint32 SGIEntryId;                                      /* Stream Gate Instance Entry ID */
1213     uint32 AdminSGCLEntryId;                                /* Administrative Stream Gate Control List Entry ID */
1214     uint64 AdminBaseTime;                                   /* Admin Base Time */
1215     uint32 AdminCycleTimeExt;                               /* Admin Cycle Time Extension */
1216     Netc_EthSwt_Ip_SGITABLE_GateStateType Icfge_Gst;        /* Gate State */
1217     boolean Icfge_Ctd;                                      /* Cut-Through Disable Flag */
1218     uint8 Icfge_Ipv;                                        /* Internal Priority Value (IPV) */
1219     Netc_EthSwt_Ip_SDUType SduType;                         /* Protocol/Service Data Unit) */
1220     boolean Icfge_Oipv;                                     /* Override Internal Priority Value (IPV) */
1221     boolean Cfge_Oexen;                                     /* Octets Exceeded Enable */
1222     boolean Cfge_Irxen;                                     /* Invalid Receive Enable */
1223 } Netc_EthSwt_Ip_StreamGateInstanceEntryDataType;
1224 
1225 /*!
1226  * @brief defines Stream Gate Instance entries response data type.
1227  * @implements Netc_EthSwt_Ip_StreamGateInstanceEntryRspDataType_struct
1228  */
1229 typedef struct
1230 {
1231     uint32 SGIEntryId;                                      /* Stream Gate Instance Entry ID */
1232     uint32 OperationalSGCLEntryID;                          /* Operational Stream Gate Control List Entry ID */
1233     uint64 ConfigChangeTime;                                /* Configuration Change Time */
1234     uint64 OperationalBaseTime;                             /* Operational Base Time */
1235     uint32 OperationalCycleTimeExt;                         /* Oper Cycle Time Extension */
1236     uint8 SGISEOex;                                         /* Octets Exceeded Flag */
1237     uint8 SGISEIrx;                                         /* Invalid Receive Flag */
1238     uint8 SGISEState;                                       /* Current Gate Instance State */
1239     uint32 AdminSGCLEntryId;                                /* Administrative Stream Gate Control List Entry ID */
1240     uint64 AdminBaseTime;                                   /* Admin Base Time */
1241     uint32 AdminCycleTimeExt;                               /* Admin Cycle Time Extension */
1242     Netc_EthSwt_Ip_SGITABLE_GateStateType Icfge_Gst;        /* Gate State */
1243     boolean Icfge_Ctd;                                      /* Cut-Through Disable Flag */
1244     uint8 Icfge_Ipv;                                        /* Internal Priority Value (IPV) */
1245     Netc_EthSwt_Ip_SDUType SduType;                         /* Protocol/Service Data Unit) */
1246     boolean Icfge_Oipv;                                     /* Override Internal Priority Value (IPV) */
1247     boolean Cfge_Oexen;                                     /* Octets Exceeded Enable */
1248     boolean Cfge_Irxen;                                     /* Invalid Receive Enable */
1249 } Netc_EthSwt_Ip_StreamGateInstanceEntryRspDataType;
1250 
1251 /*!
1252  * @brief defines Stream Gate Control List entries data type.
1253  */
1254 typedef struct
1255 {
1256     uint32 SGCL_TimeInterval;                               /* Time Interval for Gate Entry i */
1257     uint32 SGCL_IntervalOctetsMax;                          /* Interval Octets Maximum for Gate Entry i, */
1258     uint8 SGCL_Ipv;                                         /* Internal Priority Value for Gate Entry i */
1259     boolean SGCL_Oipv;                                      /* Override Internal Priority Value for Gate Entry i */
1260     boolean SGCL_Ctd;                                       /* Cut Through Disable for Gate Entry i */
1261     boolean SGCL_IntervalOctetMaxEnable;                    /* Interval Octet Maximum Enabled for Gate Entry i, */
1262     Netc_EthSwt_Ip_SGITABLE_GateStateType SGCL_GateState;   /* Gate State for Gate Entry i, */
1263 } Netc_EthSwt_Ip_SGCLEntriesDataType;
1264 
1265 /*!
1266  * @brief defines Stream Gate Control List table data type.
1267  * @implements Netc_EthSwt_Ip_SGCLTableDataType_struct
1268  */
1269 typedef struct
1270 {
1271     uint32 SGCLEntryId;                                     /* Stream Gate Control List Entry ID */
1272     uint32 Cfge_CycleTime;                                  /* This field specifies the cycle time of the stream gate control list. */
1273     uint8 Cfge_ListLength;                                  /* This field indicates the number of entries in the stream gate control list. */
1274     uint8 Cfge_ExtIpv;                                      /* List Extension Internal Priority Value */
1275     boolean Cfge_ExtOIPV;                                   /* Extension Override Internal Priority Value */
1276     boolean Cfge_ExtCtd;                                    /* Extension Cut Through Disabled. 0b = No action. 1b = Cut-through disabled. */
1277     Netc_EthSwt_Ip_SGITABLE_GateStateType Cfge_ExtGtst;     /* Extension Gate State */
1278     Netc_EthSwt_Ip_SGCLEntriesDataType *ListEntries;        /* Stream Gate Control List entries pointer */
1279     Netc_EthSwt_Ip_SGCLTABLE_RefCountType Sgclse_RefCount;  /* Ref count, an element in response data buffer */
1280 } Netc_EthSwt_Ip_SGCLTableDataType;
1281 
1282 /*!
1283  * @brief defines Ingress Sequence Generation table data type.
1284  * @implements Netc_EthSwt_Ip_ISQGTableDataType_struct
1285  */
1286 typedef struct
1287 {
1288     uint32 ISQGEntryId;                                     /* Ingress Sequence Generation table Entry ID */
1289     Netc_EthSwt_Ip_ISQGTABLE_SQTagType Cfge_SQTagType;      /* This field specifies the sequence tag type to insert for sequence generation. */
1290     uint16 Sgse_SQGNum;                                     /* This field specifies the next sequence number value to be used in the tag to be added to the frame. */
1291 } Netc_EthSwt_Ip_ISQGTableDataType;
1292 
1293 /*!
1294  * @brief defines Egress Sequence Recovery table request data type.
1295  * @implements Netc_EthSwt_Ip_EgrSeqRecoveryTableDataType_struct
1296  */
1297 typedef struct
1298 {
1299     uint32 EgrSeqRecEntryId;                                        /* egress sequence recovery table Entry ID */
1300     uint8 Cfge_SQTag;                                               /* Sequence Tag */
1301     uint8 Cfge_SQRHisLen;                                           /* Sequence Recovery History Length */
1302     uint16 Cfge_SQRFutureWinLen;                                    /* Sequence Recovery Future Window LengthThis */
1303     uint16 Cfge_SQRTimeOutPeriod;                                   /* Sequence Timeout Period */
1304     Netc_EthSwt_Ip_ESQRTABLE_CFGE_SQRTnsqIdxType Cfge_SqrTnsq;      /* Sequence Recovery Take No Sequence */
1305     Netc_EthSwt_Ip_ESQRTABLE_CFGE_SQRAlgIdxType Cfge_SqrAlg;        /* Sequence Recovery Algorithm */
1306     Netc_EthSwt_Ip_ESQRTABLE_CFGE_SQRTypeIdxType Cfge_SqrType;      /* Sequence Recovery Function type */
1307 } Netc_EthSwt_Ip_EgrSeqRecoveryTableDataType;
1308 
1309 /*!
1310  * @brief defines Egress Sequence Recovery table response data type.
1311  * @implements Netc_EthSwt_Ip_EgrSeqRecoveryTableRspDataType_struct
1312  */
1313 typedef struct
1314 {
1315     uint32 EgrSeqRecEntryId;                                        /* egress sequence recovery table Entry ID */
1316     uint64 Stse_InOrderPkts;                                        /* In Order Packets */
1317     uint64 Stse_OutOfOrderPkts;                                     /* Out of Order Packets */
1318     uint64 Stse_RoguePkts;                                          /* Rogue Packets */
1319     uint64 Stse_DuplicatePkts;                                      /* Duplicate Packets */
1320     uint64 Stse_LostPkts;                                           /* Lost Packets */
1321     uint64 Stse_TaglessPkts;                                        /* Tag-Less Packets */
1322     uint32 Stse_SeqRecResets;                                        /* Sequence Recovery Resets */
1323     uint32 Srse_SqrHistory[4U];                                     /* Recovery History */
1324     uint16 Srse_SqrNum;                                             /* Sequence Recovery Number */
1325     uint16 Srse_SqrTimeStamp;                                       /* Sequence Recovery Timestamp */
1326     boolean Srse_LostCntEnable;                                     /* Lost Count Enable */
1327     uint8 Srse_TakeAny;                                             /* This field is set to 1 when the recovery function is reset, and cleared after the first frame is received. */
1328     uint8 Cfge_SQTag;                                               /* Sequence Tag */
1329     uint8 Cfge_SQRHisLen;                                           /* Sequence Recovery History Length */
1330     uint16 Cfge_SQRFutureWinLen;                                    /* Sequence Recovery Future Window LengthThis */
1331     uint16 Cfge_SQRTimeOutPeriod;                                   /* Sequence Timeout Period */
1332     Netc_EthSwt_Ip_ESQRTABLE_CFGE_SQRTnsqIdxType Cfge_SqrTnsq;      /* Sequence Recovery Take No Sequence */
1333     Netc_EthSwt_Ip_ESQRTABLE_CFGE_SQRAlgIdxType Cfge_SqrAlg;        /* Sequence Recovery Algorithm */
1334     Netc_EthSwt_Ip_ESQRTABLE_CFGE_SQRTypeIdxType Cfge_SqrType;      /* Sequence Recovery Function type */
1335 } Netc_EthSwt_Ip_EgrSeqRecoveryTableRspDataType;
1336 
1337 /*!
1338  * @brief defines Ingress Stream Identification table request/response data type.
1339  * @implements Netc_EthSwt_Ip_IngrStremIdentificationTableDataType_struct
1340  */
1341 typedef struct
1342 {
1343     uint32 IngrStreamIdenResumeEntryId;                             /* Ingress Stream Identification tabel Resume Entry ID */
1344     uint32 IngrStreamIdenEntryId;                                   /* Ingress Stream Identification tabel Entry ID */
1345     uint32 IngrStreamEntryId;                                       /* Ingress Stream table Entry ID */
1346     Netc_EthSwt_Ip_KeyTypeIdxType Keye_Keytype;                     /* Key type for key construction */
1347     uint8 Keye_SrcPortId;                                           /* Source port Id */
1348     Netc_EthSwt_Ip_SrcPortMasqIdxType Keye_Spm;                     /* Source port masquerading */
1349     uint32 Keye_FrmKey[4U];                                         /* Frame portion of the Key */
1350 }Netc_EthSwt_Ip_IngrStremIdentificationTableDataType;
1351 
1352 /*!
1353  * @brief FDB Table CFGE_DATA format enum type.
1354  */
1355 typedef enum {
1356     NETC_ETHSWT_IP_FDBTABLE_CFGE_PORT_BITMAP_FIELD = 9U,               /*!< PORT_BITMAP field in FDB Table CFGE_DATA Format */
1357     NETC_ETHSWT_IP_FDBTABLE_CFGE_CONFIG_FIELD = 10U,                   /*!< CONFIG field includes TIMECAPE, DYNAMIC etc in FDB Table CFGE_DATA Format */
1358     NETC_ETHSWT_IP_FDBTABLE_CFGE_ETEID_FIELD = 11U                     /*!< ET_EID field in FDB Table CFGE_DATA Format */
1359 } Netc_EthSwt_Ip_FDBTableCFGEDataIndexType;
1360 /* +++bits field and structure for CFGE_DATA format+++ */
1361 
1362 /* +++bits field for KEYE_DATA format+++ */
1363 /*!
1364  * @brief FDB table config MACC_ADDR_L field.
1365  */
1366 #define NETC_ETHSWT_IP_FDBTABLE_KEYE_DATA_MAC_ADDR_L_SHIFT            (0U)
1367 /*!
1368  * @brief FDB table config MACC_ADDR_L field mask.
1369  */
1370 #define NETC_ETHSWT_IP_FDBTABLE_KEYE_DATA_MAC_ADDR_L_MASK             (0xFFFFFFFFUL)
1371 /*!
1372  * @brief FDB table config MACC_ADDR_L.
1373  */
1374 #define NETC_ETHSWT_IP_FDBTABLE_KEYE_DATA_MAC_ADDR_L(x)               (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_FDBTABLE_KEYE_DATA_MAC_ADDR_L_SHIFT)) & NETC_ETHSWT_IP_FDBTABLE_KEYE_DATA_MAC_ADDR_L_MASK)
1375 
1376 /*!
1377  * @brief FDB table config MACC_ADDR_H field.
1378  */
1379 #define NETC_ETHSWT_IP_FDBTABLE_KEYE_DATA_MAC_ADDR_H_SHIFT            (0U)
1380 /*!
1381  * @brief FDB table config MACC_ADDR_H field mask.
1382  */
1383 #define NETC_ETHSWT_IP_FDBTABLE_KEYE_DATA_MAC_ADDR_H_MASK             (0x0000FFFFUL)
1384 /*!
1385  * @brief FDB table config MACC_ADDR_H.
1386  */
1387 #define NETC_ETHSWT_IP_FDBTABLE_KEYE_DATA_MAC_ADDR_H(x)               (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_FDBTABLE_KEYE_DATA_MAC_ADDR_H_SHIFT)) & NETC_ETHSWT_IP_FDBTABLE_KEYE_DATA_MAC_ADDR_H_MASK)
1388 
1389 /*!
1390  * @brief FDB table config FID field.
1391  */
1392 #define NETC_ETHSWT_IP_FDBTABLE_KEYE_DATA_FID_SHIFT                   (0U)
1393 /*!
1394  * @brief FDB table config FID field mask.
1395  */
1396 #define NETC_ETHSWT_IP_FDBTABLE_KEYE_DATA_FID_MASK                    (0x00000FFFUL)
1397 /*!
1398  * @brief FDB table config FID.
1399  */
1400 #define NETC_ETHSWT_IP_FDBTABLE_KEYE_DATA_FID(x)                      (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_FDBTABLE_KEYE_DATA_FID_SHIFT)) & NETC_ETHSWT_IP_FDBTABLE_KEYE_DATA_FID_MASK)
1401 
1402 /*!
1403  * @brief FDB Table KEYE_DATA format. Netc_EthSwt_Ip_FDBTableKEYEDataType
1404  */
1405 typedef struct {
1406     uint32 MacAddrL;                        /*!< FDB Mac addr L where the most significant byte of the MAC address is stored */
1407     uint32 MacAddrH;                        /*!< FDB Mac addr H */ /* [notice]: just 16 bits */
1408     uint32 Fid;                             /*!< FDB Fid */    /* [notice]: just 12 bits */
1409 } Netc_EthSwt_Ip_FDBTableKEYEDataType;
1410 /* ---bits field for KEYE_DATA format--- */
1411 
1412 /* +++bits field for SEARCH_CRITERIA format+++ */
1413 /*!
1414  * @brief FDB table search criteria ACTE_MC field.
1415  */
1416 #define NETC_ETHSWT_IP_FDBTABLE_SEARCH_CRITERIA_ACTEMC_SHIFT           (24U)
1417 /*!
1418  * @brief FDB table search criteria ACTE_MC field mask.
1419  */
1420 #define NETC_ETHSWT_IP_FDBTABLE_SEARCH_CRITERIA_ACTEMC_MASK            (0x01000000UL)
1421 /*!
1422  * @brief FDB table search criteria ACTE_MC.
1423  */
1424 #define NETC_ETHSWT_IP_FDBTABLE_SEARCH_CRITERIA_ACTEMC(x)              (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_FDBTABLE_SEARCH_CRITERIA_ACTEMC_SHIFT)) & NETC_ETHSWT_IP_FDBTABLE_SEARCH_CRITERIA_ACTEMC_MASK)
1425 
1426 /*!
1427  * @brief FDB table search criteria CFGE_MC field.
1428  */
1429 #define NETC_ETHSWT_IP_FDBTABLE_SEARCH_CRITERIA_CFGEMC_SHIFT           (16U)
1430 /*!
1431  * @brief FDB table search criteria CFGE_MC field mask.
1432  */
1433 #define NETC_ETHSWT_IP_FDBTABLE_SEARCH_CRITERIA_CFGEMC_MASK            (0x00070000UL)
1434 /*!
1435  * @brief FDB table search criteria CFGE_MC.
1436  */
1437 #define NETC_ETHSWT_IP_FDBTABLE_SEARCH_CRITERIA_CFGEMC(x)              (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_FDBTABLE_SEARCH_CRITERIA_CFGEMC_SHIFT)) & NETC_ETHSWT_IP_FDBTABLE_SEARCH_CRITERIA_CFGEMC_MASK)
1438 
1439 /*!
1440  * @brief FDB table search criteria KEYE_MC field.
1441  */
1442 #define NETC_ETHSWT_IP_FDBTABLE_SEARCH_CRITERIA_KEYEMC_SHIFT           (8U)
1443 /*!
1444  * @brief FDB table search criteria KEYE_MC field mask.
1445  */
1446 #define NETC_ETHSWT_IP_FDBTABLE_SEARCH_CRITERIA_KEYEMC_MASK            (0x00000300UL)
1447 /*!
1448  * @brief FDB table search criteria KEYE_MC.
1449  */
1450 #define NETC_ETHSWT_IP_FDBTABLE_SEARCH_CRITERIA_KEYEMC(x)              (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_FDBTABLE_SEARCH_CRITERIA_KEYEMC_SHIFT)) & NETC_ETHSWT_IP_FDBTABLE_SEARCH_CRITERIA_KEYEMC_MASK)
1451 
1452 /*!
1453  * @brief FDB table search criteria ACTF_LAG field.
1454  */
1455 #define NETC_ETHSWT_IP_FDBTABLE_SEARCH_CRITERIA_ACTFLAG_SHIFT          (7U)
1456 /*!
1457  * @brief FDB table search criteria ACTF_LAG field mask.
1458  */
1459 #define NETC_ETHSWT_IP_FDBTABLE_SEARCH_CRITERIA_ACTFLAG_MASK           (0x00000080UL)
1460 /*!
1461  * @brief FDB table search criteria ACTF_LAG.
1462  */
1463 #define NETC_ETHSWT_IP_FDBTABLE_SEARCH_CRITERIA_ACTFLAG(x)             (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_FDBTABLE_SEARCH_CRITERIA_ACTFLAG_SHIFT)) & NETC_ETHSWT_IP_FDBTABLE_SEARCH_CRITERIA_ACTFLAG_MASK)
1464 
1465 /*!
1466  * @brief FDB table search criteria ACT_CNT field.
1467  */
1468 #define NETC_ETHSWT_IP_FDBTABLE_SEARCH_CRITERIA_ACTCNT_SHIFT           (0U)
1469 /*!
1470  * @brief FDB table search criteria ACT_CNT field mask.
1471  */
1472 #define NETC_ETHSWT_IP_FDBTABLE_SEARCH_CRITERIA_ACTCNT_MASK            (0x0000007FUL)
1473 /*!
1474  * @brief FDB table search criteria ACT_CNT.
1475  */
1476 #define NETC_ETHSWT_IP_FDBTABLE_SEARCH_CRITERIA_ACTCNT(x)              (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_FDBTABLE_SEARCH_CRITERIA_ACTCNT_SHIFT)) & NETC_ETHSWT_IP_FDBTABLE_SEARCH_CRITERIA_ACTCNT_MASK)
1477 
1478 /*!
1479  * @brief FDB Table Match Criteria field data type enumeration. Netc_EthSwt_Ip_FDBTableMatchCriteriaDataType
1480  */
1481 typedef enum {
1482     NETC_ETHSWT_IP_FDBTABLE_MATCH_ANY_CRITERIA = 0U,                    /*!< 0x0 = Match Any Criteria. */
1483     NETC_ETHSWT_IP_FDBTABLE_MATCH_ACTE_DATA_FIELD,                      /*!< 0x1 = Exact match with ACTE_DATA. */
1484     NETC_ETHSWT_IP_FDBTABLE_MATCH_CFGE_DYNAMIC_FIELD,                   /*!< 0x2: Match CFGE_DATA[DYNAMIC] field, will be remapped to 0x1 */
1485     NETC_ETHSWT_IP_FDBTABLE_MATCH_CFGE_PORTBITMSP_FIELD,                /*!< 0x3: Match CFGE_DATA[PORT_BITMAP] field, will be remapped to 0x2 */
1486     NETC_ETHSWT_IP_FDBTABLE_MATCH_CFGE_DYNAMIC_AND_PORTBITMAP_FIELD,    /*!< 0x4: Match CFGE_DATA[DYNAMIC & PORT_BITMAP] field, will be remapped to 0x3 */
1487     NETC_ETHSWT_IP_FDBTABLE_MATCH_KEYE_FID_FIELD,                       /*!< 0x5: Match KEYE_DATA[FID] provided, will be remapped to 0x1 */
1488     NETC_ETHSWT_IP_FDBTABLE_MATCH_KEYE_MULTICAST_BIT_OF_MACADDR,        /*!< 0x6: Match KEYE_DATA[MAC_ADDR][MULTICAST], will be remapped to 0x2.
1489                                                                         Where the MAC Multicast bit is least significant bit of the most significant byte of the destination MAC address.
1490                                                                         KEYE_DATA[MAC_ADDR][MULTICAST] = 0b1, matching entries with multicast mac address
1491                                                                         KEYE_DATA[MAC_ADDR][MULTICAST] = 0b0, matching entries with unicast mac address */
1492     NETC_ETHSWT_IP_FDBTABLE_MATCH_KEYE_FID_AND_MULTICAST_BIT_OF_MACADDR /*!< 0x7: Match KEYE_DATA[FID] and KEYE_DATA[MAC_ADDR][MULTICAST], will be remapped to 0x3. */
1493 } Netc_EthSwt_Ip_FDBTableMatchCriteriaDataType;
1494 
1495 #define NETC_ETHSWT_IP_FDBTABLE_CFGE_MATCH_CRITERIA_ADJUSTING_FACTOR        (1U)    /*!< for remapping CFGE match criteria flag */
1496 #define NETC_ETHSWT_IP_FDBTABLE_KEYE_MATCH_CRITERIA_ADJUSTING_FACTOR        (4U)    /*!< for remapping KEYE match criteria flag */
1497 
1498 /*!
1499  * @brief Multicast bit of Mac Address field.
1500  */
1501 #define NETC_ETHSWT_IP_MULTICASTBIT_OF_MAC_ADDRESS_SHIFT            (0U)
1502 /*!
1503  * @brief Multicast bit of Mac Address field mask.
1504  */
1505 #define NETC_ETHSWT_IP_MULTICASTBIT_OF_MAC_ADDRESS_MASK             (0x00000001UL)
1506 /*!
1507  * @brief Multicast bit of Mac Address.
1508  */
1509 #define NETC_ETHSWT_IP_MULTICASTBIT_OF_MAC_ADDRESS(x)               (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_MULTICASTBIT_OF_MAC_ADDRESS_SHIFT)) & NETC_ETHSWT_IP_MULTICASTBIT_OF_MAC_ADDRESS_MASK)
1510 
1511 /*!
1512  * @brief FDB Table CFGE Match Criteria format in SEARCH_CRITERIA. Netc_EthSwt_Ip_FDBTableCFGEMatchDataType
1513  */
1514 typedef struct {
1515     uint32 SearchPortBitMap;                                    /*!< Fdb table search port bitmap data */
1516     boolean SearchDynamicEntry;                                 /*!< Fdb table search dynamic field in CFGE_DATA */
1517 } Netc_EthSwt_Ip_FDBTableCFGEMatchDataType;
1518 
1519 /*!
1520  * @brief FDB Table KEYE Match Criteria format in SEARCH_CRITERIA. Netc_EthSwt_Ip_FDBTableKEYEMatchDataType
1521  */
1522 typedef struct {
1523     uint32 SearchFid;                                           /*!< Fdb table search FID data */
1524     boolean SearchMulticastMacAddr;                             /*!< TRUE: search Multicast Mac Address Entries
1525                                                                     FALSE: search Unicast Mac Address Entries */
1526 } Netc_EthSwt_Ip_FDBTableKEYEMatchDataType;
1527 
1528 /*!
1529  * @brief FDB Table ACTE_DATA (Activity Element Data) format. Netc_EthSwt_Ip_FDBTableACTEDataType
1530  */
1531 typedef struct {
1532     uint8 ActivityCounter;                                      /*!< Activity Counter data in ACTE_DATA format */
1533     boolean ActivityFlag;                                       /*!< Activity Flag data in ACTE_DATA format */
1534 } Netc_EthSwt_Ip_FDBTableACTEDataType;
1535 
1536 /*!
1537  * @brief FDB Table SEARCH_CRITERIA format. Netc_EthSwt_Ip_FDBTableSearchCriteriaDataType
1538  */
1539 typedef struct {
1540     uint32 SearchResumeEntryId;                                                 /*!< Fdb table search criteria resume entry id */
1541     Netc_EthSwt_Ip_FDBTableMatchCriteriaDataType SearchMatchCriteria;           /*!< Fdb table search Match Criteria */
1542     Netc_EthSwt_Ip_FDBTableACTEDataType SearchActeData;                         /*!< Fdb table search ACTE data */
1543     Netc_EthSwt_Ip_FDBTableCFGEMatchDataType SearchCfgeData;                    /*!< Fdb table search CFGE data */
1544     Netc_EthSwt_Ip_FDBTableKEYEMatchDataType SearchKeyeData;                    /*!< Fdb table search KEYE data */
1545 } Netc_EthSwt_Ip_FDBTableSearchCriteriaDataType;
1546 
1547 /*!
1548  * @brief FDB Table SEARCH_CRITERIA format enum type.
1549  * [notes:] the enum starts from 1U because it is the second item in FDB table request data buffer format
1550  */
1551 typedef enum {
1552     NETC_ETHSWT_IP_FDBTABLE_SEARCH_CRITERIA_RESUMEENTRYID = 1U,            /*!< RESUME_ENTRY_ID field in Search Criteria Format */
1553     NETC_ETHSWT_IP_FDBTABLE_SEARCH_CRITERIA_MACADDRESS_L,                  /*!< Low part of Mac Address Field of KEYE DATA in Search Criteria Format */
1554     NETC_ETHSWT_IP_FDBTABLE_SEARCH_CRITERIA_MACADDRESS_H,                  /*!< High part of Mac Address Field of KEYE DATA in Search Criteria Format */
1555     NETC_ETHSWT_IP_FDBTABLE_SEARCH_CRITERIA_FID,                           /*!< FID Field of KEYE DATA in Search Criteria Format */
1556     NETC_ETHSWT_IP_FDBTABLE_SEARCH_CRITERIA_PORTBITMAP,                    /*!< Port_Bitmap Field of CFGE DATA in Search Criteria Format */
1557     NETC_ETHSWT_IP_FDBTABLE_SEARCH_CRITERIA_CFGECONFIG,                    /*!< Config Field of CFGE DATA in Search Criteria Format */
1558     NETC_ETHSWT_IP_FDBTABLE_SEARCH_CRITERIA_ETEID,                         /*!< ET_EID Field of CFGE DATA in Search Criteria Format */
1559     NETC_ETHSWT_IP_FDBTABLE_SEARCH_CRITERIA_MATCHCRITERIA                  /*!< Match Criteria Field includes ACTE_MC, CFGE_MC etc in Search Criteria Format */
1560 } Netc_EthSwt_Ip_FDBTableSearchCriteriaDataIndexType;
1561 /* ---bits field for SEARCH_CRITERIA format--- */
1562 
1563 /* +++bits field and structure for FDB Table Request Data Buffer Format+++ */
1564 /*!
1565  * @brief Switch Tables Request Data Buffer CFGEU field.
1566  */
1567 #define NETC_ETHSWT_IP_SWITCHTABLE_REQFMT_ACTIONS_FIELD_CFGEU_SHIFT         (0U)
1568 #define NETC_ETHSWT_IP_SWITCHTABLE_REQFMT_ACTIONS_FIELD_CFGEU_MASK          (0x00000001UL)
1569 #define NETC_ETHSWT_IP_SWITCHTABLE_REQFMT_ACTIONS_FIELD_CFGEU(x)            (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_SWITCHTABLE_REQFMT_ACTIONS_FIELD_CFGEU_SHIFT)) & NETC_ETHSWT_IP_SWITCHTABLE_REQFMT_ACTIONS_FIELD_CFGEU_MASK)
1570 
1571 /*!
1572  * @brief Rate Policer Table Request Data Buffer FEEU field.
1573  */
1574 #define NETC_ETHSWT_IP_SWITCHTABLE_REQFMT_ACTIONS_FIELD_FEEU_SHIFT          (1U)
1575 #define NETC_ETHSWT_IP_SWITCHTABLE_REQFMT_ACTIONS_FIELD_FEEU_MASK           (0x00000002UL)
1576 #define NETC_ETHSWT_IP_SWITCHTABLE_REQFMT_ACTIONS_FIELD_FEEU(x)             (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_SWITCHTABLE_REQFMT_ACTIONS_FIELD_FEEU_SHIFT)) & NETC_ETHSWT_IP_SWITCHTABLE_REQFMT_ACTIONS_FIELD_FEEU_MASK)
1577 
1578 /*!
1579  * @brief Rate Policer Table Request Data Buffer PSEU field.
1580  */
1581 #define NETC_ETHSWT_IP_SWITCHTABLE_REQFMT_ACTIONS_FIELD_PSEU_SHIFT          (2U)
1582 #define NETC_ETHSWT_IP_SWITCHTABLE_REQFMT_ACTIONS_FIELD_PSEU_MASK           (0x00000004UL)
1583 #define NETC_ETHSWT_IP_SWITCHTABLE_REQFMT_ACTIONS_FIELD_PSEU(x)             (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_SWITCHTABLE_REQFMT_ACTIONS_FIELD_PSEU_SHIFT)) & NETC_ETHSWT_IP_SWITCHTABLE_REQFMT_ACTIONS_FIELD_PSEU_MASK)
1584 
1585 /*!
1586  * @brief Rate Policer Table Request Data Buffer STSEU field.
1587  */
1588 #define NETC_ETHSWT_IP_SWITCHTABLE_REQFMT_ACTIONS_FIELD_STSEU_SHIFT          (3U)
1589 #define NETC_ETHSWT_IP_SWITCHTABLE_REQFMT_ACTIONS_FIELD_STSEU_MASK           (0x00000008UL)
1590 #define NETC_ETHSWT_IP_SWITCHTABLE_REQFMT_ACTIONS_FIELD_STSEU(x)             (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_SWITCHTABLE_REQFMT_ACTIONS_FIELD_STSEU_SHIFT)) & NETC_ETHSWT_IP_SWITCHTABLE_REQFMT_ACTIONS_FIELD_STSEU_MASK)
1591 
1592 /*!
1593  * @brief FDB table Request Data Buffer ACTEU field.
1594  */
1595 #define NETC_ETHSWT_IP_FDBTABLE_REQFMT_ACTIONS_FIELD_ACTEU_SHIFT            (1U)
1596 #define NETC_ETHSWT_IP_FDBTABLE_REQFMT_ACTIONS_FIELD_ACTEU_MASK             (0x00000002UL)
1597 #define NETC_ETHSWT_IP_FDBTABLE_REQFMT_ACTIONS_FIELD_ACTEU(x)               (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_FDBTABLE_REQFMT_ACTIONS_FIELD_ACTEU_SHIFT)) & NETC_ETHSWT_IP_FDBTABLE_REQFMT_ACTIONS_FIELD_ACTEU_MASK)
1598 
1599 /*!
1600  * @brief Ingress Sequence Generation Table Request Data Buffer SGSEU field.
1601  */
1602 #define NETC_ETHSWT_IP_ISQGTABLE_REQFMT_ACTIONS_FIELD_SGSEU_SHIFT           (1U)
1603 #define NETC_ETHSWT_IP_ISQGTABLE_REQFMT_ACTIONS_FIELD_SGSEU_MASK            (0x00000002UL)
1604 #define NETC_ETHSWT_IP_ISQGTABLE_REQFMT_ACTIONS_FIELD_SGSEU(x)              (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_ISQGTABLE_REQFMT_ACTIONS_FIELD_SGSEU_SHIFT)) & NETC_ETHSWT_IP_ISQGTABLE_REQFMT_ACTIONS_FIELD_SGSEU_MASK)
1605 
1606 /*!
1607  * @brief Egress Sequence Recovery Table Request Data Buffer STSEU field.
1608  */
1609 #define NETC_ETHSWT_IP_ESQRTABLE_REQFMT_ACTIONS_FIELD_STSEU_SHIFT           (1U)
1610 #define NETC_ETHSWT_IP_ESQRTABLE_REQFMT_ACTIONS_FIELD_STSEU_MASK            (0x00000002UL)
1611 #define NETC_ETHSWT_IP_ESQRTABLE_REQFMT_ACTIONS_FIELD_STSEU(x)              (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_ESQRTABLE_REQFMT_ACTIONS_FIELD_STSEU_SHIFT)) & NETC_ETHSWT_IP_ESQRTABLE_REQFMT_ACTIONS_FIELD_STSEU_MASK)
1612 
1613 /*!
1614  * @brief Egress Sequence Recovery Table Request Data Buffer SRSEU field.
1615  */
1616 #define NETC_ETHSWT_IP_ESQRTABLE_REQFMT_ACTIONS_FIELD_SRSEU_SHIFT           (2U)
1617 #define NETC_ETHSWT_IP_ESQRTABLE_REQFMT_ACTIONS_FIELD_SRSEU_MASK            (0x00000004UL)
1618 #define NETC_ETHSWT_IP_ESQRTABLE_REQFMT_ACTIONS_FIELD_SRSEU(x)              (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_ESQRTABLE_REQFMT_ACTIONS_FIELD_SRSEU_SHIFT)) & NETC_ETHSWT_IP_ESQRTABLE_REQFMT_ACTIONS_FIELD_SRSEU_MASK)
1619 
1620 /*!
1621  * @brief Switch Tables Request Data Buffer DEBUG_OPTIONS field.
1622  */
1623 #define NETC_ETHSWT_IP_SWITCHTABLE_REQFMT_ACTIONS_FIELD_DEBUG_OPTIONS_SHIFT (16U)
1624 #define NETC_ETHSWT_IP_SWITCHTABLE_REQFMT_ACTIONS_FIELD_DEBUG_OPTIONS_MASK  (0x00FF0000UL)
1625 #define NETC_ETHSWT_IP_SWITCHTABLE_REQFMT_ACTIONS_FIELD_DEBUG_OPTIONS(x)    (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_SWITCHTABLE_REQFMT_ACTIONS_FIELD_DEBUG_OPTIONS_SHIFT)) & NETC_ETHSWT_IP_SWITCHTABLE_REQFMT_ACTIONS_FIELD_DEBUG_OPTIONS_MASK)
1626 /*!
1627  * @brief Switch Tables Request Data Buffer QUERY_ACTIONS field.
1628  */
1629 #define NETC_ETHSWT_IP_SWITCHTABLE_REQFMT_ACTIONS_FIELD_QUERY_ACTIONS_SHIFT (24U)
1630 #define NETC_ETHSWT_IP_SWITCHTABLE_REQFMT_ACTIONS_FIELD_QUERY_ACTIONS_MASK  (0x0F000000UL)
1631 #define NETC_ETHSWT_IP_SWITCHTABLE_REQFMT_ACTIONS_FIELD_QUERY_ACTIONS(x)    (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_SWITCHTABLE_REQFMT_ACTIONS_FIELD_QUERY_ACTIONS_SHIFT)) & NETC_ETHSWT_IP_SWITCHTABLE_REQFMT_ACTIONS_FIELD_QUERY_ACTIONS_MASK)
1632 
1633 /*!
1634  * @brief Switch Tables Request Data Buffer TABLE_VERSION field.
1635  */
1636 #define NETC_ETHSWT_IP_SWITCHTABLE_REQFMT_ACTIONS_FIELD_TABLE_VERSION_SHIFT (28U)
1637 #define NETC_ETHSWT_IP_SWITCHTABLE_REQFMT_ACTIONS_FIELD_TABLE_VERSION_MASK  (0xF0000000UL)
1638 #define NETC_ETHSWT_IP_SWITCHTABLE_REQFMT_ACTIONS_FIELD_TABLE_VERSIONS(x)   (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_SWITCHTABLE_REQFMT_ACTIONS_FIELD_TABLE_VERSION_SHIFT)) & NETC_ETHSWT_IP_SWITCHTABLE_REQFMT_ACTIONS_FIELD_TABLE_VERSION_MASK)
1639 
1640 /*!
1641  * @brief Request and Response Data Buffer Format of Tables supported by Switch.
1642  */
1643 typedef struct {
1644     uint32 TableDataField[NETC_ETHSWT_IP_TABLEDATA_BUFFER_LENGTH];  /*!< the request and response data buffer share the same memory */
1645 } Netc_EthSwt_Ip_SwitchTableDataType;
1646 
1647 
1648 /*!
1649  * @brief FDB Table response data type enumeration. Netc_EthSwt_Ip_FDBTable_ResponsDataIndexType
1650  */
1651 typedef enum {
1652     NETC_ETHSWT_FDBTABLE_RSPDATA_STATUS = 0x0U,     /*!< Status Field In FDB Table Response Data Buffer */
1653     NETC_ETHSWT_FDBTABLE_RSPDATA_ENTRYID,           /*!< Entry_ID Field In FDB Table Response Data Buffer */
1654     NETC_ETHSWT_FDBTABLE_RSPDATA_MACADDRESS_L,      /*!< Low part of Mac Address Field of KEYE DATA In FDB Table Response Data Buffer */
1655     NETC_ETHSWT_FDBTABLE_RSPDATA_MACADDRESS_H,      /*!< High part of Mac Address Field of KEYE DATA  In FDB Table Response Data Buffer */
1656     NETC_ETHSWT_FDBTABLE_RSPDATA_FID,               /*!< FID Field of KEYE DATA In FDB Table Response Data Buffer */
1657     NETC_ETHSWT_FDBTABLE_RSPDATA_PORTBITMAP,        /*!< Port_Bitmap Field of CFGE DATA In FDB Table Response Data Buffer */
1658     NETC_ETHSWT_FDBTABLE_RSPDATA_CFGECONFIG,        /*!< Config Field of CFGE DATA In FDB Table Response Data Buffer */
1659     NETC_ETHSWT_FDBTABLE_RSPDATA_ETEID,             /*!< ET_EID Field of CFGE DATA In FDB Table Response Data Buffer */
1660     NETC_ETHSWT_FDBTABLE_RSPDATA_ACTEDATA           /*!< ACTE Data Field In FDB Table Response Data Buffer */
1661 } Netc_EthSwt_Ip_FDBTable_ResponsDataIndexType;
1662 /* ---bits field and structure for FDB Table Request Data Buffer Format--- */
1663 
1664 /* index of Ingress Count Table Request Data Buffer Format */
1665 #define NETC_ETHSWT_IP_INGRESSCOUNTTABLE_REQFMT_ACTIONS_FIELD                        (0U)        /*!< first uint32 item of Ingress Count Table Request Data Buffer Format */
1666 #define NETC_ETHSWT_IP_INGRESSCOUNTTABLE_REQFMT_ACCESSKEY_FIELD                      (1U)        /*!< second uint32 item of Ingress Count Table Request Data Buffer Format */
1667 
1668 /*!
1669  * @brief Data fields in Ingress Count Table Request Data Buffer Format.
1670  */
1671 #define NETC_ETHSWT_IP_INGRESSCOUNTTABLE_REQFMT_ACTIONS_FIELD_STSEU_SHIFT            (0U)
1672 #define NETC_ETHSWT_IP_INGRESSCOUNTTABLE_REQFMT_ACTIONS_FIELD_STSEU_MASK             (0x00000001UL)
1673 #define NETC_ETHSWT_IP_INGRESSCOUNTTABLE_REQFMT_ACTIONS_FIELD_STSEU(x)               (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_INGRESSCOUNTTABLE_REQFMT_ACTIONS_FIELD_STSEU_SHIFT)) & NETC_ETHSWT_IP_INGRESSCOUNTTABLE_REQFMT_ACTIONS_FIELD_STSEU_MASK)
1674 
1675 /* index of Egress Count Table Request Data Buffer Format */
1676 #define NETC_ETHSWT_IP_EGRESSCOUNTTABLE_REQFMT_ACTIONS_FIELD                        (0U)        /*!< first uint32 item of Egress Count Table Request Data Buffer Format */
1677 #define NETC_ETHSWT_IP_EGRESSCOUNTTABLE_REQFMT_ACCESSKEY_FIELD                      (1U)        /*!< second uint32 item of Egress Count Table Request Data Buffer Format */
1678 
1679 /*!
1680  * @brief Data fields in Egress Count Table Request Data Buffer Format.
1681  */
1682 #define NETC_ETHSWT_IP_EGRESSCOUNTTABLE_REQFMT_ACTIONS_FIELD_STSEU_SHIFT            (0U)
1683 #define NETC_ETHSWT_IP_EGRESSCOUNTTABLE_REQFMT_ACTIONS_FIELD_STSEU_MASK             (0x00000001UL)
1684 #define NETC_ETHSWT_IP_EGRESSCOUNTTABLE_REQFMT_ACTIONS_FIELD_STSEU(x)               (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_EGRESSCOUNTTABLE_REQFMT_ACTIONS_FIELD_STSEU_SHIFT)) & NETC_ETHSWT_IP_EGRESSCOUNTTABLE_REQFMT_ACTIONS_FIELD_STSEU_MASK)
1685 
1686 /* index of data fields in FDB Table Response Action Buffer Format, ACT_FLAG */
1687 #define NETC_ETHSWT_IP_FDBTABLE_REPFMT_ACTE_DATA_FIELD_ACT_FLAG_INACTIVE_FIELD                    (0U)        /*!< FDB table entry was not active during this time period */
1688 #define NETC_ETHSWT_IP_FDBTABLE_REPFMT_ACTE_DATA_FIELD_ACT_FLAG_ACTIVE_FIELD                      (1U)        /*!< FDB table entry was active during this time period */
1689 
1690 /*!
1691  * @brief Data fields in FDB Table Response Action Buffer Format, ACT_FLAG.
1692  */
1693 #define NETC_ETHSWT_IP_FDBTABLE_REPFMT_ACTE_DATA_FIELD_ACT_FLAG_SHIFT            (7U)
1694 #define NETC_ETHSWT_IP_FDBTABLE_REPFMT_ACTE_DATA_FIELD_ACT_FLAG_MASK             (0x00000080UL)
1695 #define NETC_ETHSWT_IP_FDBTABLE_REPFMT_ACTE_DATA_FIELD_ACT_FLAG(x)               (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_EGRESSCOUNTTABLE_REQFMT_ACTIONS_FIELD_STSEU_SHIFT)) & NETC_ETHSWT_IP_EGRESSCOUNTTABLE_REQFMT_ACTIONS_FIELD_STSEU_MASK)
1696 
1697 /*!
1698  * @brief Data fields in FDB Table Response Action Buffer Format, ACT_CNT.
1699  */
1700 #define NETC_ETHSWT_IP_FDBTABLE_REPFMT_ACTE_DATA_FIELD_ACT_CNT_SHIFT            (0U)
1701 #define NETC_ETHSWT_IP_FDBTABLE_REPFMT_ACTE_DATA_FIELD_ACT_CNT_MASK             (0x0000007FUL)
1702 #define NETC_ETHSWT_IP_FDBTABLE_REPFMT_ACTE_DATA_FIELD_ACT_CNT(x)               (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_EGRESSCOUNTTABLE_REQFMT_ACTIONS_FIELD_STSEU_SHIFT)) & NETC_ETHSWT_IP_EGRESSCOUNTTABLE_REQFMT_ACTIONS_FIELD_STSEU_MASK)
1703 
1704 /*!
1705  * @brief Egress Count Table update actions data type enumeration. Netc_EthSwt_Ip_ECTableUpdateActionsDataType
1706  */
1707 typedef enum {
1708     NETC_ETHSWT_EGRESSCOUNTTABLE_NO_UPDATE_STATISTICS_ELEMENT = 0U,                 /*!< No update performed to the Statistics Element  */
1709     NETC_ETHSWT_EGRESSCOUNTTABLE_RESET_STATISTICS_ELEMENT                           /*!< All counters within the Statistics Element are reset  */
1710 } Netc_EthSwt_Ip_ECTableUpdateActionsDataType;
1711 
1712 typedef enum {
1713     NETC_ETHSWT_INGRESSCOUNTTABLE_NO_UPDATE_STATISTICS_ELEMENT = 0U,                 /*!< No update performed to the Statistics Element  */
1714     NETC_ETHSWT_INGRESSCOUNTTABLE_RESET_STATISTICS_ELEMENT                           /*!< All counters within the Statistics Element are reset  */
1715 } Netc_EthSwt_Ip_ICTableUpdateActionsDataType;
1716 
1717 /*!
1718  * @brief Statistics data of Egress Count Table in response data buffer. Netc_EthSwt_Ip_ECTableStatisticsDataType
1719  * @implements Netc_EthSwt_Ip_ECTableStatisticsDataType_struct
1720  */
1721 typedef struct {
1722     uint64 EnqueuedFrmCnt;       /*!< Enqueued Frame Count data, the number of frames enqueued on egress class queues */
1723     uint64 RejectedFrmCnt;       /*!< Rejected Frame Count data, he number of frames rejected in egress class queues, due to tail drop */
1724 } Netc_EthSwt_Ip_ECTableStatisticsDataType;
1725 
1726 /*!
1727  * @brief Egress Count Table response data type enumeration. Netc_EthSwt_Ip_EgressCountTable_RspDataIndexType
1728  */
1729 typedef enum {
1730     NETC_ETHSWT_ECTABLE_RSPDATA_ENTRYID = 0x0U,     /*!< Entry Id Field In Egress Count Table Response Data Buffer */
1731     NETC_ETHSWT_ECTABLE_RSPDATA_ENQFRMCNT_L,        /*!< Lower 32bits of Enqueued Frame Count Field In Egress Count Table Response Data Buffer */
1732     NETC_ETHSWT_ECTABLE_RSPDATA_ENQFRMCNT_H,        /*!< Higher 32bits of Enqueued Frame Count Field In Egress Count Table Response Data Buffer */
1733     NETC_ETHSWT_ECTABLE_RSPDATA_REJFRMCNT_L,        /*!< Lower 32bits of Rejected Frame Count Field In Egress Count Table Response Data Buffer */
1734     NETC_ETHSWT_ECTABLE_RSPDATA_REJFRMCNT_H         /*!< Higher 32bits of Rejected Frame Count Field In Egress Count Table Response Data Buffer */
1735 } Netc_EthSwt_Ip_EgressCountTable_RspDataIndexType;
1736 
1737 /*!
1738  * @brief EFM_DATA_LEN field in Egress Treatment Table CFGE_DATA format.
1739  */
1740 #define NETC_ETHSWT_IP_ETTABLE_CFGE_FRM_MODIFICATION_DATA_LEN_SHIFT     (16U)
1741 #define NETC_ETHSWT_IP_ETTABLE_CFGE_FRM_MODIFICATION_DATA_LEN_MASK      (0x07FF0000UL)
1742 #define NETC_ETHSWT_IP_ETTABLE_CFGE_FRM_MODIFICATION_DATA_LEN(x)        (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_ETTABLE_CFGE_FRM_MODIFICATION_DATA_LEN_SHIFT)) & NETC_ETHSWT_IP_ETTABLE_CFGE_FRM_MODIFICATION_DATA_LEN_MASK)
1743 
1744 /*!
1745  * @brief EFM_LEN_CHANGE field in Egress Treatment Table CFGE_DATA format.
1746  */
1747 #define NETC_ETHSWT_IP_ETTABLE_CFGE_FRM_MODIFICATION_LEN_CHANGE_SHIFT   (9U)
1748 #define NETC_ETHSWT_IP_ETTABLE_CFGE_FRM_MODIFICATION_LEN_CHANGE_MASK    (0x0000FE00UL)
1749 #define NETC_ETHSWT_IP_ETTABLE_CFGE_FRM_MODIFICATION_LEN_CHANGE(x)      (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_ETTABLE_CFGE_FRM_MODIFICATION_LEN_CHANGE_SHIFT)) & NETC_ETHSWT_IP_ETTABLE_CFGE_FRM_MODIFICATION_LEN_CHANGE_MASK)
1750 
1751 /*!
1752  * @brief ECA field in Egress Treatment Table CFGE_DATA format.
1753  */
1754 #define NETC_ETHSWT_IP_ETTABLE_CFGE_EGRESS_COUNTER_ACTION_SHIFT         (6U)
1755 #define NETC_ETHSWT_IP_ETTABLE_CFGE_EGRESS_COUNTER_ACTION_MASK          (0x000001C0UL)
1756 #define NETC_ETHSWT_IP_ETTABLE_CFGE_EGRESS_COUNTER_ACTION(x)            (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_ETTABLE_CFGE_EGRESS_COUNTER_ACTION_SHIFT)) & NETC_ETHSWT_IP_ETTABLE_CFGE_EGRESS_COUNTER_ACTION_MASK)
1757 
1758 /*!
1759  * @brief ESQA field in Egress Treatment Table CFGE_DATA format.
1760  */
1761 #define NETC_ETHSWT_IP_ETTABLE_CFGE_EGRESS_SEQUENCE_ACTION_SHIFT        (4U)
1762 #define NETC_ETHSWT_IP_ETTABLE_CFGE_EGRESS_SEQUENCE_ACTION_MASK         (0x00000030UL)
1763 #define NETC_ETHSWT_IP_ETTABLE_CFGE_EGRESS_SEQUENCE_ACTION(x)           (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_ETTABLE_CFGE_EGRESS_SEQUENCE_ACTION_SHIFT)) & NETC_ETHSWT_IP_ETTABLE_CFGE_EGRESS_SEQUENCE_ACTION_MASK)
1764 
1765 /*!
1766  * @brief EFM_MODE field in Egress Treatment Table CFGE_DATA format.
1767  */
1768 #define NETC_ETHSWT_IP_ETTABLE_CFGE_FRM_MODIFICATION_MODE_SHIFT         (0U)
1769 #define NETC_ETHSWT_IP_ETTABLE_CFGE_FRM_MODIFICATION_MODE_MASK          (0x00000003UL)
1770 #define NETC_ETHSWT_IP_ETTABLE_CFGE_FRM_MODIFICATION_MODE(x)            (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_ETTABLE_CFGE_FRM_MODIFICATION_MODE_SHIFT)) & NETC_ETHSWT_IP_ETTABLE_CFGE_FRM_MODIFICATION_MODE_MASK)
1771 
1772 /*!
1773  * @brief Egress Treatment Table egress counter action data type definitions.
1774  */
1775 typedef uint32 Netc_EthSwt_Ip_EgressTreatmentTableCounterActionType;
1776 #define NETC_ETHSWT_EGRESSTREATMENTTABLE_NOT_INCREMENT_EGRESSFRMCOUNTER         (0x0U)   /*!< Do not increment egress frame counter  */
1777 #define NETC_ETHSWT_EGRESSTREATMENTTABLE_INCREMENT_EGRESSFRMCOUNTER             (0x1U)   /*!< Increment egress frame counter  */
1778 
1779 /*!
1780  * @brief Egress Treatment Table egress sequence actions data type definitions.
1781  */
1782 typedef uint32 Netc_EthSwt_Ip_EgressTreatmentTableSequenceActionType;
1783 #define NETC_ETHSWT_EGRESSTREATMENTTABLE_NO_SEQUENCE_ACTION_REQUIRED            (0x0U)   /*!< No Sequence Action required  */
1784 #define NETC_ETHSWT_EGRESSTREATMENTTABLE_SEQUENCE_RECOVERY_ACTION               (0x2U)   /*!< Sequence Recovery action  */
1785 
1786 /*!
1787  * @brief Egress Treatment Table egress frame modification mode data type definitions.
1788  */
1789 typedef uint32 Netc_EthSwt_Ip_EgressTreatmentTableFrmModificationModeType;
1790 #define NETC_ETHSWT_EGRESSTREATMENTTABLE_DEFAULT_FRM_MODIFICATION_MODE          (0x0U)    /*!< Normal/Default mode  */
1791 #define NETC_ETHSWT_EGRESSTREATMENTTABLE_L2ACTION_FRM_MODIFICATION_MODE         (0x1U)    /*!< When EFM_EID[L2_ACT]=1b  */
1792 #define NETC_ETHSWT_EGRESSTREATMENTTABLE_PAYLOADACTION_FRM_MODIFICATION_MODE    (0x2U)    /*!< When EFM_EID[PLD_ACT]=001b  */
1793 
1794 /*!
1795  * @brief Egress Treatment Table response data type enumeration. Netc_EthSwt_Ip_EgressTreatmentTable_RspDataIndexType
1796  */
1797 typedef enum {
1798     NETC_ETHSWT_IP_EGRESSTREATMENTTABLE_RSPFMT_ENTRYID_FIELD = 0U,                  /*!< first uint32 item of Egress Treatment Table Response Data Buffer Format */
1799     NETC_ETHSWT_IP_EGRESSTREATMENTTABLE_RSPFMT_CFGEDATA0,                           /*!< first item of CFGEDATA but second item of Egress Treatment Table Response Data Buffer Format */
1800     NETC_ETHSWT_IP_EGRESSTREATMENTTABLE_RSPFMT_CFGEDATA1,                           /*!< second item of CFGEDATA but third item of Egress Treatment Table Response Data Buffer Format */
1801     NETC_ETHSWT_IP_EGRESSTREATMENTTABLE_RSPFMT_CFGEDATA2,                           /*!< third item of CFGEDATA but forth item of Egress Treatment Table Response Data Buffer Format */
1802     NETC_ETHSWT_IP_EGRESSTREATMENTTABLE_RSPFMT_CFGEDATA3                            /*!< forth item of CFGEDATA but fifth item of Egress Treatment Table Response Data Buffer Format */
1803 } Netc_EthSwt_Ip_EgressTreatmentTable_RspDataIndexType;
1804 
1805 /*!
1806  * @brief defines Egress Treatment Table entries.
1807  * @implements Netc_EthSwt_Ip_EgressTreatmentEntryDataType_struct
1808  */
1809 typedef struct
1810 {
1811     uint32 EgressTreatmentEntryID;                                                  /*!< Egress Treatment Table Entry ID */
1812     uint32 EgressSeqActionsTargetEID;                                               /*!< Egress Sequence Actions Target Entry ID */
1813     uint32 EgressCountTableEID;                                                     /*!< Egress Count Table Entry ID */
1814     uint32 EgressFrmModificationEID;                                                /*!< Egress Frame Modification Entry ID */
1815     uint16 EgressFrmModificationDataLength;                                         /*!< Egress Frame Modification Data Length */
1816     uint8 EgressFrmModificationLengthChange;                                        /*!< Egress Frame Modification Length Change */
1817     Netc_EthSwt_Ip_EgressTreatmentTableCounterActionType EgressCounterAction;       /*!< Egress Counter Action */
1818     Netc_EthSwt_Ip_EgressTreatmentTableSequenceActionType EgressSequenceAction;     /*!< Egress Sequence Actions */
1819     Netc_EthSwt_Ip_EgressTreatmentTableFrmModificationModeType EgressFrmModificationMode;   /*!< Egress Frame Modification Mode */
1820 } Netc_EthSwt_Ip_EgressTreatmentEntryDataType;
1821 
1822 /*!
1823  * @brief DEST_MAC_ADDR (most significant portion) field in Frame Modification Table CFGE_DATA format.
1824  */
1825 #define NETC_ETHSWT_IP_FRMMODIFICATIONTABLE_CFGE_DEST_MAC_ADDR_H_SHIFT              (16U)
1826 #define NETC_ETHSWT_IP_FRMMODIFICATIONTABLE_CFGE_DEST_MAC_ADDR_H_MASK               (0xFFFF0000UL)
1827 #define NENETC_ETHSWT_IP_FRMMODIFICATIONTABLE_CFGE_DEST_MAC_ADDR_H(x)               (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_FRMMODIFICATIONTABLE_CFGE_DEST_MAC_ADDR_H_SHIFT)) & NETC_ETHSWT_IP_FRMMODIFICATIONTABLE_CFGE_DEST_MAC_ADDR_H_MASK)
1828 
1829 /*!
1830  * @brief SMAC_PORT field in Frame Modification Table CFGE_DATA format.
1831  */
1832 #define NETC_ETHSWT_IP_FRMMODIFICATIONTABLE_CFGE_SRC_MAC_ADDR_PORT_SHIFT   (11U)
1833 #define NETC_ETHSWT_IP_FRMMODIFICATIONTABLE_CFGE_SRC_MAC_ADDR_PORT_MASK    (0x0000F800UL)
1834 #define NETC_ETHSWT_IP_FRMMODIFICATIONTABLE_CFGE_SRC_MAC_ADDR_PORT(x)      (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_FRMMODIFICATIONTABLE_CFGE_SRC_MAC_ADDR_PORT_SHIFT)) & NETC_ETHSWT_IP_FRMMODIFICATIONTABLE_CFGE_SRC_MAC_ADDR_PORT_MASK)
1835 
1836 /*!
1837  * @brief SQT_ACT field in Frame Modification Table CFGE_DATA format.
1838  */
1839 #define NETC_ETHSWT_IP_FRMMODIFICATIONTABLE_CFGE_SEQUENCE_TAG_ACTION_SHIFT      (8U)
1840 #define NETC_ETHSWT_IP_FRMMODIFICATIONTABLE_CFGE_SEQUENCE_TAG_ACTION_MASK       (0x00000700UL)
1841 #define NETC_ETHSWT_IP_FRMMODIFICATIONTABLE_CFGE_SEQUENCE_TAG_ACTION(x)         (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_FRMMODIFICATIONTABLE_CFGE_SEQUENCE_TAG_ACTION_SHIFT)) & NETC_ETHSWT_IP_FRMMODIFICATIONTABLE_CFGE_SEQUENCE_TAG_ACTION_MASK)
1842 
1843 /*!
1844  * @brief OUTER_VID_ACT field in Frame Modification Table CFGE_DATA format.
1845  */
1846 #define NETC_ETHSWT_IP_FRMMODIFICATIONTABLE_CFGE_OUTER_VID_ACTION_SHIFT         (6U)
1847 #define NETC_ETHSWT_IP_FRMMODIFICATIONTABLE_CFGE_OUTER_VID_ACTION_MASK          (0x000000C0UL)
1848 #define NETC_ETHSWT_IP_FRMMODIFICATIONTABLE_CFGE_OUTER_VID_ACTION(x)            (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_FRMMODIFICATIONTABLE_CFGE_OUTER_VID_ACTION_SHIFT)) & NETC_ETHSWT_IP_FRMMODIFICATIONTABLE_CFGE_OUTER_VID_ACTION_MASK)
1849 
1850 /*!
1851  * @brief VLAN_HDR_ACT field in Frame Modification Table CFGE_DATA format.
1852  */
1853 #define NETC_ETHSWT_IP_FRMMODIFICATIONTABLE_CFGE_VLAN_HEADER_ACTION_SHIFT       (4U)
1854 #define NETC_ETHSWT_IP_FRMMODIFICATIONTABLE_CFGE_VLAN_HEADER_ACTION_MASK        (0x00000030UL)
1855 #define NETC_ETHSWT_IP_FRMMODIFICATIONTABLE_CFGE_VLAN_HEADER_ACTION(x)          (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_FRMMODIFICATIONTABLE_CFGE_VLAN_HEADER_ACTION_SHIFT)) & NETC_ETHSWT_IP_FRMMODIFICATIONTABLE_CFGE_VLAN_HEADER_ACTION_MASK)
1856 
1857 /*!
1858  * @brief MAC_HDR_ACT field in Frame Modification Table CFGE_DATA format.
1859  */
1860 #define NETC_ETHSWT_IP_FRMMODIFICATIONTABLE_CFGE_MAC_HEADER_ACTION_SHIFT        (1U)
1861 #define NETC_ETHSWT_IP_FRMMODIFICATIONTABLE_CFGE_MAC_HEADER_ACTION_MASK         (0x0000000EUL)
1862 #define NETC_ETHSWT_IP_FRMMODIFICATIONTABLE_CFGE_MAC_HEADER_ACTION(x)           (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_FRMMODIFICATIONTABLE_CFGE_MAC_HEADER_ACTION_SHIFT)) & NETC_ETHSWT_IP_FRMMODIFICATIONTABLE_CFGE_MAC_HEADER_ACTION_MASK)
1863 
1864 /*!
1865  * @brief L2_ACT field in Frame Modification Table CFGE_DATA format.
1866  */
1867 #define NETC_ETHSWT_IP_FRMMODIFICATIONTABLE_CFGE_LAYER2_ACTION_SHIFT            (0U)
1868 #define NETC_ETHSWT_IP_FRMMODIFICATIONTABLE_CFGE_LAYER2_ACTION_MASK             (0x00000001UL)
1869 #define NETC_ETHSWT_IP_FRMMODIFICATIONTABLE_CFGE_LAYER2_ACTION(x)               (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_FRMMODIFICATIONTABLE_CFGE_LAYER2_ACTION_SHIFT)) & NETC_ETHSWT_IP_FRMMODIFICATIONTABLE_CFGE_LAYER2_ACTION_MASK)
1870 
1871 /*!
1872  * @brief PLD_ACT field in Frame Modification Table CFGE_DATA format.
1873  */
1874 #define NETC_ETHSWT_IP_FRMMODIFICATIONTABLE_CFGE_PAYLOAD_ACTION_SHIFT           (24U)
1875 #define NETC_ETHSWT_IP_FRMMODIFICATIONTABLE_CFGE_PAYLOAD_ACTION_MASK            (0x07000000UL)
1876 #define NETC_ETHSWT_IP_FRMMODIFICATIONTABLE_CFGE_PAYLOAD_ACTION(x)              (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_FRMMODIFICATIONTABLE_CFGE_PAYLOAD_ACTION_SHIFT)) & NETC_ETHSWT_IP_FRMMODIFICATIONTABLE_CFGE_PAYLOAD_ACTION_MASK)
1877 
1878 /*!
1879  * @brief OUTER_DEI_ACT field in Frame Modification Table CFGE_DATA format.
1880  */
1881 #define NETC_ETHSWT_IP_FRMMODIFICATIONTABLE_CFGE_OUTER_DEI_ACTION_SHIFT          (22U)
1882 #define NETC_ETHSWT_IP_FRMMODIFICATIONTABLE_CFGE_OUTER_DEI_ACTION_MASK           (0x00C00000UL)
1883 #define NETC_ETHSWT_IP_FRMMODIFICATIONTABLE_CFGE_OUTER_DEI_ACTION(x)             (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_FRMMODIFICATIONTABLE_CFGE_OUTER_DEI_ACTION_SHIFT)) & NETC_ETHSWT_IP_FRMMODIFICATIONTABLE_CFGE_OUTER_DEI_ACTION_MASK)
1884 
1885 /*!
1886  * @brief OUTER_PCP_ACT field in Frame Modification Table CFGE_DATA format.
1887  */
1888 #define NETC_ETHSWT_IP_FRMMODIFICATIONTABLE_CFGE_OUTER_PCP_ACTION_SHIFT          (19U)
1889 #define NETC_ETHSWT_IP_FRMMODIFICATIONTABLE_CFGE_OUTER_PCP_ACTION_MASK           (0x00380000UL)
1890 #define NETC_ETHSWT_IP_FRMMODIFICATIONTABLE_CFGE_OUTER_PCP_ACTION(x)             (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_FRMMODIFICATIONTABLE_CFGE_OUTER_PCP_ACTION_SHIFT)) & NETC_ETHSWT_IP_FRMMODIFICATIONTABLE_CFGE_OUTER_PCP_ACTION_MASK)
1891 
1892 /*!
1893  * @brief OUTER_TPID_ACT field in Frame Modification Table CFGE_DATA format.
1894  */
1895 #define NETC_ETHSWT_IP_FRMMODIFICATIONTABLE_CFGE_OUTER_TPID_ACTION_SHIFT         (16U)
1896 #define NETC_ETHSWT_IP_FRMMODIFICATIONTABLE_CFGE_OUTER_TPID_ACTION_MASK          (0x00070000UL)
1897 #define NETC_ETHSWT_IP_FRMMODIFICATIONTABLE_CFGE_OUTER_TPID_ACTION(x)            (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_FRMMODIFICATIONTABLE_CFGE_OUTER_TPID_ACTION_SHIFT)) & NETC_ETHSWT_IP_FRMMODIFICATIONTABLE_CFGE_OUTER_TPID_ACTION_MASK)
1898 
1899 /*!
1900  * @brief OUTER_VLAN_DEI field in Frame Modification Table CFGE_DATA format.
1901  */
1902 #define NETC_ETHSWT_IP_FRMMODIFICATIONTABLE_CFGE_OUTER_VLAN_DEI_SHIFT            (15U)
1903 #define NETC_ETHSWT_IP_FRMMODIFICATIONTABLE_CFGE_OUTER_VLAN_DEI_MASK             (0x00008000UL)
1904 #define NETC_ETHSWT_IP_FRMMODIFICATIONTABLE_CFGE_OUTER_VLAN_DEI(x)               (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_FRMMODIFICATIONTABLE_CFGE_OUTER_VLAN_DEI_SHIFT)) & NETC_ETHSWT_IP_FRMMODIFICATIONTABLE_CFGE_OUTER_VLAN_DEI_MASK)
1905 
1906 /*!
1907  * @brief OUTER_VLAN_PCP field in Frame Modification Table CFGE_DATA format.
1908  */
1909 #define NETC_ETHSWT_IP_FRMMODIFICATIONTABLE_CFGE_OUTER_VLAN_PCP_SHIFT             (12U)
1910 #define NETC_ETHSWT_IP_FRMMODIFICATIONTABLE_CFGE_OUTER_VLAN_PCP_MASK              (0x00007000UL)
1911 #define NETC_ETHSWT_IP_FRMMODIFICATIONTABLE_CFGE_OUTER_VLAN_PCP(x)                (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_FRMMODIFICATIONTABLE_CFGE_OUTER_VLAN_PCP_SHIFT)) & NETC_ETHSWT_IP_FRMMODIFICATIONTABLE_CFGE_OUTER_VLAN_PCP_MASK)
1912 
1913 /*!
1914  * @brief OUTER_VLAN_VID field in Frame Modification Table CFGE_DATA format.
1915  */
1916 #define NETC_ETHSWT_IP_FRMMODIFICATIONTABLE_CFGE_OUTER_VLAN_VID_SHIFT              (0U)
1917 #define NETC_ETHSWT_IP_FRMMODIFICATIONTABLE_CFGE_OUTER_VLAN_VID_MASK               (0x00000FFFUL)
1918 #define NETC_ETHSWT_IP_FRMMODIFICATIONTABLE_CFGE_OUTER_VLAN_VID(x)                 (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_FRMMODIFICATIONTABLE_CFGE_OUTER_VLAN_VID_SHIFT)) & NETC_ETHSWT_IP_FRMMODIFICATIONTABLE_CFGE_OUTER_VLAN_VID_MASK)
1919 
1920 /*!
1921  * @brief PLD_OFFSET field in Frame Modification Table CFGE_DATA format.
1922  */
1923 #define NETC_ETHSWT_IP_FRMMODIFICATIONTABLE_CFGE_PAYLOAD_OFFSET_SHIFT               (0U)
1924 #define NETC_ETHSWT_IP_FRMMODIFICATIONTABLE_CFGE_PAYLOAD_OFFSET_MASK                (0x000000FFUL)
1925 #define NETC_ETHSWT_IP_FRMMODIFICATIONTABLE_CFGE_PAYLOAD_OFFSET(x)                  (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_FRMMODIFICATIONTABLE_CFGE_PAYLOAD_OFFSET_SHIFT)) & NETC_ETHSWT_IP_FRMMODIFICATIONTABLE_CFGE_PAYLOAD_OFFSET_MASK)
1926 
1927 /*!
1928  * @brief FMD_BYTES field in Frame Modification Table CFGE_DATA format.
1929  */
1930 #define NETC_ETHSWT_IP_FRMMODIFICATIONTABLE_CFGE_FRM_MODI_BYTES_SHIFT       (0U)
1931 #define NETC_ETHSWT_IP_FRMMODIFICATIONTABLE_CFGE_FRM_MODI_BYTES_MASK        (0x0000FFFFUL)
1932 #define NETC_ETHSWT_IP_FRMMODIFICATIONTABLE_CFGE_FRM_MODI_BYTES(x)          (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_FRMMODIFICATIONTABLE_CFGE_FRM_MODI_BYTES_SHIFT)) & NETC_ETHSWT_IP_FRMMODIFICATIONTABLE_CFGE_FRM_MODI_BYTES_MASK)
1933 
1934 /*!
1935  * @brief Frame Modification Table response data type enumeration. Netc_EthSwt_Ip_FrmModificationTable_RspDataIndexType
1936  */
1937 typedef enum {
1938     NETC_ETHSWT_IP_FRMMODIFICATIONTABLE_RSPFMT_ENTRYID_FIELD = 0U,                  /*!< first uint32 item of Frame modification Table Response Data Buffer Format */
1939     NETC_ETHSWT_IP_FRMMODIFICATIONTABLE_RSPFMT_CFGEDATA0,                           /*!< first item of CFGEDATA but second item of Frame Modification Table Response Data Buffer Format */
1940     NETC_ETHSWT_IP_FRMMODIFICATIONTABLE_RSPFMT_CFGEDATA1,                           /*!< second item of CFGEDATA but third item of Frame Modification Table Response Data Buffer Format */
1941     NETC_ETHSWT_IP_FRMMODIFICATIONTABLE_RSPFMT_CFGEDATA2,                           /*!< third item of CFGEDATA but forth item of Frame Modification Table Response Data Buffer Format */
1942     NETC_ETHSWT_IP_FRMMODIFICATIONTABLE_RSPFMT_CFGEDATA3,                           /*!< forth item of CFGEDATA but fifth item of Frame Modification Table Response Data Buffer Format */
1943     NETC_ETHSWT_IP_FRMMODIFICATIONTABLE_RSPFMT_CFGEDATA4,                           /*!< fifth item of CFGEDATA but sixth item of Frame Modification Table Response Data Buffer Format */
1944     NETC_ETHSWT_IP_FRMMODIFICATIONTABLE_RSPFMT_CFGEDATA5                            /*!< sixth item of CFGEDATA but seventh item of Frame Modification Table Response Data Buffer Format */
1945 } Netc_EthSwt_Ip_FrmModificationTable_RspDataIndexType;
1946 
1947 /*!
1948  * @brief defines Frame Modification Table entries.
1949  * @implements Netc_EthSwt_Ip_FrmModificationEntryDataType_struct
1950  */
1951 typedef struct
1952 {
1953     uint32 FrmModificationEntryID;                    /*!< Frame Modification Table Entry ID */
1954     uint32 FrmModificationDataEntryID;                /*!< Frame Modification Data Table Entry ID */
1955     uint16 FrmModificationDataBytes;                  /*!< Frame Modification Data Bytes */
1956     uint8 DestMacAddr[6U];                            /*!< Destination Mac Address, big-endian order */
1957     uint8 SrcMacAddrRegisterPort;                     /*!< Source Mace Address Register Port */
1958     uint8 SequenceTagAction;                          /*!< Sequence Tag Action */
1959     uint8 OuterVidActions;                            /*!< Outer VID Actions */
1960     uint8 L2HeaderVlanActions;                        /*!< Layer 2 VLAN Actions */
1961     uint8 L2HeaderMacActions;                         /*!< Layer 2 Header Mac Actions */
1962     uint8 L2Actions;                                  /*!< Layer 2 Actions */
1963     uint8 PayloadActions;                             /*!< Payload Actions */
1964     uint8 OuterDeiAction;                             /*!< Outer DEI Action */
1965     uint8 OuterPcpAction;                             /*!< Outer PCP Action */
1966     uint8 OuterTpidAction;                            /*!< Outer TPID Action */
1967     uint8 OuterVlanDei;                               /*!< Outer VLAN DEI */
1968     uint8 OuterVlanPcp;                               /*!< Outer VLAN PCP */
1969     uint16 OuterVlanVID;                              /*!< Outer VLAN VID */
1970     uint8 PayloadOffset;                              /*!< Payload Offset */
1971 } Netc_EthSwt_Ip_FrmModificationEntryDataType;
1972 
1973 /*!
1974  * @brief Ingress Port Filter Table CFGE_DATA format enum type. Netc_EthSwt_Ip_IngressPortFilterTableCFGEDataIndexType
1975  */
1976 typedef enum {
1977     NETC_ETHSWT_IP_INGRESSPORTFILTER_CFGE_CONFIG_FIELD = 54U,             /*!< CONFIG field includes IPV, DR, FLTFA etc in Ingress Port Filter Table CFGE_DATA Format */
1978     NETC_ETHSWT_IP_INGRESSPORTFILTER_CFGE_FLTATGT_FIELD = 55U             /*!< FLTA_TGT (Target For Selected Filter Action) field in Ingress Port Filter Table CFGE_DATA Format */
1979 } Netc_EthSwt_Ip_IngressPortFilterTableCFGEDataIndexType;
1980 
1981 /*!
1982  * @brief Ingress Port Filter table CFGE_DATA config field.
1983  */
1984 /* IPV field */
1985 #define NETC_ETHSWT_IP_IPFTABLE_CFGE_CONFIG_IPV_SHIFT             (0U)
1986 #define NETC_ETHSWT_IP_IPFTABLE_CFGE_CONFIG_IPV_MASK              (0x0000000FUL)
1987 #define NETC_ETHSWT_IP_IPFTABLE_CFGE_CONFIG_IPV(x)                (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_IPFTABLE_CFGE_CONFIG_IPV_SHIFT)) & NETC_ETHSWT_IP_IPFTABLE_CFGE_CONFIG_IPV_MASK)
1988 
1989 /* OIPV */
1990 #define NETC_ETHSWT_IP_IPFTABLE_CFGE_CONFIG_OIPV_SHIFT            (4U)
1991 #define NETC_ETHSWT_IP_IPFTABLE_CFGE_CONFIG_OIPV_MASK             (0x00000010UL)
1992 #define NETC_ETHSWT_IP_IPFTABLE_CFGE_CONFIG_OIPV(x)               (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_IPFTABLE_CFGE_CONFIG_OIPV_SHIFT)) & NETC_ETHSWT_IP_IPFTABLE_CFGE_CONFIG_OIPV_MASK)
1993 
1994 /* DR */
1995 #define NETC_ETHSWT_IP_IPFTABLE_CFGE_CONFIG_DR_SHIFT              (5U)
1996 #define NETC_ETHSWT_IP_IPFTABLE_CFGE_CONFIG_DR_MASK               (0x00000060UL)
1997 #define NETC_ETHSWT_IP_IPFTABLE_CFGE_CONFIG_DR(x)                 (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_IPFTABLE_CFGE_CONFIG_DR_SHIFT)) & NETC_ETHSWT_IP_IPFTABLE_CFGE_CONFIG_DR_MASK)
1998 
1999 /* ODR */
2000 #define NETC_ETHSWT_IP_IPFTABLE_CFGE_CONFIG_ODR_SHIFT             (7U)
2001 #define NETC_ETHSWT_IP_IPFTABLE_CFGE_CONFIG_ODR_MASK              (0x00000080UL)
2002 #define NETC_ETHSWT_IP_IPFTABLE_CFGE_CONFIG_ODR(x)                (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_IPFTABLE_CFGE_CONFIG_ODR_SHIFT)) & NETC_ETHSWT_IP_IPFTABLE_CFGE_CONFIG_ODR_MASK)
2003 
2004 /* FLTFA */
2005 #define NETC_ETHSWT_IP_IPFTABLE_CFGE_CONFIG_FLTFA_SHIFT            (8U)
2006 #define NETC_ETHSWT_IP_IPFTABLE_CFGE_CONFIG_FLTFA_MASK             (0x00000300UL)
2007 #define NETC_ETHSWT_IP_IPFTABLE_CFGE_CONFIG_FLTFA(x)               (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_IPFTABLE_CFGE_CONFIG_FLTFA_SHIFT)) & NETC_ETHSWT_IP_IPFTABLE_CFGE_CONFIG_FLTFA_MASK)
2008 
2009 /* IMIRE */
2010 #define NETC_ETHSWT_IP_IPFTABLE_CFGE_CONFIG_IMIRE_SHIFT            (11U)
2011 #define NETC_ETHSWT_IP_IPFTABLE_CFGE_CONFIG_IMIRE_MASK             (0x00000800UL)
2012 #define NETC_ETHSWT_IP_IPFTABLE_CFGE_CONFIG_IMIRE(x)               (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_IPFTABLE_CFGE_CONFIG_IMIRE_SHIFT)) & NETC_ETHSWT_IP_IPFTABLE_CFGE_CONFIG_IMIRE_MASK)
2013 
2014 /* WOLTE */
2015 #define NETC_ETHSWT_IP_IPFTABLE_CFGE_CONFIG_WOLTE_SHIFT            (12U)
2016 #define NETC_ETHSWT_IP_IPFTABLE_CFGE_CONFIG_WOLTE_MASK             (0x00001000UL)
2017 #define NETC_ETHSWT_IP_IPFTABLE_CFGE_CONFIG_WOLTE(x)               (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_IPFTABLE_CFGE_CONFIG_WOLTE_SHIFT)) & NETC_ETHSWT_IP_IPFTABLE_CFGE_CONFIG_WOLTE_MASK)
2018 
2019 /* FLTA */
2020 #define NETC_ETHSWT_IP_IPFTABLE_CFGE_CONFIG_FLTA_SHIFT              (13U)
2021 #define NETC_ETHSWT_IP_IPFTABLE_CFGE_CONFIG_FLTA_MASK               (0x00006000UL)
2022 #define NETC_ETHSWT_IP_IPFTABLE_CFGE_CONFIG_FLTA(x)                 (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_IPFTABLE_CFGE_CONFIG_FLTA_SHIFT)) & NETC_ETHSWT_IP_IPFTABLE_CFGE_CONFIG_FLTA_MASK)
2023 
2024 /* RPR */
2025 #define NETC_ETHSWT_IP_IPFTABLE_CFGE_CONFIG_RPR_SHIFT               (15U)
2026 #define NETC_ETHSWT_IP_IPFTABLE_CFGE_CONFIG_RPR_MASK                (0x00018000UL)
2027 #define NETC_ETHSWT_IP_IPFTABLE_CFGE_CONFIG_RPR(x)                  (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_IPFTABLE_CFGE_CONFIG_RPR_SHIFT)) & NETC_ETHSWT_IP_IPFTABLE_CFGE_CONFIG_RPR_MASK)
2028 
2029 /* CTD */
2030 #define NETC_ETHSWT_IP_IPFTABLE_CFGE_CONFIG_CTD_SHIFT               (17U)
2031 #define NETC_ETHSWT_IP_IPFTABLE_CFGE_CONFIG_CTD_MASK                (0x00020000UL)
2032 #define NETC_ETHSWT_IP_IPFTABLE_CFGE_CONFIG_CTD(x)                  (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_IPFTABLE_CFGE_CONFIG_CTD_SHIFT)) & NETC_ETHSWT_IP_IPFTABLE_CFGE_CONFIG_CTD_MASK)
2033 
2034 /* HR */
2035 #define NETC_ETHSWT_IP_IPFTABLE_CFGE_CONFIG_HR_SHIFT                (18U)
2036 #define NETC_ETHSWT_IP_IPFTABLE_CFGE_CONFIG_HR_MASK                 (0x003C0000UL)
2037 #define NETC_ETHSWT_IP_IPFTABLE_CFGE_CONFIG_HR(x)                   (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_IPFTABLE_CFGE_CONFIG_HR_SHIFT)) & NETC_ETHSWT_IP_IPFTABLE_CFGE_CONFIG_HR_MASK)
2038 
2039 /* TIMECAP */
2040 #define NETC_ETHSWT_IP_IPFTABLE_CFGE_CONFIG_TIMECAP_SHIFT           (22U)
2041 #define NETC_ETHSWT_IP_IPFTABLE_CFGE_CONFIG_TIMECAP_MASK            (0x00400000UL)
2042 #define NETC_ETHSWT_IP_IPFTABLE_CFGE_CONFIG_TIMECAP(x)              (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_IPFTABLE_CFGE_CONFIG_TIMECAP_SHIFT)) & NETC_ETHSWT_IP_IPFTABLE_CFGE_CONFIG_TIMECAP_MASK)
2043 
2044 /*!
2045  * @brief Ingress Port Filter table KEYE_DATA field.
2046  */
2047 /* DSCP field */
2048 #define NETC_ETHSWT_IP_IPFTABLE_KEYE_DATA_DIFFSCP_SHIFT               (0U)
2049 #define NETC_ETHSWT_IP_IPFTABLE_KEYE_DATA_DIFFSCP_MASK                (0x0000003FUL)
2050 #define NETC_ETHSWT_IP_IPFTABLE_KEYE_DATA_DIFFSCP(x)                  (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_IPFTABLE_KEYE_DATA_DIFFSCP_SHIFT)) & NETC_ETHSWT_IP_IPFTABLE_KEYE_DATA_DIFFSCP_MASK)
2051 
2052 /* DSCP Mask field */
2053 #define NETC_ETHSWT_IP_IPFTABLE_KEYE_DATA_DSCPMASK_SHIFT           (6U)
2054 #define NETC_ETHSWT_IP_IPFTABLE_KEYE_DATA_DSCPMASK_MASK            (0x00000FC0UL)
2055 #define NETC_ETHSWT_IP_IPFTABLE_KEYE_DATA_DSCPMASK(x)              (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_IPFTABLE_KEYE_DATA_DSCPMASK_SHIFT)) & NETC_ETHSWT_IP_IPFTABLE_KEYE_DATA_DSCPMASK_MASK)
2056 
2057 /* SRC_PORT field */
2058 #define NETC_ETHSWT_IP_IPFTABLE_KEYE_DATA_SRCPRTID_SHIFT             (16U)
2059 #define NETC_ETHSWT_IP_IPFTABLE_KEYE_DATA_SRCPRTID_MASK              (0x001F0000UL)
2060 #define NETC_ETHSWT_IP_IPFTABLE_KEYE_DATA_SRCPRTID(x)                (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_IPFTABLE_KEYE_DATA_SRCPRTID_SHIFT)) & NETC_ETHSWT_IP_IPFTABLE_KEYE_DATA_SRCPRTID_MASK)
2061 
2062 /* SRC_PORT Mask field */
2063 #define NETC_ETHSWT_IP_IPFTABLE_KEYE_DATA_SRCPORTMASK_SHIFT         (21U)
2064 #define NETC_ETHSWT_IP_IPFTABLE_KEYE_DATA_SRCPORTMASK_MASK          (0x03E00000UL)
2065 #define NETC_ETHSWT_IP_IPFTABLE_KEYE_DATA_SRCPORTMASK(x)            (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_IPFTABLE_KEYE_DATA_SRCPORTMASK_SHIFT)) & NETC_ETHSWT_IP_IPFTABLE_KEYE_DATA_SRCPORTMASK_MASK)
2066 
2067 /*!
2068  * @brief Ingress Port Filter table Request Data Buffer STSEU field.
2069  */
2070 #define NETC_ETHSWT_IP_IPFTABLE_REQFMT_ACTIONS_FIELD_STSEU_SHIFT    (1U)
2071 #define NETC_ETHSWT_IP_IPFTABLE_REQFMT_ACTIONS_FIELD_STSEU_MASK     (0x00000002UL)
2072 #define NETC_ETHSWT_IP_IPFTABLE_REQFMT_ACTIONS_FIELD_STSEU(x)       (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_IPFTABLE_REQFMT_ACTIONS_FIELD_STSEU_SHIFT)) & NETC_ETHSWT_IP_IPFTABLE_REQFMT_ACTIONS_FIELD_STSEU_MASK)
2073 
2074 /*!
2075  * @brief Filter Forwarding Action data type definitions for Ingress Port Filter Table.
2076  */
2077 typedef uint32 Netc_EthSwt_Ip_CfgeFilterForwardingActionDataType;
2078 #define NETC_ETHSWT_IP_INGRESSPORTFILTERTABLE_DISCARDFRAMES     (0x0U)           /*!< discard frames */
2079 #define NETC_ETHSWT_IP_INGRESSPORTFILTERTABLE_PERMITFRAMES      (0x1U)           /*!< permit frames */
2080 #define NETC_ETHSWT_IP_INGRESSPORTFILTERTABLE_REDIRECTFRAMES    (0x2U)           /*!< Redirect frame to switch management port without any frame modification */
2081 #define NETC_ETHSWT_IP_INGRESSPORTFILTERTABLE_COPYFRAMES        (0x3U)           /*!< Copy frame to switch management port without any frame modification */
2082 
2083 /*!
2084  * @brief Filter Action data type definitions for Ingress Port Filter Table.
2085  */
2086 typedef uint32 Netc_EthSwt_Ip_CfgeFilterActionDataType;
2087 #define NETC_ETHSWT_IP_INGRESSPORTFILTERTABLE_NOACTION                              (0x0U) /*!< no action */
2088 #define NETC_ETHSWT_IP_INGRESSPORTFILTERTABLE_RATEACTION                            (0x1U) /*!< Rate action with the Rate Policer Entry ID (RP_EID) set to the value configured in the FLTA_TGT field of this entry */
2089 #define NETC_ETHSWT_IP_INGRESSPORTFILTERTABLE_INGRESSSTREAMIDENTIFICATIONACTION     (0x2U) /*!< Ingress stream identification action where the Ingress Stream Entry ID (IS_EID) is set to the value configured in the FLTA_TGT field of this entry */
2090 #define NETC_ETHSWT_IP_INGRESSPORTFILTERTABLE_SETTINGL2FILTERINGSIBITMAP            (0x3U) /*!< valid on ENETC side. Setting a pre L2 filtering SI bitmap that will be used by the L2 filtering function to determine the final SI bitmap */
2091 
2092 /*!
2093  * @brief defines Ingress Port Filter Table CFGE_DATA type.
2094  */
2095 typedef struct
2096 {
2097     uint32 CfgeTargetForSelectedFilterAction;                                       /*!< FLTA_TGT filed in CFGE_DATA format */
2098     uint8 CfgeIpv;                                                                  /*!< IPV  (internal priority value) filed in CFGE_DATA format */
2099     uint8 CfgeDr;                                                                   /*!< DR (drop resilience) field in CFGE_DATA format */
2100     uint8 CfgeRelativePrecedentResolution;                                          /*!< RPR field in CFGE_DATA format */
2101     uint8 CfgeHostReason;                                                           /*!< HR field in CFGE_DATA format */
2102     boolean CfgeOverrideIpv;                                                        /*!< OIPV (override internal priority value)  field in CFGE_DATA format*/
2103     boolean CfgeOverrideDr;                                                         /*!< ODR (override drop resilience) field in CFGE_DATA format */
2104     boolean CfgeIngressMirroringEnable;                                             /*!< IMIRE field in CFGE_DATA format */
2105     boolean CfgeWakeOnLanTriggerEnable;                                             /*!< WOLTE filed in CFGE_DATA format */
2106     boolean CfgeCutThroughDisable;                                                  /*!< CTD field in CFGE_DATA format */
2107     boolean CfgeTimestampCaptureEable;                                              /*!< TIMECAPE field in CFGE_DATA format */
2108     Netc_EthSwt_Ip_CfgeFilterForwardingActionDataType CfgeFilterForwardingAction;   /*!< FLTFA field in CFGE_DATA format */
2109     Netc_EthSwt_Ip_CfgeFilterActionDataType CfgeFilterAction;                       /*!< FLTA field in CFGE_DATA format */
2110 } Netc_EthSwt_Ip_IngressPortFilterCfgeDataType;
2111 
2112 /*!
2113  * @brief defines Ingress Port Filter Table KEYE_DATA type.
2114  */
2115 typedef struct
2116 {
2117     uint16 KeyePrecedence;                                      /*!< Precedence field */
2118     uint16 keyeFrmAttributeFlags;                               /*!< Frame Attribute Flags field */
2119     uint16 KeyeFrmAttributeFlagsMask;                           /*!< Frame Attribute Flags Mask field */
2120     uint8 KeyeDifferentiatedServicesCodePoint;                  /*!< Differentiated Services Code Point field */
2121     uint8 KeyeDifferentiatedServicesCodePointMask;              /*!< Differentiated Services Code Point Mask field */
2122     uint8 KeyeSourcePortID;                                     /*!< Source Port ID field */
2123     uint8 KeyeSourcePortIDMask;                                 /*!< Source Port ID Mask field */
2124     uint16 KeyeOuterVLANTagControlInformation;                  /*!< Outer VLAN Tag Control Information field */
2125     uint16 KeyeOuterVLANTagControlInformationMask;              /*!< Outer VLAN Tag Control Information Mask field */
2126     uint8 KeyeDstMacAddr[6U];                                   /*!< Destination MAC Address field */
2127     uint8 KeyeDstMacAddrMask[6U];                               /*!< Destination MAC Address Mask field */
2128     uint8 KeyeSrcMacAddr[6U];                                   /*!< Source MAC Address field */
2129     uint8 KeyeSrcMacAddrMask[6U];                               /*!< Source MAC Address Mask field */
2130     uint16 KeyeInnerVLANTagControlInformation;                  /*!< Inner VLAN Tag Control Information field */
2131     uint16 KeyeInnerVLANTagControlInformationMask;              /*!< Inner VLAN Tag Control Information Mask field */
2132     uint16 KeyeEtherType;                                       /*!< EtherType field */
2133     uint16 KeyeEtherTypeMask;                                   /*!< EtherType Mask field */
2134     uint8 KeyeIPProtocol;                                       /*!< IP Protocol field */
2135     uint8 KeyeIPProtocolMask;                                   /*!< IP Protocol Mask field */
2136     uint32 KeyeIPSourceAddress[4U];                             /*!< IP Source Address field */
2137     uint32 KeyeIPSourceAddressMask[4U];                         /*!< IP Source Address Mask field */
2138     uint16 KeyeL4SourcePort;                                    /*!< L4 Source Port field */
2139     uint16 KeyeL4SourcePortMask;                                /*!< L4 Source Port Mask field */
2140     uint32 KeyeIPDestinationAddress[4U];                        /*!< IP Destination Address field */
2141     uint32 KeyeIPDestinationAddressMask[4U];                    /*!< IP Destination Address Mask field */
2142     uint16 KeyeL4DestinationPort;                               /*!< L4 Destination Port field */
2143     uint16 KeyeL4DestinationPortMask;                           /*!< L4 Destination Port Mask field */
2144     uint8 KeyePayloadBytes[24U];                                /*!< Payload Bytes field */
2145     uint8 KeyePayloadBytesMask[24U];                            /*!< Payload Bytes Mask field */
2146 } Netc_EthSwt_Ip_IngressPortFilterKeyeDataType;
2147 
2148 /*!
2149  * @brief defines Ingress Port Filter Table entries.
2150  * @implements Netc_EthSwt_Ip_IngressPortFilterEntryDataType_struct
2151  */
2152 typedef struct
2153 {
2154     uint32 IngressPortFilterEntryID;                                            /*!< Ingress Port Filter Table Entry ID */
2155     Netc_EthSwt_Ip_IngressPortFilterCfgeDataType IngressPortFilterCfgeData;     /*!< Ingress Port Filter Table CFGE_DATA format */
2156     Netc_EthSwt_Ip_IngressPortFilterKeyeDataType IngressPortFilterkeyeData;     /*!< Ingress Port Filter Table KEYE_DATA format */
2157     uint64 IngressPortFilterMatchCount;                                         /*!< Ingress Port Filter Table Match Count Data */
2158 } Netc_EthSwt_Ip_IngressPortFilterEntryDataType;
2159 
2160 /*!
2161  * @brief enum type for administrative gate operation type (as per IEEE 802.1Q-2018) field for gate control list entry.
2162  */
2163 typedef enum {
2164     ETHSWT_HOST_REQUEST_UNCHANGED,          /*!< 0x0: SetGateStates. HoldRequest is unchanged. */
2165     ETHSWT_HOST_REQUEST_HOLD,               /*!< 0x1: Set-And-Hold-MAC. HoldRequest is set to value hold (1). */
2166     ETHSWT_HOST_REQUEST_RELEASE             /*!< 0x2: Set-And-Release-MAC. HoldRequest is set to value release (0). */
2167 } Netc_EthSwt_Ip_AdminGateOperationType;
2168 
2169 /*!
2170  * @brief enum type for Administrative Traffic Class Gate States.
2171  */
2172 typedef enum {
2173     ETHSWT_TRAFFIC_CLASS_GATE_CLOSED,       /*!< 0x0: Gate closed. */
2174     ETHSWT_TRAFFIC_CLASS_GATE_OPEN          /*!< 0x1: Gate open. */
2175 } Netc_EthSwt_Ip_AdminTrafficClassGateStateType;
2176 
2177 /*!
2178  * @brief Time Gate Scheduling Table CFGE_DATA field.
2179  */
2180 /* Administrative Traffic Class Gate States for Gate Entry */
2181 #define NETC_ETHSWT_IP_TGSTABLE_CFGE_ADMIN_TC_STATES_SHIFT          (0U)
2182 #define NETC_ETHSWT_IP_TGSTABLE_CFGE_ADMIN_TC_STATES_MASK           (0x000000FFUL)
2183 #define NETC_ETHSWT_IP_TGSTABLE_CFGE_ADMIN_TC_STATES(x)             (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_TGSTABLE_CFGE_ADMIN_TC_STATES_SHIFT)) & NETC_ETHSWT_IP_TGSTABLE_CFGE_ADMIN_TC_STATES_MASK)
2184 
2185 /* Administrative gate operation type (as per IEEE 802.1Q-2018) field for gate control list entry */
2186 #define NETC_ETHSWT_IP_TGSTABLE_CFGE_ADMIN_HR_CB_SHIFT              (16U)
2187 #define NETC_ETHSWT_IP_TGSTABLE_CFGE_ADMIN_HR_CB_MASK               (0x000F0000UL)
2188 #define NETC_ETHSWT_IP_TGSTABLE_CFGE_ADMIN_HR_CB(x)                 (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_TGSTABLE_CFGE_ADMIN_HR_CB_SHIFT)) & NETC_ETHSWT_IP_TGSTABLE_CFGE_ADMIN_HR_CB_MASK)
2189 
2190 /*!
2191  * @brief defines Gate Entry Admin Control List Data type for Time Gate Scheduling Table.
2192  */
2193 typedef struct
2194 {
2195     uint32 AdminTimeInterval;                                           /*!< Administrative Time Interval for Gate Entry */
2196     uint8 AdminTrafficClassGateStates;                                  /*!< Administrative Traffic Class Gate States for Gate Entry */
2197     Netc_EthSwt_Ip_AdminGateOperationType AdminGateOperationType;       /*!< Administrative gate operation type (as per IEEE 802.1Q-2018) field for gate control list entry */
2198 } Netc_EthSwt_Ip_GateEntryAdminControlListDataType;
2199 
2200 /*!
2201  * @brief defines Time Gate Scheduling Table entries.
2202  * @implements Netc_EthSwt_Ip_TimeGateSchedulingEntryDataType_struct
2203  */
2204 typedef struct
2205 {
2206     uint32 TimeGateSchedulingTable_EID;                 /*!< Time Gate Scheduling Table Entry ID, which is actually the port index of switch */
2207     uint64 AdminBaseTime;                               /*!< Administrative Base Time */
2208     uint32 AdminCycleTime;                              /*!< Administrative Cycle Time */
2209     uint32 AdminCycleTimeExt;                           /*!< Administrative Cycle Time Extension */
2210     uint16 AdminControlListLength;                      /*!< Administrative Control List Length */
2211     Netc_EthSwt_Ip_GateEntryAdminControlListDataType GateEntryAdminControlListData[NETC_ETHSWT_MAX_NUMBER_OF_GATECONTROLLIST_ENTRIES];
2212 } Netc_EthSwt_Ip_TimeGateSchedulingEntryDataType;
2213 
2214 /**
2215 * @brief  MAC learning optoin type enumeration.
2216 * @implements Netc_EthSwt_Ip_MacLearningOptionType_enum
2217 */
2218 typedef enum {
2219     ETHSWT_MACLEARNINGOPTION_HWDISABLED               = (uint8)0x1U, /*!< @brief If hardware learning disabled, the switch must not learn new MAC addresses */
2220     ETHSWT_MACLEARNINGOPTION_HWENABLED                = (uint8)0x2U, /*!< @brief If hardware learning enabled, the switch learns new MAC addresses */
2221     ETHSWT_MACLEARNINGOPTION_SWSECUREENABLED          = (uint8)0x3U, /*!< @brief If software learning secure enabled, A MAC learning lookup is performed into the FDB table.
2222                                                                 If there is no match, no attempt is made to add a new entry, and the frame is redirect to the switch management port.
2223                                                                 If there is match, and the entry's port number does not match frame ingress port number, the frame is redirected to the switch management port. */
2224     ETHSWT_MACLEARNINGOPTION_SWUNSECUREENABLED        = (uint8)0x4U, /*!< @brief If software learning unsecure enabled,  A MAC learning lookup is performed into the FDB table.
2225                                                                 If there is no match, no attempt is made to add a new entry, and a copy of the frame is sent to the switch management port.
2226                                                                 If there is match, and the entry's port number does not match frame ingress port number, the frame is copied to the switch management port.*/
2227     ETHSWT_MACLEARNINGOPTION_DISABLEDWITHSWVALIDATION = (uint8)0x5U  /*!< @brief if Disable MAC learning with SMAC validation. A MAC learning lookup is performed into the FDB table.
2228                                                                 If there is no match or there is a match but the ingress port is not a member of the FDB entry,
2229                                                                 the frame is discarded and counted against the bridge port discard count register (BPDCR) with discard reason BPDCRR0[MACLNFDR]. */
2230 } Netc_EthSwt_Ip_MacLearningOptionType;
2231 
2232 typedef enum{
2233     ETHSWT_NO_FDB_LOOKUP_FLOOD_FRAME                   = (uint8)0x1U, /**< @brief No FDB lookup is performed, the frame is flooded */
2234     ETHSWT_FDB_LOOKUP_FLOOD_FRAME                      = (uint8)0x2U, /**< @brief FDB lookup is performed, and if there is no match, the frame is flooded. */
2235     ETHSWT_FDB_LOOKUP_DISCARD_FRAME                    = (uint8)0x3U  /**< @brief FDB lookup is performed, and if there is no match, the frame is discarded */
2236 } Netc_EthSwt_Ip_MacForwardingOptionType;
2237 
2238 typedef enum{
2239     ETHSWT_EXTERNAL_REFERENCE_CLOCK                    = (uint8)0x0U,       /**< @brief external reference clock is selected for 1588 timer */
2240     ETHSWT_MODULE_REFERENCE_CLOCK                      = (uint8)0x1U,       /**< @brief module reference clock (NETC system clock) is selected for 1588 timer */
2241     ETHSWT_REFERENCE_CLOCK_DISABLED                    = (uint8)0x2U        /**< @brief No reference clock selected for 1588 timer, means the timer is disabled */
2242 } Netc_EthSwt_Ip_1588ClockSourceOptionType;
2243 
2244 /*!
2245  * @brief Port selection enumeration Netc_EthSwt_Ip_PortSelectionType_Class
2246  */
2247 typedef enum
2248 {
2249     NETC_ETHSWT_PORT2 = 2U,    /**< Pseudo port 2 */
2250     NETC_ETHSWT_PORT1 = 1U,    /**< Switch port 1 */
2251     NETC_ETHSWT_PORT0 = 0U     /**< Switch port 0 */
2252 } Netc_EthSwt_Ip_PortSelectionType;
2253 
2254 /*!
2255  * @brief XMII mode of port Netc_EthSwt_Ip_XmiiModeType_Enumeration
2256  */
2257 typedef enum
2258 {
2259     NETC_ETHSWT_MII_MODE            = 0U,    /**< MII interface mode */
2260     NETC_ETHSWT_RMII_MODE           = 1U,    /**< RMII interface mode */
2261     NETC_ETHSWT_RGMII_MODE          = 2U,    /**< RGMII interface mode */
2262     NETC_ETHSWT_SGMII_MODE          = 3U,    /**< SGMII interface mode */
2263 } Netc_EthSwt_Ip_XmiiModeType;
2264 
2265 /*!
2266  * @brief Link duplex.
2267  * Netc_EthSwt_Ip_PortDuplexType_Class
2268  */
2269 typedef enum
2270 {
2271     NETC_ETHSWT_PORT_FULL_DUPLEX = 1,  /**< full duplex mode */
2272     NETC_ETHSWT_PORT_HALF_DUPLEX  = 0,  /**< half duplex mode */
2273 } Netc_EthSwt_Ip_PortDuplexType;
2274 
2275 /*!
2276  * @brief Link speed.
2277  * Netc_EthSwt_Ip_PortSpeedType_Class
2278  */
2279 typedef enum
2280 {
2281     NETC_ETHSWT_PORT_SPEED_100_MBPS = 1,  /**< 100 Mbps */
2282     NETC_ETHSWT_PORT_SPEED_10_MBPS  = 0,  /**< 10 Mbps */
2283 } Netc_EthSwt_Ip_PortSpeedType;
2284 
2285 /*!
2286  * @brief Direction selection enumeration Netc_EthSwt_Ip_DirectionType_Class
2287  */
2288 typedef enum
2289 {
2290     NETC_ETHSWT_DIRECTION_INGRESS = 1U,    /**< Ingress direction */
2291     NETC_ETHSWT_DIRECTION_EGRESS  = 0U     /**< Egress direction */
2292 } Netc_EthSwt_Ip_DirectionType;
2293 
2294 /*!
2295  * @brief Mode of the port Netc_EthSwt_Ip_PortModeType_Class
2296  */
2297 typedef enum
2298 {
2299     NETC_ETHSWT_PORT_MODE_INGRESS = 4U,  /**< Port is enabled, ingress communication only */
2300     NETC_ETHSWT_PORT_MODE_EGRESS  = 3U,  /**< Port is enabled, egress communication only */
2301     NETC_ETHSWT_PORT_MODE_FULL    = 1U,  /**< Port is enabled, ingress and egress communication possible */
2302     NETC_ETHSWT_PORT_MODE_OFF     = 0U   /**< Port is off, no communication possible */
2303 } Netc_EthSwt_Ip_PortModeType;
2304 
2305 /*!
2306  * @brief Interrupt flags shifts Netc_EthSwt_Ip_IrqType_Class
2307  */
2308 typedef enum
2309 {
2310     NETC_ETHSWT_IRQ_CBTX            = 14U, /**< 100BASETX */
2311     NETC_ETHSWT_IRQ_SGMII4          = 13U, /**< SGMII 4 */
2312     NETC_ETHSWT_IRQ_SGMII3          = 12U, /**< SGMII 3 */
2313     NETC_ETHSWT_IRQ_SGMII2          = 11U, /**< SGMII 2 */
2314     NETC_ETHSWT_IRQ_SGMII1          = 10U, /**< SGMII 1 */
2315     NETC_ETHSWT_IRQ_CBT1_COMB       = 9U,  /**< 100BASE-T1 SubSystem Combined */
2316     NETC_ETHSWT_IRQ_CBT1_PHY6       = 8U,  /**< 100BASE-T1 SubSystem PHY # 6 */
2317     NETC_ETHSWT_IRQ_CBT1_PHY5       = 7U,  /**< 100BASE-T1 SubSystem PHY # 5 */
2318     NETC_ETHSWT_IRQ_CBT1_PHY4       = 6U,  /**< 100BASE-T1 SubSystem PHY # 4 */
2319     NETC_ETHSWT_IRQ_CBT1_PHY3       = 5U,  /**< 100BASE-T1 SubSystem PHY # 3 */
2320     NETC_ETHSWT_IRQ_CBT1_PHY2       = 4U,  /**< 100BASE-T1 SubSystem PHY # 2 */
2321     NETC_ETHSWT_IRQ_CBT1_PHY1       = 3U,  /**< 100BASE-T1 SubSystem PHY # 1 */
2322     NETC_ETHSWT_IRQ_CBT1_PHYSS      = 2U,  /**< 100BASE-T1 SubSystem PHY Common module */
2323     NETC_ETHSWT_IRQ_NETC_ETHSWTCORE1     = 1U,  /**< Ethernet Netc_EthSwt SubSystem Automotive Netc_EthSwt Interrupt 1 */
2324     NETC_ETHSWT_IRQ_NETC_ETHSWTCORE0     = 0U   /**< Ethernet Netc_EthSwt SubSystem Automotive Netc_EthSwt Interrupt 0 */
2325 } Netc_EthSwt_Ip_IrqType;
2326 
2327 /* ---bits field and structure for Vlan Filter Table Data Buffer Format--- */
2328 
2329 /* index of Vlan Filter Table Request Data Buffer Format */
2330 #define NETC_ETHSWT_IP_VLANFILTERTABLE_REQFMT_VID_FIELD                     (1U)        /*!< second uint32 item of Vlan Filter Table Request Data Buffer Format when ACCESS_METHOD = 0x1 (Key Element Match) */
2331 #define NETC_ETHSWT_IP_VLANFILTERTABLE_REQFMT_RESUMEENTRYID_FIELD           (1U)        /*!< second uint32 item of Vlan Filter Table Request Data Buffer Format when ACCESS_METHOD = 0x2 (Search) */
2332 
2333 typedef enum {
2334     NETC_ETHSWT_IP_SWITCHTABLE_REQFMT_ACTIONS_FIELD = 0U,           /*!< first uint32 item of Switch Tables Request Data Buffer Format */
2335     NETC_ETHSWT_IP_SWITCHTABLE_REQFMT_ENTRYID_FIELD,                /*!< second uint32 item of Switch Tables Request Data Buffer Format when ACCESS_METHOD = 0x0 (ENTRY_ID Match) */
2336     NETC_ETHSWT_IP_SWITCHTABLE_REQFMT_CFGEDATA0,                    /*!< first item of CFGEDATA but third item of Switch Tables Request Data Buffer Format */
2337     NETC_ETHSWT_IP_SWITCHTABLE_REQFMT_CFGEDATA1,                    /*!< second item of CFGEDATA but forth item of Switch Tables Request Data Buffer Format */
2338     NETC_ETHSWT_IP_SWITCHTABLE_REQFMT_CFGEDATA2,                    /*!< third item of CFGEDATA but fifth item of Switch Tables Request Data Buffer Format */
2339     NETC_ETHSWT_IP_SWITCHTABLE_REQFMT_CFGEDATA3,                    /*!< forth item of CFGEDATA but sixth item of Switch Tables Request Data Buffer Format */
2340     NETC_ETHSWT_IP_SWITCHTABLE_REQFMT_CFGEDATA4,                    /*!< fifth item of CFGEDATA but seventh item of Switch Tables Request Data Buffer Format */
2341     NETC_ETHSWT_IP_SWITCHTABLE_REQFMT_CFGEDATA5,                    /*!< sixth item of CFGEDATA but eighth item of Switch Tables Request Data Buffer Format */
2342     NETC_ETHSWT_IP_SWITCHTABLE_REQFMT_CFGEDATA6,                    /*!< seventh item of CFGEDATA but ninth item of Switch Tables Request Data Buffer Format */
2343     NETC_ETHSWT_IP_SWITCHTABLE_REQFMT_CFGEDATA7,
2344     NETC_ETHSWT_IP_SWITCHTABLE_REQFMT_CFGEDATA8,
2345     NETC_ETHSWT_IP_SWITCHTABLE_REQFMT_CFGEDATA9
2346 } Netc_EthSwt_Ip_SwitchTableRequestDataIndexType;
2347 
2348 /* bits field for Vlan Filter Table CFGE_DATA Format */
2349 /*!
2350  * @brief Vlan Filter Table Config Data STG_ID field.
2351  */
2352 #define NETC_ETHSWT_VLANFILTERTABLE_CFGEDATA_STG_ID_SHIFT                   (24U)
2353 /*!
2354  * @brief Vlan Filter Table Config Data STG_ID field mask.
2355  */
2356 #define NETC_ETHSWT_VLANFILTERTABLE_CFGEDATA_STG_ID_MASK                    (0x0F000000UL)
2357 /*!
2358  * @brief Vlan Filter Table Config Data STG_ID.
2359  */
2360 #define NETC_ETHSWT_VLANFILTERTABLE_CFGEDATA_STG_ID(x)                      (((uint32)(((uint32)(x)) << NETC_ETHSWT_VLANFILTERTABLE_CFGEDATA_STG_ID_SHIFT)) & NETC_ETHSWT_VLANFILTERTABLE_CFGEDATA_STG_ID_MASK)
2361 
2362 /*!
2363  * @brief Vlan Filter Table Config Data PORT membership field.
2364  */
2365 #define NETC_ETHSWT_VLANFILTERTABLE_CFGEDATA_PORT_MEMBERSHIP_SHIFT          (0U)
2366 /*!
2367  * @brief Vlan Filter Table Config Data PORT membership field mask.
2368  */
2369 #define NETC_ETHSWT_VLANFILTERTABLE_CFGEDATA_PORT_MEMBERSHIP_MASK           (0x00FFFFFFUL)
2370 /*!
2371  * @brief Vlan Filter Table Config Data PORT membership.
2372  */
2373 #define NETC_ETHSWT_VLANFILTERTABLE_CFGEDATA_PORT_MEMBERSHIP(x)             (((uint32)(((uint32)(x)) << NETC_ETHSWT_VLANFILTERTABLE_CFGEDATA_PORT_MEMBERSHIP_SHIFT)) & NETC_ETHSWT_VLANFILTERTABLE_CFGEDATA_PORT_MEMBERSHIP_MASK)
2374 
2375 /*!
2376  * @brief Vlan Filter Table Config Data IPMFLE field.
2377  */
2378 #define NETC_ETHSWT_VLANFILTERTABLE_CFGEDATA_IPMFLE_SHIFT                   (23U)
2379 /*!
2380  * @brief Vlan Filter Table Config Data IPMFLE field mask.
2381  */
2382 #define NETC_ETHSWT_VLANFILTERTABLE_CFGEDATA_IPMFLE_MASK                    (0x00800000UL)
2383 /*!
2384  * @brief Vlan Filter Table Config Data IPMFLE.
2385  */
2386 #define NETC_ETHSWT_VLANFILTERTABLE_CFGEDATA_IPMFLE(x)                      (((uint32)(((uint32)(x)) << NETC_ETHSWT_VLANFILTERTABLE_CFGEDATA_IPMFLE_SHIFT)) & NETC_ETHSWT_VLANFILTERTABLE_CFGEDATA_IPMFLE_MASK)
2387 
2388 /*!
2389  * @brief Vlan Filter Table Config Data IPMFE field.
2390  */
2391 #define NETC_ETHSWT_VLANFILTERTABLE_CFGEDATA_IPMFE_SHIFT                    (22U)
2392 /*!
2393  * @brief Vlan Filter Table Config Data IPMFE field mask.
2394  */
2395 #define NETC_ETHSWT_VLANFILTERTABLE_CFGEDATA_IPMFE_MASK                     (0x00400000UL)
2396 /*!
2397  * @brief Vlan Filter Table Config Data IPMFE.
2398  */
2399 #define NETC_ETHSWT_VLANFILTERTABLE_CFGEDATA_IPMFE(x)                       (((uint32)(((uint32)(x)) << NETC_ETHSWT_VLANFILTERTABLE_CFGEDATA_IPMFE_SHIFT)) & NETC_ETHSWT_VLANFILTERTABLE_CFGEDATA_IPMFE_MASK)
2400 
2401 /*!
2402  * @brief Vlan Filter Table Config Data MFO field.
2403  */
2404 #define NETC_ETHSWT_VLANFILTERTABLE_CFGEDATA_MFO_SHIFT                      (19U)
2405 /*!
2406  * @brief Vlan Filter Table Config Data MFO field mask.
2407  */
2408 #define NETC_ETHSWT_VLANFILTERTABLE_CFGEDATA_MFO_MASK                       (0x00180000UL)
2409 /*!
2410  * @brief Vlan Filter Table Config Data MFO.
2411  */
2412 #define NETC_ETHSWT_VLANFILTERTABLE_CFGEDATA_MFO(x)                         (((uint32)(((uint32)(x)) << NETC_ETHSWT_VLANFILTERTABLE_CFGEDATA_MFO_SHIFT)) & NETC_ETHSWT_VLANFILTERTABLE_CFGEDATA_MFO_MASK)
2413 
2414 /*!
2415  * @brief Vlan Filter Table Config Data MLO field.
2416  */
2417 #define NETC_ETHSWT_VLANFILTERTABLE_CFGEDATA_MLO_SHIFT                      (16U)
2418 /*!
2419  * @brief Vlan Filter Table Config Data MLO field mask.
2420  */
2421 #define NETC_ETHSWT_VLANFILTERTABLE_CFGEDATA_MLO_MASK                       (0x00070000UL)
2422 /*!
2423  * @brief Vlan Filter Table Config Data MLO.
2424  */
2425 #define NETC_ETHSWT_VLANFILTERTABLE_CFGEDATA_MLO(x)                         (((uint32)(((uint32)(x)) << NETC_ETHSWT_VLANFILTERTABLE_CFGEDATA_MLO_SHIFT)) & NETC_ETHSWT_VLANFILTERTABLE_CFGEDATA_MLO_MASK)
2426 
2427 /*!
2428  * @brief Vlan Filter Table Config Data FID field.
2429  */
2430 #define NETC_ETHSWT_VLANFILTERTABLE_CFGEDATA_FID_SHIFT                      (0U)
2431 /*!
2432  * @brief Vlan Filter Table Config Data FID field mask.
2433  */
2434 #define NETC_ETHSWT_VLANFILTERTABLE_CFGEDATA_FID_MASK                       (0x00000FFFUL)
2435 /*!
2436  * @brief Vlan Filter Table Config Data FID.
2437  */
2438 #define NETC_ETHSWT_VLANFILTERTABLE_CFGEDATA_FID(x)                         (((uint32)(((uint32)(x)) << NETC_ETHSWT_VLANFILTERTABLE_CFGEDATA_FID_SHIFT)) & NETC_ETHSWT_VLANFILTERTABLE_CFGEDATA_FID_MASK)
2439 
2440 /*!
2441  * @brief Vlan Filter Table Config Data ETA port bitmap field.
2442  */
2443 #define NETC_ETHSWT_VLANFILTERTABLE_CFGEDATA_ETA_PORT_BITMAP_SHIFT          (0U)
2444 /*!
2445  * @brief Vlan Filter Table Config Data ETA port bitmap field mask.
2446  */
2447 #define NETC_ETHSWT_VLANFILTERTABLE_CFGEDATA_ETA_PORT_BITMAP_MASK           (0x00FFFFFFUL)
2448 /*!
2449  * @brief Vlan Filter Table Config Data ETA port bitmap.
2450  */
2451 #define NETC_ETHSWT_VLANFILTERTABLE_CFGEDATA_ETA_PORT_BITMAP(x)             (((uint32)(((uint32)(x)) << NETC_ETHSWT_VLANFILTERTABLE_CFGEDATA_ETA_PORT_BITMAP_SHIFT)) & NETC_ETHSWT_VLANFILTERTABLE_CFGEDATA_ETA_PORT_BITMAP_MASK)
2452 
2453 /*!
2454  * @brief Vlan Filter Table Config Data base ET_EID field.
2455  */
2456 #define NETC_ETHSWT_VLANFILTERTABLE_CFGEDATA_BASE_ET_EID_SHIFT              (0U)
2457 /*!
2458  * @brief Vlan Filter Table Config Data base ET_EID field mask.
2459  */
2460 #define NETC_ETHSWT_VLANFILTERTABLE_CFGEDATA_BASE_ET_EID_MASK               (0xFFFFFFFFUL)
2461 /*!
2462  * @brief Vlan Filter Table Config Data base ET_EID.
2463  */
2464 #define NETC_ETHSWT_VLANFILTERTABLE_CFGEDATA_BASE_ET_EID(x)                 (((uint32)(((uint32)(x)) << NETC_ETHSWT_VLANFILTERTABLE_CFGEDATA_BASE_ET_EID_SHIFT)) & NETC_ETHSWT_VLANFILTERTABLE_CFGEDATA_BASE_ET_EID_MASK)
2465 
2466 /*!
2467  * @brief Vlan Filter Table Config Data KEY_DATA bits field.
2468  */
2469 #define NETC_ETHSWT_VLANFILTERTABLE_KEYEDATA_VID_SHIFT                      (0U)
2470 /*!
2471  * @brief Vlan Filter Table Config Data KEY_DATA bits field mask.
2472  */
2473 #define NETC_ETHSWT_VLANFILTERTABLE_KEYEDATA_VID_MASK                       (0x00000FFFUL)
2474 /*!
2475  * @brief Vlan Filter Table Config Data KEY_DATA bits.
2476  */
2477 #define NETC_ETHSWT_VLANFILTERTABLE_KEYEDATA_VID(x)                         (((uint32)(((uint32)(x)) << NETC_ETHSWT_VLANFILTERTABLE_KEYEDATA_VID_SHIFT)) & NETC_ETHSWT_VLANFILTERTABLE_KEYEDATA_VID_MASK)
2478 
2479 /*!
2480  * @brief Vlan Filter Table response data type enumeration. Netc_EthSwt_Ip_VlanFilterTable_ResponsDataIndexType
2481  */
2482 typedef enum {
2483     NETC_ETHSWT_VLANFILTERTABLE_RSPDATA_STATUS = 0x0U,     /*!< Status Field In Vlan Filter Table Response Data Buffer */
2484     NETC_ETHSWT_VLANFILTERTABL_RSPDATA_ENTRYID,            /*!< Entry_ID Field In Vlan Filter Table Response Data Buffer */
2485     NETC_ETHSWT_VLANFILTERTABL_RSPDATA_VID,                /*!< VID field of KEYE DATA In Vlan Filter Table Response Data Buffer */
2486     NETC_ETHSWT_VLANFILTERTABL_RSPDATA_CFGEDATA0,          /*!< The first element of CFGE DATA In Vlan Filter Table Response Data Buffer */
2487     NETC_ETHSWT_VLANFILTERTABL_RSPDATA_CFGEDATA1,          /*!< The second element of CFGE DATA In Vlan Filter Table Response Data Buffer */
2488     NETC_ETHSWT_VLANFILTERTABL_RSPDATA_CFGEDATA2,          /*!< The third element of CFGE DATA In Vlan Filter Table Response Data Buffer */
2489     NETC_ETHSWT_VLANFILTERTABL_RSPDATA_CFGEDATA3           /*!< The last element of CFGE DATA In Vlan Filter Table Response Data Buffer */
2490 } Netc_EthSwt_Ip_VlanFilterTable_ResponsDataIndexType;
2491 
2492 /*!
2493  * @brief Vlan Filter Table CFGE_DATA format.
2494  */
2495 typedef struct {
2496     uint32 Cfge_Data[NETC_ETHSWT_TABLE_CFGEDATA_ITEMS]; /*!< Config data for Vlan Filtre Table */
2497 } Netc_EthSwt_Ip_VlanFilterTableCFGEDataType;
2498 /* ---bits field and structure for Vlan Filter Table Data Buffer Format--- */
2499 
2500 /*!
2501  * @brief VLAN Tag Netc_EthSwt_Ip_VlanTagType_Class
2502  */
2503 typedef struct
2504 {
2505     uint16 id;     /*!< Specifies the VLAN address 0..65535 */
2506     uint8  pcp;    /*!< Priority to be added in the tag 0..7 */
2507     uint8  dei;    /*!< 1 bit field - drop eligible indicator */
2508 } Netc_EthSwt_Ip_VlanTagType;
2509 
2510 /*!
2511  * @brief PHY configuration of a port Netc_EthSwt_Ip_FdbEntryType_Class
2512  */
2513 typedef struct
2514 {
2515     uint16                  ePortMask;     /*!< Mask of the egress ports */
2516     uint8                   macAddr[6U];    /*!< Array containing the MAC addresses of the port */
2517 } Netc_EthSwt_Ip_FdbEntryType;
2518 
2519 /*!
2520  * @brief PHY configuration of a port Netc_EthSwt_Ip_VlanFilterEntryType
2521  */
2522 typedef struct
2523 {
2524     uint16                  iPortMask;     /*!< Mask of the ingress ports */
2525     uint16                  vlanId;        /*!< VLAN ID, VlanMembershipId */
2526 } Netc_EthSwt_Ip_VlanFilterEntryType;
2527 
2528 /*!
2529  * @brief Netc_EthSwt counter structure Netc_EthSwt_Ip_CounterType
2530  */
2531 typedef struct {
2532     uint64 rxEtherOctetCounter;                  /*!< Port MAC 0 Receive Ethernet Octets Counter(etherStatsOctetsn) (PM0_REOCTn) */
2533     uint64 rxOctetCounter;                       /*!< Supported by pseudo port. Port MAC 0 Receive Octets Counter(iflnOctetsn) (PM0_ROCTn) */
2534     uint64 rxValidPauseFrmCounter;               /*!< Port MAC 0 Receive Valid Pause Frame Counter Register(aPAUSEMACCtrlFramesReceivedn) (PM0_RXPFn) */
2535     uint64 rxFrmCounter;                         /*!< MAC 0 Receive Frame Counter Register(aFramesReceivedOKn) (PM0_RFRMn) */
2536     uint64 rxFrameCheckSequenceErrorCounter;     /*!< Port MAC 0 Receive Frame Check Sequence Error Counter Register() (PM0_RFCSn) */
2537     uint64 rxVlanFrmCounter;                     /*!< Port MAC 0 Receive VLAN Frame Counter Register(VLANReceivedOKn) (PM0_RVLANn) */
2538     uint64 rxFrameErrorCounter;                  /*!< Port MAC 0 Receive Frame Error Counter Register(ifInErrorsn) (PM0_RERRn) */
2539     uint64 rxUnicastFrmCounter;                  /*!< Supported by pseudo port. Port MAC 0 Receive Unicast Frame Counter Register(ifInUcastPktsn) (PM0_RUCAn) */
2540     uint64 rxMulticastFrmCounter;                /*!< Supported by pseudo port. Port MAC 0 Receive Multicast Frame Counter Register(ifInMulticastPktsn) (PM0_RMCAn) */
2541     uint64 rxBroadcastFrmCounter;                /*!< Supported by pseudo port. Port MAC 0 Receive Broadcast Frame Counter Register(ifInBroadcastPktsn) (PM0_RBCAn) */
2542     uint64 rxDroppedPktCounter;                  /*!< Port MAC 0 Receive Dropped Packets Counter Register(etherStatsDropEventsn) (PM0_RDRPn) */
2543     uint64 rxPktCounter;                         /*!< Port MAC 0 Receive Packets Counter Register(etherStatsPktsn) (PM0_RPKTn) */
2544     uint64 rxUndersizePacketCounter;             /*!< Port MAC 0 Receive Undersized Packet Counter Register(etherStatsUndersizePktsn) (PM0_RUNDn) */
2545     uint64 rx64OctetPktCounter;                  /*!< Port MAC 0 Receive 64-Octet Packet Counter Register(etherStatsPkts64OctetsN) (PM0_R64n) */
2546     uint64 rx65to127OctetPktCounter;             /*!< Port MAC 0 Receive 65 to 127-Octet Packet Counter Register(etherStatsPkts65to127OctetsN) (PM0_R127n) */
2547     uint64 rx128to255OctetPktCounter;            /*!< Port MAC 0 Receive 128 to 255-Octet Packet Counter Register(etherStatsPkts128to255OctetsN) (PM0_R255n) */
2548     uint64 rx256to511OctetPktCounter;            /*!< Port MAC 0 Receive 256 to 511-Octet Packet Counter Register(etherStatsPkts256to511OctetsN) (PM0_R511n) */
2549     uint64 rx512to1023OctetPktCounter;           /*!< Port MAC 0 Receive 512 to 1023-Octet Packet Counter Register(etherStatsPkts512to1023OctetsN) (PM0_R1023n) */
2550     uint64 rx1024to1522OctetPktCounter;          /*!< Port MAC 0 Receive 1024 to 1522-Octet Packet Counter Register(etherStatsPkts1024to1522OctetsN) (PM0_R1522n) */
2551     uint64 rx1523toMaxOctetPktCounter;           /*!< Port MAC 0 Receive 1523 to Max-Octet Packet Counter Register(etherStatsPkts1523toMaxOctetsN) (PM0_R1523Xn) */
2552     uint64 rxOversizedPacketsCounter;            /*!< Port MAC 0 Receive Oversized Packet Counter Register(etherStatsOversizePktsn) (PM0_ROVRn) */
2553     uint64 rxJabberPktCounter;                   /*!< Port MAC 0 Receive Jabber Packet Counter Register(etherStatsJabbersn) (PM0_RJBRn) */
2554     uint64 rxFragmentPktCounter;                 /*!< Port MAC 0 Receive Fragment Packet Counter Register(etherStatsFragmentsn (PM0_RFRGn) */
2555     uint64 rxControlPktCounter;                  /*!< Port MAC 0 Receive Control Packet Counter Register (PM0_RCNPn) */
2556     uint64 rxDroppedNTruncatedPktCounter;        /*!< Port MAC 0 Receive Dropped Not Truncated Packets Counter Register(etherStatsDropEventsn) (PM0_RDRNTPn) */
2557 
2558     uint64 txEtherOctetCounter;                  /*!< MAC 0 Transmit Ethernet Octets Counter(etherStatsOctetsn) (PM0_TEOCTn) */
2559     uint64 txOctetCounter;                       /*!< Supported by pseudo port. Port MAC 0 Transmit Octets Counter Register(ifOutOctetsn) (PM0_TOCTn) */
2560     uint64 txValidPauseFrmCounter;               /*!< Port MAC 0 Transmit Valid Pause Frame Counter Register(aPAUSEMACCtrlFramesReceivedn) (PM0_TXPFn) */
2561     uint64 txFrmCounter;                         /*!< Port MAC 0 Transmit Frame Counter Register(aFramesTransmittedOKn) (PM0_TFRMn) */
2562     uint64 txFrameCheckSequenceErrorCounter;     /*!< Port MAC 0 Transmit Frame Check Sequence Error Counter Register() (PM0_TFCSn) */
2563     uint64 txVlanFrmCounter;                     /*!< Port MAC 0 Transmit VLAN Frame Counter Register(VLANTransmittedOKn) (PM0_TVLANn) */
2564     uint64 txFrameErrorCounter;                  /*!< Port MAC 0 Transmit Frame Error Counter Register(ifOutErrorsn) (PM0_TERRn) */
2565     uint64 txUnicastFrmCounter;                  /*!< Supported by pseudo port. Port MAC 0 Transmit Unicast Frame Counter Register(ifOutUcastPktsn) (PM0_TUCAn) */
2566     uint64 txMulticastFrmCounter;                /*!< Supported by pseudo port. Port MAC 0 Transmit Multicast Frame Counter Register(ifOutMulticastPktsn) (PM0_TMCAn) */
2567     uint64 txBroadcastFrmCounter;                /*!< Supported by pseudo port. Port MAC 0 Transmit Broadcast Frame Counter Register(ifOutBroadcastPktsn) (PM0_TBCAn) */
2568     uint64 txPktCounter;                         /*!< Port MAC 0 Transmit Packets Counter Register(etherStatsPktsn) (PM0_TPKTn) */
2569     uint64 txUndersizePacketCounter;             /*!< Port MAC 0 Transmit Undersized Packet Counter Register(etherStatsUndersizePktsn) (PM0_TUNDn) */
2570     uint64 tx64OctetPktCounter;                  /*!< Port MAC 0 Transmit 64-Octet Packet Counter Register (etherStatsPkts64OctetsN) (PM0_T64n) */
2571     uint64 tx65to127OctetPktCounter;             /*!< Port MAC 0 Transmit 65 to 127-Octet Packet Counter Register (etherStatsPkts65to127OctetsN) (PM0_T127n) */
2572     uint64 tx128to255OctetPktCounter;            /*!< Port MAC 0 Transmit 128 to 255-Octet Packet Counter Register (etherStatsPkts128to255OctetsN) (PM0_T255n) */
2573     uint64 tx256to511OctetPktCounter;            /*!< Port MAC 0 Transmit 256 to 511-Octet Packet Counter Register (etherStatsPkts256to511OctetsN) (PM0_T511n) */
2574     uint64 tx512to1023OctetPktCounter;           /*!< Port MAC 0 Transmit 512 to 1023-Octet Packet Counter Register (etherStatsPkts512to1023OctetsN) (PM0_T1023n) */
2575     uint64 tx1024to1522OctetPktCounter;          /*!< Port MAC 0 Transmit 1024 to 1522-Octet Packet Counter Register (etherStatsPkts1024to1522OctetsN) (PM0_T1522n) */
2576     uint64 tx1523toMaxOctetPktCounter;           /*!< Port MAC 0 Transmit 1523 to TX_MTU-Octet Packet Counter Register (etherStatsPkts1523toMaxOctetsN) (PM0_T1523Xn) */
2577     uint64 txControlPktCounter;                  /*!< Port MAC 0 Transmit Control Packet Counter Register (PM0_TCNPn) */
2578     uint64 txDeferredPktCounter;                 /*!< Port MAC 0 Transmit Deferred Packet Counter Register(aFramesWithDeferredXmissions) (PM0_TDFRn) */
2579     uint64 txMultiCollisionCounter;              /*!< Port MAC 0 Transmit Multiple Collisions Counter Register(aMultipleCollisionFrames) (PM0_TMCOLn) */
2580     uint64 txSingleCollisionCounter;             /*!< Port MAC 0 Transmit Single Collision Counter(aSingleCollisionFrames) Register (PM0_TSCOLn) */
2581     uint64 txLateCollisionCounter;               /*!< Port MAC 0 Transmit Late Collision Counter(aLateCollisions) Register (PM0_TLCOLn) */
2582     uint64 txExcessiveCollisionCounter;          /*!< Port MAC 0 Transmit Excessive Collisions Counter Register (PM0_TECOLn) */
2583 
2584     uint32 rxDiscardCounter;                     /*!< Port Rx discard count register (PRXDCR) */
2585     uint32 txDiscardCounter;                     /*!< Port Tx discard count register (PTXDCR) */
2586     uint32 unIntegrityErrorCounter;              /* Uncorrectable non-fatal integrity error count register (UNIECTR) which tracks how many events have been detected. */
2587 } Netc_EthSwt_Ip_CounterType;
2588 
2589 typedef uint64 Netc_EthSwt_Ip_CounterValueType;
2590 
2591 /*!
2592  * @brief Action to be taken when the rate policy criteria defined for this EthSwtPortPolicer are met.
2593  */
2594 typedef enum {
2595     NETC_ETHSWT_BLOCK_SOURCE, /*!< Eth Switch rate violation block source. */
2596     NETC_ETHSWT_DROP_FRAME    /*!< Eth Switch rate violation  drop frame. */
2597 } Netc_EthSwt_Ip_RateViolationActionType;
2598 
2599 /*!
2600  * @brief How the message with a specific VLAN Id shall be handled.
2601  */
2602 typedef enum {
2603     NETC_ETHSWT_NOT_SENT,          /*!< Eth Switch vlan frame not sent. */
2604     NETC_ETHSWT_SENT_TAGGED,        /*!< Eth Switch vlan frame sent tagged. */
2605     NETC_ETHSWT_SENT_UNTAGGED       /*!< Eth Switch vlan frame sent untagged. */
2606 } Netc_EthSwt_Ip_VlanHandlingType;
2607 
2608 /*!
2609  * @brief Message priority the incoming message will be tagged with.
2610  */
2611 typedef struct {
2612     uint8 EthSwtPriorityRegenerationIngressPriority; /*!< Message priority of the incoming message. */
2613     uint8 EthSwtPriorityRegenerationRegeneratedPriority; /*!< Message priority the incoming message will be tagged with. */
2614 } Netc_EthSwt_Ip_PriorityRegenerationType;
2615 
2616 /*!
2617  * @brief Priority based traffic class assignment.
2618  */
2619 typedef struct {
2620     uint8 EthSwtPriorityTrafficClassAssignmentTrafficClass[8U]; /*!< Traffic Class value. */
2621 } Netc_EthSwt_Ip_PriorityTrafficClassAssignmentType;
2622 
2623 /*!
2624  * @brief Rate Policing parameters.
2625  */
2626 typedef struct {
2627     Netc_EthSwt_Ip_PriorityRegenerationType priorityRegeneration[8U]; /*!< Message priority the incoming message will be tagged with. */
2628     uint8 EthSwtPortRatePolicedPriority; /*!< The priority which this rate policy shall be limited on. */
2629     Netc_EthSwt_Ip_RateViolationActionType EthSwtPortRateViolationAction; /*!< Action to be taken when the rate policy criteria defined for this EthSwtPortPolicer are met. */
2630     uint32 EthSwtPriorityTrafficClassAssignmentType[8U]; /*!< Message priority. */
2631 } Netc_EthSwt_Ip_PortPolicerType;
2632 
2633 /*!
2634  * @brief Port ingress description
2635  */
2636 typedef struct {
2637     uint8 EthSwtPortIngressDefaultPriority; /*!< Default priority for ingress. */
2638     uint16 EthSwtPortIngressDefaultVlan; /*!< Default VLAN for ingress. */
2639     boolean SentUntaggedFrames; /* EthSwtPortVlanForwardingType for the default VLAN */
2640     boolean portIngressAllowCutThroughFrames; /*!< Allow cut through frames */
2641     boolean EthSwtPortIngressDropUntagged; /*!< Defines the ingress behavior for untagged frames. */
2642     boolean EthSwtDropDoubleTagged; /*!< if a switch shall drop double tagged frames. */
2643     boolean EthSwtPortIngressDropSingleTagged; /*!< if a switch shall drop single tagged frames. */
2644     boolean EthSwtPortIngressDropPriorityTagged; /*!< if a switch shall drop priority tagged frames. */
2645     uint16 EthSwtPortIngressVlanModification; /*!< Tagged all frames with this VLAN Id. */
2646     uint8 EthSwtPortTrafficClassAssignment; /*!< Priority based traffic class assignment. */
2647     Netc_EthSwt_Ip_PortPolicerType *policer; /*!< Rate Policing parameters. */
2648     Netc_EthSwt_Ip_PriorityRegenerationType (*priorityRegeneration)[8U]; /*!< Priority of the incoming message. */
2649     Netc_EthSwt_Ip_PriorityTrafficClassAssignmentType PriorityTrafficClassAssignment[8U]; /*!< Priority based traffic class assignment. */
2650     boolean vlanEnable; /*!< Use the IVP and DR from the frame or use port default */
2651     uint8 vlanDefaultIpv; /*!< Default for untaged frames or when vlan is disable */
2652     uint8 vlanDefaultDr; /*!< Default for untaged frames or when vlan is disable */
2653     uint8 vlanMappingProfile; /*!< Select the VLANIPV profile 0/1 using the PCP and DEI */
2654     boolean vlanEnableIngressPcpToPcpMapping; /*!< If there is frame modification enable the PCP change */
2655     uint8 vlanIngressPcpToPcpProfile; /*!< If there is frame modification and enable use this profile */
2656 } Netc_EthSwt_Ip_PortIngressType;
2657 
2658 
2659 /*!
2660  * @brief Port Egress Class Scheduler table CFGE_DATA config field.
2661  */
2662 /* CQ_ASSG field */
2663 #define NETC_ETHSWT_IP_SCHTABLE_CFGE_DATA_CQ_ASSG_SHIFT             (0U)
2664 #define NETC_ETHSWT_IP_SCHTABLE_CFGE_DATA_CQ_ASSG_MASK              (0x0000000FUL)
2665 #define NETC_ETHSWT_IP_SCHTABLE_CFGE_DATA_CQ_ASSG(x)                (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_SCHTABLE_CFGE_DATA_CQ_ASSG_SHIFT)) & NETC_ETHSWT_IP_SCHTABLE_CFGE_DATA_CQ_ASSG_MASK)
2666 
2667 /* OAL field */
2668 #define NETC_ETHSWT_IP_SCHTABLE_CFGE_DATA_OAL_SHIFT             (16U)
2669 #define NETC_ETHSWT_IP_SCHTABLE_CFGE_DATA_OAL_MASK              (0x7FF0000UL)
2670 #define NETC_ETHSWT_IP_SCHTABLE_CFGE_DATA_OAL(x)                (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_SCHTABLE_CFGE_DATA_OAL_SHIFT)) & NETC_ETHSWT_IP_SCHTABLE_CFGE_DATA_OAL_MASK)
2671 
2672 /* WBFS_WEIGHT_0 field */
2673 #define NETC_ETHSWT_IP_SGCLTABLE_CFGE_DATA_WBFS_WEIGHT_0_SHIFT             (0U)
2674 #define NETC_ETHSWT_IP_SGCLTABLE_CFGE_DATA_WBFS_WEIGHT_0_MASK              (0x000000FFUL)
2675 #define NETC_ETHSWT_IP_SGCLTABLE_CFGE_DATA_WBFS_WEIGHT_0(x)                (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_SGCLTABLE_CFGE_DATA_WBFS_WEIGHT_0_SHIFT)) & NETC_ETHSWT_IP_SGCLTABLE_CFGE_DATA_WBFS_WEIGHT_0_MASK)
2676 
2677 /* WBFS_WEIGHT_1 field */
2678 #define NETC_ETHSWT_IP_SGCLTABLE_CFGE_DATA_WBFS_WEIGHT_1_SHIFT             (8U)
2679 #define NETC_ETHSWT_IP_SGCLTABLE_CFGE_DATA_WBFS_WEIGHT_1_MASK              (0x0000FF00UL)
2680 #define NETC_ETHSWT_IP_SGCLTABLE_CFGE_DATA_WBFS_WEIGHT_1(x)                (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_SGCLTABLE_CFGE_DATA_WBFS_WEIGHT_1_SHIFT)) & NETC_ETHSWT_IP_SGCLTABLE_CFGE_DATA_WBFS_WEIGHT_1_MASK)
2681 
2682 /* WBFS_WEIGHT_2 field */
2683 #define NETC_ETHSWT_IP_SGCLTABLE_CFGE_DATA_WBFS_WEIGHT_2_SHIFT             (16U)
2684 #define NETC_ETHSWT_IP_SGCLTABLE_CFGE_DATA_WBFS_WEIGHT_2_MASK              (0x00FF0000UL)
2685 #define NETC_ETHSWT_IP_SGCLTABLE_CFGE_DATA_WBFS_WEIGHT_2(x)                (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_SGCLTABLE_CFGE_DATA_WBFS_WEIGHT_2_SHIFT)) & NETC_ETHSWT_IP_SGCLTABLE_CFGE_DATA_WBFS_WEIGHT_2_MASK)
2686 
2687 /* WBFS_WEIGHT_3 field */
2688 #define NETC_ETHSWT_IP_SGCLTABLE_CFGE_DATA_WBFS_WEIGHT_3_SHIFT             (24U)
2689 #define NETC_ETHSWT_IP_SGCLTABLE_CFGE_DATA_WBFS_WEIGHT_3_MASK              (0xFF000000UL)
2690 #define NETC_ETHSWT_IP_SGCLTABLE_CFGE_DATA_WBFS_WEIGHT_3(x)                (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_SGCLTABLE_CFGE_DATA_WBFS_WEIGHT_3_SHIFT)) & NETC_ETHSWT_IP_SGCLTABLE_CFGE_DATA_WBFS_WEIGHT_3_MASK)
2691 
2692 /* WBFS_WEIGHT_4 field */
2693 #define NETC_ETHSWT_IP_SGCLTABLE_CFGE_DATA_WBFS_WEIGHT_4_SHIFT             (0U)
2694 #define NETC_ETHSWT_IP_SGCLTABLE_CFGE_DATA_WBFS_WEIGHT_4_MASK              (0x000000FFUL)
2695 #define NETC_ETHSWT_IP_SGCLTABLE_CFGE_DATA_WBFS_WEIGHT_4(x)                (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_SGCLTABLE_CFGE_DATA_WBFS_WEIGHT_4_SHIFT)) & NETC_ETHSWT_IP_SGCLTABLE_CFGE_DATA_WBFS_WEIGHT_4_MASK)
2696 
2697 /* WBFS_WEIGHT_5 field */
2698 #define NETC_ETHSWT_IP_SGCLTABLE_CFGE_DATA_WBFS_WEIGHT_5_SHIFT             (8U)
2699 #define NETC_ETHSWT_IP_SGCLTABLE_CFGE_DATA_WBFS_WEIGHT_5_MASK              (0x0000FF00UL)
2700 #define NETC_ETHSWT_IP_SGCLTABLE_CFGE_DATA_WBFS_WEIGHT_5(x)                (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_SGCLTABLE_CFGE_DATA_WBFS_WEIGHT_5_SHIFT)) & NETC_ETHSWT_IP_SGCLTABLE_CFGE_DATA_WBFS_WEIGHT_5_MASK)
2701 
2702 /* WBFS_WEIGHT_6 field */
2703 #define NETC_ETHSWT_IP_SGCLTABLE_CFGE_DATA_WBFS_WEIGHT_6_SHIFT             (16U)
2704 #define NETC_ETHSWT_IP_SGCLTABLE_CFGE_DATA_WBFS_WEIGHT_6_MASK              (0x00FF0000UL)
2705 #define NETC_ETHSWT_IP_SGCLTABLE_CFGE_DATA_WBFS_WEIGHT_6(x)                (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_SGCLTABLE_CFGE_DATA_WBFS_WEIGHT_6_SHIFT)) & NETC_ETHSWT_IP_SGCLTABLE_CFGE_DATA_WBFS_WEIGHT_6_MASK)
2706 
2707 /* WBFS_WEIGHT_7 field */
2708 #define NETC_ETHSWT_IP_SGCLTABLE_CFGE_DATA_WBFS_WEIGHT_7_SHIFT             (24U)
2709 #define NETC_ETHSWT_IP_SGCLTABLE_CFGE_DATA_WBFS_WEIGHT_7_MASK              (0xFF000000UL)
2710 #define NETC_ETHSWT_IP_SGCLTABLE_CFGE_DATA_WBFS_WEIGHT_7(x)                (((uint32)(((uint32)(x)) << NETC_ETHSWT_IP_SGCLTABLE_CFGE_DATA_WBFS_WEIGHT_7_SHIFT)) & NETC_ETHSWT_IP_SGCLTABLE_CFGE_DATA_WBFS_WEIGHT_7_MASK)
2711 
2712 /*!
2713  * @brief Defines the port egress class scheduler.
2714  * @implements Netc_EthSwt_Ip_PortSchedulerType_struct
2715  */
2716 typedef struct {
2717     uint8  numberOfWBFSQueues; /* Number of queues using the weighted fair share algorithm */
2718     uint16 overheadAccountingLength; /* Added to the actual length of each frame when performing class scheduler WBFS calculations */
2719     uint8  portEgressSchedulerWeightList[NETC_ETHSWT_WBFS_QUEUES_NB]; /* Array holding the queue weights for WBFS (weighted fair share) scheduler inputs  */
2720 } Netc_EthSwt_Ip_PortSchedulerType;
2721 
2722 /*!
2723  * @brief Represents a Shaper in the egress port.
2724  */
2725 typedef struct {
2726     /* To improve the speed of the init of the drivers, Bandwidth and hiCredit are calculated in the upper layes */
2727     boolean EthSwtPortEgressCBShaperEnable; /*!< Enable the Credit-Based Shaper. */
2728     uint32 EthSwtPortEgressCBShaperBandwidth; /*!< Bandwidth of the Credit-Based Shaper. Bandwidth = (idleSlope/portTxRate) * 100, Note: total CBS bandwidth on a port should be less the 75% */
2729     uint32 EthSwtPortEgressHiCredit; /*!< HiCredit if the Credit-Based Shaper. (hiCredit on credit) = maxSizedFrame * Bandwidth * (enetClockFrequency / portTxRate) */
2730     uint32 EthSwtPortMaxSizedFrame; /*!< Max Frame Size, should be less the 2000 bytes */
2731 } Netc_EthSwt_Ip_PortShaperType;
2732 
2733 /*!
2734  * @brief Port egress description
2735  */
2736 typedef struct {
2737     Netc_EthSwt_Ip_PortSchedulerType *portScheduler; /*!< Defines the scheduler algorithm. */
2738     Netc_EthSwt_Ip_PortShaperType (*portShaper)[8U]; /*!< Represents a Shaper in the egress port. */
2739     boolean portEgressAllowCutThroughFrames; /*!< Allow cut through frames */
2740     boolean updateEgressDr; /*!< If there is frame modification and enable DEI change */
2741     uint8 (*vlanDrToDei)[NETC_ETHSWT_NUMBER_OF_DR]; /*!< If there is frame modification and enable map DR to DEI */
2742     uint8 vlanMappingProfile; /*!< Select the VLANIPV profile 0/1 using the PCP and DEI */
2743     boolean vlanEnableEgressPcpToPcpMapping; /*!< If there is frame modification enable the PCP change */
2744     uint8 vlanEgressPcpToPcpProfile; /*!< If there is frame modification and enable use this profile */
2745     uint8 portPPDUByteCountOverhead;    /* PPDU Byte count overhead which includes IPG, SFD and Preamble. */
2746     uint8 portMACSecByteCountOverhead;  /* Number of bytes of overhead due to MACSec encapsulation */
2747     uint32 portTimeGateSchedulingAdvanceTimeOffsetReg;  /* This is the port time gate scheduling advance time offset register */
2748     boolean portTimeAwareShaperEnable;  /*!< If the data for time gate scheduling talbe is configured  */
2749     uint64 portEgressAdminBaseTime;  /*!< Administrative Base Time */
2750     uint32 portEgressAdminCycleTime; /*!< Administrative Cycle Time */
2751     uint32 portEgressAdminCycleTimeExt; /*!< Administrative Cycle Time Extension */
2752     uint8 numberOfGateControlListEntries; /*!< Number of entries in Administrative Gate Control list. */
2753     Netc_EthSwt_Ip_GateEntryAdminControlListDataType (*TimeGateControlListEntries)[NETC_ETHSWT_MAX_NUMBER_OF_GATECONTROLLIST_ENTRIES]; /*!< Pointer to an array containing the gate control list for port. */
2754 } Netc_EthSwt_Ip_PortEgressType;
2755 
2756 /*!
2757  * @brief Port description for initalisation
2758  */
2759 typedef struct {
2760     boolean EthSwtPortMacLayerPortEnable; /*!< enable/disable port mac layer */
2761     Netc_EthSwt_Ip_PortEgressType *ePort; /*!< Configuration of one Ethernet Switch Port Egress behavior. */
2762     Netc_EthSwt_Ip_PortIngressType *iPort; /*!< Configuration of one Ethernet Switch Port Ingress behavior. */
2763     EthTrcv_BaudRateType EthSwtPortMacLayerSpeed; /**< Defines the baud rate of the MAC layer. */
2764     Netc_EthSwt_Ip_PortDuplexType EthSwtPortMacLayerDuplexMode; /*!< Defines the duplex mode of switch mac layer duplex mode*/
2765     Netc_EthSwt_Ip_XmiiModeType EthSwtPortPhysicalLayerType; /*!< Defines the physical layer type of this EthSwtPort. */
2766     uint8 EthSwtPortMacAddresses[6U]; /*!< Default MAC address. */
2767     uint16 EthSwtPortMaxDynamicEntries; /*!< Specifies for a given port, the maximium number of dynamic entries in the FDB table.*/
2768     boolean EthSwtPortEnableMagicPacketDetection; /*!< Enable/Disable packet magic detection*/
2769     boolean EthSwtPortTimeStampSupport; /*!< Activates egress time stamping. */
2770     boolean EthSwtPortPruningEnable; /*!< A received frame is not allowed to be transmitted on same port it was recceived. */
2771     boolean EthSwtPortLoopbackEnable; /*!< Enable loopback mode for current port */
2772     boolean EthSwtPortDisallowMacStationMove; /*!< MAC station move disallowed.*/
2773 } Netc_EthSwt_Ip_PortType;
2774 
2775 /*!
2776  * @brief Key Construction Rule
2777  * @implements : Netc_EthSwt_Ip_KeyConstructionRuleType_struct
2778 */
2779 typedef struct
2780 {
2781     uint32 EthSwtKeyConstructionRegValue;  /**<  Value to be added in the Key Construction Register*/
2782     uint32 EthSwtPayloadField0RegValue;  /**<  Value to be added in the Payload Field 0 Register*/
2783     uint32 EthSwtPayloadField1RegValue;  /**<  Value to be added in the Payload Field 0 Register*/
2784 } Netc_EthSwt_Ip_KeyConstructionRuleType;
2785 
2786 /*!
2787  * @brief Configuration of one Ethernet Switch for initalisation
2788  */
2789 typedef struct {
2790     Netc_EthSwt_Ip_MacLearningOptionType MacLearningOption; /*!< specifies the Mac learning mode */
2791     Netc_EthSwt_Ip_MacForwardingOptionType MacForwardingOption; /*!< specifies the Mac forwarding option */
2792     uint16 EthSwtMaxDynamicEntries; /*!< This field specifies the maximum number of dynamic entries allowed in the FDB table for the entire switch. A value of 0 implies no global switch limit imposed for dynamic entries.*/
2793     uint16 EthSwtArlTableEntryTimeout; /*!< specifies the timeout in seconds for removing unused entries. */
2794     boolean EthSwtEnableSharedLearning; /*!< Used to determine the FID when doing a lookup in the FDB table. 0: Independent VLAN learning: FID is set to to the VID assigned to the frame 1: Shared VLAN learning: Use the FID specified in this register */
2795     uint16 EthSwtCustomVlanEtherType1;  /*!< Custom VLAN */
2796     uint16 EthSwtCustomVlanEtherType2;  /*!< Custom VLAN */
2797     Netc_EthSwt_Ip_PortType (*port)[NETC_ETHSWT_NUMBER_OF_PORTS]; /*!< Port description. */
2798     Netc_EthSwt_Ip_KeyConstructionRuleType (*EthSwtKeyConstruction)[4U]; /*!< Represents a Key Construction Rule. */
2799 #if (NETC_ETHSWT_NUMBER_OF_STREAMIDENTIFICATION_ENTRIES > 0U)
2800     uint8 NumberOfIsiEntries; /*!< Number of Ingress Stream Identification entries. */
2801     const Netc_EthSwt_Ip_IngrStremIdentificationTableDataType (*IsiEntries)[NETC_ETHSWT_NUMBER_OF_STREAMIDENTIFICATION_ENTRIES]; /*!< Pointer to an array containing the StreamIdentification configuration. */
2802 #endif
2803 
2804 #if (NETC_ETHSWT_NUMBER_OF_SEQTAG_ENTRIES > 0U)
2805     uint8 NumberOfSeqTagEntries; /*!< Number of Sequence tag entries. */
2806     const Netc_EthSwt_Ip_ISQGTableDataType (*SeqTagEntries)[NETC_ETHSWT_NUMBER_OF_SEQTAG_ENTRIES]; /*!< Pointer to an array containing the SequenceTag configuration. */
2807 #endif
2808 
2809 #if (NETC_ETHSWT_NUMBER_OF_SEQRECOVERY_ENTRIES > 0U)
2810     uint8 NumberOfSeqRecoveryEntries; /*!< Number of Sequence tag entries. */
2811     const Netc_EthSwt_Ip_EgrSeqRecoveryTableDataType (*SeqRecoveryEntries)[NETC_ETHSWT_NUMBER_OF_SEQRECOVERY_ENTRIES]; /*!< Pointer to an array containing the SequenceRecovery configuration. */
2812 #endif
2813 
2814 #if (NETC_ETHSWT_NUMBER_OF_RP_ENTRIES > 0U)
2815     uint8 NumberOfRPEntries; /*!< Number of Rate Policer/Flow Meter entries */
2816     const Netc_EthSwt_Ip_RatePolicerEntryDataType (*EthSwtRatePolicerEntries)[NETC_ETHSWT_NUMBER_OF_RP_ENTRIES]; /*!< Pointer to an array containing entries for the rate policer table. */
2817 #endif
2818 #if (NETC_ETHSWT_NUMBER_OF_SGCL_ENTRIES > 0U)
2819     uint8 NumberOfSGCLEntries; /*!< Number of Stream Gate Instance entries */
2820     const Netc_EthSwt_Ip_SGCLTableDataType (*StreamGateControlListEntries)[NETC_ETHSWT_NUMBER_OF_SGCL_ENTRIES]; /*!< Pointer to an array containing configurations for Stream Gate Control Lists. */
2821 #endif
2822 #if (NETC_ETHSWT_NUMBER_OF_SGI_ENTRIES > 0U)
2823     uint8 NumberOfSGIEntries; /*!< Number of Stream Gate Instance entries */
2824     const Netc_EthSwt_Ip_StreamGateInstanceEntryDataType (*StreamGateInstanceEntries)[NETC_ETHSWT_NUMBER_OF_SGI_ENTRIES]; /*!< Pointer to an array containing configurations for Stream Gate Instances. */
2825 #endif
2826 #if (NETC_ETHSWT_NUMBER_OF_FRAMEMODIFICATION_ENTRIES > 0U)
2827     uint8 NumberOfFrmModifEntries; /*!< Number of Frame Modification entries */
2828     const Netc_EthSwt_Ip_FrmModificationEntryDataType (*FrameModificationEntries)[NETC_ETHSWT_NUMBER_OF_FRAMEMODIFICATION_ENTRIES]; /*!< Pointer to an array containing configurations for Frame Modification. */
2829 #endif
2830 #if (NETC_ETHSWT_NUMBER_OF_EGRESSTREATMENT_ENTRIES > 0U)
2831     uint8 NumberOfEgrTreatmentEntries; /*!< Number of Egress Treatment entries */
2832     const Netc_EthSwt_Ip_EgressTreatmentEntryDataType (*EgressTreatmentEntries)[NETC_ETHSWT_NUMBER_OF_EGRESSTREATMENT_ENTRIES]; /*!< Pointer to an array containing configurations for Egress Treatment. */
2833 #endif
2834 #if (NETC_ETHSWT_NUMBER_OF_INGRESSSTREAM_ENTRIES > 0U)
2835     uint8 NumberOfIngrStreamEntries; /*!< Number of Ingress Stream entries */
2836     const Netc_EthSwt_Ip_IngressStreamEntryDataType (*IngressStreamEntries)[NETC_ETHSWT_NUMBER_OF_INGRESSSTREAM_ENTRIES]; /*!< Pointer to an array containing configurations for Ingress Stream. */
2837 #endif
2838 #if (NETC_ETHSWT_NUMBER_OF_FDB_ENTRIES > 0U)
2839     uint8 NumberOfFdbEntries; /*!< Number of FDB entries. */
2840     const Netc_EthSwt_Ip_FdbEntryType (*FdbEntries)[NETC_ETHSWT_NUMBER_OF_FDB_ENTRIES]; /*!< Pointer to an array containing the FDB configuration. */
2841 #endif
2842 #if (NETC_ETHSWT_NUMBER_OF_VLANFILTER_ENTRIES > 0U)
2843     uint8 NumberOfVlanFilterEntries; /*!< Number of Vlan Filter entries. */
2844     const Netc_EthSwt_Ip_VlanFilterEntryType (*VlanFilterEntries)[NETC_ETHSWT_NUMBER_OF_VLANFILTER_ENTRIES]; /*!< Pointer to an array containing the Vlan configuration. */
2845 #endif
2846     uint8 (*vlanPcpDei2IpvProfile)[NETC_ETHSWT_NUMBER_OF_PROFILES][NETC_ETHSWT_NUMBER_OF_PCP_DEI]; /*!< Profiles for PCP_DEI to IPV ingress mapping. */
2847     uint8 (*vlanPcpDei2DrProfile)[NETC_ETHSWT_NUMBER_OF_PROFILES][NETC_ETHSWT_NUMBER_OF_PCP_DEI]; /*!< Profiles for PCP_DEI to DR ingress mapping. */
2848     uint8 (*vlanPcp2PcpProfile)[NETC_ETHSWT_NUMBER_OF_PROFILES][NETC_ETHSWT_NUMBER_OF_PCP]; /*!< Profiles for PCP to PCP frame modification. */
2849     uint8 (*vlanIpvDr2PcpProfile)[NETC_ETHSWT_NUMBER_OF_PROFILES][NETC_ETHSWT_NUMBER_OF_IPV][NETC_ETHSWT_NUMBER_OF_DR]; /*!< Profiles for egress IPV/DR to PCP frame modification. */
2850 	uint32 netcClockFrequency;  /*!< Netc system clock */
2851     uint32 netcExternalClockFrequency;  /*!< extern reference clock */
2852     Netc_EthSwt_Ip_1588ClockSourceOptionType Timer1588ClkSrc;   /*!< reference clock source for 1588 timer */
2853 } Netc_EthSwt_Ip_ConfigType;
2854 
2855 /**
2856 * @brief Type to request or obtain the mirroring state (enable/disable) for a particular Ethernet switch.
2857 * @implements     Netc_EthSwt_Ip_SwitchMirrorStateType_enum
2858 */
2859 typedef enum
2860 {
2861     NETC_ETHSWT_MIRROR_DISABLED = 0x0U,      /*!< @brief switch mirroring disabled. */
2862     NETC_ETHSWT_MIRROR_ENABLED  = 0x1U       /*!< @brief switch mirroring enabled. */
2863 } Netc_EthSwt_Ip_SwitchMirrorStateType;
2864 
2865 /**
2866 * @brief Switch Mirroring Mode Type
2867 */
2868 typedef enum
2869 {
2870     NETC_ETHSWT_NO_VLAN_RETAGGING = 0x0U,        /*!< @brief No VLAN retagging. */
2871     NETC_ETHSWT_VLAN_RETAGGING = 0x1U,           /*!< @brief VLAN retagging. */
2872     NETC_ETHSWT_VLAN_DOUBLE_TAGGING  = 0x2U      /*!< @brief VLAN Double tagging. */
2873 } Netc_EthSwt_Ip_SwitchMirroringModeType;
2874 
2875 /** @brief The Netc_EthSwt_Ip_SwitchMirrorCfgType specify the mirror configuration which is set up per Ethernet switch.
2876 *   @implements Netc_EthSwt_Ip_SwitchMirrorCfgType_struct
2877 * */
2878 typedef struct
2879 {
2880     uint8    SrcMacAddrFilter[6U];              /*!< @brief Specifies the source MAC address [0..255,0..255,0..255,0..255,0..255,0..255] that should be mirrored. If set to 0,0,0,0,0,0, no source MAC address filtering shall take place. */
2881     uint8    DstMacAddrFilter[6U];              /*!< @brief Specifies the destination MAC address [0..255,0..255,0..255,0..255,0..255,0..255] that should be mirrored. If set to 0,0,0,0,0,0, no destination MAC address filtering shall take place. */
2882     uint16   VlanIdFilter;                      /*!< @brief Specifies the VLAN address 0..4094 that should be mirrored. If set to 65535, no VLAN filtering shall take place. */
2883     uint32   TrafficDirectionIngressBitMask;    /*!< @brief Specifies the bit mask of Ethernet switch ingress port traffic direction to be mirrored. The bit mask is calculated depending of the values of EthSwtPortIdx. (e.g. set EthSwtPortIdx == 2 => TrafficDirectionIngressBitMask = 0b0000 0000 0000 0000 0000 0000 0000 0100).
2884                                                 0b0 == disable ingress port mirroring 0b1 == enable ingress port mirroring Example: TrafficDirectionIngressBitMask = 0b0000 0000 0000 0000 0000 0000 0000 0100 => Ingress traffic mirroring is enabled of Ethernet switch port with EthSwtPortIdx=2 */
2885     uint8    CapturePortIdx;                    /*!< @brief Specifies the Ethernet switch port which capture the mirrored traffic */
2886     uint16   VlanId;                            /*!< @brief Specifies the VLAN address 0..4094 which shall be used for re-tagging or double-tagging if MirroringMode is set to 0x01 (VLAN re-tagging) or 0x02 (VLAN double tagging).
2887                                                 If the value is set to 65535, the value shall be ignored */
2888     Netc_EthSwt_Ip_SwitchMirroringModeType    MirroringMode;     /*!< @brief specifies the mode how the mirrored traffic should be tagged : 0x00 == No VLAN retagging; 0x01 == VLAN retagging; 0x03 == VLAN Double tagging */
2889 } Netc_EthSwt_Ip_SwitchMirrorCfgType;
2890 
2891 /*!
2892  * @brief PTP time
2893  * @implements Netc_EthSwt_Ip_PtpTimeType_struct
2894 */
2895 typedef struct
2896 {
2897     uint32 nanoseconds;  /**< Nanoseconds */
2898     uint32 seconds;      /**< Lower 32-bit of seconds */
2899     uint16 secondsHi;    /**< Upper 16-bit of seconds */
2900 } Netc_EthSwt_Ip_PtpTimeType;
2901 
2902 /*==================================================================================================
2903 *                                  GLOBAL VARIABLE DECLARATIONS
2904 ==================================================================================================*/
2905 
2906 /*==================================================================================================
2907 *                                       FUNCTION PROTOTYPES
2908 ==================================================================================================*/
2909 
2910 #ifdef __cplusplus
2911 }
2912 #endif
2913 
2914 /** @} */
2915 
2916 #endif /* NETC_ETHSWT_IP_TYPES_H */
2917