AM64x MCU+ SDK  08.03.00
icssg.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) Texas Instruments Incorporated 2020
3  *
4  * Redistribution and use in source and binary forms, with or without
5  * modification, are permitted provided that the following conditions
6  * are met:
7  *
8  * Redistributions of source code must retain the above copyright
9  * notice, this list of conditions and the following disclaimer.
10  *
11  * Redistributions in binary form must reproduce the above copyright
12  * notice, this list of conditions and the following disclaimer in the
13  * documentation and/or other materials provided with the
14  * distribution.
15  *
16  * Neither the name of Texas Instruments Incorporated nor the names of
17  * its contributors may be used to endorse or promote products derived
18  * from this software without specific prior written permission.
19  *
20  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
23  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
24  * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
25  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
26  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
27  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
28  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
29  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
30  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31  */
32 
50 #ifndef ICSSG_H_
51 #define ICSSG_H_
52 
53 /* ========================================================================== */
54 /* Include Files */
55 /* ========================================================================== */
56 
57 #include <stdint.h>
60 #include <include/mod/mdio.h>
61 #include <include/phy/enetphy.h>
63 #include <priv/core/enet_rm_priv.h>
65 
66 #ifdef __cplusplus
67 extern "C" {
68 #endif
69 
70 /* ========================================================================== */
71 /* Macros */
72 /* ========================================================================== */
73 
75 #define ICSSG_PUBLIC_IOCTL(x) (ENET_IOCTL_PER_BASE | \
76  ENET_IOCTL_PER_ICSSG | \
77  ENET_IOCTL_MIN(x))
78 
80 #define ICSSG_PORT_NUM (3U)
81 
83 #define ICSSG_MAC_PORT_MAX (ICSSG_PORT_NUM - 1U)
84 
87 #define ICSSG_PER_DUALMAC_PORT_MAX (1U)
88 
90 #define ICSSG_PER_SWITCH_PORT_MAX (ICSSG_MAC_PORT_MAX)
91 
93 #ifdef SOC_AM65XX
94 #define ICSSG_INSTANCE_NUM (3U)
95 #else
96 #define ICSSG_INSTANCE_NUM (2U)
97 #endif
98 
100 #define ICSSG_MAX_NUM_BUFFER_POOLS (24U)
101 
103 #define ICSSG_DUALMAC_TX_CH_NUM (4U)
104 
106 #define ICSSG_DUALMAC_RX_FLOW_NUM (8U)
107 
109 #define ICSSG_SWITCH_TX_CH_NUM (8U)
110 
112 #define ICSSG_SWITCH_RX_FLOW_NUM (8U)
113 
115 #define ICSSG_DUALMAC_PORT_BUFFER_POOL_NUM (0U)
116 
118 #define ICSSG_DUALMAC_HOST_EGRESS_QUEUE_NUM (2U)
119 
121 #define ICSSG_SWITCH_PORT_BUFFER_POOL_NUM (8U)
122 
124 #define ICSSG_SWITCH_HOST_EGRESS_QUEUE_NUM (2U)
125 
127 #define ICSSG_HOST_EGRESS_BUFFER_PADDING (2048U)
128 
130 #define ICSSG_SCRATCH_BUFFER_SIZE (2048U)
131 
144 #define ICSSG_FDB_ENTRY_P0_MEMBERSHIP (ENET_BIT(0U))
145 
151 #define ICSSG_FDB_ENTRY_P1_MEMBERSHIP (ENET_BIT(1U))
152 
158 #define ICSSG_FDB_ENTRY_P2_MEMBERSHIP (ENET_BIT(2U))
159 
165 #define ICSSG_FDB_ENTRY_AGEABLE (ENET_BIT(3U))
166 
173 #define ICSSG_FDB_ENTRY_BLOCK (ENET_BIT(4U))
174 
180 #define ICSSG_FDB_ENTRY_SECURE (ENET_BIT(5U))
181 
188 #define ICSSG_FDB_ENTRY_TOUCHED (ENET_BIT(6U))
189 
195 #define ICSSG_FDB_ENTRY_VALID (ENET_BIT(7U))
196 
199 /* RX Rate Source Selection */
200 
201 #define ICSSG_RATE_SRC_SEL_FT1_MATCH0 (0U)
202 #define ICSSG_RATE_SRC_SEL_FT1_MATCH1 (1U)
203 #define ICSSG_RATE_SRC_SEL_FT1_MATCH2 (2U)
204 #define ICSSG_RATE_SRC_SEL_FT1_MATCH3 (3U)
205 #define ICSSG_RATE_SRC_SEL_FT1_MATCH4 (4U)
206 #define ICSSG_RATE_SRC_SEL_FT1_MATCH5 (5U)
207 #define ICSSG_RATE_SRC_SEL_FT1_MATCH6 (6U)
208 #define ICSSG_RATE_SRC_SEL_FT1_MATCH7 (7U)
209 #define ICSSG_RATE_SRC_SEL_FT3_MATCH0 (8U)
210 #define ICSSG_RATE_SRC_SEL_FT3_MATCH1 (9U)
211 #define ICSSG_RATE_SRC_SEL_FT3_MATCH2 (10U)
212 #define ICSSG_RATE_SRC_SEL_FT3_MATCH3 (11U)
213 #define ICSSG_RATE_SRC_SEL_FT3_MATCH4 (12U)
214 #define ICSSG_RATE_SRC_SEL_FT3_MATCH5 (13U)
215 #define ICSSG_RATE_SRC_SEL_FT3_MATCH6 (14U)
216 #define ICSSG_RATE_SRC_SEL_FT3_MATCH7 (15U)
217 #define ICSSG_RATE_SRC_SEL_FT3_MATCH8 (16U)
218 #define ICSSG_RATE_SRC_SEL_FT3_MATCH9 (17U)
219 #define ICSSG_RATE_SRC_SEL_FT3_MATCH10 (18U)
220 #define ICSSG_RATE_SRC_SEL_FT3_MATCH11 (19U)
221 #define ICSSG_RATE_SRC_SEL_FT3_MATCH12 (20U)
222 #define ICSSG_RATE_SRC_SEL_FT3_MATCH13 (21U)
223 #define ICSSG_RATE_SRC_SEL_FT3_MATCH14 (22U)
224 #define ICSSG_RATE_SRC_SEL_FT3_MATCH15 (23U)
225 #define ICSSG_RATE_SRC_SEL_FT_RX_UC (24U)
226 #define ICSSG_RATE_SRC_SEL_FT_RX_MC (25U)
227 #define ICSSG_RATE_SRC_SEL_FT_RX_BC (26U)
228 #define ICSSG_RATE_SRC_SEL_FT_RX_SAV (27U)
229 #define ICSSG_RATE_SRC_SEL_FT_RX_FWD (28U)
230 #define ICSSG_RATE_SRC_SEL_FT_RX_RCV (29U)
231 #define ICSSG_RATE_SRC_SEL_FT_RX_VLAN (30U)
232 #define ICSSG_RATE_SRC_SEL_FT_RX_DA_P (31U)
233 #define ICSSG_RATE_SRC_SEL_FT_RX_DA_I (32U)
234 #define ICSSG_RATE_SRC_SEL_RX_CLASS_RAW0 (33U)
235 #define ICSSG_RATE_SRC_SEL_RX_CLASS_RAW1 (34U)
236 #define ICSSG_RATE_SRC_SEL_RX_CLASS_RAW2 (35U)
237 #define ICSSG_RATE_SRC_SEL_RX_CLASS_RAW3 (36U)
238 #define ICSSG_RATE_SRC_SEL_RX_CLASS_RAW4 (37U)
239 #define ICSSG_RATE_SRC_SEL_RX_CLASS_RAW5 (38U)
240 #define ICSSG_RATE_SRC_SEL_RX_CLASS_RAW6 (39U)
241 #define ICSSG_RATE_SRC_SEL_RX_CLASS_RAW7 (40U)
242 #define ICSSG_RATE_SRC_SEL_RX_CLASS_RAW8 (41U)
243 #define ICSSG_RATE_SRC_SEL_RX_CLASS_RAW9 (42U)
244 #define ICSSG_RATE_SRC_SEL_RX_CLASS_RAW10 (43U)
245 #define ICSSG_RATE_SRC_SEL_RX_CLASS_RAW11 (44U)
246 #define ICSSG_RATE_SRC_SEL_RX_CLASS_RAW12 (45U)
247 #define ICSSG_RATE_SRC_SEL_RX_CLASS_RAW13 (46U)
248 #define ICSSG_RATE_SRC_SEL_RX_CLASS_RAW14 (47U)
249 #define ICSSG_RATE_SRC_SEL_RX_CLASS_RAW15 (48U)
250 
251 /* RX class data mapping */
252 #define ICCSG_RX_CLASS_DATA_FT3_MATCH0 (0U)
253 #define ICCSG_RX_CLASS_DATA_FT3_MATCH1 (1U)
254 #define ICCSG_RX_CLASS_DATA_FT3_MATCH2 (2U)
255 #define ICCSG_RX_CLASS_DATA_FT3_MATCH3 (3U)
256 #define ICCSG_RX_CLASS_DATA_FT3_MATCH4 (4U)
257 #define ICCSG_RX_CLASS_DATA_FT3_MATCH5 (5U)
258 #define ICCSG_RX_CLASS_DATA_FT3_MATCH6 (6U)
259 #define ICCSG_RX_CLASS_DATA_FT3_MATCH7 (7U)
260 #define ICCSG_RX_CLASS_DATA_FT3_MATCH8 (8U)
261 #define ICCSG_RX_CLASS_DATA_FT3_MATCH9 (9U)
262 #define ICCSG_RX_CLASS_DATA_FT3_MATCH10 (10U)
263 #define ICCSG_RX_CLASS_DATA_FT3_MATCH11 (11U)
264 #define ICCSG_RX_CLASS_DATA_FT3_MATCH12 (12U)
265 #define ICCSG_RX_CLASS_DATA_FT3_MATCH13 (13U)
266 #define ICCSG_RX_CLASS_DATA_FT3_MATCH14 (14U)
267 #define ICCSG_RX_CLASS_DATA_FT3_MATCH15 (15U)
268 #define ICCSG_RX_CLASS_DATA_FT1_MATCH0 (16U)
269 #define ICCSG_RX_CLASS_DATA_FT1_MATCH1 (17U)
270 #define ICCSG_RX_CLASS_DATA_FT1_MATCH2 (18U)
271 #define ICCSG_RX_CLASS_DATA_FT1_MATCH3 (19U)
272 #define ICCSG_RX_CLASS_DATA_FT1_MATCH4 (20U)
273 #define ICCSG_RX_CLASS_DATA_FT1_MATCH5 (21U)
274 #define ICCSG_RX_CLASS_DATA_FT1_MATCH6 (22U)
275 #define ICCSG_RX_CLASS_DATA_FT1_MATCH7 (23U)
276 #define ICCSG_RX_CLASS_DATA_FT_RX_DA_I (24U)
277 #define ICCSG_RX_CLASS_DATA_FT_RX_DA_P (25U)
278 #define ICCSG_RX_CLASS_DATA_FT_RX_VLAN (26U)
279 #define ICCSG_RX_CLASS_DATA_FT_RX_RCV (27U)
280 #define ICCSG_RX_CLASS_DATA_FT_RX_FWD (28U)
281 #define ICCSG_RX_CLASS_DATA_FT_RX_BC (29U)
282 #define ICCSG_RX_CLASS_DATA_FT_RX_MC (30U)
283 #define ICCSG_RX_CLASS_DATA_FT_RX_SAV (31U)
284 
286 #define ICSSG_TAS_MIN_CYCLE_TIME_NS (1000000)
287 
289 #define ICSSG_TAS_MIN_WINDOW_DURATION_NS (10000)
290 
291 /* ========================================================================== */
292 /* Structures and Enums */
293 /* ========================================================================== */
294 
298 typedef enum Icssg_Instance_Num_e
299 {
302 
305 
309 
314 typedef struct Icssg_TxTsEvtCbInfo_s
315 {
318  uint32_t txTsId;
319 
321  uint64_t ts;
323 
327 typedef enum Icssg_Ioctl_e
328 {
339 
350 
361 
372 
383 
405 
416 
427 
438 
449 
460 
471 
482 
493 
504 
515 
526 
537 
548 
559 
570 
576 
582 
588 
594 
609 
620 
633 
644 
655 
666 
677 
693 
704 
705 } Icssg_Ioctl;
706 
710 typedef enum Icssg_QueuePreemptMode_e
711 {
714 
718 
722 typedef enum Icssg_QueueForwardMode_e
723 {
726 
730 
734 typedef enum Icssg_PortState_e
735 {
739 
744 
749 
752 
755 
758 
761 
765 
769 typedef struct IcssgMacPort_SetPortStateInArgs_s
770 {
773 
777 
781 typedef enum Icssg_AcceptFrameCheck_e
782 {
785 
788 
792 
796 typedef struct Icssg_SetAcceptFrameCheckInArgs_s
797 {
800 
804 
808 typedef struct Icssg_MacAddr_s
809 {
811  uint8_t macAddr[ENET_MAC_ADDR_LEN];
812 } Icssg_MacAddr;
813 
817 typedef struct IcssgMacPort_SetMacAddressInArgs_s
818 {
821 
823  uint8_t macAddr[ENET_MAC_ADDR_LEN];
825 
830 typedef struct IcssgMacPort_PreemptSetMinFragSizeRemoteInArgs_s
831 {
834 
838 
842 typedef struct Icssg_VlanFidParams_s
843 {
846  uint8_t fid;
847 
850 
852  bool p1Member;
853 
855  bool p2Member;
856 
860 
863  bool p1Tagged;
864 
867  bool p2Tagged;
868 
870  bool streamVid;
871 
875 
879 typedef struct Icssg_VlanFidEntry_s
880 {
882  uint16_t vlanId;
883 
887 
891 typedef struct Icssg_FdbEntry_s
892 {
894  uint8_t macAddr[ENET_MAC_ADDR_LEN];
895 
897  int16_t vlanId;
898 
901  uint8_t fdbEntry[2];
903 
907 typedef enum Icssg_PreemptVerifyState_e
908 {
911 
914 
917 
920 
923 
927 
931 typedef struct Icssg_DfltVlanCfg_s
932 {
935 
937  uint16_t vlanId;
938 
940  uint8_t pcp;
942 
946 typedef struct Icssg_MacPortDfltVlanCfgInArgs_s
947 {
950 
955 
959 typedef struct Icssg_IngressRateLim_s
960 {
963 
964  uint32_t rateLimit; //In Mbps
965  uint32_t rateSrcSel;//0..47
966  uint8_t rateIndex; //0..7, 0xFF : skip
967  uint8_t classIndex; //0..15 - FW dependent
968  uint8_t notMask; //Bit 0 : !AND Bit1 : !OR
969  uint8_t classSel; //0: OR 1 : AND 2: OR AND AND 3 : OR OR AND
971  uint32_t classDataOrTerm;
972  struct FT_S {
973  uint8_t index; //FT1 (0..7) FT3 (0..15)0XFF : Skip
974  uint8_t type; // 0 : FT1 or 1 : FT3
975  uint16_t ft1Start;
976  uint16_t ft1Len;
977  uint16_t ft1Cfg;
978  union FT_U {
979  struct FT1_CONFIG_S {
980  uint32_t destAddrLow;
981  uint32_t destAddrHigh;
982  uint32_t destAddrMaskLow;
984  } ft1;
985  struct FT3_CONFIG_S {
986  uint32_t start;
987  uint32_t startAuto;
988  uint32_t startLen;
989  uint32_t jmpOffset;
990  uint32_t len;
991  uint32_t config;
992  uint32_t type;
993  uint32_t typeMask;
994  uint32_t patternLow;
995  uint32_t patternHigh;
996  uint32_t patternMaskLow;
997  uint32_t patternMaskHigh;
998  } ft3;
999  } u;
1000  } filter[2];
1002 
1009 typedef struct Icssg_FwPoolMem_s
1010 {
1014 
1017 
1020 
1024 
1027 
1030 
1034 
1038 
1042 
1046 
1049 
1052 
1055 } Icssg_FwPoolMem;
1056 
1060 typedef struct Icssg_MdioLinkStateChangeInfo_s
1061 {
1063  uint32_t phyAddr;
1064 
1068 
1071  bool isAlive;
1072 
1075 
1077  bool isLinked;
1079 
1087  void *appArg);
1088 
1089 
1090 typedef struct Icssg_mdioLinkIntCfg_s
1091 {
1094 
1099  int32_t coreIntrNum;
1100  uint32_t pruEvtNum;
1101  uint32_t isPulseIntr;
1102  uint32_t intrPrio;
1104 
1108 typedef struct Icssg_Cfg_s
1109 {
1111  uint64_t agingPeriod;
1112 
1115 
1120  const void *dmaCfg;
1121 
1124 
1127 
1130 
1133 
1135  uint32_t cycleTimeNs;
1136 
1139 
1150 
1152  uint32_t qosLevels;
1153 
1156 
1157 } Icssg_Cfg;
1158 
1162 typedef struct IccsgMacPort_Cfg_s
1163 {
1166 
1169 
1172 
1175 
1178 
1181 
1184 
1187 
1188 
1189 /* ========================================================================== */
1190 /* Global Variables Declarations */
1191 /* ========================================================================== */
1192 
1202  uint32_t instId);
1203 
1204 /* ========================================================================== */
1205 /* Function Declarations */
1206 /* ========================================================================== */
1207 
1216 
1226 uint32_t Icssg_getSliceNum(Enet_Type enetType,
1227  uint32_t instId,
1228  Enet_MacPort macPort);
1229 
1230 /* ========================================================================== */
1231 /* Deprecated Function Declarations */
1232 /* ========================================================================== */
1233 
1234 /* None */
1235 
1236 /* ========================================================================== */
1237 /* Static Function Definitions */
1238 /* ========================================================================== */
1239 
1240 /* None */
1241 
1242 #ifdef __cplusplus
1243 }
1244 #endif
1245 
1246 #endif /* ICSSG_H_ */
1247 
Icssg_mdioLinkIntCfg::mdioLinkStateChangeCbArg
void * mdioLinkStateChangeCbArg
Definition: icssg.h:1096
ICSSG_QUEUE_FORWARD_MODE_STOREANDFWD
@ ICSSG_QUEUE_FORWARD_MODE_STOREANDFWD
Definition: icssg.h:725
ICSSG_MACPORT_IOCTL_ENABLE_MCAST_FLOOD
@ ICSSG_MACPORT_IOCTL_ENABLE_MCAST_FLOOD
Enable flooding of multicast packets to host port.
Definition: icssg.h:665
Icssg_MdioLinkStateChangeInfo::isAlive
bool isAlive
Definition: icssg.h:1071
Icssg_IngressRateLim::FT_S::type
uint8_t type
Definition: icssg.h:974
Icssg_getSliceNum
uint32_t Icssg_getSliceNum(Enet_Type enetType, uint32_t instId, Enet_MacPort macPort)
ICSSG memory pool callback function.
ICSSG_MACPORT_IOCTL_DISABLE_MCAST_FLOOD
@ ICSSG_MACPORT_IOCTL_DISABLE_MCAST_FLOOD
Disable flooding of multicast packets to host port.
Definition: icssg.h:676
ICSSG_QUEUE_FORWARD_MODE_CUTTHROUGH
@ ICSSG_QUEUE_FORWARD_MODE_CUTTHROUGH
Definition: icssg.h:728
Icssg_mdioLinkIntCfg::pruEvtNum
uint32_t pruEvtNum
Definition: icssg.h:1100
ICSSG_PORT_STATE_TAS_ENABLE
@ ICSSG_PORT_STATE_TAS_ENABLE
Definition: icssg.h:757
ICSSG_ACCEPT_ALL
@ ICSSG_ACCEPT_ALL
Definition: icssg.h:790
ICSSG_VERIFYSTATE_FAILED
@ ICSSG_VERIFYSTATE_FAILED
Definition: icssg.h:922
Icssg_MdioLinkStateChangeInfo::aliveChanged
bool aliveChanged
Definition: icssg.h:1067
Icssg_Cfg::agingPeriod
uint64_t agingPeriod
Definition: icssg.h:1111
Icssg_IngressRateLim::classDataOrTerm
uint32_t classDataOrTerm
Definition: icssg.h:971
ICSSG_MACPORT_IOCTL_PREEMPT_SET_MIN_FRAG_SIZE_REMOTE
@ ICSSG_MACPORT_IOCTL_PREEMPT_SET_MIN_FRAG_SIZE_REMOTE
Add minimum fragment size.
Definition: icssg.h:558
Icssg_IngressRateLim::FT_S::ft1Start
uint16_t ft1Start
Definition: icssg.h:975
Icssg_Cfg::isPremQueEnable
uint32_t isPremQueEnable
Definition: icssg.h:1155
ICSSG_ACCEPT_ONLY_UNTAGGED_PRIO_TAGGED
@ ICSSG_ACCEPT_ONLY_UNTAGGED_PRIO_TAGGED
Definition: icssg.h:787
Icssg_mdioLinkIntCfg::isPulseIntr
uint32_t isPulseIntr
Definition: icssg.h:1101
Icssg_FwPoolMem
ICSSG buffer pool memories.
Definition: icssg.h:1010
ICSSG_FDB_IOCTL_SET_AGING_PERIOD
@ ICSSG_FDB_IOCTL_SET_AGING_PERIOD
Set the aging period of the FDB.
Definition: icssg.h:632
IcssgMacPort_SetPortStateInArgs::macPort
Enet_MacPort macPort
Definition: icssg.h:772
ICSSG_PER_IOCTL_TAS_TRIGGER
@ ICSSG_PER_IOCTL_TAS_TRIGGER
Definition: icssg.h:575
ICSSG_PORT_STATE_TAS_TRIGGER
@ ICSSG_PORT_STATE_TAS_TRIGGER
Definition: icssg.h:754
ICSSG_VERIFYSTATE_INITIAL
@ ICSSG_VERIFYSTATE_INITIAL
Definition: icssg.h:913
ICSSG_VERIFYSTATE_SUCCEEDED
@ ICSSG_VERIFYSTATE_SUCCEEDED
Definition: icssg.h:919
Icssg_Cfg::mii
EnetMacPort_Interface mii
Definition: icssg.h:1132
mdio.h
This file contains the type definitions and helper macros for the MDIO module interface.
IcssgMacPort_SetMacAddressInArgs::macPort
Enet_MacPort macPort
Definition: icssg.h:820
Icssg_TxTsEvtCbInfo
Icssg TX timestamp event callback info structure. This is passed to application when TX timestamp is ...
Definition: icssg.h:315
EnetPort_VlanCfg
VLAN configuration parameters.
Definition: enet_mod_port.h:68
Icssg_IngressRateLim::FT_S::FT_U::FT3_CONFIG_S::start
uint32_t start
Definition: icssg.h:986
ICSSG_MACPORT_IOCTL_SET_INGRESS_RATE_LIM
@ ICSSG_MACPORT_IOCTL_SET_INGRESS_RATE_LIM
Configure ingress rate limiting.
Definition: icssg.h:703
Icssg_FwPoolMem::hostBufferPoolMem
uint8_t * hostBufferPoolMem
Definition: icssg.h:1023
IcssgMacPort_Cfg::mcastFloodEn
bool mcastFloodEn
Definition: icssg.h:1171
IcssgMacPort_PreemptSetMinFragSizeRemoteInArgs::macPort
Enet_MacPort macPort
Definition: icssg.h:833
icssg_stats.h
This file contains the type definitions and helper macros for ICSSG Statistics interface.
Icssg_QueueForwardMode
Icssg_QueueForwardMode
Queue forward mode: cut-through or store-and-forward.
Definition: icssg.h:723
ICSSG_MACPORT_IOCTL_ENABLE_UCAST_FLOOD
@ ICSSG_MACPORT_IOCTL_ENABLE_UCAST_FLOOD
Enable flooding of unicast packets to host port.
Definition: icssg.h:643
ICSSG_MACPORT_IOCTL_DISABLE_PROMISC_MODE
@ ICSSG_MACPORT_IOCTL_DISABLE_PROMISC_MODE
Disable promiscuous mode.
Definition: icssg.h:349
ICSSG_VERIFYSTATE_UNKNOWN
@ ICSSG_VERIFYSTATE_UNKNOWN
Definition: icssg.h:910
Icssg_VlanFidParams::floodToHost
bool floodToHost
Definition: icssg.h:873
Icssg_FwPoolMem::hostEgressPreQueueSize
uint32_t hostEgressPreQueueSize
Definition: icssg.h:1045
Icssg_IngressRateLim::classIndex
uint8_t classIndex
Definition: icssg.h:967
Icssg_IngressRateLim::FT_S::FT_U::FT3_CONFIG_S::len
uint32_t len
Definition: icssg.h:990
IcssgMacPort_PreemptSetMinFragSizeRemoteInArgs
Input args for ICSSG_MACPORT_IOCTL_PREEMPT_SET_MIN_FRAG_SIZE_REMOTE command.
Definition: icssg.h:831
Icssg_VlanFidParams::p1Member
bool p1Member
Definition: icssg.h:852
Enet_MacPort
Enet_MacPort
MAC port.
Definition: enet_types.h:406
Icssg_Cfg::mdioCfg
Mdio_Cfg mdioCfg
Definition: icssg.h:1126
ICSSG_PER_IOCTL_VLAN_SET_ENTRY
@ ICSSG_PER_IOCTL_VLAN_SET_ENTRY
Update a VLAN table entry.
Definition: icssg.h:371
Icssg_VlanFidParams::hostTagged
bool hostTagged
Definition: icssg.h:859
Icssg_MacAddr
MAC address.
Definition: icssg.h:809
ICSSG_QUEUE_PREEMPT_MODE_PREEMPT
@ ICSSG_QUEUE_PREEMPT_MODE_PREEMPT
Definition: icssg.h:716
ICSSG_MACPORT_IOCTL_PREEMPT_GET_MIN_FRAG_SIZE_LOCAL
@ ICSSG_MACPORT_IOCTL_PREEMPT_GET_MIN_FRAG_SIZE_LOCAL
Get minimum fragment size supported by firmware.
Definition: icssg.h:547
Icssg_FwPoolMem::hostEgressQueueMem
uint8_t * hostEgressQueueMem
Definition: icssg.h:1033
Icssg_IngressRateLim::FT_S::FT_U::FT3_CONFIG_S::jmpOffset
uint32_t jmpOffset
Definition: icssg.h:989
Icssg_FwPoolMem::hostBufferPoolSize
uint32_t hostBufferPoolSize
Definition: icssg.h:1026
Icssg_IngressRateLim::FT_S::FT_U::FT3_CONFIG_S::typeMask
uint32_t typeMask
Definition: icssg.h:993
Icssg_DfltVlanCfg::macPort
Enet_MacPort macPort
Definition: icssg.h:934
Icssg_SetAcceptFrameCheckInArgs::acceptFrameCheck
Icssg_AcceptFrameCheck acceptFrameCheck
Definition: icssg.h:802
Icssg_Cfg::vlanCfg
EnetPort_VlanCfg vlanCfg
Definition: icssg.h:1114
ICSSG_PER_IOCTL_TAS_ENABLE
@ ICSSG_PER_IOCTL_TAS_ENABLE
Definition: icssg.h:581
enet_mod_phy.h
This file contains the type definitions and helper macros for the Ethernet PHY interface.
Icssg_VlanFidEntry
VLAN FID table entry.
Definition: icssg.h:880
EnetRm_ResCfg
Resource manager configuration parameters.
Definition: enet_rm.h:337
ICSSG_MACPORT_IOCTL_SET_ACCEPT_FRAME_CHECK
@ ICSSG_MACPORT_IOCTL_SET_ACCEPT_FRAME_CHECK
Set the criteria for accepting VLAN tagged/untagged packets.
Definition: icssg.h:692
Icssg_Cfg::dmaCfg
const void * dmaCfg
Definition: icssg.h:1120
Icssg_FwPoolMem::scratchBufferSize
uint32_t scratchBufferSize
Definition: icssg.h:1054
Icssg_Ioctl
Icssg_Ioctl
ICSSG IOCTL commands.
Definition: icssg.h:328
Icssg_Cfg::mdioLinkIntCfg
Icssg_mdioLinkIntCfg mdioLinkIntCfg
Definition: icssg.h:1138
IcssgMacPort_Cfg
ICSSG mac port configuration parameters.
Definition: icssg.h:1163
ICSSG_PORT_STATE_TAS_RESET
@ ICSSG_PORT_STATE_TAS_RESET
Definition: icssg.h:760
ICSSG_PER_IOCTL_TAS_DISABLE
@ ICSSG_PER_IOCTL_TAS_DISABLE
Definition: icssg.h:587
ICSSG_PER_IOCTL_VLAN_RESET_TABLE
@ ICSSG_PER_IOCTL_VLAN_RESET_TABLE
Populate VLAN table with default VLAN entry configuration.
Definition: icssg.h:360
ICSSG_MACPORT_IOCTL_PREEMPT_GET_TX_ACTIVE_STATUS
@ ICSSG_MACPORT_IOCTL_PREEMPT_GET_TX_ACTIVE_STATUS
Get status of whether preemption is active or not.
Definition: icssg.h:503
Icssg_MacPortDfltVlanCfgInArgs
Input arguments for ICSSG_PER_IOCTL_VLAN_SET_MACPORT_DFLT_VID command.
Definition: icssg.h:947
Icssg_VlanFidParams::p1Tagged
bool p1Tagged
Definition: icssg.h:863
Icssg_VlanFidParams::fid
uint8_t fid
Definition: icssg.h:846
ICSSG_PUBLIC_IOCTL
#define ICSSG_PUBLIC_IOCTL(x)
Helper macro to create IOCTL commands for ICSSG per.
Definition: icssg.h:75
Icssg_FwPoolMem::portBufferPoolNum
uint32_t portBufferPoolNum
Definition: icssg.h:1019
Icssg_MdioLinkStateChangeCb
void(* Icssg_MdioLinkStateChangeCb)(Icssg_MdioLinkStateChangeInfo *info, void *appArg)
Icssg PHY link state change callback function.
Definition: icssg.h:1086
Icssg_MacPortDfltVlanCfgInArgs::vlanCfg
EnetPort_VlanCfg vlanCfg
Definition: icssg.h:953
Icssg_IngressRateLim::FT_S::FT_U
Definition: icssg.h:978
Icssg_FdbEntry::vlanId
int16_t vlanId
Definition: icssg.h:897
ICSSG_MACPORT_IOCTL_PREEMPT_VERIFY_ENABLE
@ ICSSG_MACPORT_IOCTL_PREEMPT_VERIFY_ENABLE
Enable verify state machine.
Definition: icssg.h:514
Icssg_IngressRateLim::rateLimit
uint32_t rateLimit
Definition: icssg.h:964
ICSSG_PORT_STATE_TAS_DISABLE
@ ICSSG_PORT_STATE_TAS_DISABLE
Definition: icssg.h:763
ICSSG_MACPORT_IOCTL_PREEMPT_GET_VERIFY_STATE
@ ICSSG_MACPORT_IOCTL_PREEMPT_GET_VERIFY_STATE
Get current state of the verify state machine.
Definition: icssg.h:536
enetphy.h
This file contains the type definitions and helper macros for the Ethernet PHY interface.
Icssg_PortState
Icssg_PortState
Port states.
Definition: icssg.h:735
ICSSG_INSTANCE_NUM_1
@ ICSSG_INSTANCE_NUM_1
Definition: icssg.h:304
Icssg_IngressRateLim::FT_S::FT_U::FT1_CONFIG_S::destAddrLow
uint32_t destAddrLow
Definition: icssg.h:980
ICSSG_PER_IOCTL_VLAN_SET_HOSTPORT_DFLT_VID
@ ICSSG_PER_IOCTL_VLAN_SET_HOSTPORT_DFLT_VID
Set the default VLAN ID and PCP bits for host port.
Definition: icssg.h:608
Icssg_IngressRateLim::FT_S::FT_U::FT3_CONFIG_S
Definition: icssg.h:985
Icssg_Instance_Num
Icssg_Instance_Num
ICSSG instance numbers.
Definition: icssg.h:299
Mdio_Cfg
MDIO module configuration.
Definition: networking/enet/core/include/mod/mdio.h:108
Icssg_PreemptVerifyState
Icssg_PreemptVerifyState
Preemption Verify State Machine states.
Definition: icssg.h:908
ICSSG_MACPORT_IOCTL_PREEMPT_GET_TX_ENABLE_STATUS
@ ICSSG_MACPORT_IOCTL_PREEMPT_GET_TX_ENABLE_STATUS
Get status of preemption on TX.
Definition: icssg.h:492
ENET_PRI_NUM
#define ENET_PRI_NUM
Packet priority.
Definition: enet_types.h:165
ICSSG_VERIFYSTATE_DISABLED
@ ICSSG_VERIFYSTATE_DISABLED
Definition: icssg.h:925
Icssg_IngressRateLim::notMask
uint8_t notMask
Definition: icssg.h:968
ICSSG_FDB_IOCTL_REMOVE_ALL_ENTRIES
@ ICSSG_FDB_IOCTL_REMOVE_ALL_ENTRIES
Delete all FDB entries.
Definition: icssg.h:437
EnetMacPort_Interface
MAC port interface.
Definition: enet_mod_macport.h:283
ICSSG_INSTANCE_NUM_0
@ ICSSG_INSTANCE_NUM_0
Definition: icssg.h:301
IcssgMacPort_Cfg::acceptFrameCheck
Icssg_AcceptFrameCheck acceptFrameCheck
Definition: icssg.h:1174
Icssg_TxTsEvtCbInfo::ts
uint64_t ts
Definition: icssg.h:321
Icssg_FwPoolMem::hostEgressPreQueueMem
uint8_t * hostEgressPreQueueMem
Definition: icssg.h:1037
Icssg_MacPortDfltVlanCfgInArgs::macPort
Enet_MacPort macPort
Definition: icssg.h:949
Icssg_IngressRateLim::FT_S::FT_U::FT3_CONFIG_S::patternMaskHigh
uint32_t patternMaskHigh
Definition: icssg.h:997
Icssg_MdioLinkStateChangeInfo::isLinked
bool isLinked
Definition: icssg.h:1077
Icssg_IngressRateLim::FT_S::FT_U::FT3_CONFIG_S::patternLow
uint32_t patternLow
Definition: icssg.h:994
Icssg_mdioLinkIntCfg::intrPrio
uint32_t intrPrio
Definition: icssg.h:1102
Icssg_IngressRateLim::FT_S
Definition: icssg.h:972
ICSSG_PER_IOCTL_VLAN_GET_ENTRY
@ ICSSG_PER_IOCTL_VLAN_GET_ENTRY
Get VLAN entry for VLAN table for requested VLAN id.
Definition: icssg.h:382
ICSSG_MACPORT_IOCTL_ENABLE_PROMISC_MODE
@ ICSSG_MACPORT_IOCTL_ENABLE_PROMISC_MODE
Enable promiscuous mode.
Definition: icssg.h:338
Icssg_VlanFidParams::p2Tagged
bool p2Tagged
Definition: icssg.h:867
Icssg_VlanFidParams
VLAN FID entry parameters.
Definition: icssg.h:843
Icssg_Cfg
ICSSG peripheral configuration parameters.
Definition: icssg.h:1109
Icssg_FwPoolMem::hostEgressQueueNum
uint32_t hostEgressQueueNum
Definition: icssg.h:1048
IcssgMacPort_Cfg::vlanCfg
EnetPort_VlanCfg vlanCfg
Definition: icssg.h:1177
ICSSG_PORT_STATE_FORWARD
@ ICSSG_PORT_STATE_FORWARD
Definition: icssg.h:748
Icssg_Cfg::disablePhyDriver
bool disablePhyDriver
Definition: icssg.h:1149
Enet_Type
Enet_Type
Ethernet peripheral type.
Definition: enet_types.h:196
Icssg_VlanFidParams::streamVid
bool streamVid
Definition: icssg.h:870
IcssgMacPort_PreemptSetMinFragSizeRemoteInArgs::preemptMinFrageSizeRemote
uint16_t preemptMinFrageSizeRemote
Definition: icssg.h:836
PRUICSS_IntcInitData
PRUICSS Interrupt controller initialisation data structure.
Definition: pruicss/g_v0/pruicss.h:273
Icssg_IngressRateLim
Input arguments for ICSSG_MACPORT_IOCTL_SET_INGRESS_RATE_LIM command.
Definition: icssg.h:960
ICSSG_FDB_IOCTL_REMOVE_AGEABLE_ENTRIES
@ ICSSG_FDB_IOCTL_REMOVE_AGEABLE_ENTRIES
Remote all ageable entries.
Definition: icssg.h:448
Icssg_DfltVlanCfg
Default VLAN configuration.
Definition: icssg.h:932
ICSSG_INSTANCE_NUM_2
@ ICSSG_INSTANCE_NUM_2
Definition: icssg.h:307
Icssg_IngressRateLim::FT_S::ft1Cfg
uint16_t ft1Cfg
Definition: icssg.h:977
ICSSG_PER_IOCTL_TAS_RESET
@ ICSSG_PER_IOCTL_TAS_RESET
Definition: icssg.h:593
ICSSG_PER_IOCTL_SET_PORT_STATE
@ ICSSG_PER_IOCTL_SET_PORT_STATE
Set port state.
Definition: icssg.h:404
Icssg_FwPoolMem::hostEgressQueueSize
uint32_t hostEgressQueueSize
Definition: icssg.h:1041
Icssg_VlanFidEntry::vlanFidParams
Icssg_VlanFidParams vlanFidParams
Definition: icssg.h:885
Icssg_AcceptFrameCheck
Icssg_AcceptFrameCheck
Acceptable frame check criteria.
Definition: icssg.h:782
IcssgMacPort_initCfg
void IcssgMacPort_initCfg(IcssgMacPort_Cfg *macPortCfg)
Initialises Mac Port COnfiguration.
ICSSG_MACPORT_IOCTL_PREEMPT_VERIFY_DISABLE
@ ICSSG_MACPORT_IOCTL_PREEMPT_VERIFY_DISABLE
Disable verify state machine.
Definition: icssg.h:525
IcssgMacPort_SetPortStateInArgs::portState
Icssg_PortState portState
Definition: icssg.h:775
Icssg_IngressRateLim::FT_S::FT_U::FT3_CONFIG_S::patternMaskLow
uint32_t patternMaskLow
Definition: icssg.h:996
EnetCb_GetFwPoolMem
const Icssg_FwPoolMem * EnetCb_GetFwPoolMem(Enet_Type enetType, uint32_t instId)
ICSSG memory pool callback function.
Icssg_SetAcceptFrameCheckInArgs
Input args for ICSSG_MACPORT_IOCTL_SET_ACCEPT_FRAME_CHECK command.
Definition: icssg.h:797
IcssgTimeSync_Cfg
TimeSync configuration parameters.
Definition: icssg_timesync.h:93
ICSSG_PORT_STATE_DISABLED
@ ICSSG_PORT_STATE_DISABLED
Definition: icssg.h:738
Icssg_Cfg::resCfg
EnetRm_ResCfg resCfg
Definition: icssg.h:1123
Icssg_IngressRateLim::FT_S::FT_U::FT3_CONFIG_S::startLen
uint32_t startLen
Definition: icssg.h:988
ICSSG_PORT_STATE_FORWARD_WO_LEARNING
@ ICSSG_PORT_STATE_FORWARD_WO_LEARNING
Definition: icssg.h:751
IcssgMacPort_Cfg::ucastFloodEn
bool ucastFloodEn
Definition: icssg.h:1168
Icssg_IngressRateLim::rateSrcSel
uint32_t rateSrcSel
Definition: icssg.h:965
Icssg_mdioLinkIntCfg
Definition: icssg.h:1091
ICSSG_ACCEPT_ONLY_VLAN_TAGGED
@ ICSSG_ACCEPT_ONLY_VLAN_TAGGED
Definition: icssg.h:784
Icssg_DfltVlanCfg::vlanId
uint16_t vlanId
Definition: icssg.h:937
Icssg_IngressRateLim::rateIndex
uint8_t rateIndex
Definition: icssg.h:966
ICSSG_FDB_IOCTL_ADD_ENTRY
@ ICSSG_FDB_IOCTL_ADD_ENTRY
Add FDB entry.
Definition: icssg.h:415
ICSSG_MACPORT_IOCTL_DISABLE_UCAST_FLOOD
@ ICSSG_MACPORT_IOCTL_DISABLE_UCAST_FLOOD
Disable flooding of unicast packets to host port.
Definition: icssg.h:654
Icssg_FwPoolMem::scratchBufferMem
uint8_t * scratchBufferMem
Definition: icssg.h:1051
Icssg_IngressRateLim::FT_S::FT_U::FT1_CONFIG_S::destAddrMaskLow
uint32_t destAddrMaskLow
Definition: icssg.h:982
Icssg_IngressRateLim::FT_S::ft1Len
uint16_t ft1Len
Definition: icssg.h:976
Icssg_MdioLinkStateChangeInfo::linkChanged
bool linkChanged
Definition: icssg.h:1074
ICSSG_PER_IOCTL_VLAN_SET_MACPORT_DFLT_VID
@ ICSSG_PER_IOCTL_VLAN_SET_MACPORT_DFLT_VID
Set the default VLAN ID and PCP bits for specified MAC port.
Definition: icssg.h:619
Icssg_IngressRateLim::classSel
uint8_t classSel
Definition: icssg.h:969
Icssg_DfltVlanCfg::pcp
uint8_t pcp
Definition: icssg.h:940
ICSSG_QUEUE_PREEMPT_MODE_EXPRESS
@ ICSSG_QUEUE_PREEMPT_MODE_EXPRESS
Definition: icssg.h:713
Icssg_MdioLinkStateChangeInfo::phyAddr
uint32_t phyAddr
Definition: icssg.h:1063
icssg_timesync.h
This file contains the type definitions and helper macros for ICSSG TimeSync.
ICSSG_PORT_STATE_BLOCKING
@ ICSSG_PORT_STATE_BLOCKING
Definition: icssg.h:743
IcssgMacPort_Cfg::promiscEn
bool promiscEn
Definition: icssg.h:1165
Icssg_mdioLinkIntCfg::prussIntcInitData
const PRUICSS_IntcInitData * prussIntcInitData
Definition: icssg.h:1098
Icssg_mdioLinkIntCfg::mdioLinkStateChangeCb
Icssg_MdioLinkStateChangeCb mdioLinkStateChangeCb
Definition: icssg.h:1093
Icssg_FwPoolMem::portBufferPoolSize
uint32_t portBufferPoolSize
Definition: icssg.h:1016
IcssgMacPort_SetPortStateInArgs
Input args for ICSSG_MACPORT_IOCTL_SET_PORT_STATE command.
Definition: icssg.h:770
ENET_MAC_ADDR_LEN
#define ENET_MAC_ADDR_LEN
MAC address length in bytes/octets.
Definition: enet_types.h:153
Icssg_TxTsEvtCbInfo::txTsId
uint32_t txTsId
Definition: icssg.h:318
ICSSG_MACPORT_IOCTL_SET_MACADDR
@ ICSSG_MACPORT_IOCTL_SET_MACADDR
Add MAC address of the interface.
Definition: icssg.h:459
ICSSG_FDB_IOCTL_REMOVE_ENTRY
@ ICSSG_FDB_IOCTL_REMOVE_ENTRY
Delete FDB entry.
Definition: icssg.h:426
Icssg_IngressRateLim::FT_S::FT_U::FT1_CONFIG_S::destAddrMaskHigh
uint32_t destAddrMaskHigh
Definition: icssg.h:983
pruicss.h
Icssg_IngressRateLim::FT_S::FT_U::FT3_CONFIG_S::patternHigh
uint32_t patternHigh
Definition: icssg.h:995
Icssg_Cfg::timeSyncCfg
IcssgTimeSync_Cfg timeSyncCfg
Definition: icssg.h:1129
Icssg_VlanFidEntry::vlanId
uint16_t vlanId
Definition: icssg.h:882
ICSSG_MACPORT_IOCTL_PREEMPT_TX_DISABLE
@ ICSSG_MACPORT_IOCTL_PREEMPT_TX_DISABLE
Disable preemption on TX.
Definition: icssg.h:481
Icssg_IngressRateLim::FT_S::FT_U::FT3_CONFIG_S::config
uint32_t config
Definition: icssg.h:991
ICSSG_HOSTPORT_IOCTL_SET_MACADDR
@ ICSSG_HOSTPORT_IOCTL_SET_MACADDR
Add MAC address of the host port interface.
Definition: icssg.h:569
Icssg_Cfg::cycleTimeNs
uint32_t cycleTimeNs
Definition: icssg.h:1135
Icssg_QueuePreemptMode
Icssg_QueuePreemptMode
Queue preemptive mode: express or preemptive.
Definition: icssg.h:711
Icssg_FwPoolMem::portBufferPoolMem
uint8_t * portBufferPoolMem
Definition: icssg.h:1013
Icssg_IngressRateLim::macPort
Enet_MacPort macPort
Definition: icssg.h:962
Icssg_VlanFidParams::p2Member
bool p2Member
Definition: icssg.h:855
Icssg_mdioLinkIntCfg::coreIntrNum
int32_t coreIntrNum
Definition: icssg.h:1099
Icssg_FwPoolMem::hostBufferPoolNum
uint32_t hostBufferPoolNum
Definition: icssg.h:1029
Icssg_IngressRateLim::FT_S::FT_U::FT1_CONFIG_S::destAddrHigh
uint32_t destAddrHigh
Definition: icssg.h:981
Icssg_MdioLinkStateChangeInfo
PHY link status change event information.
Definition: icssg.h:1061
Icssg_VlanFidParams::hostMember
bool hostMember
Definition: icssg.h:849
Icssg_Cfg::qosLevels
uint32_t qosLevels
Definition: icssg.h:1152
Icssg_FdbEntry
FDB entry configuration.
Definition: icssg.h:892
Icssg_IngressRateLim::FT_S::FT_U::FT1_CONFIG_S
Definition: icssg.h:979
Icssg_IngressRateLim::FT_S::index
uint8_t index
Definition: icssg.h:973
Icssg_IngressRateLim::classDataAndTerm
uint32_t classDataAndTerm
Definition: icssg.h:970
ICSSG_VERIFYSTATE_VERIFYING
@ ICSSG_VERIFYSTATE_VERIFYING
Definition: icssg.h:916
Icssg_IngressRateLim::FT_S::FT_U::FT3_CONFIG_S::startAuto
uint32_t startAuto
Definition: icssg.h:987
Icssg_IngressRateLim::FT_S::FT_U::FT3_CONFIG_S::type
uint32_t type
Definition: icssg.h:992
IcssgMacPort_SetMacAddressInArgs
Input args for ICSSG_MACPORT_IOCTL_SET_MACADDR command.
Definition: icssg.h:818
ICSSG_MACPORT_IOCTL_PREEMPT_TX_ENABLE
@ ICSSG_MACPORT_IOCTL_PREEMPT_TX_ENABLE
Enable preemption on TX.
Definition: icssg.h:470
IcssgMacPort_Cfg::specialFramePrio
uint8_t specialFramePrio
Definition: icssg.h:1185
Icssg_SetAcceptFrameCheckInArgs::macPort
Enet_MacPort macPort
Definition: icssg.h:799