AM64x MCU+ SDK  08.02.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>
64 
65 #ifdef __cplusplus
66 extern "C" {
67 #endif
68 
69 /* ========================================================================== */
70 /* Macros */
71 /* ========================================================================== */
72 
74 #define ICSSG_PUBLIC_IOCTL(x) (ENET_IOCTL_PER_BASE | \
75  ENET_IOCTL_PER_ICSSG | \
76  ENET_IOCTL_MIN(x))
77 
79 #define ICSSG_PORT_NUM (3U)
80 
82 #define ICSSG_MAC_PORT_MAX (ICSSG_PORT_NUM - 1U)
83 
86 #define ICSSG_PER_DUALMAC_PORT_MAX (1U)
87 
89 #define ICSSG_PER_SWITCH_PORT_MAX (ICSSG_MAC_PORT_MAX)
90 
92 #ifdef SOC_AM65XX
93 #define ICSSG_INSTANCE_NUM (3U)
94 #else
95 #define ICSSG_INSTANCE_NUM (2U)
96 #endif
97 
99 #define ICSSG_MAX_NUM_BUFFER_POOLS (24U)
100 
102 #define ICSSG_DUALMAC_TX_CH_NUM (4U)
103 
105 #define ICSSG_DUALMAC_RX_FLOW_NUM (8U)
106 
108 #define ICSSG_SWITCH_TX_CH_NUM (8U)
109 
111 #define ICSSG_SWITCH_RX_FLOW_NUM (8U)
112 
114 #define ICSSG_DUALMAC_PORT_BUFFER_POOL_NUM (0U)
115 
117 #define ICSSG_DUALMAC_HOST_BUFFER_POOL_NUM (8U)
118 
120 #define ICSSG_DUALMAC_HOST_EGRESS_QUEUE_NUM (2U)
121 
123 #define ICSSG_SWITCH_PORT_BUFFER_POOL_NUM (8U)
124 
126 #define ICSSG_SWITCH_HOST_BUFFER_POOL_NUM (16U)
127 
129 #define ICSSG_SWITCH_HOST_EGRESS_QUEUE_NUM (2U)
130 
132 #define ICSSG_HOST_EGRESS_BUFFER_PADDING (2048U)
133 
135 #define ICSSG_SCRATCH_BUFFER_SIZE (2048U)
136 
149 #define ICSSG_FDB_ENTRY_P0_MEMBERSHIP (ENET_BIT(0U))
150 
156 #define ICSSG_FDB_ENTRY_P1_MEMBERSHIP (ENET_BIT(1U))
157 
163 #define ICSSG_FDB_ENTRY_P2_MEMBERSHIP (ENET_BIT(2U))
164 
170 #define ICSSG_FDB_ENTRY_AGEABLE (ENET_BIT(3U))
171 
178 #define ICSSG_FDB_ENTRY_BLOCK (ENET_BIT(4U))
179 
185 #define ICSSG_FDB_ENTRY_SECURE (ENET_BIT(5U))
186 
193 #define ICSSG_FDB_ENTRY_TOUCHED (ENET_BIT(6U))
194 
200 #define ICSSG_FDB_ENTRY_VALID (ENET_BIT(7U))
201 
204 /* RX Rate Source Selection */
205 
206 #define ICSSG_RATE_SRC_SEL_FT1_MATCH0 (0U)
207 #define ICSSG_RATE_SRC_SEL_FT1_MATCH1 (1U)
208 #define ICSSG_RATE_SRC_SEL_FT1_MATCH2 (2U)
209 #define ICSSG_RATE_SRC_SEL_FT1_MATCH3 (3U)
210 #define ICSSG_RATE_SRC_SEL_FT1_MATCH4 (4U)
211 #define ICSSG_RATE_SRC_SEL_FT1_MATCH5 (5U)
212 #define ICSSG_RATE_SRC_SEL_FT1_MATCH6 (6U)
213 #define ICSSG_RATE_SRC_SEL_FT1_MATCH7 (7U)
214 #define ICSSG_RATE_SRC_SEL_FT3_MATCH0 (8U)
215 #define ICSSG_RATE_SRC_SEL_FT3_MATCH1 (9U)
216 #define ICSSG_RATE_SRC_SEL_FT3_MATCH2 (10U)
217 #define ICSSG_RATE_SRC_SEL_FT3_MATCH3 (11U)
218 #define ICSSG_RATE_SRC_SEL_FT3_MATCH4 (12U)
219 #define ICSSG_RATE_SRC_SEL_FT3_MATCH5 (13U)
220 #define ICSSG_RATE_SRC_SEL_FT3_MATCH6 (14U)
221 #define ICSSG_RATE_SRC_SEL_FT3_MATCH7 (15U)
222 #define ICSSG_RATE_SRC_SEL_FT3_MATCH8 (16U)
223 #define ICSSG_RATE_SRC_SEL_FT3_MATCH9 (17U)
224 #define ICSSG_RATE_SRC_SEL_FT3_MATCH10 (18U)
225 #define ICSSG_RATE_SRC_SEL_FT3_MATCH11 (19U)
226 #define ICSSG_RATE_SRC_SEL_FT3_MATCH12 (20U)
227 #define ICSSG_RATE_SRC_SEL_FT3_MATCH13 (21U)
228 #define ICSSG_RATE_SRC_SEL_FT3_MATCH14 (22U)
229 #define ICSSG_RATE_SRC_SEL_FT3_MATCH15 (23U)
230 #define ICSSG_RATE_SRC_SEL_FT_RX_UC (24U)
231 #define ICSSG_RATE_SRC_SEL_FT_RX_MC (25U)
232 #define ICSSG_RATE_SRC_SEL_FT_RX_BC (26U)
233 #define ICSSG_RATE_SRC_SEL_FT_RX_SAV (27U)
234 #define ICSSG_RATE_SRC_SEL_FT_RX_FWD (28U)
235 #define ICSSG_RATE_SRC_SEL_FT_RX_RCV (29U)
236 #define ICSSG_RATE_SRC_SEL_FT_RX_VLAN (30U)
237 #define ICSSG_RATE_SRC_SEL_FT_RX_DA_P (31U)
238 #define ICSSG_RATE_SRC_SEL_FT_RX_DA_I (32U)
239 #define ICSSG_RATE_SRC_SEL_RX_CLASS_RAW0 (33U)
240 #define ICSSG_RATE_SRC_SEL_RX_CLASS_RAW1 (34U)
241 #define ICSSG_RATE_SRC_SEL_RX_CLASS_RAW2 (35U)
242 #define ICSSG_RATE_SRC_SEL_RX_CLASS_RAW3 (36U)
243 #define ICSSG_RATE_SRC_SEL_RX_CLASS_RAW4 (37U)
244 #define ICSSG_RATE_SRC_SEL_RX_CLASS_RAW5 (38U)
245 #define ICSSG_RATE_SRC_SEL_RX_CLASS_RAW6 (39U)
246 #define ICSSG_RATE_SRC_SEL_RX_CLASS_RAW7 (40U)
247 #define ICSSG_RATE_SRC_SEL_RX_CLASS_RAW8 (41U)
248 #define ICSSG_RATE_SRC_SEL_RX_CLASS_RAW9 (42U)
249 #define ICSSG_RATE_SRC_SEL_RX_CLASS_RAW10 (43U)
250 #define ICSSG_RATE_SRC_SEL_RX_CLASS_RAW11 (44U)
251 #define ICSSG_RATE_SRC_SEL_RX_CLASS_RAW12 (45U)
252 #define ICSSG_RATE_SRC_SEL_RX_CLASS_RAW13 (46U)
253 #define ICSSG_RATE_SRC_SEL_RX_CLASS_RAW14 (47U)
254 #define ICSSG_RATE_SRC_SEL_RX_CLASS_RAW15 (48U)
255 
256 /* RX class data mapping */
257 #define ICCSG_RX_CLASS_DATA_FT3_MATCH0 (0U)
258 #define ICCSG_RX_CLASS_DATA_FT3_MATCH1 (1U)
259 #define ICCSG_RX_CLASS_DATA_FT3_MATCH2 (2U)
260 #define ICCSG_RX_CLASS_DATA_FT3_MATCH3 (3U)
261 #define ICCSG_RX_CLASS_DATA_FT3_MATCH4 (4U)
262 #define ICCSG_RX_CLASS_DATA_FT3_MATCH5 (5U)
263 #define ICCSG_RX_CLASS_DATA_FT3_MATCH6 (6U)
264 #define ICCSG_RX_CLASS_DATA_FT3_MATCH7 (7U)
265 #define ICCSG_RX_CLASS_DATA_FT3_MATCH8 (8U)
266 #define ICCSG_RX_CLASS_DATA_FT3_MATCH9 (9U)
267 #define ICCSG_RX_CLASS_DATA_FT3_MATCH10 (10U)
268 #define ICCSG_RX_CLASS_DATA_FT3_MATCH11 (11U)
269 #define ICCSG_RX_CLASS_DATA_FT3_MATCH12 (12U)
270 #define ICCSG_RX_CLASS_DATA_FT3_MATCH13 (13U)
271 #define ICCSG_RX_CLASS_DATA_FT3_MATCH14 (14U)
272 #define ICCSG_RX_CLASS_DATA_FT3_MATCH15 (15U)
273 #define ICCSG_RX_CLASS_DATA_FT1_MATCH0 (16U)
274 #define ICCSG_RX_CLASS_DATA_FT1_MATCH1 (17U)
275 #define ICCSG_RX_CLASS_DATA_FT1_MATCH2 (18U)
276 #define ICCSG_RX_CLASS_DATA_FT1_MATCH3 (19U)
277 #define ICCSG_RX_CLASS_DATA_FT1_MATCH4 (20U)
278 #define ICCSG_RX_CLASS_DATA_FT1_MATCH5 (21U)
279 #define ICCSG_RX_CLASS_DATA_FT1_MATCH6 (22U)
280 #define ICCSG_RX_CLASS_DATA_FT1_MATCH7 (23U)
281 #define ICCSG_RX_CLASS_DATA_FT_RX_DA_I (24U)
282 #define ICCSG_RX_CLASS_DATA_FT_RX_DA_P (25U)
283 #define ICCSG_RX_CLASS_DATA_FT_RX_VLAN (26U)
284 #define ICCSG_RX_CLASS_DATA_FT_RX_RCV (27U)
285 #define ICCSG_RX_CLASS_DATA_FT_RX_FWD (28U)
286 #define ICCSG_RX_CLASS_DATA_FT_RX_BC (29U)
287 #define ICCSG_RX_CLASS_DATA_FT_RX_MC (30U)
288 #define ICCSG_RX_CLASS_DATA_FT_RX_SAV (31U)
289 
290 /* ========================================================================== */
291 /* Structures and Enums */
292 /* ========================================================================== */
293 
297 typedef enum Icssg_Instance_Num_e
298 {
301 
304 
308 
313 typedef struct Icssg_TxTsEvtCbInfo_s
314 {
317  uint32_t txTsId;
318 
320  uint64_t ts;
322 
326 typedef enum Icssg_Ioctl_e
327 {
338 
349 
360 
371 
382 
404 
415 
426 
437 
448 
459 
470 
481 
492 
503 
514 
525 
536 
547 
558 
569 
575 
581 
587 
593 
608 
619 
632 
643 
654 
665 
676 
692 
703 } Icssg_Ioctl;
704 
708 typedef enum Icssg_QueuePreemptMode_e
709 {
712 
716 
720 typedef enum Icssg_QueueForwardMode_e
721 {
724 
728 
732 typedef enum Icssg_PortState_e
733 {
737 
742 
747 
750 
753 
756 
759 
763 
767 typedef struct IcssgMacPort_SetPortStateInArgs_s
768 {
771 
775 
779 typedef enum Icssg_AcceptFrameCheck_e
780 {
783 
786 
790 
794 typedef struct Icssg_SetAcceptFrameCheckInArgs_s
795 {
798 
802 
806 typedef struct Icssg_MacAddr_s
807 {
809  uint8_t macAddr[ENET_MAC_ADDR_LEN];
810 } Icssg_MacAddr;
811 
815 typedef struct IcssgMacPort_SetMacAddressInArgs_s
816 {
819 
821  uint8_t macAddr[ENET_MAC_ADDR_LEN];
823 
828 typedef struct IcssgMacPort_PreemptSetMinFragSizeRemoteInArgs_s
829 {
832 
836 
840 typedef struct Icssg_VlanFidParams_s
841 {
844  uint8_t fid;
845 
848 
850  bool p1Member;
851 
853  bool p2Member;
854 
858 
861  bool p1Tagged;
862 
865  bool p2Tagged;
866 
868  bool streamVid;
869 
873 
877 typedef struct Icssg_VlanFidEntry_s
878 {
880  uint16_t vlanId;
881 
885 
889 typedef struct Icssg_FdbEntry_s
890 {
892  uint8_t macAddr[ENET_MAC_ADDR_LEN];
893 
895  int16_t vlanId;
896 
899  uint8_t fdbEntry[2];
901 
905 typedef enum Icssg_PreemptVerifyState_e
906 {
909 
912 
915 
918 
921 
925 
929 typedef struct Icssg_DfltVlanCfg_s
930 {
933 
935  uint16_t vlanId;
936 
938  uint8_t pcp;
940 
944 typedef struct Icssg_MacPortDfltVlanCfgInArgs_s
945 {
948 
953 
957 typedef struct Icssg_IngressRateLim_s
958 {
961 
962  uint32_t rateLimit; //In Mbps
963  uint32_t rateSrcSel;//0..47
964  uint8_t rateIndex; //0..7, 0xFF : skip
965  uint8_t classIndex; //0..15 - FW dependent
966  uint8_t notMask; //Bit 0 : !AND Bit1 : !OR
967  uint8_t classSel; //0: OR 1 : AND 2: OR AND AND 3 : OR OR AND
969  uint32_t classDataOrTerm;
970  struct FT_S {
971  uint8_t index; //FT1 (0..7) FT3 (0..15)0XFF : Skip
972  uint8_t type; // 0 : FT1 or 1 : FT3
973  uint16_t ft1Start;
974  uint16_t ft1Len;
975  uint16_t ft1Cfg;
976  union FT_U {
977  struct FT1_CONFIG_S {
978  uint32_t destAddrLow;
979  uint32_t destAddrHigh;
980  uint32_t destAddrMaskLow;
982  } ft1;
983  struct FT3_CONFIG_S {
984  uint32_t start;
985  uint32_t startAuto;
986  uint32_t startLen;
987  uint32_t jmpOffset;
988  uint32_t len;
989  uint32_t config;
990  uint32_t type;
991  uint32_t typeMask;
992  uint32_t patternLow;
993  uint32_t patternHigh;
994  uint32_t patternMaskLow;
995  uint32_t patternMaskHigh;
996  } ft3;
997  } u;
998  } filter[2];
1000 
1007 typedef struct Icssg_FwPoolMem_s
1008 {
1012 
1015 
1018 
1022 
1025 
1028 
1032 
1036 
1040 
1044 
1047 
1050 
1053 } Icssg_FwPoolMem;
1054 
1058 typedef struct Icssg_Cfg_s
1059 {
1061  uint64_t agingPeriod;
1062 
1065 
1070  const void *dmaCfg;
1071 
1074 
1077 
1080 
1083 
1085  uint32_t cycleTimeNs;
1086 } Icssg_Cfg;
1087 
1091 typedef struct IccsgMacPort_Cfg_s
1092 {
1095 
1098 
1101 
1104 
1107 
1110 
1113 
1116 
1117 /* ========================================================================== */
1118 /* Global Variables Declarations */
1119 /* ========================================================================== */
1120 
1125  uint32_t instId);
1126 
1127 /* ========================================================================== */
1128 /* Function Declarations */
1129 /* ========================================================================== */
1130 
1132 
1133 uint32_t Icssg_getSliceNum(Enet_Type enetType,
1134  uint32_t instId,
1135  Enet_MacPort macPort);
1136 
1137 /* ========================================================================== */
1138 /* Deprecated Function Declarations */
1139 /* ========================================================================== */
1140 
1141 /* None */
1142 
1143 /* ========================================================================== */
1144 /* Static Function Definitions */
1145 /* ========================================================================== */
1146 
1147 /* None */
1148 
1149 #ifdef __cplusplus
1150 }
1151 #endif
1152 
1153 #endif /* ICSSG_H_ */
1154 
ICSSG_QUEUE_FORWARD_MODE_STOREANDFWD
@ ICSSG_QUEUE_FORWARD_MODE_STOREANDFWD
Definition: icssg.h:723
ICSSG_MACPORT_IOCTL_ENABLE_MCAST_FLOOD
@ ICSSG_MACPORT_IOCTL_ENABLE_MCAST_FLOOD
Enable flooding of multicast packets to host port.
Definition: icssg.h:664
Icssg_IngressRateLim::FT_S::type
uint8_t type
Definition: icssg.h:972
Icssg_getSliceNum
uint32_t Icssg_getSliceNum(Enet_Type enetType, uint32_t instId, Enet_MacPort macPort)
ICSSG_MACPORT_IOCTL_DISABLE_MCAST_FLOOD
@ ICSSG_MACPORT_IOCTL_DISABLE_MCAST_FLOOD
Disable flooding of multicast packets to host port.
Definition: icssg.h:675
ICSSG_QUEUE_FORWARD_MODE_CUTTHROUGH
@ ICSSG_QUEUE_FORWARD_MODE_CUTTHROUGH
Definition: icssg.h:726
ICSSG_PORT_STATE_TAS_ENABLE
@ ICSSG_PORT_STATE_TAS_ENABLE
Definition: icssg.h:755
ICSSG_ACCEPT_ALL
@ ICSSG_ACCEPT_ALL
Definition: icssg.h:788
ICSSG_VERIFYSTATE_FAILED
@ ICSSG_VERIFYSTATE_FAILED
Definition: icssg.h:920
Icssg_Cfg::agingPeriod
uint64_t agingPeriod
Definition: icssg.h:1061
Icssg_IngressRateLim::classDataOrTerm
uint32_t classDataOrTerm
Definition: icssg.h:969
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:557
Icssg_IngressRateLim::FT_S::ft1Start
uint16_t ft1Start
Definition: icssg.h:973
ICSSG_ACCEPT_ONLY_UNTAGGED_PRIO_TAGGED
@ ICSSG_ACCEPT_ONLY_UNTAGGED_PRIO_TAGGED
Definition: icssg.h:785
Icssg_FwPoolMem
ICSSG buffer pool memories.
Definition: icssg.h:1008
ICSSG_FDB_IOCTL_SET_AGING_PERIOD
@ ICSSG_FDB_IOCTL_SET_AGING_PERIOD
Set the aging period of the FDB.
Definition: icssg.h:631
IcssgMacPort_SetPortStateInArgs::macPort
Enet_MacPort macPort
Definition: icssg.h:770
ICSSG_PER_IOCTL_TAS_TRIGGER
@ ICSSG_PER_IOCTL_TAS_TRIGGER
Definition: icssg.h:574
ICSSG_PORT_STATE_TAS_TRIGGER
@ ICSSG_PORT_STATE_TAS_TRIGGER
Definition: icssg.h:752
ICSSG_VERIFYSTATE_INITIAL
@ ICSSG_VERIFYSTATE_INITIAL
Definition: icssg.h:911
ICSSG_VERIFYSTATE_SUCCEEDED
@ ICSSG_VERIFYSTATE_SUCCEEDED
Definition: icssg.h:917
Icssg_Cfg::mii
EnetMacPort_Interface mii
Definition: icssg.h:1082
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:818
Icssg_TxTsEvtCbInfo
Icssg TX timestamp event callback info structure. This is passed to application when TX timestamp is ...
Definition: icssg.h:314
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:984
ICSSG_MACPORT_IOCTL_SET_INGRESS_RATE_LIM
@ ICSSG_MACPORT_IOCTL_SET_INGRESS_RATE_LIM
Configure ingress rate limiting.
Definition: icssg.h:702
Icssg_FwPoolMem::hostBufferPoolMem
uint8_t * hostBufferPoolMem
Definition: icssg.h:1021
IcssgMacPort_Cfg::mcastFloodEn
bool mcastFloodEn
Definition: icssg.h:1100
IcssgMacPort_PreemptSetMinFragSizeRemoteInArgs::macPort
Enet_MacPort macPort
Definition: icssg.h:831
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:721
ICSSG_MACPORT_IOCTL_ENABLE_UCAST_FLOOD
@ ICSSG_MACPORT_IOCTL_ENABLE_UCAST_FLOOD
Enable flooding of unicast packets to host port.
Definition: icssg.h:642
ICSSG_MACPORT_IOCTL_DISABLE_PROMISC_MODE
@ ICSSG_MACPORT_IOCTL_DISABLE_PROMISC_MODE
Disable promiscuous mode.
Definition: icssg.h:348
ICSSG_VERIFYSTATE_UNKNOWN
@ ICSSG_VERIFYSTATE_UNKNOWN
Definition: icssg.h:908
Icssg_VlanFidParams::floodToHost
bool floodToHost
Definition: icssg.h:871
Icssg_FwPoolMem::hostEgressPreQueueSize
uint32_t hostEgressPreQueueSize
Definition: icssg.h:1043
Icssg_IngressRateLim::classIndex
uint8_t classIndex
Definition: icssg.h:965
Icssg_IngressRateLim::FT_S::FT_U::FT3_CONFIG_S::len
uint32_t len
Definition: icssg.h:988
IcssgMacPort_PreemptSetMinFragSizeRemoteInArgs
Input args for ICSSG_MACPORT_IOCTL_PREEMPT_SET_MIN_FRAG_SIZE_REMOTE command.
Definition: icssg.h:829
Icssg_VlanFidParams::p1Member
bool p1Member
Definition: icssg.h:850
Enet_MacPort
Enet_MacPort
MAC port.
Definition: enet_types.h:406
Icssg_Cfg::mdioCfg
Mdio_Cfg mdioCfg
Definition: icssg.h:1076
ICSSG_PER_IOCTL_VLAN_SET_ENTRY
@ ICSSG_PER_IOCTL_VLAN_SET_ENTRY
Update a VLAN table entry.
Definition: icssg.h:370
Icssg_VlanFidParams::hostTagged
bool hostTagged
Definition: icssg.h:857
Icssg_MacAddr
MAC address.
Definition: icssg.h:807
ICSSG_QUEUE_PREEMPT_MODE_PREEMPT
@ ICSSG_QUEUE_PREEMPT_MODE_PREEMPT
Definition: icssg.h:714
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:546
Icssg_FwPoolMem::hostEgressQueueMem
uint8_t * hostEgressQueueMem
Definition: icssg.h:1031
Icssg_IngressRateLim::FT_S::FT_U::FT3_CONFIG_S::jmpOffset
uint32_t jmpOffset
Definition: icssg.h:987
Icssg_FwPoolMem::hostBufferPoolSize
uint32_t hostBufferPoolSize
Definition: icssg.h:1024
Icssg_IngressRateLim::FT_S::FT_U::FT3_CONFIG_S::typeMask
uint32_t typeMask
Definition: icssg.h:991
Icssg_DfltVlanCfg::macPort
Enet_MacPort macPort
Definition: icssg.h:932
Icssg_SetAcceptFrameCheckInArgs::acceptFrameCheck
Icssg_AcceptFrameCheck acceptFrameCheck
Definition: icssg.h:800
Icssg_Cfg::vlanCfg
EnetPort_VlanCfg vlanCfg
Definition: icssg.h:1064
ICSSG_PER_IOCTL_TAS_ENABLE
@ ICSSG_PER_IOCTL_TAS_ENABLE
Definition: icssg.h:580
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:878
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:691
Icssg_Cfg::dmaCfg
const void * dmaCfg
Definition: icssg.h:1070
Icssg_FwPoolMem::scratchBufferSize
uint32_t scratchBufferSize
Definition: icssg.h:1052
Icssg_Ioctl
Icssg_Ioctl
ICSSG IOCTL commands.
Definition: icssg.h:327
IcssgMacPort_Cfg
ICSSG mac port configuration parameters.
Definition: icssg.h:1092
ICSSG_PORT_STATE_TAS_RESET
@ ICSSG_PORT_STATE_TAS_RESET
Definition: icssg.h:758
ICSSG_PER_IOCTL_TAS_DISABLE
@ ICSSG_PER_IOCTL_TAS_DISABLE
Definition: icssg.h:586
ICSSG_PER_IOCTL_VLAN_RESET_TABLE
@ ICSSG_PER_IOCTL_VLAN_RESET_TABLE
Populate VLAN table with default VLAN entry configuration.
Definition: icssg.h:359
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:502
Icssg_MacPortDfltVlanCfgInArgs
Input arguments for ICSSG_PER_IOCTL_VLAN_SET_MACPORT_DFLT_VID command.
Definition: icssg.h:945
Icssg_VlanFidParams::p1Tagged
bool p1Tagged
Definition: icssg.h:861
Icssg_VlanFidParams::fid
uint8_t fid
Definition: icssg.h:844
ICSSG_PUBLIC_IOCTL
#define ICSSG_PUBLIC_IOCTL(x)
Helper macro to create IOCTL commands for ICSSG per.
Definition: icssg.h:74
Icssg_FwPoolMem::portBufferPoolNum
uint32_t portBufferPoolNum
Definition: icssg.h:1017
Icssg_MacPortDfltVlanCfgInArgs::vlanCfg
EnetPort_VlanCfg vlanCfg
Definition: icssg.h:951
Icssg_IngressRateLim::FT_S::FT_U
Definition: icssg.h:976
Icssg_FdbEntry::vlanId
int16_t vlanId
Definition: icssg.h:895
ICSSG_MACPORT_IOCTL_PREEMPT_VERIFY_ENABLE
@ ICSSG_MACPORT_IOCTL_PREEMPT_VERIFY_ENABLE
Enable verify state machine.
Definition: icssg.h:513
Icssg_IngressRateLim::rateLimit
uint32_t rateLimit
Definition: icssg.h:962
ICSSG_PORT_STATE_TAS_DISABLE
@ ICSSG_PORT_STATE_TAS_DISABLE
Definition: icssg.h:761
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:535
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:733
ICSSG_INSTANCE_NUM_1
@ ICSSG_INSTANCE_NUM_1
Definition: icssg.h:303
Icssg_IngressRateLim::FT_S::FT_U::FT1_CONFIG_S::destAddrLow
uint32_t destAddrLow
Definition: icssg.h:978
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:607
Icssg_IngressRateLim::FT_S::FT_U::FT3_CONFIG_S
Definition: icssg.h:983
Icssg_Instance_Num
Icssg_Instance_Num
ICSSG instance numbers.
Definition: icssg.h:298
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:906
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:491
EnetCb_getFwPoolMem
Icssg_FwPoolMem * EnetCb_getFwPoolMem(Enet_Type enetType, uint32_t instId)
ICSSG memory pool callback function.
ENET_PRI_NUM
#define ENET_PRI_NUM
Packet priority.
Definition: enet_types.h:165
ICSSG_VERIFYSTATE_DISABLED
@ ICSSG_VERIFYSTATE_DISABLED
Definition: icssg.h:923
Icssg_IngressRateLim::notMask
uint8_t notMask
Definition: icssg.h:966
ICSSG_FDB_IOCTL_REMOVE_ALL_ENTRIES
@ ICSSG_FDB_IOCTL_REMOVE_ALL_ENTRIES
Delete all FDB entries.
Definition: icssg.h:436
EnetMacPort_Interface
MAC port interface.
Definition: enet_mod_macport.h:274
ICSSG_INSTANCE_NUM_0
@ ICSSG_INSTANCE_NUM_0
Definition: icssg.h:300
IcssgMacPort_Cfg::acceptFrameCheck
Icssg_AcceptFrameCheck acceptFrameCheck
Definition: icssg.h:1103
Icssg_TxTsEvtCbInfo::ts
uint64_t ts
Definition: icssg.h:320
Icssg_FwPoolMem::hostEgressPreQueueMem
uint8_t * hostEgressPreQueueMem
Definition: icssg.h:1035
Icssg_MacPortDfltVlanCfgInArgs::macPort
Enet_MacPort macPort
Definition: icssg.h:947
Icssg_IngressRateLim::FT_S::FT_U::FT3_CONFIG_S::patternMaskHigh
uint32_t patternMaskHigh
Definition: icssg.h:995
Icssg_IngressRateLim::FT_S::FT_U::FT3_CONFIG_S::patternLow
uint32_t patternLow
Definition: icssg.h:992
Icssg_IngressRateLim::FT_S
Definition: icssg.h:970
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:381
ICSSG_MACPORT_IOCTL_ENABLE_PROMISC_MODE
@ ICSSG_MACPORT_IOCTL_ENABLE_PROMISC_MODE
Enable promiscuous mode.
Definition: icssg.h:337
Icssg_VlanFidParams::p2Tagged
bool p2Tagged
Definition: icssg.h:865
Icssg_VlanFidParams
VLAN FID entry parameters.
Definition: icssg.h:841
Icssg_Cfg
ICSSG peripheral configuration parameters.
Definition: icssg.h:1059
Icssg_FwPoolMem::hostEgressQueueNum
uint32_t hostEgressQueueNum
Definition: icssg.h:1046
IcssgMacPort_Cfg::vlanCfg
EnetPort_VlanCfg vlanCfg
Definition: icssg.h:1106
ICSSG_PORT_STATE_FORWARD
@ ICSSG_PORT_STATE_FORWARD
Definition: icssg.h:746
Enet_Type
Enet_Type
Ethernet peripheral type.
Definition: enet_types.h:196
Icssg_VlanFidParams::streamVid
bool streamVid
Definition: icssg.h:868
IcssgMacPort_PreemptSetMinFragSizeRemoteInArgs::preemptMinFrageSizeRemote
uint16_t preemptMinFrageSizeRemote
Definition: icssg.h:834
Icssg_IngressRateLim
Input arguments for ICSSG_MACPORT_IOCTL_SET_INGRESS_RATE_LIM command.
Definition: icssg.h:958
ICSSG_FDB_IOCTL_REMOVE_AGEABLE_ENTRIES
@ ICSSG_FDB_IOCTL_REMOVE_AGEABLE_ENTRIES
Remote all ageable entries.
Definition: icssg.h:447
Icssg_DfltVlanCfg
Default VLAN configuration.
Definition: icssg.h:930
ICSSG_INSTANCE_NUM_2
@ ICSSG_INSTANCE_NUM_2
Definition: icssg.h:306
Icssg_IngressRateLim::FT_S::ft1Cfg
uint16_t ft1Cfg
Definition: icssg.h:975
ICSSG_PER_IOCTL_TAS_RESET
@ ICSSG_PER_IOCTL_TAS_RESET
Definition: icssg.h:592
ICSSG_PER_IOCTL_SET_PORT_STATE
@ ICSSG_PER_IOCTL_SET_PORT_STATE
Set port state.
Definition: icssg.h:403
Icssg_FwPoolMem::hostEgressQueueSize
uint32_t hostEgressQueueSize
Definition: icssg.h:1039
Icssg_VlanFidEntry::vlanFidParams
Icssg_VlanFidParams vlanFidParams
Definition: icssg.h:883
Icssg_AcceptFrameCheck
Icssg_AcceptFrameCheck
Acceptable frame check criteria.
Definition: icssg.h:780
IcssgMacPort_initCfg
void IcssgMacPort_initCfg(IcssgMacPort_Cfg *macPortCfg)
ICSSG_MACPORT_IOCTL_PREEMPT_VERIFY_DISABLE
@ ICSSG_MACPORT_IOCTL_PREEMPT_VERIFY_DISABLE
Disable verify state machine.
Definition: icssg.h:524
IcssgMacPort_SetPortStateInArgs::portState
Icssg_PortState portState
Definition: icssg.h:773
Icssg_IngressRateLim::FT_S::FT_U::FT3_CONFIG_S::patternMaskLow
uint32_t patternMaskLow
Definition: icssg.h:994
Icssg_SetAcceptFrameCheckInArgs
Input args for ICSSG_MACPORT_IOCTL_SET_ACCEPT_FRAME_CHECK command.
Definition: icssg.h:795
IcssgTimeSync_Cfg
TimeSync configuration parameters.
Definition: icssg_timesync.h:93
ICSSG_PORT_STATE_DISABLED
@ ICSSG_PORT_STATE_DISABLED
Definition: icssg.h:736
Icssg_Cfg::resCfg
EnetRm_ResCfg resCfg
Definition: icssg.h:1073
Icssg_IngressRateLim::FT_S::FT_U::FT3_CONFIG_S::startLen
uint32_t startLen
Definition: icssg.h:986
ICSSG_PORT_STATE_FORWARD_WO_LEARNING
@ ICSSG_PORT_STATE_FORWARD_WO_LEARNING
Definition: icssg.h:749
IcssgMacPort_Cfg::ucastFloodEn
bool ucastFloodEn
Definition: icssg.h:1097
Icssg_IngressRateLim::rateSrcSel
uint32_t rateSrcSel
Definition: icssg.h:963
ICSSG_ACCEPT_ONLY_VLAN_TAGGED
@ ICSSG_ACCEPT_ONLY_VLAN_TAGGED
Definition: icssg.h:782
Icssg_DfltVlanCfg::vlanId
uint16_t vlanId
Definition: icssg.h:935
Icssg_IngressRateLim::rateIndex
uint8_t rateIndex
Definition: icssg.h:964
ICSSG_FDB_IOCTL_ADD_ENTRY
@ ICSSG_FDB_IOCTL_ADD_ENTRY
Add FDB entry.
Definition: icssg.h:414
ICSSG_MACPORT_IOCTL_DISABLE_UCAST_FLOOD
@ ICSSG_MACPORT_IOCTL_DISABLE_UCAST_FLOOD
Disable flooding of unicast packets to host port.
Definition: icssg.h:653
Icssg_FwPoolMem::scratchBufferMem
uint8_t * scratchBufferMem
Definition: icssg.h:1049
Icssg_IngressRateLim::FT_S::FT_U::FT1_CONFIG_S::destAddrMaskLow
uint32_t destAddrMaskLow
Definition: icssg.h:980
Icssg_IngressRateLim::FT_S::ft1Len
uint16_t ft1Len
Definition: icssg.h:974
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:618
Icssg_IngressRateLim::classSel
uint8_t classSel
Definition: icssg.h:967
Icssg_DfltVlanCfg::pcp
uint8_t pcp
Definition: icssg.h:938
ICSSG_QUEUE_PREEMPT_MODE_EXPRESS
@ ICSSG_QUEUE_PREEMPT_MODE_EXPRESS
Definition: icssg.h:711
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:741
IcssgMacPort_Cfg::promiscEn
bool promiscEn
Definition: icssg.h:1094
Icssg_FwPoolMem::portBufferPoolSize
uint32_t portBufferPoolSize
Definition: icssg.h:1014
IcssgMacPort_SetPortStateInArgs
Input args for ICSSG_MACPORT_IOCTL_SET_PORT_STATE command.
Definition: icssg.h:768
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:317
ICSSG_MACPORT_IOCTL_SET_MACADDR
@ ICSSG_MACPORT_IOCTL_SET_MACADDR
Add MAC address of the interface.
Definition: icssg.h:458
ICSSG_FDB_IOCTL_REMOVE_ENTRY
@ ICSSG_FDB_IOCTL_REMOVE_ENTRY
Delete FDB entry.
Definition: icssg.h:425
Icssg_IngressRateLim::FT_S::FT_U::FT1_CONFIG_S::destAddrMaskHigh
uint32_t destAddrMaskHigh
Definition: icssg.h:981
Icssg_IngressRateLim::FT_S::FT_U::FT3_CONFIG_S::patternHigh
uint32_t patternHigh
Definition: icssg.h:993
Icssg_Cfg::timeSyncCfg
IcssgTimeSync_Cfg timeSyncCfg
Definition: icssg.h:1079
Icssg_VlanFidEntry::vlanId
uint16_t vlanId
Definition: icssg.h:880
ICSSG_MACPORT_IOCTL_PREEMPT_TX_DISABLE
@ ICSSG_MACPORT_IOCTL_PREEMPT_TX_DISABLE
Disable preemption on TX.
Definition: icssg.h:480
Icssg_IngressRateLim::FT_S::FT_U::FT3_CONFIG_S::config
uint32_t config
Definition: icssg.h:989
ICSSG_HOSTPORT_IOCTL_SET_MACADDR
@ ICSSG_HOSTPORT_IOCTL_SET_MACADDR
Add MAC address of the host port interface.
Definition: icssg.h:568
Icssg_Cfg::cycleTimeNs
uint32_t cycleTimeNs
Definition: icssg.h:1085
Icssg_QueuePreemptMode
Icssg_QueuePreemptMode
Queue preemptive mode: express or preemptive.
Definition: icssg.h:709
Icssg_FwPoolMem::portBufferPoolMem
uint8_t * portBufferPoolMem
Definition: icssg.h:1011
Icssg_IngressRateLim::macPort
Enet_MacPort macPort
Definition: icssg.h:960
Icssg_VlanFidParams::p2Member
bool p2Member
Definition: icssg.h:853
Icssg_FwPoolMem::hostBufferPoolNum
uint32_t hostBufferPoolNum
Definition: icssg.h:1027
Icssg_IngressRateLim::FT_S::FT_U::FT1_CONFIG_S::destAddrHigh
uint32_t destAddrHigh
Definition: icssg.h:979
Icssg_VlanFidParams::hostMember
bool hostMember
Definition: icssg.h:847
Icssg_FdbEntry
FDB entry configuration.
Definition: icssg.h:890
Icssg_IngressRateLim::FT_S::FT_U::FT1_CONFIG_S
Definition: icssg.h:977
Icssg_IngressRateLim::FT_S::index
uint8_t index
Definition: icssg.h:971
Icssg_IngressRateLim::classDataAndTerm
uint32_t classDataAndTerm
Definition: icssg.h:968
ICSSG_VERIFYSTATE_VERIFYING
@ ICSSG_VERIFYSTATE_VERIFYING
Definition: icssg.h:914
Icssg_IngressRateLim::FT_S::FT_U::FT3_CONFIG_S::startAuto
uint32_t startAuto
Definition: icssg.h:985
Icssg_IngressRateLim::FT_S::FT_U::FT3_CONFIG_S::type
uint32_t type
Definition: icssg.h:990
IcssgMacPort_SetMacAddressInArgs
Input args for ICSSG_MACPORT_IOCTL_SET_MACADDR command.
Definition: icssg.h:816
ICSSG_MACPORT_IOCTL_PREEMPT_TX_ENABLE
@ ICSSG_MACPORT_IOCTL_PREEMPT_TX_ENABLE
Enable preemption on TX.
Definition: icssg.h:469
IcssgMacPort_Cfg::specialFramePrio
uint8_t specialFramePrio
Definition: icssg.h:1114
Icssg_SetAcceptFrameCheckInArgs::macPort
Enet_MacPort macPort
Definition: icssg.h:797