AM243x MCU+ SDK  09.01.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 (ENET_CFG_RM_TX_CH_MAX)
104 
106 #define ICSSG_DUALMAC_RX_FLOW_NUM (ENET_CFG_RM_RX_CH_MAX / 2)
107 
109 #define ICSSG_SWITCH_TX_CH_NUM (ENET_CFG_RM_TX_CH_MAX)
110 
112 #define ICSSG_SWITCH_RX_FLOW_NUM (ENET_CFG_RM_RX_CH_MAX)
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 
477 
483 
489 
495 
510 
521 
534 
545 
556 
567 
578 
594 
605 
616 
627 
638 
639 } Icssg_Ioctl;
640 
644 typedef enum Icssg_QueuePreemptMode_e
645 {
648 
652 
656 typedef enum Icssg_QueueForwardMode_e
657 {
660 
664 
668 typedef struct IcssgMacPort_SetQueueCtPremptModeInArgs_s
669 {
672 
675 
679 
683 typedef struct IcssgMacPort_ConfigSpecialFramePrioInArgs_s
684 {
687 
691 
695 typedef enum Icssg_PortState_e
696 {
700 
705 
710 
713 
716 
719 
722 
726 
730 typedef struct IcssgMacPort_SetPortStateInArgs_s
731 {
734 
738 
742 typedef enum Icssg_AcceptFrameCheck_e
743 {
746 
749 
753 
757 typedef struct Icssg_SetAcceptFrameCheckInArgs_s
758 {
761 
765 
769 typedef struct Icssg_MacAddr_s
770 {
772  uint8_t macAddr[ENET_MAC_ADDR_LEN];
773 } Icssg_MacAddr;
774 
778 typedef struct IcssgMacPort_SetMacAddressInArgs_s
779 {
782 
784  uint8_t macAddr[ENET_MAC_ADDR_LEN];
786 
787 
791 typedef struct Icssg_VlanFidParams_s
792 {
795  uint8_t fid;
796 
799 
801  bool p1Member;
802 
804  bool p2Member;
805 
809 
812  bool p1Tagged;
813 
816  bool p2Tagged;
817 
819  bool streamVid;
820 
824 
828 typedef struct Icssg_VlanFidEntry_s
829 {
831  uint16_t vlanId;
832 
836 
840 typedef struct Icssg_FdbEntry_s
841 {
843  uint8_t macAddr[ENET_MAC_ADDR_LEN];
844 
846  int16_t vlanId;
847 
850  uint8_t fdbEntry[2];
852 
856 typedef struct Icssg_DfltVlanCfg_s
857 {
860 
862  uint16_t vlanId;
863 
865  uint8_t pcp;
867 
871 typedef struct Icssg_MacPortDfltVlanCfgInArgs_s
872 {
875 
880 
884 typedef struct Icssg_IngressRateLim_s
885 {
888 
889  uint32_t rateLimit; //In Mbps
890  uint32_t rateSrcSel;//0..47
891  uint8_t rateIndex; //0..7, 0xFF : skip
892  uint8_t classIndex; //0..15 - FW dependent
893  uint8_t notMask; //Bit 0 : !AND Bit1 : !OR
894  uint8_t classSel; //0: OR 1 : AND 2: OR AND AND 3 : OR OR AND
896  uint32_t classDataOrTerm;
897  struct FT_S {
898  uint8_t index; //FT1 (0..7) FT3 (0..15)0XFF : Skip
899  uint8_t type; // 0 : FT1 or 1 : FT3
900  uint16_t ft1Start;
901  uint16_t ft1Len;
902  uint16_t ft1Cfg;
903  union FT_U {
904  struct FT1_CONFIG_S {
905  uint32_t destAddrLow;
906  uint32_t destAddrHigh;
907  uint32_t destAddrMaskLow;
909  } ft1;
910  struct FT3_CONFIG_S {
911  uint32_t start;
912  uint32_t startAuto;
913  uint32_t startLen;
914  uint32_t jmpOffset;
915  uint32_t len;
916  uint32_t config;
917  uint32_t type;
918  uint32_t typeMask;
919  uint32_t patternLow;
920  uint32_t patternHigh;
921  uint32_t patternMaskLow;
922  uint32_t patternMaskHigh;
923  } ft3;
924  } u;
925  } filter[2];
927 
933 typedef struct Icssg_custom_Fw_s
934 {
936  const uint32_t *pru;
937 
939  uint32_t pruSize;
940 
942  const uint32_t *rtu;
943 
945  uint32_t rtuSize;
946 
948  const uint32_t *txpru;
949 
951  uint32_t txpruSize;
953 
960 typedef struct Icssg_FwPoolMem_s
961 {
965 
968 
971 
975 
978 
981 
985 
989 
993 
997 
1000 
1003 
1006 } Icssg_FwPoolMem;
1007 
1011 typedef struct Icssg_MdioLinkStateChangeInfo_s
1012 {
1014  uint32_t phyAddr;
1015 
1019 
1022  bool isAlive;
1023 
1026 
1028  bool isLinked;
1030 
1038  void *appArg);
1039 
1040 
1041 typedef struct Icssg_mdioLinkIntCfg_s
1042 {
1045 
1050  int32_t coreIntrNum;
1051  uint32_t pruEvtNum[ICSSG_MAC_PORT_MAX];
1052  uint32_t isPulseIntr;
1053  uint32_t intrPrio;
1055 
1059 typedef struct Icssg_Cfg_s
1060 {
1062  uint64_t agingPeriod;
1063 
1066 
1071  const void *dmaCfg;
1072 
1075 
1078 
1081 
1084 
1086  uint32_t cycleTimeNs;
1087 
1090 
1101 
1103  uint32_t qosLevels;
1104 
1107 
1110 
1117 } Icssg_Cfg;
1118 
1122 typedef struct IccsgMacPort_Cfg_s
1123 {
1126 
1129 
1132 
1135 
1138 
1141 
1144 
1147 
1148 
1149 /* ========================================================================== */
1150 /* Global Variables Declarations */
1151 /* ========================================================================== */
1152 
1162  uint32_t instId);
1163 
1164 /* ========================================================================== */
1165 /* Function Declarations */
1166 /* ========================================================================== */
1167 
1176 
1186 uint32_t Icssg_getSliceNum(Enet_Type enetType,
1187  uint32_t instId,
1188  Enet_MacPort macPort);
1189 
1190 /* ========================================================================== */
1191 /* Deprecated Function Declarations */
1192 /* ========================================================================== */
1193 
1194 /* None */
1195 
1196 /* ========================================================================== */
1197 /* Static Function Definitions */
1198 /* ========================================================================== */
1199 
1200 /* None */
1201 
1202 #ifdef __cplusplus
1203 }
1204 #endif
1205 
1206 #endif /* ICSSG_H_ */
1207 
Icssg_mdioLinkIntCfg::mdioLinkStateChangeCbArg
void * mdioLinkStateChangeCbArg
Definition: icssg.h:1047
ICSSG_QUEUE_FORWARD_MODE_STOREANDFWD
@ ICSSG_QUEUE_FORWARD_MODE_STOREANDFWD
Definition: icssg.h:659
ICSSG_MACPORT_IOCTL_ENABLE_MCAST_FLOOD
@ ICSSG_MACPORT_IOCTL_ENABLE_MCAST_FLOOD
Enable flooding of multicast packets to host port.
Definition: icssg.h:566
Icssg_MdioLinkStateChangeInfo::isAlive
bool isAlive
Definition: icssg.h:1022
Icssg_IngressRateLim::FT_S::type
uint8_t type
Definition: icssg.h:899
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:577
ICSSG_QUEUE_FORWARD_MODE_CUTTHROUGH
@ ICSSG_QUEUE_FORWARD_MODE_CUTTHROUGH
Definition: icssg.h:662
ICSSG_PORT_STATE_TAS_ENABLE
@ ICSSG_PORT_STATE_TAS_ENABLE
Definition: icssg.h:718
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:751
IcssgTimeSync_ClkType
IcssgTimeSync_ClkType
ICSSG TimeSync clock types.
Definition: icssg_timesync.h:78
Icssg_MdioLinkStateChangeInfo::aliveChanged
bool aliveChanged
Definition: icssg.h:1018
Icssg_Cfg::agingPeriod
uint64_t agingPeriod
Definition: icssg.h:1062
IcssgMacPort_SetQueueCtPremptModeInArgs::macPort
Enet_MacPort macPort
Definition: icssg.h:671
Icssg_custom_Fw::rtuSize
uint32_t rtuSize
Definition: icssg.h:945
Icssg_IngressRateLim::classDataOrTerm
uint32_t classDataOrTerm
Definition: icssg.h:896
Icssg_IngressRateLim::FT_S::ft1Start
uint16_t ft1Start
Definition: icssg.h:900
Icssg_Cfg::isPremQueEnable
uint32_t isPremQueEnable
Definition: icssg.h:1106
ICSSG_ACCEPT_ONLY_UNTAGGED_PRIO_TAGGED
@ ICSSG_ACCEPT_ONLY_UNTAGGED_PRIO_TAGGED
Definition: icssg.h:748
Icssg_mdioLinkIntCfg::isPulseIntr
uint32_t isPulseIntr
Definition: icssg.h:1052
Icssg_FwPoolMem
ICSSG buffer pool memories.
Definition: icssg.h:961
ICSSG_FDB_IOCTL_SET_AGING_PERIOD
@ ICSSG_FDB_IOCTL_SET_AGING_PERIOD
Set the aging period of the FDB.
Definition: icssg.h:533
IcssgMacPort_SetPortStateInArgs::macPort
Enet_MacPort macPort
Definition: icssg.h:733
ICSSG_PER_IOCTL_TAS_TRIGGER
@ ICSSG_PER_IOCTL_TAS_TRIGGER
Definition: icssg.h:476
ICSSG_PORT_STATE_TAS_TRIGGER
@ ICSSG_PORT_STATE_TAS_TRIGGER
Definition: icssg.h:715
Icssg_custom_Fw::rtu
const uint32_t * rtu
Definition: icssg.h:942
Icssg_Cfg::mii
EnetMacPort_Interface mii
Definition: icssg.h:1083
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:781
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:911
ICSSG_MACPORT_IOCTL_SET_INGRESS_RATE_LIM
@ ICSSG_MACPORT_IOCTL_SET_INGRESS_RATE_LIM
Configure ingress rate limiting.
Definition: icssg.h:604
Icssg_FwPoolMem::hostBufferPoolMem
uint8_t * hostBufferPoolMem
Definition: icssg.h:974
IcssgMacPort_Cfg::mcastFloodEn
bool mcastFloodEn
Definition: icssg.h:1131
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:657
Icssg_custom_Fw::pruSize
uint32_t pruSize
Definition: icssg.h:939
ICSSG_MACPORT_IOCTL_ENABLE_UCAST_FLOOD
@ ICSSG_MACPORT_IOCTL_ENABLE_UCAST_FLOOD
Enable flooding of unicast packets to host port.
Definition: icssg.h:544
ICSSG_MACPORT_IOCTL_DISABLE_PROMISC_MODE
@ ICSSG_MACPORT_IOCTL_DISABLE_PROMISC_MODE
Disable promiscuous mode.
Definition: icssg.h:349
Icssg_VlanFidParams::floodToHost
bool floodToHost
Definition: icssg.h:822
Icssg_FwPoolMem::hostEgressPreQueueSize
uint32_t hostEgressPreQueueSize
Definition: icssg.h:996
Icssg_IngressRateLim::classIndex
uint8_t classIndex
Definition: icssg.h:892
Icssg_IngressRateLim::FT_S::FT_U::FT3_CONFIG_S::len
uint32_t len
Definition: icssg.h:915
Icssg_VlanFidParams::p1Member
bool p1Member
Definition: icssg.h:801
Enet_MacPort
Enet_MacPort
MAC port.
Definition: enet_types.h:409
Icssg_Cfg::mdioCfg
Mdio_Cfg mdioCfg
Definition: icssg.h:1077
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:808
Icssg_MacAddr
MAC address.
Definition: icssg.h:770
ICSSG_QUEUE_PREEMPT_MODE_PREEMPT
@ ICSSG_QUEUE_PREEMPT_MODE_PREEMPT
Definition: icssg.h:650
Icssg_FwPoolMem::hostEgressQueueMem
uint8_t * hostEgressQueueMem
Definition: icssg.h:984
Icssg_IngressRateLim::FT_S::FT_U::FT3_CONFIG_S::jmpOffset
uint32_t jmpOffset
Definition: icssg.h:914
Icssg_FwPoolMem::hostBufferPoolSize
uint32_t hostBufferPoolSize
Definition: icssg.h:977
Icssg_IngressRateLim::FT_S::FT_U::FT3_CONFIG_S::typeMask
uint32_t typeMask
Definition: icssg.h:918
Icssg_DfltVlanCfg::macPort
Enet_MacPort macPort
Definition: icssg.h:859
Icssg_SetAcceptFrameCheckInArgs::acceptFrameCheck
Icssg_AcceptFrameCheck acceptFrameCheck
Definition: icssg.h:763
Icssg_Cfg::vlanCfg
EnetPort_VlanCfg vlanCfg
Definition: icssg.h:1065
ICSSG_PER_IOCTL_TAS_ENABLE
@ ICSSG_PER_IOCTL_TAS_ENABLE
Definition: icssg.h:482
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:829
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:593
Icssg_Cfg::dmaCfg
const void * dmaCfg
Definition: icssg.h:1071
Icssg_FwPoolMem::scratchBufferSize
uint32_t scratchBufferSize
Definition: icssg.h:1005
Icssg_Ioctl
Icssg_Ioctl
ICSSG IOCTL commands.
Definition: icssg.h:328
Icssg_Cfg::mdioLinkIntCfg
Icssg_mdioLinkIntCfg mdioLinkIntCfg
Definition: icssg.h:1089
IcssgMacPort_Cfg
ICSSG mac port configuration parameters.
Definition: icssg.h:1123
ICSSG_PORT_STATE_TAS_RESET
@ ICSSG_PORT_STATE_TAS_RESET
Definition: icssg.h:721
ICSSG_PER_IOCTL_TAS_DISABLE
@ ICSSG_PER_IOCTL_TAS_DISABLE
Definition: icssg.h:488
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_MacPortDfltVlanCfgInArgs
Input arguments for ICSSG_PER_IOCTL_VLAN_SET_MACPORT_DFLT_VID command.
Definition: icssg.h:872
Icssg_VlanFidParams::p1Tagged
bool p1Tagged
Definition: icssg.h:812
Icssg_VlanFidParams::fid
uint8_t fid
Definition: icssg.h:795
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:970
Icssg_MdioLinkStateChangeCb
void(* Icssg_MdioLinkStateChangeCb)(Icssg_MdioLinkStateChangeInfo *info, void *appArg)
Icssg PHY link state change callback function.
Definition: icssg.h:1037
Icssg_MacPortDfltVlanCfgInArgs::vlanCfg
EnetPort_VlanCfg vlanCfg
Definition: icssg.h:878
Icssg_IngressRateLim::FT_S::FT_U
Definition: icssg.h:903
Icssg_FdbEntry::vlanId
int16_t vlanId
Definition: icssg.h:846
Icssg_IngressRateLim::rateLimit
uint32_t rateLimit
Definition: icssg.h:889
ICSSG_PORT_STATE_TAS_DISABLE
@ ICSSG_PORT_STATE_TAS_DISABLE
Definition: icssg.h:724
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:696
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:905
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:509
Icssg_IngressRateLim::FT_S::FT_U::FT3_CONFIG_S
Definition: icssg.h:910
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
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:637
Icssg_IngressRateLim::notMask
uint8_t notMask
Definition: icssg.h:893
Icssg_custom_Fw::pru
const uint32_t * pru
Definition: icssg.h:936
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:442
Icssg_custom_Fw
ICSSG custom firmware.
Definition: icssg.h:934
ICSSG_INSTANCE_NUM_0
@ ICSSG_INSTANCE_NUM_0
Definition: icssg.h:301
IcssgMacPort_Cfg::acceptFrameCheck
Icssg_AcceptFrameCheck acceptFrameCheck
Definition: icssg.h:1134
Icssg_TxTsEvtCbInfo::ts
uint64_t ts
Definition: icssg.h:321
Icssg_FwPoolMem::hostEgressPreQueueMem
uint8_t * hostEgressPreQueueMem
Definition: icssg.h:988
Icssg_MacPortDfltVlanCfgInArgs::macPort
Enet_MacPort macPort
Definition: icssg.h:874
Icssg_IngressRateLim::FT_S::FT_U::FT3_CONFIG_S::patternMaskHigh
uint32_t patternMaskHigh
Definition: icssg.h:922
Icssg_MdioLinkStateChangeInfo::isLinked
bool isLinked
Definition: icssg.h:1028
IcssgMacPort_ConfigSpecialFramePrioInArgs
Input arguments for ICSSG_MACPORT_IOCTL_CONFIG_SPL_FRAME_PRIO command.
Definition: icssg.h:684
IcssgMacPort_ConfigSpecialFramePrioInArgs::macPort
Enet_MacPort macPort
Definition: icssg.h:686
Icssg_IngressRateLim::FT_S::FT_U::FT3_CONFIG_S::patternLow
uint32_t patternLow
Definition: icssg.h:919
Icssg_mdioLinkIntCfg::intrPrio
uint32_t intrPrio
Definition: icssg.h:1053
Icssg_IngressRateLim::FT_S
Definition: icssg.h:897
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:816
Icssg_VlanFidParams
VLAN FID entry parameters.
Definition: icssg.h:792
IcssgMacPort_ConfigSpecialFramePrioInArgs::specialFramePrio
uint8_t specialFramePrio
Definition: icssg.h:689
Icssg_Cfg
ICSSG peripheral configuration parameters.
Definition: icssg.h:1060
Icssg_FwPoolMem::hostEgressQueueNum
uint32_t hostEgressQueueNum
Definition: icssg.h:999
IcssgMacPort_Cfg::vlanCfg
EnetPort_VlanCfg vlanCfg
Definition: icssg.h:1137
ICSSG_PORT_STATE_FORWARD
@ ICSSG_PORT_STATE_FORWARD
Definition: icssg.h:709
Icssg_Cfg::disablePhyDriver
bool disablePhyDriver
Definition: icssg.h:1100
Enet_Type
Enet_Type
Ethernet peripheral type.
Definition: enet_types.h:199
Icssg_VlanFidParams::streamVid
bool streamVid
Definition: icssg.h:819
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:885
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:857
ICSSG_INSTANCE_NUM_2
@ ICSSG_INSTANCE_NUM_2
Definition: icssg.h:307
Icssg_IngressRateLim::FT_S::ft1Cfg
uint16_t ft1Cfg
Definition: icssg.h:902
ICSSG_PER_IOCTL_TAS_RESET
@ ICSSG_PER_IOCTL_TAS_RESET
Definition: icssg.h:494
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:992
Icssg_VlanFidEntry::vlanFidParams
Icssg_VlanFidParams vlanFidParams
Definition: icssg.h:834
Icssg_AcceptFrameCheck
Icssg_AcceptFrameCheck
Acceptable frame check criteria.
Definition: icssg.h:743
IcssgMacPort_initCfg
void IcssgMacPort_initCfg(IcssgMacPort_Cfg *macPortCfg)
Initialises Mac Port COnfiguration.
IcssgMacPort_SetPortStateInArgs::portState
Icssg_PortState portState
Definition: icssg.h:736
ICSSG_MACPORT_IOCTL_CONFIG_SPL_FRAME_PRIO
@ ICSSG_MACPORT_IOCTL_CONFIG_SPL_FRAME_PRIO
special frame priority configuration.
Definition: icssg.h:626
Icssg_IngressRateLim::FT_S::FT_U::FT3_CONFIG_S::patternMaskLow
uint32_t patternMaskLow
Definition: icssg.h:921
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:758
IcssgTimeSync_Cfg
TimeSync configuration parameters.
Definition: icssg_timesync.h:93
ICSSG_PORT_STATE_DISABLED
@ ICSSG_PORT_STATE_DISABLED
Definition: icssg.h:699
Icssg_Cfg::resCfg
EnetRm_ResCfg resCfg
Definition: icssg.h:1074
Icssg_IngressRateLim::FT_S::FT_U::FT3_CONFIG_S::startLen
uint32_t startLen
Definition: icssg.h:913
ICSSG_PORT_STATE_FORWARD_WO_LEARNING
@ ICSSG_PORT_STATE_FORWARD_WO_LEARNING
Definition: icssg.h:712
IcssgMacPort_Cfg::ucastFloodEn
bool ucastFloodEn
Definition: icssg.h:1128
Icssg_IngressRateLim::rateSrcSel
uint32_t rateSrcSel
Definition: icssg.h:890
Icssg_mdioLinkIntCfg
Definition: icssg.h:1042
ICSSG_ACCEPT_ONLY_VLAN_TAGGED
@ ICSSG_ACCEPT_ONLY_VLAN_TAGGED
Definition: icssg.h:745
Icssg_DfltVlanCfg::vlanId
uint16_t vlanId
Definition: icssg.h:862
Icssg_IngressRateLim::rateIndex
uint8_t rateIndex
Definition: icssg.h:891
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:555
Icssg_FwPoolMem::scratchBufferMem
uint8_t * scratchBufferMem
Definition: icssg.h:1002
Icssg_IngressRateLim::FT_S::FT_U::FT1_CONFIG_S::destAddrMaskLow
uint32_t destAddrMaskLow
Definition: icssg.h:907
Icssg_IngressRateLim::FT_S::ft1Len
uint16_t ft1Len
Definition: icssg.h:901
Icssg_MdioLinkStateChangeInfo::linkChanged
bool linkChanged
Definition: icssg.h:1025
ICSSG_MACPORT_IOCTL_SET_QUEUE_CUT_THROUGH_PREEMPT_SELECT
@ ICSSG_MACPORT_IOCTL_SET_QUEUE_CUT_THROUGH_PREEMPT_SELECT
cut through or prempt select configuration.
Definition: icssg.h:615
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:520
Icssg_IngressRateLim::classSel
uint8_t classSel
Definition: icssg.h:894
Icssg_DfltVlanCfg::pcp
uint8_t pcp
Definition: icssg.h:865
ICSSG_QUEUE_PREEMPT_MODE_EXPRESS
@ ICSSG_QUEUE_PREEMPT_MODE_EXPRESS
Definition: icssg.h:647
Icssg_MdioLinkStateChangeInfo::phyAddr
uint32_t phyAddr
Definition: icssg.h:1014
icssg_timesync.h
This file contains the type definitions and helper macros for ICSSG TimeSync.
IcssgMacPort_SetQueueCtPremptModeInArgs
Input arguments for ICSSG_MACPORT_IOCTL_SET_QUEUE_CUT_THROUGH_PREEMPT_SELECT command.
Definition: icssg.h:669
ICSSG_PORT_STATE_BLOCKING
@ ICSSG_PORT_STATE_BLOCKING
Definition: icssg.h:704
IcssgMacPort_Cfg::promiscEn
bool promiscEn
Definition: icssg.h:1125
Icssg_mdioLinkIntCfg::prussIntcInitData
const PRUICSS_IntcInitData * prussIntcInitData
Definition: icssg.h:1049
Icssg_mdioLinkIntCfg::mdioLinkStateChangeCb
Icssg_MdioLinkStateChangeCb mdioLinkStateChangeCb
Definition: icssg.h:1044
Icssg_FwPoolMem::portBufferPoolSize
uint32_t portBufferPoolSize
Definition: icssg.h:967
Icssg_Cfg::clockTypeFw
IcssgTimeSync_ClkType clockTypeFw
Definition: icssg.h:1109
IcssgMacPort_SetPortStateInArgs
Input args for ICSSG_MACPORT_IOCTL_SET_PORT_STATE command.
Definition: icssg.h:731
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_custom_Fw::txpru
const uint32_t * txpru
Definition: icssg.h:948
Icssg_custom_Fw::txpruSize
uint32_t txpruSize
Definition: icssg.h:951
Icssg_IngressRateLim::FT_S::FT_U::FT1_CONFIG_S::destAddrMaskHigh
uint32_t destAddrMaskHigh
Definition: icssg.h:908
pruicss.h
Icssg_IngressRateLim::FT_S::FT_U::FT3_CONFIG_S::patternHigh
uint32_t patternHigh
Definition: icssg.h:920
Icssg_Cfg::timeSyncCfg
IcssgTimeSync_Cfg timeSyncCfg
Definition: icssg.h:1080
Icssg_VlanFidEntry::vlanId
uint16_t vlanId
Definition: icssg.h:831
Icssg_IngressRateLim::FT_S::FT_U::FT3_CONFIG_S::config
uint32_t config
Definition: icssg.h:916
ICSSG_HOSTPORT_IOCTL_SET_MACADDR
@ ICSSG_HOSTPORT_IOCTL_SET_MACADDR
Add MAC address of the host port interface.
Definition: icssg.h:470
Icssg_Cfg::cycleTimeNs
uint32_t cycleTimeNs
Definition: icssg.h:1086
Icssg_QueuePreemptMode
Icssg_QueuePreemptMode
Queue preemptive mode: express or preemptive.
Definition: icssg.h:645
Icssg_FwPoolMem::portBufferPoolMem
uint8_t * portBufferPoolMem
Definition: icssg.h:964
Icssg_IngressRateLim::macPort
Enet_MacPort macPort
Definition: icssg.h:887
Icssg_VlanFidParams::p2Member
bool p2Member
Definition: icssg.h:804
Icssg_mdioLinkIntCfg::coreIntrNum
int32_t coreIntrNum
Definition: icssg.h:1050
Icssg_FwPoolMem::hostBufferPoolNum
uint32_t hostBufferPoolNum
Definition: icssg.h:980
Icssg_IngressRateLim::FT_S::FT_U::FT1_CONFIG_S::destAddrHigh
uint32_t destAddrHigh
Definition: icssg.h:906
Icssg_MdioLinkStateChangeInfo
PHY link status change event information.
Definition: icssg.h:1012
Icssg_VlanFidParams::hostMember
bool hostMember
Definition: icssg.h:798
Icssg_Cfg::qosLevels
uint32_t qosLevels
Definition: icssg.h:1103
Icssg_FdbEntry
FDB entry configuration.
Definition: icssg.h:841
Icssg_IngressRateLim::FT_S::FT_U::FT1_CONFIG_S
Definition: icssg.h:904
Icssg_IngressRateLim::FT_S::index
uint8_t index
Definition: icssg.h:898
Icssg_IngressRateLim::classDataAndTerm
uint32_t classDataAndTerm
Definition: icssg.h:895
Icssg_IngressRateLim::FT_S::FT_U::FT3_CONFIG_S::startAuto
uint32_t startAuto
Definition: icssg.h:912
Icssg_IngressRateLim::FT_S::FT_U::FT3_CONFIG_S::type
uint32_t type
Definition: icssg.h:917
IcssgMacPort_SetMacAddressInArgs
Input args for ICSSG_MACPORT_IOCTL_SET_MACADDR command.
Definition: icssg.h:779
IcssgMacPort_Cfg::specialFramePrio
uint8_t specialFramePrio
Definition: icssg.h:1145
Icssg_SetAcceptFrameCheckInArgs::macPort
Enet_MacPort macPort
Definition: icssg.h:760