AM64x MCU+ SDK  08.05.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 (ENET_UTILS_ALIGN((2048U), ICSSG_CACHELINE_ALIGNMENT))
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 
715 
716 } Icssg_Ioctl;
717 
721 typedef enum Icssg_QueuePreemptMode_e
722 {
725 
729 
733 typedef enum Icssg_QueueForwardMode_e
734 {
737 
741 
745 typedef enum Icssg_PortState_e
746 {
750 
755 
760 
763 
766 
769 
772 
776 
780 typedef struct IcssgMacPort_SetPortStateInArgs_s
781 {
784 
788 
792 typedef enum Icssg_AcceptFrameCheck_e
793 {
796 
799 
803 
807 typedef struct Icssg_SetAcceptFrameCheckInArgs_s
808 {
811 
815 
819 typedef struct Icssg_MacAddr_s
820 {
822  uint8_t macAddr[ENET_MAC_ADDR_LEN];
823 } Icssg_MacAddr;
824 
828 typedef struct IcssgMacPort_SetMacAddressInArgs_s
829 {
832 
834  uint8_t macAddr[ENET_MAC_ADDR_LEN];
836 
841 typedef struct IcssgMacPort_PreemptSetMinFragSizeRemoteInArgs_s
842 {
845 
849 
853 typedef struct Icssg_VlanFidParams_s
854 {
857  uint8_t fid;
858 
861 
863  bool p1Member;
864 
866  bool p2Member;
867 
871 
874  bool p1Tagged;
875 
878  bool p2Tagged;
879 
881  bool streamVid;
882 
886 
890 typedef struct Icssg_VlanFidEntry_s
891 {
893  uint16_t vlanId;
894 
898 
902 typedef struct Icssg_FdbEntry_s
903 {
905  uint8_t macAddr[ENET_MAC_ADDR_LEN];
906 
908  int16_t vlanId;
909 
912  uint8_t fdbEntry[2];
914 
918 typedef enum Icssg_PreemptVerifyState_e
919 {
922 
925 
928 
931 
934 
938 
942 typedef struct Icssg_DfltVlanCfg_s
943 {
946 
948  uint16_t vlanId;
949 
951  uint8_t pcp;
953 
957 typedef struct Icssg_MacPortDfltVlanCfgInArgs_s
958 {
961 
966 
970 typedef struct Icssg_IngressRateLim_s
971 {
974 
975  uint32_t rateLimit; //In Mbps
976  uint32_t rateSrcSel;//0..47
977  uint8_t rateIndex; //0..7, 0xFF : skip
978  uint8_t classIndex; //0..15 - FW dependent
979  uint8_t notMask; //Bit 0 : !AND Bit1 : !OR
980  uint8_t classSel; //0: OR 1 : AND 2: OR AND AND 3 : OR OR AND
982  uint32_t classDataOrTerm;
983  struct FT_S {
984  uint8_t index; //FT1 (0..7) FT3 (0..15)0XFF : Skip
985  uint8_t type; // 0 : FT1 or 1 : FT3
986  uint16_t ft1Start;
987  uint16_t ft1Len;
988  uint16_t ft1Cfg;
989  union FT_U {
990  struct FT1_CONFIG_S {
991  uint32_t destAddrLow;
992  uint32_t destAddrHigh;
993  uint32_t destAddrMaskLow;
995  } ft1;
996  struct FT3_CONFIG_S {
997  uint32_t start;
998  uint32_t startAuto;
999  uint32_t startLen;
1000  uint32_t jmpOffset;
1001  uint32_t len;
1002  uint32_t config;
1003  uint32_t type;
1004  uint32_t typeMask;
1005  uint32_t patternLow;
1006  uint32_t patternHigh;
1007  uint32_t patternMaskLow;
1009  } ft3;
1010  } u;
1011  } filter[2];
1013 
1020 typedef struct Icssg_FwPoolMem_s
1021 {
1025 
1028 
1031 
1035 
1038 
1041 
1045 
1049 
1053 
1057 
1060 
1063 
1066 } Icssg_FwPoolMem;
1067 
1071 typedef struct Icssg_MdioLinkStateChangeInfo_s
1072 {
1074  uint32_t phyAddr;
1075 
1079 
1082  bool isAlive;
1083 
1086 
1088  bool isLinked;
1090 
1098  void *appArg);
1099 
1100 
1101 typedef struct Icssg_mdioLinkIntCfg_s
1102 {
1105 
1110  int32_t coreIntrNum;
1111  uint32_t pruEvtNum[ICSSG_MAC_PORT_MAX];
1112  uint32_t isPulseIntr;
1113  uint32_t intrPrio;
1115 
1119 typedef struct Icssg_Cfg_s
1120 {
1122  uint64_t agingPeriod;
1123 
1126 
1131  const void *dmaCfg;
1132 
1135 
1138 
1141 
1144 
1146  uint32_t cycleTimeNs;
1147 
1150 
1161 
1163  uint32_t qosLevels;
1164 
1167 
1168 } Icssg_Cfg;
1169 
1173 typedef struct IccsgMacPort_Cfg_s
1174 {
1177 
1180 
1183 
1186 
1189 
1192 
1195 
1198 
1199 
1200 /* ========================================================================== */
1201 /* Global Variables Declarations */
1202 /* ========================================================================== */
1203 
1213  uint32_t instId);
1214 
1215 /* ========================================================================== */
1216 /* Function Declarations */
1217 /* ========================================================================== */
1218 
1227 
1237 uint32_t Icssg_getSliceNum(Enet_Type enetType,
1238  uint32_t instId,
1239  Enet_MacPort macPort);
1240 
1241 /* ========================================================================== */
1242 /* Deprecated Function Declarations */
1243 /* ========================================================================== */
1244 
1245 /* None */
1246 
1247 /* ========================================================================== */
1248 /* Static Function Definitions */
1249 /* ========================================================================== */
1250 
1251 /* None */
1252 
1253 #ifdef __cplusplus
1254 }
1255 #endif
1256 
1257 #endif /* ICSSG_H_ */
1258 
Icssg_mdioLinkIntCfg::mdioLinkStateChangeCbArg
void * mdioLinkStateChangeCbArg
Definition: icssg.h:1107
ICSSG_QUEUE_FORWARD_MODE_STOREANDFWD
@ ICSSG_QUEUE_FORWARD_MODE_STOREANDFWD
Definition: icssg.h:736
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:1082
Icssg_IngressRateLim::FT_S::type
uint8_t type
Definition: icssg.h:985
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:739
ICSSG_PORT_STATE_TAS_ENABLE
@ ICSSG_PORT_STATE_TAS_ENABLE
Definition: icssg.h:768
ICSSG_MAC_PORT_MAX
#define ICSSG_MAC_PORT_MAX
Maximum number of MAC ports per ICSSG instance.
Definition: icssg.h:83
ICSSG_ACCEPT_ALL
@ ICSSG_ACCEPT_ALL
Definition: icssg.h:801
ICSSG_VERIFYSTATE_FAILED
@ ICSSG_VERIFYSTATE_FAILED
Definition: icssg.h:933
Icssg_MdioLinkStateChangeInfo::aliveChanged
bool aliveChanged
Definition: icssg.h:1078
Icssg_Cfg::agingPeriod
uint64_t agingPeriod
Definition: icssg.h:1122
Icssg_IngressRateLim::classDataOrTerm
uint32_t classDataOrTerm
Definition: icssg.h:982
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:986
Icssg_Cfg::isPremQueEnable
uint32_t isPremQueEnable
Definition: icssg.h:1166
ICSSG_ACCEPT_ONLY_UNTAGGED_PRIO_TAGGED
@ ICSSG_ACCEPT_ONLY_UNTAGGED_PRIO_TAGGED
Definition: icssg.h:798
Icssg_mdioLinkIntCfg::isPulseIntr
uint32_t isPulseIntr
Definition: icssg.h:1112
Icssg_FwPoolMem
ICSSG buffer pool memories.
Definition: icssg.h:1021
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:783
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:765
ICSSG_VERIFYSTATE_INITIAL
@ ICSSG_VERIFYSTATE_INITIAL
Definition: icssg.h:924
ICSSG_VERIFYSTATE_SUCCEEDED
@ ICSSG_VERIFYSTATE_SUCCEEDED
Definition: icssg.h:930
Icssg_Cfg::mii
EnetMacPort_Interface mii
Definition: icssg.h:1143
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:831
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:997
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:1034
IcssgMacPort_Cfg::mcastFloodEn
bool mcastFloodEn
Definition: icssg.h:1182
IcssgMacPort_PreemptSetMinFragSizeRemoteInArgs::macPort
Enet_MacPort macPort
Definition: icssg.h:844
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:734
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:921
Icssg_VlanFidParams::floodToHost
bool floodToHost
Definition: icssg.h:884
Icssg_FwPoolMem::hostEgressPreQueueSize
uint32_t hostEgressPreQueueSize
Definition: icssg.h:1056
Icssg_IngressRateLim::classIndex
uint8_t classIndex
Definition: icssg.h:978
Icssg_IngressRateLim::FT_S::FT_U::FT3_CONFIG_S::len
uint32_t len
Definition: icssg.h:1001
IcssgMacPort_PreemptSetMinFragSizeRemoteInArgs
Input args for ICSSG_MACPORT_IOCTL_PREEMPT_SET_MIN_FRAG_SIZE_REMOTE command.
Definition: icssg.h:842
Icssg_VlanFidParams::p1Member
bool p1Member
Definition: icssg.h:863
Enet_MacPort
Enet_MacPort
MAC port.
Definition: enet_types.h:406
Icssg_Cfg::mdioCfg
Mdio_Cfg mdioCfg
Definition: icssg.h:1137
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:870
Icssg_MacAddr
MAC address.
Definition: icssg.h:820
ICSSG_QUEUE_PREEMPT_MODE_PREEMPT
@ ICSSG_QUEUE_PREEMPT_MODE_PREEMPT
Definition: icssg.h:727
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:1044
Icssg_IngressRateLim::FT_S::FT_U::FT3_CONFIG_S::jmpOffset
uint32_t jmpOffset
Definition: icssg.h:1000
Icssg_FwPoolMem::hostBufferPoolSize
uint32_t hostBufferPoolSize
Definition: icssg.h:1037
Icssg_IngressRateLim::FT_S::FT_U::FT3_CONFIG_S::typeMask
uint32_t typeMask
Definition: icssg.h:1004
Icssg_DfltVlanCfg::macPort
Enet_MacPort macPort
Definition: icssg.h:945
Icssg_SetAcceptFrameCheckInArgs::acceptFrameCheck
Icssg_AcceptFrameCheck acceptFrameCheck
Definition: icssg.h:813
Icssg_Cfg::vlanCfg
EnetPort_VlanCfg vlanCfg
Definition: icssg.h:1125
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:891
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:1131
Icssg_FwPoolMem::scratchBufferSize
uint32_t scratchBufferSize
Definition: icssg.h:1065
Icssg_Ioctl
Icssg_Ioctl
ICSSG IOCTL commands.
Definition: icssg.h:328
Icssg_Cfg::mdioLinkIntCfg
Icssg_mdioLinkIntCfg mdioLinkIntCfg
Definition: icssg.h:1149
IcssgMacPort_Cfg
ICSSG mac port configuration parameters.
Definition: icssg.h:1174
ICSSG_PORT_STATE_TAS_RESET
@ ICSSG_PORT_STATE_TAS_RESET
Definition: icssg.h:771
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:958
Icssg_VlanFidParams::p1Tagged
bool p1Tagged
Definition: icssg.h:874
Icssg_VlanFidParams::fid
uint8_t fid
Definition: icssg.h:857
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:1030
Icssg_MdioLinkStateChangeCb
void(* Icssg_MdioLinkStateChangeCb)(Icssg_MdioLinkStateChangeInfo *info, void *appArg)
Icssg PHY link state change callback function.
Definition: icssg.h:1097
Icssg_MacPortDfltVlanCfgInArgs::vlanCfg
EnetPort_VlanCfg vlanCfg
Definition: icssg.h:964
Icssg_IngressRateLim::FT_S::FT_U
Definition: icssg.h:989
Icssg_FdbEntry::vlanId
int16_t vlanId
Definition: icssg.h:908
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:975
ICSSG_PORT_STATE_TAS_DISABLE
@ ICSSG_PORT_STATE_TAS_DISABLE
Definition: icssg.h:774
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:746
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:991
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:996
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:919
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_INTERNAL_IOCTL_REGISTER_HANDLER
@ ICSSG_INTERNAL_IOCTL_REGISTER_HANDLER
Register Handler for the IOCTL CMD.
Definition: icssg.h:714
ICSSG_VERIFYSTATE_DISABLED
@ ICSSG_VERIFYSTATE_DISABLED
Definition: icssg.h:936
Icssg_IngressRateLim::notMask
uint8_t notMask
Definition: icssg.h:979
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:288
ICSSG_INSTANCE_NUM_0
@ ICSSG_INSTANCE_NUM_0
Definition: icssg.h:301
IcssgMacPort_Cfg::acceptFrameCheck
Icssg_AcceptFrameCheck acceptFrameCheck
Definition: icssg.h:1185
Icssg_TxTsEvtCbInfo::ts
uint64_t ts
Definition: icssg.h:321
Icssg_FwPoolMem::hostEgressPreQueueMem
uint8_t * hostEgressPreQueueMem
Definition: icssg.h:1048
Icssg_MacPortDfltVlanCfgInArgs::macPort
Enet_MacPort macPort
Definition: icssg.h:960
Icssg_IngressRateLim::FT_S::FT_U::FT3_CONFIG_S::patternMaskHigh
uint32_t patternMaskHigh
Definition: icssg.h:1008
Icssg_MdioLinkStateChangeInfo::isLinked
bool isLinked
Definition: icssg.h:1088
Icssg_IngressRateLim::FT_S::FT_U::FT3_CONFIG_S::patternLow
uint32_t patternLow
Definition: icssg.h:1005
Icssg_mdioLinkIntCfg::intrPrio
uint32_t intrPrio
Definition: icssg.h:1113
Icssg_IngressRateLim::FT_S
Definition: icssg.h:983
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:878
Icssg_VlanFidParams
VLAN FID entry parameters.
Definition: icssg.h:854
Icssg_Cfg
ICSSG peripheral configuration parameters.
Definition: icssg.h:1120
Icssg_FwPoolMem::hostEgressQueueNum
uint32_t hostEgressQueueNum
Definition: icssg.h:1059
IcssgMacPort_Cfg::vlanCfg
EnetPort_VlanCfg vlanCfg
Definition: icssg.h:1188
ICSSG_PORT_STATE_FORWARD
@ ICSSG_PORT_STATE_FORWARD
Definition: icssg.h:759
Icssg_Cfg::disablePhyDriver
bool disablePhyDriver
Definition: icssg.h:1160
Enet_Type
Enet_Type
Ethernet peripheral type.
Definition: enet_types.h:196
Icssg_VlanFidParams::streamVid
bool streamVid
Definition: icssg.h:881
IcssgMacPort_PreemptSetMinFragSizeRemoteInArgs::preemptMinFrageSizeRemote
uint16_t preemptMinFrageSizeRemote
Definition: icssg.h:847
PRUICSS_IntcInitData
PRUICSS Interrupt controller initialisation data structure.
Definition: pruicss/g_v0/pruicss.h:274
Icssg_IngressRateLim
Input arguments for ICSSG_MACPORT_IOCTL_SET_INGRESS_RATE_LIM command.
Definition: icssg.h:971
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:943
ICSSG_INSTANCE_NUM_2
@ ICSSG_INSTANCE_NUM_2
Definition: icssg.h:307
Icssg_IngressRateLim::FT_S::ft1Cfg
uint16_t ft1Cfg
Definition: icssg.h:988
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:1052
Icssg_VlanFidEntry::vlanFidParams
Icssg_VlanFidParams vlanFidParams
Definition: icssg.h:896
Icssg_AcceptFrameCheck
Icssg_AcceptFrameCheck
Acceptable frame check criteria.
Definition: icssg.h:793
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:786
Icssg_IngressRateLim::FT_S::FT_U::FT3_CONFIG_S::patternMaskLow
uint32_t patternMaskLow
Definition: icssg.h:1007
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:808
IcssgTimeSync_Cfg
TimeSync configuration parameters.
Definition: icssg_timesync.h:93
ICSSG_PORT_STATE_DISABLED
@ ICSSG_PORT_STATE_DISABLED
Definition: icssg.h:749
Icssg_Cfg::resCfg
EnetRm_ResCfg resCfg
Definition: icssg.h:1134
Icssg_IngressRateLim::FT_S::FT_U::FT3_CONFIG_S::startLen
uint32_t startLen
Definition: icssg.h:999
ICSSG_PORT_STATE_FORWARD_WO_LEARNING
@ ICSSG_PORT_STATE_FORWARD_WO_LEARNING
Definition: icssg.h:762
IcssgMacPort_Cfg::ucastFloodEn
bool ucastFloodEn
Definition: icssg.h:1179
Icssg_IngressRateLim::rateSrcSel
uint32_t rateSrcSel
Definition: icssg.h:976
Icssg_mdioLinkIntCfg
Definition: icssg.h:1102
ICSSG_ACCEPT_ONLY_VLAN_TAGGED
@ ICSSG_ACCEPT_ONLY_VLAN_TAGGED
Definition: icssg.h:795
Icssg_DfltVlanCfg::vlanId
uint16_t vlanId
Definition: icssg.h:948
Icssg_IngressRateLim::rateIndex
uint8_t rateIndex
Definition: icssg.h:977
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:1062
Icssg_IngressRateLim::FT_S::FT_U::FT1_CONFIG_S::destAddrMaskLow
uint32_t destAddrMaskLow
Definition: icssg.h:993
Icssg_IngressRateLim::FT_S::ft1Len
uint16_t ft1Len
Definition: icssg.h:987
Icssg_MdioLinkStateChangeInfo::linkChanged
bool linkChanged
Definition: icssg.h:1085
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:980
Icssg_DfltVlanCfg::pcp
uint8_t pcp
Definition: icssg.h:951
ICSSG_QUEUE_PREEMPT_MODE_EXPRESS
@ ICSSG_QUEUE_PREEMPT_MODE_EXPRESS
Definition: icssg.h:724
Icssg_MdioLinkStateChangeInfo::phyAddr
uint32_t phyAddr
Definition: icssg.h:1074
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:754
IcssgMacPort_Cfg::promiscEn
bool promiscEn
Definition: icssg.h:1176
Icssg_mdioLinkIntCfg::prussIntcInitData
const PRUICSS_IntcInitData * prussIntcInitData
Definition: icssg.h:1109
Icssg_mdioLinkIntCfg::mdioLinkStateChangeCb
Icssg_MdioLinkStateChangeCb mdioLinkStateChangeCb
Definition: icssg.h:1104
Icssg_FwPoolMem::portBufferPoolSize
uint32_t portBufferPoolSize
Definition: icssg.h:1027
IcssgMacPort_SetPortStateInArgs
Input args for ICSSG_MACPORT_IOCTL_SET_PORT_STATE command.
Definition: icssg.h:781
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:994
pruicss.h
Icssg_IngressRateLim::FT_S::FT_U::FT3_CONFIG_S::patternHigh
uint32_t patternHigh
Definition: icssg.h:1006
Icssg_Cfg::timeSyncCfg
IcssgTimeSync_Cfg timeSyncCfg
Definition: icssg.h:1140
Icssg_VlanFidEntry::vlanId
uint16_t vlanId
Definition: icssg.h:893
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:1002
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:1146
Icssg_QueuePreemptMode
Icssg_QueuePreemptMode
Queue preemptive mode: express or preemptive.
Definition: icssg.h:722
Icssg_FwPoolMem::portBufferPoolMem
uint8_t * portBufferPoolMem
Definition: icssg.h:1024
Icssg_IngressRateLim::macPort
Enet_MacPort macPort
Definition: icssg.h:973
Icssg_VlanFidParams::p2Member
bool p2Member
Definition: icssg.h:866
Icssg_mdioLinkIntCfg::coreIntrNum
int32_t coreIntrNum
Definition: icssg.h:1110
Icssg_FwPoolMem::hostBufferPoolNum
uint32_t hostBufferPoolNum
Definition: icssg.h:1040
Icssg_IngressRateLim::FT_S::FT_U::FT1_CONFIG_S::destAddrHigh
uint32_t destAddrHigh
Definition: icssg.h:992
Icssg_MdioLinkStateChangeInfo
PHY link status change event information.
Definition: icssg.h:1072
Icssg_VlanFidParams::hostMember
bool hostMember
Definition: icssg.h:860
Icssg_Cfg::qosLevels
uint32_t qosLevels
Definition: icssg.h:1163
Icssg_FdbEntry
FDB entry configuration.
Definition: icssg.h:903
Icssg_IngressRateLim::FT_S::FT_U::FT1_CONFIG_S
Definition: icssg.h:990
Icssg_IngressRateLim::FT_S::index
uint8_t index
Definition: icssg.h:984
Icssg_IngressRateLim::classDataAndTerm
uint32_t classDataAndTerm
Definition: icssg.h:981
ICSSG_VERIFYSTATE_VERIFYING
@ ICSSG_VERIFYSTATE_VERIFYING
Definition: icssg.h:927
Icssg_IngressRateLim::FT_S::FT_U::FT3_CONFIG_S::startAuto
uint32_t startAuto
Definition: icssg.h:998
Icssg_IngressRateLim::FT_S::FT_U::FT3_CONFIG_S::type
uint32_t type
Definition: icssg.h:1003
IcssgMacPort_SetMacAddressInArgs
Input args for ICSSG_MACPORT_IOCTL_SET_MACADDR command.
Definition: icssg.h:829
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:1196
Icssg_SetAcceptFrameCheckInArgs::macPort
Enet_MacPort macPort
Definition: icssg.h:810