AM263Px MCU+ SDK: icssg.h Source File

| AM263Px MCU+ SDK 26.00.00 |

icssg.h
Go to the documentation of this file.
1 /*
2 * Copyright (c) Texas Instruments Incorporated 2020-2025
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>
58 #include <include/mod/icssg_timesync.h>
59 #include <include/mod/icssg_stats.h>
60 #include <include/mod/mdio.h>
61 #include <include/phy/enetphy.h>
62 #include <include/core/enet_mod_phy.h>
63 #include <priv/core/enet_rm_priv.h>
64 #include <drivers/pruicss/g_v0/pruicss.h>
65 #include <include/core/enet_dma.h>
66
67 #ifdef __cplusplus
68 extern "C" {
69 #endif
70
71 /* ========================================================================== */
72 /* Macros */
73 /* ========================================================================== */
74
75 #define ICSSG_CFG_DEFAULT_AGING_PERIOD_MS (0x6FC23AC00)
76
78 #define ICSSG_IEP_DFLT_CYCLE_TIME_NSECS (1000000U)
79
81 #define ICSSG_PUBLIC_IOCTL(x) (ENET_IOCTL_PER_BASE | \
82 ENET_IOCTL_PER_ICSSG | \
83 ENET_IOCTL_MIN(x))
84
86 #define ICSSG_PORT_NUM (3U)
87
89 #define ICSSG_MAC_PORT_MAX (ICSSG_PORT_NUM - 1U)
90
93 #define ICSSG_PER_DUALMAC_PORT_MAX (1U)
94
96 #define ICSSG_PER_SWITCH_PORT_MAX (ICSSG_MAC_PORT_MAX)
97
99 #ifdef SOC_AM65XX
100 #define ICSSG_INSTANCE_NUM (3U)
101 #else
102 #define ICSSG_INSTANCE_NUM (2U)
103 #endif
104
106 #define ICSSG_MAX_NUM_BUFFER_POOLS (24U)
107
109 #define ICSSG_DUALMAC_TX_CH_NUM (ENET_CFG_RM_TX_CH_MAX)
110
112 #define ICSSG_DUALMAC_RX_FLOW_NUM (ENET_CFG_RM_RX_CH_MAX / 2)
113
115 #define ICSSG_SWITCH_TX_CH_NUM (ENET_CFG_RM_TX_CH_MAX)
116
118 #define ICSSG_SWITCH_RX_FLOW_NUM (ENET_CFG_RM_RX_CH_MAX)
119
121 #define ICSSG_DUALMAC_PORT_BUFFER_POOL_NUM (0U)
122
124 #define ICSSG_DUALMAC_HOST_EGRESS_QUEUE_NUM (2U)
125
128 #define ICSSG_SWITCH_PORT_BUFFER_POOL_NUM (8U)
129
132 #define ICSSG_SWITCH_PORT_BUFFER_POOL_NUM_MAX (8U)
133
136 #define ICSSG_SWITCH_HOST_OWN_BUFFER_POOL_MAX_OFFSET (16U)
137
139 #define ICSSG_SWITCH_HOST_EGRESS_QUEUE_NUM (2U)
140
142 #define ICSSG_HOST_EGRESS_BUFFER_PADDING (2048U)
143
145 #define ICSSG_SCRATCH_BUFFER_SIZE (ENET_UTILS_ALIGN((2048U), ICSSG_CACHELINE_ALIGNMENT))
146
159 #define ICSSG_FDB_ENTRY_P0_MEMBERSHIP (ENET_BIT(0U))
160
166 #define ICSSG_FDB_ENTRY_P1_MEMBERSHIP (ENET_BIT(1U))
167
173 #define ICSSG_FDB_ENTRY_P2_MEMBERSHIP (ENET_BIT(2U))
174
180 #define ICSSG_FDB_ENTRY_AGEABLE (ENET_BIT(3U))
181
188 #define ICSSG_FDB_ENTRY_BLOCK (ENET_BIT(4U))
189
195 #define ICSSG_FDB_ENTRY_SECURE (ENET_BIT(5U))
196
203 #define ICSSG_FDB_ENTRY_TOUCHED (ENET_BIT(6U))
204
210 #define ICSSG_FDB_ENTRY_VALID (ENET_BIT(7U))
211
214 /* RX Rate Source Selection */
215
216 #define ICSSG_RATE_SRC_SEL_FT1_MATCH0 (0U)
217 #define ICSSG_RATE_SRC_SEL_FT1_MATCH1 (1U)
218 #define ICSSG_RATE_SRC_SEL_FT1_MATCH2 (2U)
219 #define ICSSG_RATE_SRC_SEL_FT1_MATCH3 (3U)
220 #define ICSSG_RATE_SRC_SEL_FT1_MATCH4 (4U)
221 #define ICSSG_RATE_SRC_SEL_FT1_MATCH5 (5U)
222 #define ICSSG_RATE_SRC_SEL_FT1_MATCH6 (6U)
223 #define ICSSG_RATE_SRC_SEL_FT1_MATCH7 (7U)
224 #define ICSSG_RATE_SRC_SEL_FT3_MATCH0 (8U)
225 #define ICSSG_RATE_SRC_SEL_FT3_MATCH1 (9U)
226 #define ICSSG_RATE_SRC_SEL_FT3_MATCH2 (10U)
227 #define ICSSG_RATE_SRC_SEL_FT3_MATCH3 (11U)
228 #define ICSSG_RATE_SRC_SEL_FT3_MATCH4 (12U)
229 #define ICSSG_RATE_SRC_SEL_FT3_MATCH5 (13U)
230 #define ICSSG_RATE_SRC_SEL_FT3_MATCH6 (14U)
231 #define ICSSG_RATE_SRC_SEL_FT3_MATCH7 (15U)
232 #define ICSSG_RATE_SRC_SEL_FT3_MATCH8 (16U)
233 #define ICSSG_RATE_SRC_SEL_FT3_MATCH9 (17U)
234 #define ICSSG_RATE_SRC_SEL_FT3_MATCH10 (18U)
235 #define ICSSG_RATE_SRC_SEL_FT3_MATCH11 (19U)
236 #define ICSSG_RATE_SRC_SEL_FT3_MATCH12 (20U)
237 #define ICSSG_RATE_SRC_SEL_FT3_MATCH13 (21U)
238 #define ICSSG_RATE_SRC_SEL_FT3_MATCH14 (22U)
239 #define ICSSG_RATE_SRC_SEL_FT3_MATCH15 (23U)
240 #define ICSSG_RATE_SRC_SEL_FT_RX_UC (24U)
241 #define ICSSG_RATE_SRC_SEL_FT_RX_MC (25U)
242 #define ICSSG_RATE_SRC_SEL_FT_RX_BC (26U)
243 #define ICSSG_RATE_SRC_SEL_FT_RX_SAV (27U)
244 #define ICSSG_RATE_SRC_SEL_FT_RX_FWD (28U)
245 #define ICSSG_RATE_SRC_SEL_FT_RX_RCV (29U)
246 #define ICSSG_RATE_SRC_SEL_FT_RX_VLAN (30U)
247 #define ICSSG_RATE_SRC_SEL_FT_RX_DA_P (31U)
248 #define ICSSG_RATE_SRC_SEL_FT_RX_DA_I (32U)
249 #define ICSSG_RATE_SRC_SEL_RX_CLASS_RAW0 (33U)
250 #define ICSSG_RATE_SRC_SEL_RX_CLASS_RAW1 (34U)
251 #define ICSSG_RATE_SRC_SEL_RX_CLASS_RAW2 (35U)
252 #define ICSSG_RATE_SRC_SEL_RX_CLASS_RAW3 (36U)
253 #define ICSSG_RATE_SRC_SEL_RX_CLASS_RAW4 (37U)
254 #define ICSSG_RATE_SRC_SEL_RX_CLASS_RAW5 (38U)
255 #define ICSSG_RATE_SRC_SEL_RX_CLASS_RAW6 (39U)
256 #define ICSSG_RATE_SRC_SEL_RX_CLASS_RAW7 (40U)
257 #define ICSSG_RATE_SRC_SEL_RX_CLASS_RAW8 (41U)
258 #define ICSSG_RATE_SRC_SEL_RX_CLASS_RAW9 (42U)
259 #define ICSSG_RATE_SRC_SEL_RX_CLASS_RAW10 (43U)
260 #define ICSSG_RATE_SRC_SEL_RX_CLASS_RAW11 (44U)
261 #define ICSSG_RATE_SRC_SEL_RX_CLASS_RAW12 (45U)
262 #define ICSSG_RATE_SRC_SEL_RX_CLASS_RAW13 (46U)
263 #define ICSSG_RATE_SRC_SEL_RX_CLASS_RAW14 (47U)
264 #define ICSSG_RATE_SRC_SEL_RX_CLASS_RAW15 (48U)
265
266 /* RX class data mapping */
267 #define ICCSG_RX_CLASS_DATA_FT3_MATCH0 (0U)
268 #define ICCSG_RX_CLASS_DATA_FT3_MATCH1 (1U)
269 #define ICCSG_RX_CLASS_DATA_FT3_MATCH2 (2U)
270 #define ICCSG_RX_CLASS_DATA_FT3_MATCH3 (3U)
271 #define ICCSG_RX_CLASS_DATA_FT3_MATCH4 (4U)
272 #define ICCSG_RX_CLASS_DATA_FT3_MATCH5 (5U)
273 #define ICCSG_RX_CLASS_DATA_FT3_MATCH6 (6U)
274 #define ICCSG_RX_CLASS_DATA_FT3_MATCH7 (7U)
275 #define ICCSG_RX_CLASS_DATA_FT3_MATCH8 (8U)
276 #define ICCSG_RX_CLASS_DATA_FT3_MATCH9 (9U)
277 #define ICCSG_RX_CLASS_DATA_FT3_MATCH10 (10U)
278 #define ICCSG_RX_CLASS_DATA_FT3_MATCH11 (11U)
279 #define ICCSG_RX_CLASS_DATA_FT3_MATCH12 (12U)
280 #define ICCSG_RX_CLASS_DATA_FT3_MATCH13 (13U)
281 #define ICCSG_RX_CLASS_DATA_FT3_MATCH14 (14U)
282 #define ICCSG_RX_CLASS_DATA_FT3_MATCH15 (15U)
283 #define ICCSG_RX_CLASS_DATA_FT1_MATCH0 (16U)
284 #define ICCSG_RX_CLASS_DATA_FT1_MATCH1 (17U)
285 #define ICCSG_RX_CLASS_DATA_FT1_MATCH2 (18U)
286 #define ICCSG_RX_CLASS_DATA_FT1_MATCH3 (19U)
287 #define ICCSG_RX_CLASS_DATA_FT1_MATCH4 (20U)
288 #define ICCSG_RX_CLASS_DATA_FT1_MATCH5 (21U)
289 #define ICCSG_RX_CLASS_DATA_FT1_MATCH6 (22U)
290 #define ICCSG_RX_CLASS_DATA_FT1_MATCH7 (23U)
291 #define ICCSG_RX_CLASS_DATA_FT_RX_DA_I (24U)
292 #define ICCSG_RX_CLASS_DATA_FT_RX_DA_P (25U)
293 #define ICCSG_RX_CLASS_DATA_FT_RX_VLAN (26U)
294 #define ICCSG_RX_CLASS_DATA_FT_RX_RCV (27U)
295 #define ICCSG_RX_CLASS_DATA_FT_RX_FWD (28U)
296 #define ICCSG_RX_CLASS_DATA_FT_RX_BC (29U)
297 #define ICCSG_RX_CLASS_DATA_FT_RX_MC (30U)
298 #define ICCSG_RX_CLASS_DATA_FT_RX_SAV (31U)
299
301 #define ICSSG_TAS_MIN_CYCLE_TIME_NS (1000000)
302
304 #define ICSSG_TAS_MIN_WINDOW_DURATION_NS (10000)
305
306 /* ========================================================================== */
307 /* Structures and Enums */
308 /* ========================================================================== */
309
313 typedef enum Icssg_Instance_Num_e
314 {
316 ICSSG_INSTANCE_NUM_0,
317
319 ICSSG_INSTANCE_NUM_1,
320
322 ICSSG_INSTANCE_NUM_2,
323 } Icssg_Instance_Num;
324
329 typedef struct Icssg_TxTsEvtCbInfo_s
330 {
333 uint32_t txTsId;
334
336 uint64_t ts;
337 } Icssg_TxTsEvtCbInfo;
338
342 typedef enum Icssg_Ioctl_e
343 {
353 ICSSG_MACPORT_IOCTL_ENABLE_PROMISC_MODE = ICSSG_PUBLIC_IOCTL(0U),
354
364 ICSSG_MACPORT_IOCTL_DISABLE_PROMISC_MODE = ICSSG_PUBLIC_IOCTL(1U),
365
375 ICSSG_PER_IOCTL_VLAN_RESET_TABLE = ICSSG_PUBLIC_IOCTL(2U),
376
386 ICSSG_PER_IOCTL_VLAN_SET_ENTRY = ICSSG_PUBLIC_IOCTL(3U),
387
397 ICSSG_PER_IOCTL_VLAN_GET_ENTRY = ICSSG_PUBLIC_IOCTL(4U),
398
419 ICSSG_PER_IOCTL_SET_PORT_STATE = ICSSG_PUBLIC_IOCTL(5U),
420
430 ICSSG_FDB_IOCTL_ADD_ENTRY = ICSSG_PUBLIC_IOCTL(6U),
431
441 ICSSG_FDB_IOCTL_REMOVE_ENTRY = ICSSG_PUBLIC_IOCTL(7U),
442
452 ICSSG_FDB_IOCTL_REMOVE_ALL_ENTRIES = ICSSG_PUBLIC_IOCTL(8U),
453
463 ICSSG_FDB_IOCTL_REMOVE_AGEABLE_ENTRIES = ICSSG_PUBLIC_IOCTL(9U),
464
474 ICSSG_FDB_IOCTL_READ_SLOT_ENTRIES = ICSSG_PUBLIC_IOCTL(10U),
475
485 ICSSG_FDB_IOCTL_GET_SLOT_ENTRIES = ICSSG_PUBLIC_IOCTL(11U),
486
496 ICSSG_MACPORT_IOCTL_SET_MACADDR = ICSSG_PUBLIC_IOCTL(12U),
497
507 ICSSG_HOSTPORT_IOCTL_SET_MACADDR = ICSSG_PUBLIC_IOCTL(13U),
508
513 ICSSG_PER_IOCTL_TAS_TRIGGER = ICSSG_PUBLIC_IOCTL(14U),
514
519 ICSSG_PER_IOCTL_TAS_ENABLE = ICSSG_PUBLIC_IOCTL(15U),
520
525 ICSSG_PER_IOCTL_TAS_DISABLE = ICSSG_PUBLIC_IOCTL(16U),
526
531 ICSSG_PER_IOCTL_TAS_RESET = ICSSG_PUBLIC_IOCTL(17U),
532
546 ICSSG_PER_IOCTL_VLAN_SET_HOSTPORT_DFLT_VID = ICSSG_PUBLIC_IOCTL(18U),
547
557 ICSSG_PER_IOCTL_VLAN_SET_MACPORT_DFLT_VID = ICSSG_PUBLIC_IOCTL(19U),
558
570 ICSSG_FDB_IOCTL_SET_AGING_PERIOD = ICSSG_PUBLIC_IOCTL(20U),
571
581 ICSSG_MACPORT_IOCTL_ENABLE_UCAST_FLOOD = ICSSG_PUBLIC_IOCTL(21U),
582
592 ICSSG_MACPORT_IOCTL_DISABLE_UCAST_FLOOD = ICSSG_PUBLIC_IOCTL(22U),
593
603 ICSSG_MACPORT_IOCTL_ENABLE_MCAST_FLOOD = ICSSG_PUBLIC_IOCTL(23U),
604
614 ICSSG_MACPORT_IOCTL_DISABLE_MCAST_FLOOD = ICSSG_PUBLIC_IOCTL(24U),
615
630 ICSSG_MACPORT_IOCTL_SET_ACCEPT_FRAME_CHECK = ICSSG_PUBLIC_IOCTL(25U),
631
641 ICSSG_MACPORT_IOCTL_SET_INGRESS_RATE_LIM = ICSSG_PUBLIC_IOCTL(26U),
642
652 ICSSG_MACPORT_IOCTL_SET_QUEUE_CUT_THROUGH_PREEMPT_SELECT = ICSSG_PUBLIC_IOCTL(27U),
653
663 ICSSG_MACPORT_IOCTL_CONFIG_SPL_FRAME_PRIO = ICSSG_PUBLIC_IOCTL(28U),
664
674 ICSSG_ENABLE_PROTOCOL_SPECIFIC_TAG_IOCTL = ICSSG_PUBLIC_IOCTL(29U),
675
685 ICSSG_DISABLE_PROTOCOL_SPECIFIC_TAG_IOCTL = ICSSG_PUBLIC_IOCTL(30U),
686
696 ICSSG_INTERNAL_IOCTL_REGISTER_HANDLER = ICSSG_PUBLIC_IOCTL(31U),
697 } Icssg_Ioctl;
698
702 typedef enum Icssg_QueuePreemptMode_e
703 {
705 ICSSG_QUEUE_PREEMPT_MODE_EXPRESS,
706
708 ICSSG_QUEUE_PREEMPT_MODE_PREEMPT,
709 } Icssg_QueuePreemptMode;
710
714 typedef enum Icssg_QueueForwardMode_e
715 {
717 ICSSG_QUEUE_FORWARD_MODE_STOREANDFWD,
718
720 ICSSG_QUEUE_FORWARD_MODE_CUTTHROUGH,
721 } Icssg_QueueForwardMode;
722
726 typedef struct IcssgMacPort_SetQueueCtPremptModeInArgs_s
727 {
729 Enet_MacPort macPort;
730
732 Icssg_QueuePreemptMode queuePreemptMode[ENET_PRI_NUM];
733
735 Icssg_QueueForwardMode queueForwardMode[ENET_PRI_NUM];
736 } IcssgMacPort_SetQueueCtPremptModeInArgs;
737
741 typedef struct IcssgMacPort_ConfigSpecialFramePrioInArgs_s
742 {
744 Enet_MacPort macPort;
745
747 uint8_t specialFramePrio;
748 } IcssgMacPort_ConfigSpecialFramePrioInArgs;
749
753 typedef enum Icssg_PortState_e
754 {
757 ICSSG_PORT_STATE_DISABLED,
758
762 ICSSG_PORT_STATE_BLOCKING,
763
767 ICSSG_PORT_STATE_FORWARD,
768
770 ICSSG_PORT_STATE_FORWARD_WO_LEARNING,
771
773 ICSSG_PORT_STATE_TAS_TRIGGER,
774
776 ICSSG_PORT_STATE_TAS_ENABLE,
777
779 ICSSG_PORT_STATE_TAS_RESET,
780
782 ICSSG_PORT_STATE_TAS_DISABLE,
783 } Icssg_PortState;
784
788 typedef struct IcssgMacPort_SetPortStateInArgs_s
789 {
791 Enet_MacPort macPort;
792
794 Icssg_PortState portState;
795 } IcssgMacPort_SetPortStateInArgs;
796
800 typedef enum Icssg_AcceptFrameCheck_e
801 {
803 ICSSG_ACCEPT_ONLY_VLAN_TAGGED,
804
806 ICSSG_ACCEPT_ONLY_UNTAGGED_PRIO_TAGGED,
807
809 ICSSG_ACCEPT_ALL,
810 } Icssg_AcceptFrameCheck;
811
815 typedef struct Icssg_SetAcceptFrameCheckInArgs_s
816 {
818 Enet_MacPort macPort;
819
821 Icssg_AcceptFrameCheck acceptFrameCheck;
822 } Icssg_SetAcceptFrameCheckInArgs;
823
827 typedef struct Icssg_MacAddr_s
828 {
830 uint8_t macAddr[ENET_MAC_ADDR_LEN];
831 } Icssg_MacAddr;
832
836 typedef struct IcssgMacPort_SetMacAddressInArgs_s
837 {
839 Enet_MacPort macPort;
840
842 uint8_t macAddr[ENET_MAC_ADDR_LEN];
843 } IcssgMacPort_SetMacAddressInArgs;
844
845
849 typedef struct Icssg_VlanFidParams_s
850 {
853 uint8_t fid;
854
856 bool hostMember;
857
859 bool p1Member;
860
862 bool p2Member;
863
866 bool hostTagged;
867
870 bool p1Tagged;
871
874 bool p2Tagged;
875
877 bool streamVid;
878
880 bool floodToHost;
881 } Icssg_VlanFidParams;
882
886 typedef struct Icssg_VlanFidEntry_s
887 {
889 uint16_t vlanId;
890
892 Icssg_VlanFidParams vlanFidParams;
893 } Icssg_VlanFidEntry;
894
898 typedef struct Icssg_FdbEntry_s
899 {
901 uint8_t macAddr[ENET_MAC_ADDR_LEN];
902
904 int16_t vlanId;
905
908 uint8_t fdbEntry[2];
909 } Icssg_FdbEntry;
910
914 typedef struct Icssg_HwFdbEntry_s
915 {
917 uint8_t macAddr[ENET_MAC_ADDR_LEN];
918
920 uint8_t fid_c1;
921
923 uint8_t fid_c2;
924 } Icssg_HwFdbEntry;
925
929 typedef struct Icssg_FdbEntry_ReadSlotInArgs_s
930 {
932 uint16_t broadSideSlot;
933 } Icssg_FdbEntry_ReadSlotInArgs;
934
938 typedef struct Icssg_FdbEntry_GetSlotOutArgs_s
939 {
941 Icssg_HwFdbEntry fdbSlotEntries[4];
942 } Icssg_FdbEntry_GetSlotOutArgs;
943
947 typedef struct Icssg_DfltVlanCfg_s
948 {
950 Enet_MacPort macPort;
951
953 uint16_t vlanId;
954
956 uint8_t pcp;
957 } Icssg_DfltVlanCfg;
958
962 typedef struct Icssg_MacPortDfltVlanCfgInArgs_s
963 {
965 Enet_MacPort macPort;
966
969 EnetPort_VlanCfg vlanCfg;
970 } Icssg_MacPortDfltVlanCfgInArgs;
971
975 typedef struct Icssg_IngressRateLim_s
976 {
978 Enet_MacPort macPort;
979
980 uint32_t rateLimit; //In Mbps
981 uint32_t rateSrcSel;//0..47
982 uint8_t rateIndex; //0..7, 0xFF : skip
983 uint8_t classIndex; //0..15 - FW dependent
984 uint8_t notMask; //Bit 0 : !AND Bit1 : !OR
985 uint8_t classSel; //0: OR 1 : AND 2: OR AND AND 3 : OR OR AND
986 uint32_t classDataAndTerm;
987 uint32_t classDataOrTerm;
988 struct FT_S {
989 uint8_t index; //FT1 (0..7) FT3 (0..15)0XFF : Skip
990 uint8_t type; // 0 : FT1 or 1 : FT3
991 uint16_t ft1Start;
992 uint16_t ft1Len;
993 uint16_t ft1Cfg;
994 union FT_U {
995 struct FT1_CONFIG_S {
996 uint32_t destAddrLow;
997 uint32_t destAddrHigh;
998 uint32_t destAddrMaskLow;
999 uint32_t destAddrMaskHigh;
1000 } ft1;
1001 struct FT3_CONFIG_S {
1002 uint32_t start;
1003 uint32_t startAuto;
1004 uint32_t startLen;
1005 uint32_t jmpOffset;
1006 uint32_t len;
1007 uint32_t config;
1008 uint32_t type;
1009 uint32_t typeMask;
1010 uint32_t patternLow;
1011 uint32_t patternHigh;
1012 uint32_t patternMaskLow;
1013 uint32_t patternMaskHigh;
1014 } ft3;
1015 } u;
1016 } filter[2];
1017 } Icssg_IngressRateLim;
1018
1024 typedef struct Icssg_custom_Fw_s
1025 {
1027 const uint32_t *pru;
1028
1030 uint32_t pruSize;
1031
1033 const uint32_t *rtu;
1034
1036 uint32_t rtuSize;
1037
1039 const uint32_t *txpru;
1040
1042 uint32_t txpruSize;
1043 } Icssg_custom_Fw;
1044
1051 typedef struct Icssg_FwPoolMem_s
1052 {
1055 uint8_t *portBufferPoolMem;
1056
1058 uint32_t portBufferPoolSize;
1059
1061 uint32_t portBufferPoolNum;
1062
1065 uint8_t *hostBufferPoolMem;
1066
1068 uint32_t hostBufferPoolSize;
1069
1071 uint32_t hostBufferPoolNum;
1072
1075 uint8_t *hostEgressQueueMem;
1076
1079 uint8_t *hostEgressPreQueueMem;
1080
1083 uint32_t hostEgressQueueSize;
1084
1087 uint32_t hostEgressPreQueueSize;
1088
1090 uint32_t hostEgressQueueNum;
1091
1093 uint8_t *scratchBufferMem;
1094
1096 uint32_t scratchBufferSize;
1097 } Icssg_FwPoolMem;
1098
1102 typedef struct Icssg_MdioLinkStateChangeInfo_s
1103 {
1105 uint32_t phyAddr;
1106
1109 bool aliveChanged;
1110
1113 bool isAlive;
1114
1116 bool linkChanged;
1117
1119 bool isLinked;
1120 } Icssg_MdioLinkStateChangeInfo;
1121
1128 typedef void (*Icssg_MdioLinkStateChangeCb)(Icssg_MdioLinkStateChangeInfo *info,
1129 void *appArg);
1130
1131 typedef void (*Icssg_portLinkStateChangeCb)(Enet_MacPort macPort, bool isLinkUp,
1132 void *appArg);
1133
1134 typedef struct Icssg_mdioLinkIntCfg_s
1135 {
1137 Icssg_MdioLinkStateChangeCb mdioLinkStateChangeCb;
1138
1140 void *mdioLinkStateChangeCbArg;
1142 const PRUICSS_IntcInitData *prussIntcInitData;
1143 int32_t coreIntrNum;
1144 uint32_t pruEvtNum[ICSSG_MAC_PORT_MAX];
1145 uint32_t isPulseIntr;
1146 uint32_t intrPrio;
1147 } Icssg_mdioLinkIntCfg;
1148
1149
1150 typedef struct Icssg_portLinkIntCfg_s
1151 {
1153 Icssg_portLinkStateChangeCb portLinkStateChangeCb;
1154
1156 void *portLinkStateChangeCbArg;
1157 } Icssg_portLinkIntCfg;
1158
1162 typedef struct Icssg_Cfg_s
1163 {
1165 uint64_t agingPeriod;
1166
1168 EnetPort_VlanCfg vlanCfg;
1169
1174 const EnetDma_Cfg *dmaCfg;
1175
1177 EnetRm_ResCfg resCfg;
1178
1180 Mdio_Cfg mdioCfg;
1181
1183 IcssgTimeSync_Cfg timeSyncCfg;
1184
1186 EnetMacPort_Interface mii;
1187
1189 uint32_t cycleTimeNs;
1190
1192 Icssg_mdioLinkIntCfg mdioLinkIntCfg;
1193
1195 Icssg_portLinkIntCfg portLinkIntCfg;
1196
1206 bool disablePhyDriver;
1207
1209 uint32_t qosLevels;
1210
1212 uint32_t isPremQueEnable;
1213
1215 IcssgTimeSync_ClkType clockTypeFw;
1216
1222 Icssg_custom_Fw fw[ICSSG_MAC_PORT_MAX];
1223 } Icssg_Cfg;
1224
1228 typedef struct IccsgMacPort_Cfg_s
1229 {
1231 bool promiscEn;
1232
1234 bool ucastFloodEn;
1235
1237 bool mcastFloodEn;
1238
1240 Icssg_AcceptFrameCheck acceptFrameCheck;
1241
1243 EnetPort_VlanCfg vlanCfg;
1244
1246 Icssg_QueuePreemptMode queuePreemptMode[ENET_PRI_NUM];
1247
1249 Icssg_QueueForwardMode queueForwardMode[ENET_PRI_NUM];
1250
1251 uint8_t specialFramePrio;
1252 } IcssgMacPort_Cfg;
1253
1254
1255 /* ========================================================================== */
1256 /* Global Variables Declarations */
1257 /* ========================================================================== */
1258
1267 const Icssg_FwPoolMem *EnetCb_GetFwPoolMem(Enet_Type enetType,
1268 uint32_t instId);
1269
1270 /* ========================================================================== */
1271 /* Function Declarations */
1272 /* ========================================================================== */
1273
1281 void IcssgMacPort_initCfg(IcssgMacPort_Cfg *macPortCfg);
1282
1292 uint32_t Icssg_getSliceNum(Enet_Type enetType,
1293 uint32_t instId,
1294 Enet_MacPort macPort);
1295
1296 /* ========================================================================== */
1297 /* Deprecated Function Declarations */
1298 /* ========================================================================== */
1299
1300 /* None */
1301
1302 /* ========================================================================== */
1303 /* Static Function Definitions */
1304 /* ========================================================================== */
1305
1306 /* None */
1307
1308 #ifdef __cplusplus
1309 }
1310 #endif
1311
1312 #endif /* ICSSG_H_ */
1313
Icssg_mdioLinkIntCfg::mdioLinkStateChangeCbArg
void * mdioLinkStateChangeCbArg
Definition: icssg.h:1140
ICSSG_QUEUE_FORWARD_MODE_STOREANDFWD
@ ICSSG_QUEUE_FORWARD_MODE_STOREANDFWD
Definition: icssg.h:717
ICSSG_MACPORT_IOCTL_ENABLE_MCAST_FLOOD
@ ICSSG_MACPORT_IOCTL_ENABLE_MCAST_FLOOD
Enable flooding of multicast packets to host port.
Definition: icssg.h:603
Icssg_MdioLinkStateChangeInfo::isAlive
bool isAlive
Definition: icssg.h:1113
Icssg_IngressRateLim::FT_S::type
uint8_t type
Definition: icssg.h:990
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:614
ICSSG_QUEUE_FORWARD_MODE_CUTTHROUGH
@ ICSSG_QUEUE_FORWARD_MODE_CUTTHROUGH
Definition: icssg.h:720
ICSSG_PORT_STATE_TAS_ENABLE
@ ICSSG_PORT_STATE_TAS_ENABLE
Definition: icssg.h:776
ICSSG_MAC_PORT_MAX
#define ICSSG_MAC_PORT_MAX
Maximum number of MAC ports per ICSSG instance.
Definition: icssg.h:89
ICSSG_ACCEPT_ALL
@ ICSSG_ACCEPT_ALL
Definition: icssg.h:809
Icssg_portLinkIntCfg::portLinkStateChangeCb
Icssg_portLinkStateChangeCb portLinkStateChangeCb
Definition: icssg.h:1153
IcssgTimeSync_ClkType
IcssgTimeSync_ClkType
ICSSG TimeSync clock types.
Definition: icssg_timesync.h:78
Icssg_MdioLinkStateChangeInfo::aliveChanged
bool aliveChanged
Definition: icssg.h:1109
Icssg_Cfg::agingPeriod
uint64_t agingPeriod
Definition: icssg.h:1165
IcssgMacPort_SetQueueCtPremptModeInArgs::macPort
Enet_MacPort macPort
Definition: icssg.h:729
Icssg_custom_Fw::rtuSize
uint32_t rtuSize
Definition: icssg.h:1036
Icssg_IngressRateLim::classDataOrTerm
uint32_t classDataOrTerm
Definition: icssg.h:987
Icssg_FdbEntry_ReadSlotInArgs
Input arguments for ICSSG_FDB_IOCTL_READ_SLOT_ENTRIES command.
Definition: icssg.h:930
Icssg_IngressRateLim::FT_S::ft1Start
uint16_t ft1Start
Definition: icssg.h:991
enet_dma.h
This file contains the type definitions and helper macros for the Enet Data Path (DMA) interface.
Icssg_Cfg::isPremQueEnable
uint32_t isPremQueEnable
Definition: icssg.h:1212
ICSSG_ACCEPT_ONLY_UNTAGGED_PRIO_TAGGED
@ ICSSG_ACCEPT_ONLY_UNTAGGED_PRIO_TAGGED
Definition: icssg.h:806
Icssg_mdioLinkIntCfg::isPulseIntr
uint32_t isPulseIntr
Definition: icssg.h:1145
Icssg_FwPoolMem
ICSSG buffer pool memories.
Definition: icssg.h:1052
Icssg_HwFdbEntry::fid_c2
uint8_t fid_c2
Definition: icssg.h:923
ICSSG_FDB_IOCTL_SET_AGING_PERIOD
@ ICSSG_FDB_IOCTL_SET_AGING_PERIOD
Set the aging period of the FDB.
Definition: icssg.h:570
IcssgMacPort_SetPortStateInArgs::macPort
Enet_MacPort macPort
Definition: icssg.h:791
ICSSG_PER_IOCTL_TAS_TRIGGER
@ ICSSG_PER_IOCTL_TAS_TRIGGER
Definition: icssg.h:513
ICSSG_PORT_STATE_TAS_TRIGGER
@ ICSSG_PORT_STATE_TAS_TRIGGER
Definition: icssg.h:773
EnetDma_Cfg
Config structure for Enet CPDMA.
Definition: enet_cpdma.h:433
Icssg_custom_Fw::rtu
const uint32_t * rtu
Definition: icssg.h:1033
Icssg_Cfg::mii
EnetMacPort_Interface mii
Definition: icssg.h:1186
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:839
Icssg_TxTsEvtCbInfo
Icssg TX timestamp event callback info structure. This is passed to application when TX timestamp is ...
Definition: icssg.h:330
EnetPort_VlanCfg
VLAN configuration parameters.
Definition: enet_mod_port.h:69
Icssg_IngressRateLim::FT_S::FT_U::FT3_CONFIG_S::start
uint32_t start
Definition: icssg.h:1002
ICSSG_MACPORT_IOCTL_SET_INGRESS_RATE_LIM
@ ICSSG_MACPORT_IOCTL_SET_INGRESS_RATE_LIM
Configure ingress rate limiting.
Definition: icssg.h:641
Icssg_FwPoolMem::hostBufferPoolMem
uint8_t * hostBufferPoolMem
Definition: icssg.h:1065
IcssgMacPort_Cfg::mcastFloodEn
bool mcastFloodEn
Definition: icssg.h:1237
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:715
Icssg_custom_Fw::pruSize
uint32_t pruSize
Definition: icssg.h:1030
ICSSG_MACPORT_IOCTL_ENABLE_UCAST_FLOOD
@ ICSSG_MACPORT_IOCTL_ENABLE_UCAST_FLOOD
Enable flooding of unicast packets to host port.
Definition: icssg.h:581
ICSSG_MACPORT_IOCTL_DISABLE_PROMISC_MODE
@ ICSSG_MACPORT_IOCTL_DISABLE_PROMISC_MODE
Disable promiscuous mode.
Definition: icssg.h:364
Icssg_VlanFidParams::floodToHost
bool floodToHost
Definition: icssg.h:880
Icssg_FwPoolMem::hostEgressPreQueueSize
uint32_t hostEgressPreQueueSize
Definition: icssg.h:1087
Icssg_IngressRateLim::classIndex
uint8_t classIndex
Definition: icssg.h:983
Icssg_Cfg::dmaCfg
const EnetDma_Cfg * dmaCfg
Definition: icssg.h:1174
Icssg_IngressRateLim::FT_S::FT_U::FT3_CONFIG_S::len
uint32_t len
Definition: icssg.h:1006
Icssg_Cfg::portLinkIntCfg
Icssg_portLinkIntCfg portLinkIntCfg
Definition: icssg.h:1195
Icssg_VlanFidParams::p1Member
bool p1Member
Definition: icssg.h:859
Enet_MacPort
Enet_MacPort
MAC port.
Definition: enet_types.h:412
Icssg_Cfg::mdioCfg
Mdio_Cfg mdioCfg
Definition: icssg.h:1180
Icssg_portLinkStateChangeCb
void(* Icssg_portLinkStateChangeCb)(Enet_MacPort macPort, bool isLinkUp, void *appArg)
Definition: icssg.h:1131
ICSSG_PER_IOCTL_VLAN_SET_ENTRY
@ ICSSG_PER_IOCTL_VLAN_SET_ENTRY
Update a VLAN table entry.
Definition: icssg.h:386
Icssg_VlanFidParams::hostTagged
bool hostTagged
Definition: icssg.h:866
Icssg_MacAddr
MAC address.
Definition: icssg.h:828
ICSSG_QUEUE_PREEMPT_MODE_PREEMPT
@ ICSSG_QUEUE_PREEMPT_MODE_PREEMPT
Definition: icssg.h:708
Icssg_FwPoolMem::hostEgressQueueMem
uint8_t * hostEgressQueueMem
Definition: icssg.h:1075
Icssg_IngressRateLim::FT_S::FT_U::FT3_CONFIG_S::jmpOffset
uint32_t jmpOffset
Definition: icssg.h:1005
Icssg_HwFdbEntry
HW FDB table entry.
Definition: icssg.h:915
Icssg_FwPoolMem::hostBufferPoolSize
uint32_t hostBufferPoolSize
Definition: icssg.h:1068
Icssg_IngressRateLim::FT_S::FT_U::FT3_CONFIG_S::typeMask
uint32_t typeMask
Definition: icssg.h:1009
Icssg_DfltVlanCfg::macPort
Enet_MacPort macPort
Definition: icssg.h:950
Icssg_SetAcceptFrameCheckInArgs::acceptFrameCheck
Icssg_AcceptFrameCheck acceptFrameCheck
Definition: icssg.h:821
Icssg_Cfg::vlanCfg
EnetPort_VlanCfg vlanCfg
Definition: icssg.h:1168
ICSSG_PER_IOCTL_TAS_ENABLE
@ ICSSG_PER_IOCTL_TAS_ENABLE
Definition: icssg.h:519
enet_mod_phy.h
This file contains the type definitions and helper macros for the Ethernet PHY interface.
ICSSG_FDB_IOCTL_READ_SLOT_ENTRIES
@ ICSSG_FDB_IOCTL_READ_SLOT_ENTRIES
Read the four entries of one FDB slot.
Definition: icssg.h:474
Icssg_VlanFidEntry
VLAN FID table entry.
Definition: icssg.h:887
EnetRm_ResCfg
Resource manager configuration parameters.
Definition: enet_rm.h:402
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:630
Icssg_FdbEntry_GetSlotOutArgs
Output arguments for ICSSG_FDB_IOCTL_GET_SLOT_ENTRIES command.
Definition: icssg.h:939
Icssg_FwPoolMem::scratchBufferSize
uint32_t scratchBufferSize
Definition: icssg.h:1096
Icssg_Ioctl
Icssg_Ioctl
ICSSG IOCTL commands.
Definition: icssg.h:343
Icssg_Cfg::mdioLinkIntCfg
Icssg_mdioLinkIntCfg mdioLinkIntCfg
Definition: icssg.h:1192
IcssgMacPort_Cfg
ICSSG mac port configuration parameters.
Definition: icssg.h:1229
ICSSG_PORT_STATE_TAS_RESET
@ ICSSG_PORT_STATE_TAS_RESET
Definition: icssg.h:779
ICSSG_PER_IOCTL_TAS_DISABLE
@ ICSSG_PER_IOCTL_TAS_DISABLE
Definition: icssg.h:525
ICSSG_PER_IOCTL_VLAN_RESET_TABLE
@ ICSSG_PER_IOCTL_VLAN_RESET_TABLE
Populate VLAN table with default VLAN entry configuration.
Definition: icssg.h:375
Icssg_MacPortDfltVlanCfgInArgs
Input arguments for ICSSG_PER_IOCTL_VLAN_SET_MACPORT_DFLT_VID command.
Definition: icssg.h:963
Icssg_VlanFidParams::p1Tagged
bool p1Tagged
Definition: icssg.h:870
Icssg_VlanFidParams::fid
uint8_t fid
Definition: icssg.h:853
ICSSG_PUBLIC_IOCTL
#define ICSSG_PUBLIC_IOCTL(x)
Helper macro to create IOCTL commands for ICSSG per.
Definition: icssg.h:81
Icssg_FwPoolMem::portBufferPoolNum
uint32_t portBufferPoolNum
Definition: icssg.h:1061
Icssg_MdioLinkStateChangeCb
void(* Icssg_MdioLinkStateChangeCb)(Icssg_MdioLinkStateChangeInfo *info, void *appArg)
Icssg PHY link state change callback function.
Definition: icssg.h:1128
Icssg_MacPortDfltVlanCfgInArgs::vlanCfg
EnetPort_VlanCfg vlanCfg
Definition: icssg.h:969
Icssg_IngressRateLim::FT_S::FT_U
Definition: icssg.h:994
Icssg_FdbEntry::vlanId
int16_t vlanId
Definition: icssg.h:904
Icssg_IngressRateLim::rateLimit
uint32_t rateLimit
Definition: icssg.h:980
ICSSG_PORT_STATE_TAS_DISABLE
@ ICSSG_PORT_STATE_TAS_DISABLE
Definition: icssg.h:782
Icssg_portLinkIntCfg::portLinkStateChangeCbArg
void * portLinkStateChangeCbArg
Definition: icssg.h:1156
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:754
ICSSG_INSTANCE_NUM_1
@ ICSSG_INSTANCE_NUM_1
Definition: icssg.h:319
Icssg_IngressRateLim::FT_S::FT_U::FT1_CONFIG_S::destAddrLow
uint32_t destAddrLow
Definition: icssg.h:996
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:546
Icssg_IngressRateLim::FT_S::FT_U::FT3_CONFIG_S
Definition: icssg.h:1001
Icssg_Instance_Num
Icssg_Instance_Num
ICSSG instance numbers.
Definition: icssg.h:314
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:696
Icssg_IngressRateLim::notMask
uint8_t notMask
Definition: icssg.h:984
Icssg_custom_Fw::pru
const uint32_t * pru
Definition: icssg.h:1027
ICSSG_FDB_IOCTL_REMOVE_ALL_ENTRIES
@ ICSSG_FDB_IOCTL_REMOVE_ALL_ENTRIES
Delete all FDB entries.
Definition: icssg.h:452
EnetMacPort_Interface
MAC port interface.
Definition: enet_mod_macport.h:443
Icssg_custom_Fw
ICSSG custom firmware.
Definition: icssg.h:1025
ICSSG_INSTANCE_NUM_0
@ ICSSG_INSTANCE_NUM_0
Definition: icssg.h:316
IcssgMacPort_Cfg::acceptFrameCheck
Icssg_AcceptFrameCheck acceptFrameCheck
Definition: icssg.h:1240
Icssg_TxTsEvtCbInfo::ts
uint64_t ts
Definition: icssg.h:336
Icssg_FwPoolMem::hostEgressPreQueueMem
uint8_t * hostEgressPreQueueMem
Definition: icssg.h:1079
Icssg_MacPortDfltVlanCfgInArgs::macPort
Enet_MacPort macPort
Definition: icssg.h:965
Icssg_IngressRateLim::FT_S::FT_U::FT3_CONFIG_S::patternMaskHigh
uint32_t patternMaskHigh
Definition: icssg.h:1013
Icssg_MdioLinkStateChangeInfo::isLinked
bool isLinked
Definition: icssg.h:1119
IcssgMacPort_ConfigSpecialFramePrioInArgs
Input arguments for ICSSG_MACPORT_IOCTL_CONFIG_SPL_FRAME_PRIO command.
Definition: icssg.h:742
IcssgMacPort_ConfigSpecialFramePrioInArgs::macPort
Enet_MacPort macPort
Definition: icssg.h:744
Icssg_IngressRateLim::FT_S::FT_U::FT3_CONFIG_S::patternLow
uint32_t patternLow
Definition: icssg.h:1010
Icssg_mdioLinkIntCfg::intrPrio
uint32_t intrPrio
Definition: icssg.h:1146
Icssg_IngressRateLim::FT_S
Definition: icssg.h:988
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:397
ICSSG_MACPORT_IOCTL_ENABLE_PROMISC_MODE
@ ICSSG_MACPORT_IOCTL_ENABLE_PROMISC_MODE
Enable promiscuous mode.
Definition: icssg.h:353
Icssg_VlanFidParams::p2Tagged
bool p2Tagged
Definition: icssg.h:874
Icssg_VlanFidParams
VLAN FID entry parameters.
Definition: icssg.h:850
IcssgMacPort_ConfigSpecialFramePrioInArgs::specialFramePrio
uint8_t specialFramePrio
Definition: icssg.h:747
Icssg_Cfg
ICSSG peripheral configuration parameters.
Definition: icssg.h:1163
Icssg_FwPoolMem::hostEgressQueueNum
uint32_t hostEgressQueueNum
Definition: icssg.h:1090
IcssgMacPort_Cfg::vlanCfg
EnetPort_VlanCfg vlanCfg
Definition: icssg.h:1243
ICSSG_PORT_STATE_FORWARD
@ ICSSG_PORT_STATE_FORWARD
Definition: icssg.h:767
Icssg_Cfg::disablePhyDriver
bool disablePhyDriver
Definition: icssg.h:1206
Icssg_portLinkIntCfg
Definition: icssg.h:1151
Icssg_HwFdbEntry::fid_c1
uint8_t fid_c1
Definition: icssg.h:920
Enet_Type
Enet_Type
Ethernet peripheral type.
Definition: enet_types.h:202
Icssg_VlanFidParams::streamVid
bool streamVid
Definition: icssg.h:877
ICSSG_FDB_IOCTL_GET_SLOT_ENTRIES
@ ICSSG_FDB_IOCTL_GET_SLOT_ENTRIES
Get the four entries of one FDB slot.
Definition: icssg.h:485
PRUICSS_IntcInitData
PRUICSS Interrupt controller initialisation data structure.
Definition: pruicss/m_v0/pruicss.h:265
Icssg_IngressRateLim
Input arguments for ICSSG_MACPORT_IOCTL_SET_INGRESS_RATE_LIM command.
Definition: icssg.h:976
ICSSG_FDB_IOCTL_REMOVE_AGEABLE_ENTRIES
@ ICSSG_FDB_IOCTL_REMOVE_AGEABLE_ENTRIES
Remove all ageable entries.
Definition: icssg.h:463
Icssg_DfltVlanCfg
Default VLAN configuration.
Definition: icssg.h:948
ICSSG_INSTANCE_NUM_2
@ ICSSG_INSTANCE_NUM_2
Definition: icssg.h:322
Icssg_IngressRateLim::FT_S::ft1Cfg
uint16_t ft1Cfg
Definition: icssg.h:993
ICSSG_PER_IOCTL_TAS_RESET
@ ICSSG_PER_IOCTL_TAS_RESET
Definition: icssg.h:531
ICSSG_PER_IOCTL_SET_PORT_STATE
@ ICSSG_PER_IOCTL_SET_PORT_STATE
Set port state.
Definition: icssg.h:419
Icssg_FwPoolMem::hostEgressQueueSize
uint32_t hostEgressQueueSize
Definition: icssg.h:1083
Icssg_VlanFidEntry::vlanFidParams
Icssg_VlanFidParams vlanFidParams
Definition: icssg.h:892
Icssg_AcceptFrameCheck
Icssg_AcceptFrameCheck
Acceptable frame check criteria.
Definition: icssg.h:801
IcssgMacPort_initCfg
void IcssgMacPort_initCfg(IcssgMacPort_Cfg *macPortCfg)
Initialises Mac Port COnfiguration.
IcssgMacPort_SetPortStateInArgs::portState
Icssg_PortState portState
Definition: icssg.h:794
ICSSG_MACPORT_IOCTL_CONFIG_SPL_FRAME_PRIO
@ ICSSG_MACPORT_IOCTL_CONFIG_SPL_FRAME_PRIO
special frame priority configuration.
Definition: icssg.h:663
Icssg_IngressRateLim::FT_S::FT_U::FT3_CONFIG_S::patternMaskLow
uint32_t patternMaskLow
Definition: icssg.h:1012
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:816
IcssgTimeSync_Cfg
TimeSync configuration parameters.
Definition: icssg_timesync.h:93
ICSSG_PORT_STATE_DISABLED
@ ICSSG_PORT_STATE_DISABLED
Definition: icssg.h:757
Icssg_Cfg::resCfg
EnetRm_ResCfg resCfg
Definition: icssg.h:1177
Icssg_IngressRateLim::FT_S::FT_U::FT3_CONFIG_S::startLen
uint32_t startLen
Definition: icssg.h:1004
ICSSG_PORT_STATE_FORWARD_WO_LEARNING
@ ICSSG_PORT_STATE_FORWARD_WO_LEARNING
Definition: icssg.h:770
IcssgMacPort_Cfg::ucastFloodEn
bool ucastFloodEn
Definition: icssg.h:1234
Icssg_IngressRateLim::rateSrcSel
uint32_t rateSrcSel
Definition: icssg.h:981
Icssg_mdioLinkIntCfg
Definition: icssg.h:1135
ICSSG_ACCEPT_ONLY_VLAN_TAGGED
@ ICSSG_ACCEPT_ONLY_VLAN_TAGGED
Definition: icssg.h:803
Icssg_DfltVlanCfg::vlanId
uint16_t vlanId
Definition: icssg.h:953
Icssg_IngressRateLim::rateIndex
uint8_t rateIndex
Definition: icssg.h:982
ICSSG_FDB_IOCTL_ADD_ENTRY
@ ICSSG_FDB_IOCTL_ADD_ENTRY
Add FDB entry.
Definition: icssg.h:430
Icssg_FdbEntry_ReadSlotInArgs::broadSideSlot
uint16_t broadSideSlot
Definition: icssg.h:932
ICSSG_MACPORT_IOCTL_DISABLE_UCAST_FLOOD
@ ICSSG_MACPORT_IOCTL_DISABLE_UCAST_FLOOD
Disable flooding of unicast packets to host port.
Definition: icssg.h:592
Icssg_FwPoolMem::scratchBufferMem
uint8_t * scratchBufferMem
Definition: icssg.h:1093
Icssg_IngressRateLim::FT_S::FT_U::FT1_CONFIG_S::destAddrMaskLow
uint32_t destAddrMaskLow
Definition: icssg.h:998
Icssg_IngressRateLim::FT_S::ft1Len
uint16_t ft1Len
Definition: icssg.h:992
Icssg_MdioLinkStateChangeInfo::linkChanged
bool linkChanged
Definition: icssg.h:1116
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:652
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:557
Icssg_IngressRateLim::classSel
uint8_t classSel
Definition: icssg.h:985
Icssg_DfltVlanCfg::pcp
uint8_t pcp
Definition: icssg.h:956
ICSSG_QUEUE_PREEMPT_MODE_EXPRESS
@ ICSSG_QUEUE_PREEMPT_MODE_EXPRESS
Definition: icssg.h:705
Icssg_MdioLinkStateChangeInfo::phyAddr
uint32_t phyAddr
Definition: icssg.h:1105
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:727
ICSSG_PORT_STATE_BLOCKING
@ ICSSG_PORT_STATE_BLOCKING
Definition: icssg.h:762
IcssgMacPort_Cfg::promiscEn
bool promiscEn
Definition: icssg.h:1231
Icssg_mdioLinkIntCfg::prussIntcInitData
const PRUICSS_IntcInitData * prussIntcInitData
Definition: icssg.h:1142
Icssg_mdioLinkIntCfg::mdioLinkStateChangeCb
Icssg_MdioLinkStateChangeCb mdioLinkStateChangeCb
Definition: icssg.h:1137
Icssg_FwPoolMem::portBufferPoolSize
uint32_t portBufferPoolSize
Definition: icssg.h:1058
Icssg_Cfg::clockTypeFw
IcssgTimeSync_ClkType clockTypeFw
Definition: icssg.h:1215
IcssgMacPort_SetPortStateInArgs
Input args for ICSSG_MACPORT_IOCTL_SET_PORT_STATE command.
Definition: icssg.h:789
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:333
ICSSG_MACPORT_IOCTL_SET_MACADDR
@ ICSSG_MACPORT_IOCTL_SET_MACADDR
Add MAC address of the interface.
Definition: icssg.h:496
ICSSG_FDB_IOCTL_REMOVE_ENTRY
@ ICSSG_FDB_IOCTL_REMOVE_ENTRY
Delete FDB entry.
Definition: icssg.h:441
Icssg_custom_Fw::txpru
const uint32_t * txpru
Definition: icssg.h:1039
Icssg_custom_Fw::txpruSize
uint32_t txpruSize
Definition: icssg.h:1042
Icssg_IngressRateLim::FT_S::FT_U::FT1_CONFIG_S::destAddrMaskHigh
uint32_t destAddrMaskHigh
Definition: icssg.h:999
Icssg_IngressRateLim::FT_S::FT_U::FT3_CONFIG_S::patternHigh
uint32_t patternHigh
Definition: icssg.h:1011
Icssg_Cfg::timeSyncCfg
IcssgTimeSync_Cfg timeSyncCfg
Definition: icssg.h:1183
Icssg_VlanFidEntry::vlanId
uint16_t vlanId
Definition: icssg.h:889
Icssg_IngressRateLim::FT_S::FT_U::FT3_CONFIG_S::config
uint32_t config
Definition: icssg.h:1007
ICSSG_HOSTPORT_IOCTL_SET_MACADDR
@ ICSSG_HOSTPORT_IOCTL_SET_MACADDR
Add MAC address of the host port interface.
Definition: icssg.h:507
Icssg_Cfg::cycleTimeNs
uint32_t cycleTimeNs
Definition: icssg.h:1189
Icssg_QueuePreemptMode
Icssg_QueuePreemptMode
Queue preemptive mode: express or preemptive.
Definition: icssg.h:703
Icssg_FwPoolMem::portBufferPoolMem
uint8_t * portBufferPoolMem
Definition: icssg.h:1055
Icssg_IngressRateLim::macPort
Enet_MacPort macPort
Definition: icssg.h:978
Icssg_VlanFidParams::p2Member
bool p2Member
Definition: icssg.h:862
Icssg_mdioLinkIntCfg::coreIntrNum
int32_t coreIntrNum
Definition: icssg.h:1143
Icssg_FwPoolMem::hostBufferPoolNum
uint32_t hostBufferPoolNum
Definition: icssg.h:1071
Icssg_IngressRateLim::FT_S::FT_U::FT1_CONFIG_S::destAddrHigh
uint32_t destAddrHigh
Definition: icssg.h:997
Icssg_MdioLinkStateChangeInfo
PHY link status change event information.
Definition: icssg.h:1103
Icssg_VlanFidParams::hostMember
bool hostMember
Definition: icssg.h:856
Icssg_Cfg::qosLevels
uint32_t qosLevels
Definition: icssg.h:1209
ICSSG_ENABLE_PROTOCOL_SPECIFIC_TAG_IOCTL
@ ICSSG_ENABLE_PROTOCOL_SPECIFIC_TAG_IOCTL
Enable HSR Tag Removal Offload.
Definition: icssg.h:674
Icssg_FdbEntry
FDB entry configuration.
Definition: icssg.h:899
Icssg_IngressRateLim::FT_S::FT_U::FT1_CONFIG_S
Definition: icssg.h:995
Icssg_IngressRateLim::FT_S::index
uint8_t index
Definition: icssg.h:989
Icssg_IngressRateLim::classDataAndTerm
uint32_t classDataAndTerm
Definition: icssg.h:986
Icssg_IngressRateLim::FT_S::FT_U::FT3_CONFIG_S::startAuto
uint32_t startAuto
Definition: icssg.h:1003
Icssg_IngressRateLim::FT_S::FT_U::FT3_CONFIG_S::type
uint32_t type
Definition: icssg.h:1008
IcssgMacPort_SetMacAddressInArgs
Input args for ICSSG_MACPORT_IOCTL_SET_MACADDR command.
Definition: icssg.h:837
IcssgMacPort_Cfg::specialFramePrio
uint8_t specialFramePrio
Definition: icssg.h:1251
Icssg_SetAcceptFrameCheckInArgs::macPort
Enet_MacPort macPort
Definition: icssg.h:818
ICSSG_DISABLE_PROTOCOL_SPECIFIC_TAG_IOCTL
@ ICSSG_DISABLE_PROTOCOL_SPECIFIC_TAG_IOCTL
Disable HSR Tag Removal Offload.
Definition: icssg.h:685