HPM SDK
HPMicro Software Development Kit
hpm_tsw_drv.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2023-2025 HPMicro
3  *
4  * SPDX-License-Identifier: BSD-3-Clause
5  *
6  */
7 
19 #ifndef HPM_TSW_DRV_H
20 #define HPM_TSW_DRV_H
21 
22 /*---------------------------------------------------------------------
23  * Includes
24  *--------------------------------------------------------------------*/
25 #include "hpm_common.h"
26 #include "hpm_soc_feature.h"
27 #include "hpm_tsw_regs.h"
28 
36 /*---------------------------------------------------------------------
37  * Macro Constant Declarations
38  *-------------------------------------------------------------------*/
44 #define MAC_LO(mac) (uint32_t)(mac[0] | (mac[1] << 8) | (mac[2] << 16) | (mac[3] << 24))
45 
51 #define MAC_HI(mac) (uint32_t)(mac[4] | (mac[5] << 8))
52 
56 #define MAC_MDIO_CTRL_OP_WR (0x01)
57 
61 #define MAC_MDIO_CTRL_OP_RD (0x02)
62 
67 #ifndef TSW_SEND_DESC_COUNT
68 #define TSW_SEND_DESC_COUNT (16U)
69 #endif
70 
75 #ifndef TSW_RECV_DESC_COUNT
76 #define TSW_RECV_DESC_COUNT (16U)
77 #endif
78 
83 #ifndef TSW_SEND_BUFF_LEN
84 #define TSW_SEND_BUFF_LEN (1536U)
85 #endif
86 
91 #ifndef TSW_RECV_BUFF_LEN
92 #define TSW_RECV_BUFF_LEN (1536U)
93 #endif
94 
99 #ifndef TSW_NS_IN_ONE_SEC
100 #define TSW_NS_IN_ONE_SEC (1000000000UL)
101 #endif
102 
107 #ifndef TSW_BUS_FREQ
108 #define TSW_BUS_FREQ (100000000UL)
109 #endif
110 
115 #ifndef TSW_MM2S_DMA_WAIT_CBUFF_TIMEOUT
116 #define TSW_MM2S_DMA_WAIT_CBUFF_TIMEOUT (1000U)
117 #endif
118 
123 #ifndef TSW_MM2S_DMA_CHECK_RBUFE_TIMEOUT
124 #define TSW_MM2S_DMA_CHECK_RBUFE_TIMEOUT (1000U)
125 #endif
126 
130 #define TSW_ENET_MAC (6U)
131 
135 #define TSW_FPE_MMS_MIN_VTIME_MIN (1U)
136 
140 #define TSW_FPE_MMS_MAX_VTIME_MAX (128U)
141 /*---------------------------------------------------------------------
142  * Typedef Struct Declarations
143  *-------------------------------------------------------------------*/
147 typedef struct {
148  union {
149  uint32_t tx_hdr0;
150  struct {
151  uint32_t dest_port: 8;
152  uint32_t : 8;
153  uint32_t queue : 3;
154  uint32_t utag : 3;
155  uint32_t : 6;
156  uint32_t htype : 4;
157  } tx_hdr0_bm;
158  };
159 
160  union {
161  uint32_t tx_hdr1;
162  struct {
163  uint32_t cb: 32;
164  } tx_hdr1_bm;
165  };
166 
167  uint32_t tx_hdr2;
168  uint32_t tx_hdr3;
169 } tx_hdr_desc_t;
170 
174 typedef struct {
175  union {
176  uint32_t rx_hdr0;
177  struct {
178  uint32_t src_port : 8;
179  uint32_t : 8;
180  uint32_t queue : 3;
181  uint32_t utag : 3;
182  uint32_t : 2;
183  uint32_t fpe : 1;
184  uint32_t : 3;
185  uint32_t htype : 4;
186  } rx_hdr0_bm;
187  };
188 
189  union {
190  uint32_t rx_hdr1;
191  struct {
192  uint32_t cb: 32;
193  } rx_hdr1_bm;
194  };
195 
196  uint32_t timestamp_lo;
197  uint32_t timestamp_hi;
198 } rx_hdr_desc_t;
199 
203 typedef struct {
204  uint16_t dest;
205  uint8_t queue;
206  uint8_t drop;
207  uint8_t qsel;
208  uint8_t utag;
210 
214 typedef struct {
215  uint8_t id;
216  uint8_t *buffer;
217  uint16_t length;
218 } tsw_frame_t;
219 
223 typedef struct {
224  bool soe;
225  bool irq;
226  uint8_t maxlen;
228 
232 typedef struct {
233  uint16_t admin_list_length;
234  uint16_t oper_list_length;
236 
240 typedef struct {
241  uint8_t state;
242  uint8_t op;
243  uint32_t interval;
245 
246 typedef struct {
248  uint32_t entry_count;
249  uint32_t cycle_time;
250  uint32_t base_time_ns;
251  uint32_t base_time_sec;
253 
257 typedef struct {
258  uint8_t integer;
259  uint16_t fract;
261 
265 typedef struct {
266  uint32_t tstamplo;
267  uint32_t tstamphi;
268  uint8_t tqueue;
269  uint8_t tuser;
270 } tsw_tsf_t;
271 
275 typedef struct {
276  bool vfail;
277  bool vok;
278  bool hld;
280 
284 typedef struct {
285  uint8_t tqueue;
286  uint32_t vtime;
287  uint32_t frag_size;
289  bool link_error;
291 
295 typedef struct {
296  uint32_t mach;
297  uint32_t macl;
298  uint32_t vid;
300 
304 typedef struct {
305  uint32_t mach;
306  uint32_t macl;
307  uint8_t pcp;
308  uint8_t vid;
310 
314 typedef struct {
315  uint8_t idx;
316  bool enable;
317  bool seqgen;
318  uint8_t smac;
319  uint8_t mode;
320  uint8_t actctl;
321  uint8_t sid;
322  int32_t seqnum;
323  uint32_t match;
327 
331 typedef struct {
332  bool fen;
333  uint8_t fidx;
335 
339 typedef struct {
340  uint8_t sid;
344 
348 typedef struct {
350  uint32_t reset_period;
351  uint32_t test_period;
352  uint32_t threshold;
353  uint32_t err_count;
355 
359 typedef struct {
360  uint8_t fidx;
361  bool freset;
363  uint8_t paths;
364  uint8_t history_len;
365  uint8_t algo;
366  uint8_t xrfunc;
367  uint32_t timeout_in_ms;
370 
374 typedef struct {
375  uint8_t state;
376  uint8_t ipv;
377  uint32_t max_octets;
378  uint32_t interval;
380 
384 typedef struct {
386  uint8_t list_len;
387  uint32_t cycle_time;
388  uint32_t base_time_ns;
389  uint32_t base_time_sec;
391 
395 typedef struct {
396  uint32_t egess_frame_count[8];
398 
402 typedef struct {
403  uint8_t idx;
406  uint8_t state;
407  uint8_t ipv;
409 
413 typedef struct {
414  uint8_t idx;
419 
423 typedef struct {
424  uint8_t integer;
425  uint16_t fract;
427 
431 typedef struct {
432  uint8_t idx;
433  bool reset;
436  bool color_mode;
440  uint32_t cbs_in_bits;
441  uint32_t ebs_in_bits;
443 
447 typedef struct {
448  uint8_t idx;
454  uint8_t pcp;
455  uint8_t flow_meter_id;
456  uint8_t gate_id;
457  uint8_t stream_id;
460 
461 /*---------------------------------------------------------------------
462  * Typedef Enum Declarations
463  *-------------------------------------------------------------------*/
467 typedef enum {
472 
476 typedef enum {
481 
485 typedef enum {
487  tsw_dst_port_cpu = 1 << 0,
488  tsw_dst_port_1 = 1 << 1,
489  tsw_dst_port_2 = 1 << 2,
490  tsw_dst_port_3 = 1 << 3,
491 } tsw_dst_t;
492 
496 typedef enum {
501 
505 typedef enum {
511 
515 typedef enum {
522 
526 typedef enum {
530 
534 typedef enum {
538 
542 typedef enum {
560 
564 typedef enum {
569 
573 typedef enum {
584 
588 typedef enum {
598 
602 typedef enum {
610 
614 typedef enum {
620 
624 typedef enum {
629 
633 typedef enum {
638 
642 typedef enum {
646 
650 typedef enum {
654 
658 typedef enum {
662 
666 typedef enum {
676 
680 typedef enum {
685 
689 typedef enum {
693 
694 #if defined __cplusplus
695 extern "C" {
696 #endif /* __cplusplus */
697 /*---------------------------------------------------------------------
698  * Exported Functions
699  *-------------------------------------------------------------------*/
705 
712 void tsw_init_send(TSW_Type *ptr, tsw_dma_config_t *config);
713 
720 void tsw_init_recv(TSW_Type *ptr, tsw_dma_config_t *config);
721 
731 hpm_stat_t tsw_send_frame(TSW_Type *ptr, uint8_t *buffer, uint16_t length, uint8_t id);
732 
742 hpm_stat_t tsw_send_frame_check_response(TSW_Type *ptr, uint8_t *buffer, uint16_t length, uint8_t id);
743 
753 hpm_stat_t tsw_commit_recv_desc(TSW_Type *ptr, uint8_t *buffer, uint16_t length, uint8_t id);
754 
763 
770 void tsw_mac_lookup_bypass(TSW_Type *ptr, uint8_t dst_port);
771 
778 
787 hpm_stat_t tsw_ep_set_mdio_config(TSW_Type *ptr, uint8_t port, uint8_t clk_div);
788 
799 hpm_stat_t tsw_ep_mdio_read(TSW_Type *ptr, uint8_t port, uint32_t phy_addr, uint32_t reg_addr, uint16_t *data);
800 
811 hpm_stat_t tsw_ep_mdio_write(TSW_Type *ptr, uint8_t port, uint32_t phy_addr, uint32_t reg_addr, uint16_t data);
812 
821 hpm_stat_t tsw_ep_enable_mac_ctrl(TSW_Type *ptr, uint8_t port, tsw_mac_type_t mac_type);
822 
831 hpm_stat_t tsw_ep_disable_mac_ctrl(TSW_Type *ptr, uint8_t port, tsw_mac_type_t mac_type);
832 
841 
850 
860 hpm_stat_t tsw_ep_set_mac_addr(TSW_Type *ptr, uint8_t port, uint8_t *mac_addr, bool promisc);
861 
871 hpm_stat_t tsw_ep_set_mac_mode(TSW_Type *ptr, uint8_t port, uint8_t gmii);
872 
882 hpm_stat_t tsw_ep_set_xmac_mode(TSW_Type *ptr, uint8_t port, uint8_t gmii, tsw_mac_type_t mac_type);
883 
894 void tsw_port_gpr(TSW_Type *ptr, uint8_t port, uint8_t speed, uint8_t itf, uint8_t tx_dly, uint8_t rx_dly);
895 
903 void tsw_set_port_speed(TSW_Type *ptr, uint8_t port, uint8_t speed);
904 
912 void tsw_set_port_interface(TSW_Type *ptr, uint8_t port, uint8_t itf);
913 
922 void tsw_set_port_clock_delay(TSW_Type *ptr, uint8_t port, uint8_t tx_dly, uint8_t rx_dly);
923 
931 
941 
948 void tsw_set_internal_frame_action(TSW_Type *ptr, uint8_t dest_port);
949 
956 void tsw_set_broadcast_frame_action(TSW_Type *ptr, uint8_t dest_port);
957 
964 void tsw_set_unknown_frame_action(TSW_Type *ptr, uint8_t dest_port);
965 
972 void tsw_clear_internal_frame_action(TSW_Type *ptr, uint8_t dest_port);
973 
980 void tsw_clear_broadcast_frame_action(TSW_Type *ptr, uint8_t dest_port);
981 
988 void tsw_clear_unknown_frame_action(TSW_Type *ptr, uint8_t dest_port);
989 
998 void tsw_set_lookup_table(TSW_Type *ptr, uint16_t entry_num, uint8_t dest_port, uint64_t dest_mac);
999 
1005 void tsw_clear_cam(TSW_Type *ptr);
1006 
1013 void tsw_enable_store_forward_mode(TSW_Type *ptr, uint8_t port);
1014 
1021 void tsw_disable_store_forward_mode(TSW_Type *ptr, uint8_t port);
1022 
1030 hpm_stat_t tsw_get_rtc_time_increment(TSW_Type *ptr, uint32_t *increment);
1031 
1039 hpm_stat_t tsw_set_rtc_time_increment(TSW_Type *ptr, uint32_t increment);
1040 
1049 hpm_stat_t tsw_get_rtc_current_time(TSW_Type *ptr, uint32_t *sec, uint32_t *nsec);
1050 
1059 hpm_stat_t tsw_get_rtc_offset(TSW_Type *ptr, int64_t *sec, uint32_t *nsec);
1060 
1069 hpm_stat_t tsw_set_rtc_offset(TSW_Type *ptr, int64_t sec, uint32_t nsec);
1070 
1078 hpm_stat_t tsw_set_rtc_offset_change(TSW_Type *ptr, uint32_t change);
1079 
1088 hpm_stat_t tsw_set_tsync_timer_hclkdiv(TSW_Type *ptr, uint8_t port, uint32_t host_clkdiv);
1089 
1100 hpm_stat_t tsw_tsync_timer_control(TSW_Type *ptr, uint8_t port, uint8_t index, uint32_t period, uint32_t enable);
1101 
1110 
1122 hpm_stat_t tsw_tsync_update_data(TSW_Type *ptr, uint8_t port, uint32_t bin, uint32_t binofs, uint32_t srcaddr, uint8_t lenbytes);
1123 
1134 hpm_stat_t tsw_tsync_update_len(TSW_Type *ptr, uint8_t port, uint32_t bin, uint8_t lenbytes, uint8_t tqueue);
1135 
1144 hpm_stat_t tsw_tsync_trigger_tx(TSW_Type *ptr, uint8_t port, uint32_t bin);
1145 
1156 hpm_stat_t tsw_tsync_get_txtimestamp(TSW_Type *ptr, uint8_t port, uint32_t bin, uint32_t *timestamplo, uint32_t *timestamphi);
1157 
1167 hpm_stat_t tsw_tsync_get_rxtimestamp(TSW_Type *ptr, uint8_t port, uint32_t *timestamplo, uint32_t *timestamphi);
1168 
1177 hpm_stat_t tsw_tsync_disable_current_events(TSW_Type *ptr, uint8_t port, uint32_t *disabled);
1178 
1189 hpm_stat_t tsw_tsync_get_rxstatus(TSW_Type *ptr, uint8_t port, uint8_t *ov, uint8_t *avnxt, uint8_t *rxsel);
1190 
1198 hpm_stat_t tsw_tsync_next_rxbuffer(TSW_Type *ptr, uint8_t port);
1199 
1207 hpm_stat_t tsw_tsync_clear_overflow(TSW_Type *ptr, uint8_t port);
1208 
1217 hpm_stat_t tsw_tsync_get_txdone(TSW_Type *ptr, uint8_t port, uint32_t *done);
1218 
1227 hpm_stat_t tsw_tsync_clear_txdone(TSW_Type *ptr, uint8_t port, uint32_t done);
1228 
1237 hpm_stat_t tsw_tsync_get_tmrdone(TSW_Type *ptr, uint8_t port, uint32_t *done);
1238 
1248 
1257 hpm_stat_t tsw_shap_set_tas_cycletime(TSW_Type *ptr, uint8_t port, uint32_t cycle_time);
1258 
1268 hpm_stat_t tsw_shap_set_tas_controllist(TSW_Type *ptr, uint8_t port, uint32_t index, tsw_tas_controllist_entry_t *entry);
1269 
1279 hpm_stat_t tsw_shap_get_tas_controllist(TSW_Type *ptr, uint8_t port, uint32_t index, tsw_tas_controllist_entry_t *entry);
1280 
1289 hpm_stat_t tsw_shap_set_tas_max_sdu_ticks(TSW_Type *ptr, uint8_t port, uint8_t index, uint32_t ticks);
1290 
1299 hpm_stat_t tsw_shap_get_tas_max_sdu_ticks(TSW_Type *ptr, uint8_t port, uint8_t index, uint32_t *ticks);
1300 
1308 
1316 hpm_stat_t tsw_shap_enable_tas(TSW_Type *ptr, uint8_t port);
1317 
1325 hpm_stat_t tsw_shap_disable_tas(TSW_Type *ptr, uint8_t port);
1326 
1335 hpm_stat_t tsw_shap_set_tas_listlen(TSW_Type *ptr, uint8_t port, uint32_t listlen);
1336 
1346 hpm_stat_t tsw_shap_set_tas_basetime(TSW_Type *ptr, uint8_t port, uint32_t basetime_sec, uint32_t basetime_ns);
1347 
1355 hpm_stat_t tsw_shap_tas_change_config(TSW_Type *ptr, uint8_t port);
1356 
1365 hpm_stat_t tsw_shap_get_tas_crsr(TSW_Type *ptr, uint8_t port, uint32_t *crsr);
1366 
1375 hpm_stat_t tsw_shap_set_tas(TSW_Type *ptr, uint8_t port, tsw_tas_config_t *config);
1376 
1386 hpm_stat_t tsw_shap_set_cbs(TSW_Type *ptr, uint8_t port, uint8_t index, tsw_cbs_config_t *config);
1387 
1396 hpm_stat_t tsw_get_txtimestampfifo_used(TSW_Type *ptr, uint8_t port, uint32_t *count);
1397 
1406 hpm_stat_t tsw_get_txtimestampfifo_entry(TSW_Type *ptr, uint8_t port, tsw_tsf_t *entry);
1407 
1417 
1425 hpm_stat_t tsw_fpe_enable_mms(TSW_Type *ptr, uint8_t port);
1426 
1434 hpm_stat_t tsw_fpe_disable_mms(TSW_Type *ptr, uint8_t port);
1435 
1444 hpm_stat_t tsw_fpe_set_mms_ctrl(TSW_Type *ptr, uint8_t port, tsw_fpe_config_t *config);
1445 
1455 
1465 hpm_stat_t tsw_fpe_get_mms_statistics_counter(TSW_Type *ptr, uint8_t port, tsw_fpe_mms_statistics_counter_t counter, uint32_t *value);
1466 
1475 
1484 
1493 
1501 
1510 
1519 
1527 
1536 
1544 hpm_stat_t tsw_cb_frer_set_msec_cycles(TSW_Type *ptr, uint32_t msec_cycles);
1545 
1554 
1563 
1572 
1581 
1582 
1583 #if defined __cplusplus
1584 }
1585 #endif /* __cplusplus */
1587 #endif /* HPM_TSW_DRV_H */
uint32_t hpm_stat_t
Definition: hpm_common.h:135
void tsw_mac_lookup_bypass(TSW_Type *ptr, uint8_t dst_port)
Lookup Bypass Setting.
Definition: hpm_tsw_drv.c:332
hpm_stat_t tsw_recv_frame(TSW_Type *ptr, tsw_frame_t *frame)
Receive a frame from CPU port.
Definition: hpm_tsw_drv.c:293
tsw_psfp_gate_t
TSW PSFP gate state enumeration.
Definition: hpm_tsw_drv.h:689
hpm_stat_t tsw_fpe_reset_mms_statistics_counter(TSW_Type *ptr, uint8_t port, tsw_fpe_mms_statistics_counter_t counter)
Reset MMS statistics counter.
Definition: hpm_tsw_drv.c:1124
hpm_stat_t tsw_tsync_next_rxbuffer(TSW_Type *ptr, uint8_t port)
TSYNC next RX buffer.
Definition: hpm_tsw_drv.c:795
hpm_stat_t tsw_send_frame(TSW_Type *ptr, uint8_t *buffer, uint16_t length, uint8_t id)
Send a frame to CPU port.
Definition: hpm_tsw_drv.c:222
void tsw_set_unknown_frame_action(TSW_Type *ptr, uint8_t dest_port)
Set Unknow Frame Action.
Definition: hpm_tsw_drv.c:518
hpm_stat_t tsw_set_tsync_timer_hclkdiv(TSW_Type *ptr, uint8_t port, uint32_t host_clkdiv)
Set TSYNC timer host clock divider.
Definition: hpm_tsw_drv.c:620
hpm_stat_t tsw_shap_set_tas_basetime(TSW_Type *ptr, uint8_t port, uint32_t basetime_sec, uint32_t basetime_ns)
Set TAS base time.
Definition: hpm_tsw_drv.c:864
hpm_stat_t tsw_psfp_set_filter(TSW_Type *ptr, tsw_psfp_filter_config_t *config)
Set PSFP filter.
Definition: hpm_tsw_drv.c:1339
void tsw_clear_broadcast_frame_action(TSW_Type *ptr, uint8_t dest_port)
Clear Broadcast Frame Action.
Definition: hpm_tsw_drv.c:532
hpm_stat_t tsw_cb_frer_ingress_enable_rtag(TSW_Type *ptr)
Enable RTAG with CB frer for ingress.
Definition: hpm_tsw_drv.c:1255
void tsw_set_broadcast_frame_action(TSW_Type *ptr, uint8_t dest_port)
Set Broadcast Frame Action.
Definition: hpm_tsw_drv.c:509
void tsw_disable_store_forward_mode(TSW_Type *ptr, uint8_t port)
Disable RXFIFO to store and forward mode.
Definition: hpm_tsw_drv.c:553
hpm_stat_t tsw_cb_frer_set_msec_cycles(TSW_Type *ptr, uint32_t msec_cycles)
Set system cycle numbers for one millisecond.
Definition: hpm_tsw_drv.c:1327
hpm_stat_t tsw_tsync_get_txtimestamp(TSW_Type *ptr, uint8_t port, uint32_t bin, uint32_t *timestamplo, uint32_t *timestamphi)
TSYNC get TX timestamp.
Definition: hpm_tsw_drv.c:719
tsw_cb_frer_xfunc_recovery_t
TSW CB FRER X function recovery enumeration.
Definition: hpm_tsw_drv.h:658
hpm_stat_t tsw_tsync_get_rxstatus(TSW_Type *ptr, uint8_t port, uint8_t *ov, uint8_t *avnxt, uint8_t *rxsel)
TSYNC get RX status.
Definition: hpm_tsw_drv.c:778
tsw_shap_tas_aclist_state_open_queue_t
TSW SHAP TAS access control list state open queue enumeration.
Definition: hpm_tsw_drv.h:573
hpm_stat_t tsw_psfp_set_gate_static_mode(TSW_Type *ptr, tsw_psfp_gate_static_mode_config_t *config)
Set PSFP gate with static mode.
Definition: hpm_tsw_drv.c:1387
void tsw_set_internal_frame_action(TSW_Type *ptr, uint8_t dest_port)
Set Internal Frame Action.
Definition: hpm_tsw_drv.c:500
void tsw_clear_cam(TSW_Type *ptr)
Clear CAM.
Definition: hpm_tsw_drv.c:542
hpm_stat_t tsw_tsync_get_rxtimestamp(TSW_Type *ptr, uint8_t port, uint32_t *timestamplo, uint32_t *timestamphi)
TSYNC get RX timestamp.
Definition: hpm_tsw_drv.c:736
hpm_stat_t tsw_psfp_set_flow_meter(TSW_Type *ptr, tsw_psfp_flow_meter_config_t *config)
Set PSFP flow meter.
Definition: hpm_tsw_drv.c:1448
void tsw_init_recv(TSW_Type *ptr, tsw_dma_config_t *config)
Initialize TSW receive DMA.
Definition: hpm_tsw_drv.c:273
hpm_stat_t tsw_ep_mdio_read(TSW_Type *ptr, uint8_t port, uint32_t phy_addr, uint32_t reg_addr, uint16_t *data)
MDIO Read.
Definition: hpm_tsw_drv.c:59
void tsw_set_cam_vlan_port(TSW_Type *ptr)
CAM VLAN Port Setting.
Definition: hpm_tsw_drv.c:339
hpm_stat_t tsw_tsync_disable_current_events(TSW_Type *ptr, uint8_t port, uint32_t *disabled)
TSYNC disable current events.
Definition: hpm_tsw_drv.c:748
hpm_stat_t tsw_set_rtc_time_increment(TSW_Type *ptr, uint32_t increment)
Set RTC timer increment value.
Definition: hpm_tsw_drv.c:569
void tsw_set_lookup_table(TSW_Type *ptr, uint16_t entry_num, uint8_t dest_port, uint64_t dest_mac)
Set Lookup Table.
Definition: hpm_tsw_drv.c:390
tsw_cpu_send_to_port_t
TSW CPU send to port enumeration.
Definition: hpm_tsw_drv.h:515
hpm_stat_t tsw_fpe_disable_mms(TSW_Type *ptr, uint8_t port)
Disable MMS.
Definition: hpm_tsw_drv.c:1073
hpm_stat_t tsw_get_rtc_current_time(TSW_Type *ptr, uint32_t *sec, uint32_t *nsec)
Get RTC current time.
Definition: hpm_tsw_drv.c:576
hpm_stat_t tsw_ep_enable_mac_ctrl(TSW_Type *ptr, uint8_t port, tsw_mac_type_t mac_type)
Enable MAC Controller.
Definition: hpm_tsw_drv.c:94
tsw_fpe_mms_fragment_size_t
TSW FPE MMS fragment size enumeration.
Definition: hpm_tsw_drv.h:614
hpm_stat_t tsw_shap_get_tas_controllist(TSW_Type *ptr, uint8_t port, uint32_t index, tsw_tas_controllist_entry_t *entry)
SHAP get tas controllist.
Definition: hpm_tsw_drv.c:885
tsw_frame_action_type_t
TSW frame action type enumeration.
Definition: hpm_tsw_drv.h:496
void tsw_enable_store_forward_mode(TSW_Type *ptr, uint8_t port)
Enable RXFIFO to store and forward mode.
Definition: hpm_tsw_drv.c:548
hpm_stat_t tsw_shap_enable_tas(TSW_Type *ptr, uint8_t port)
Enable TAS.
Definition: hpm_tsw_drv.c:931
tsw_stmid_lookup_mode_t
TSW STMID lookup mode enumeration.
Definition: hpm_tsw_drv.h:624
hpm_stat_t tsw_tsync_trigger_tx(TSW_Type *ptr, uint8_t port, uint32_t bin)
TSYNC trigger TX.
Definition: hpm_tsw_drv.c:707
hpm_stat_t tsw_ep_mdio_write(TSW_Type *ptr, uint8_t port, uint32_t phy_addr, uint32_t reg_addr, uint16_t data)
MDIO Write.
Definition: hpm_tsw_drv.c:79
tsw_mac_type_t
TSW MAC type enumeration.
Definition: hpm_tsw_drv.h:534
hpm_stat_t tsw_cb_frer_egress_set_sid_func(TSW_Type *ptr, tsw_cb_frer_sid_func_config_t *config)
specify recovery functions for stream for egress
Definition: hpm_tsw_drv.c:1262
hpm_stat_t tsw_psfp_set_gate_dynamic_mode(TSW_Type *ptr, tsw_psfp_gate_dynamic_mode_config_t *config)
Set PSFP gate with dynamic mode.
Definition: hpm_tsw_drv.c:1406
hpm_stat_t tsw_ep_set_mac_addr(TSW_Type *ptr, uint8_t port, uint8_t *mac_addr, bool promisc)
Set MAC Address.
Definition: hpm_tsw_drv.c:138
hpm_stat_t tsw_tsync_update_len(TSW_Type *ptr, uint8_t port, uint32_t bin, uint8_t lenbytes, uint8_t tqueue)
TSYNC update length.
Definition: hpm_tsw_drv.c:694
hpm_stat_t tsw_cb_stmid_ingress_get_entry(TSW_Type *ptr, tsw_cb_stmid_entry_t *entry)
Get STMID entry for ingress.
Definition: hpm_tsw_drv.c:1154
tsw_port_phy_itf_t
TSW port PHY interface type enumeration.
Definition: hpm_tsw_drv.h:476
tsw_traffic_queue_t
TSW traffic queue enumeration.
Definition: hpm_tsw_drv.h:588
void tsw_clear_internal_frame_action(TSW_Type *ptr, uint8_t dest_port)
Clear Internal Frame Action.
Definition: hpm_tsw_drv.c:527
hpm_stat_t tsw_set_rtc_offset(TSW_Type *ptr, int64_t sec, uint32_t nsec)
Set RTC offset.
Definition: hpm_tsw_drv.c:604
void tsw_set_port_interface(TSW_Type *ptr, uint8_t port, uint8_t itf)
Set TSW port interface type.
Definition: hpm_tsw_drv.c:364
hpm_stat_t tsw_set_frame_action(TSW_Type *ptr, tsw_frame_action_config_t *config, uint8_t type)
Set Frame Action.
Definition: hpm_tsw_drv.c:436
hpm_stat_t tsw_shap_set_tas_max_sdu_ticks(TSW_Type *ptr, uint8_t port, uint8_t index, uint32_t ticks)
Set tas maximum SDU ticks.
Definition: hpm_tsw_drv.c:898
hpm_stat_t tsw_set_pps_tod_output(TSW_Type *ptr)
Set pps tod output.
Definition: hpm_tsw_drv.c:952
hpm_stat_t tsw_ep_set_xmac_mode(TSW_Type *ptr, uint8_t port, uint8_t gmii, tsw_mac_type_t mac_type)
Set MAC Mode For Specified MAC.
Definition: hpm_tsw_drv.c:180
hpm_stat_t tsw_ep_set_mdio_config(TSW_Type *ptr, uint8_t port, uint8_t clk_div)
MDIO Interface Config.
Definition: hpm_tsw_drv.c:52
hpm_stat_t tsw_shap_get_tas_max_sdu_ticks(TSW_Type *ptr, uint8_t port, uint8_t index, uint32_t *ticks)
Get tas maximum SDU ticks.
Definition: hpm_tsw_drv.c:909
hpm_stat_t tsw_tsync_clear_txdone(TSW_Type *ptr, uint8_t port, uint32_t done)
TSYNC clear tx done status.
Definition: hpm_tsw_drv.c:820
tsw_frame_action_qsel_type_t
TSW frame action queue select type enumeration.
Definition: hpm_tsw_drv.h:505
void tsw_port_gpr(TSW_Type *ptr, uint8_t port, uint8_t speed, uint8_t itf, uint8_t tx_dly, uint8_t rx_dly)
Set Port GPR.
Definition: hpm_tsw_drv.c:352
tsw_psfp_gate_mode_t
TSW PSFP gate mode enumeration.
Definition: hpm_tsw_drv.h:680
hpm_stat_t tsw_shap_set_cbs(TSW_Type *ptr, uint8_t port, uint8_t index, tsw_cbs_config_t *config)
Set CBS config.
Definition: hpm_tsw_drv.c:990
tsw_port_speed_t
TSW port speed enumeration.
Definition: hpm_tsw_drv.h:467
hpm_stat_t tsw_cb_frer_egress_clear_latten_error_flag(TSW_Type *ptr)
Clear latten error flag.
Definition: hpm_tsw_drv.c:1307
hpm_stat_t tsw_ep_enable_all_mac_ctrl(TSW_Type *ptr, tsw_mac_type_t mac_type)
Enable All MAC Controllers.
Definition: hpm_tsw_drv.c:120
hpm_stat_t tsw_tsync_update_data(TSW_Type *ptr, uint8_t port, uint32_t bin, uint32_t binofs, uint32_t srcaddr, uint8_t lenbytes)
TSYNC update data.
Definition: hpm_tsw_drv.c:659
hpm_stat_t tsw_tsync_get_txdone(TSW_Type *ptr, uint8_t port, uint32_t *done)
TSYNC get tx done status.
Definition: hpm_tsw_drv.c:809
hpm_stat_t tsw_send_frame_check_response(TSW_Type *ptr, uint8_t *buffer, uint16_t length, uint8_t id)
Send a frame to CPU port and check response.
Definition: hpm_tsw_drv.c:233
void tsw_init_send(TSW_Type *ptr, tsw_dma_config_t *config)
Initialize TSW send DMA.
Definition: hpm_tsw_drv.c:202
hpm_stat_t tsw_tsync_get_tmrdone(TSW_Type *ptr, uint8_t port, uint32_t *done)
TSYNC get tmr done status.
Definition: hpm_tsw_drv.c:827
void tsw_set_port_clock_delay(TSW_Type *ptr, uint8_t port, uint8_t tx_dly, uint8_t rx_dly)
Set TSW port clock delay.
Definition: hpm_tsw_drv.c:358
tsw_fpe_mms_statistics_counter_t
TSW FPE MMS statistics counter enumeration.
Definition: hpm_tsw_drv.h:602
tsw_dst_t
TSW destination port enumeration.
Definition: hpm_tsw_drv.h:485
hpm_stat_t tsw_ep_disable_mac_ctrl(TSW_Type *ptr, uint8_t port, tsw_mac_type_t mac_type)
Disable MAC Controller.
Definition: hpm_tsw_drv.c:105
tsw_stmid_active_dest_mac_control_t
TSW STMID active destination MAC control enumeration.
Definition: hpm_tsw_drv.h:633
hpm_stat_t tsw_commit_recv_desc(TSW_Type *ptr, uint8_t *buffer, uint16_t length, uint8_t id)
Commit a receive DMA descriptor.
Definition: hpm_tsw_drv.c:317
hpm_stat_t tsw_ep_disable_all_mac_ctrl(TSW_Type *ptr, tsw_mac_type_t mac_type)
Disable All MAC Controllers.
Definition: hpm_tsw_drv.c:129
hpm_stat_t tsw_ep_set_mac_mode(TSW_Type *ptr, uint8_t port, uint8_t gmii)
Set MAC Mode.
Definition: hpm_tsw_drv.c:158
hpm_stat_t tsw_fpe_enable_mms(TSW_Type *ptr, uint8_t port)
Enable MMS.
Definition: hpm_tsw_drv.c:1066
hpm_stat_t tsw_cb_frer_egress_set_recovery_func(TSW_Type *ptr, tsw_cb_frer_recovery_func_config_t *config)
Set up recovery functions for stream with CB frer for egress.
Definition: hpm_tsw_drv.c:1275
hpm_stat_t tsw_shap_set_tas_listlen(TSW_Type *ptr, uint8_t port, uint32_t listlen)
Set TAS list length.
Definition: hpm_tsw_drv.c:838
hpm_stat_t tsw_set_rtc_offset_change(TSW_Type *ptr, uint32_t change)
Set RTC offset change.
Definition: hpm_tsw_drv.c:613
hpm_stat_t tsw_tsync_clear_overflow(TSW_Type *ptr, uint8_t port)
TSYNC clear overflow status.
Definition: hpm_tsw_drv.c:802
tsw_shap_tas_alist_op_t
TSW SHAP TAS access control list operation enumeration.
Definition: hpm_tsw_drv.h:564
void tsw_get_default_frame_action_config(TSW_Type *ptr, tsw_frame_action_config_t *config)
Get Default Frame Action Config.
Definition: hpm_tsw_drv.c:425
hpm_stat_t tsw_get_txtimestampfifo_used(TSW_Type *ptr, uint8_t port, uint32_t *count)
Get used count from the TX-Timestamp FIFO.
Definition: hpm_tsw_drv.c:1025
hpm_stat_t tsw_shap_set_tas(TSW_Type *ptr, uint8_t port, tsw_tas_config_t *config)
Set TAS config.
Definition: hpm_tsw_drv.c:960
hpm_stat_t tsw_get_rtc_offset(TSW_Type *ptr, int64_t *sec, uint32_t *nsec)
Get RTC offset.
Definition: hpm_tsw_drv.c:589
hpm_stat_t tsw_fpe_get_default_mms_ctrl_config(TSW_Type *ptr, uint8_t port, tsw_fpe_config_t *config)
Get default MMS config.
Definition: hpm_tsw_drv.c:1080
void tsw_clear_unknown_frame_action(TSW_Type *ptr, uint8_t dest_port)
Clear Unknown Frame Action.
Definition: hpm_tsw_drv.c:537
hpm_stat_t tsw_shap_get_tas_crsr(TSW_Type *ptr, uint8_t port, uint32_t *crsr)
Get TAS cycle time.
Definition: hpm_tsw_drv.c:924
tsw_cb_frer_algo_t
TSW CB FRER algorithm enumeration.
Definition: hpm_tsw_drv.h:650
tsw_mac_mode_t
TSW MAC mode enumeration.
Definition: hpm_tsw_drv.h:526
tsw_cb_frer_frame_ount_egress_t
TSW CB FRER frame count egress enumeration.
Definition: hpm_tsw_drv.h:666
hpm_stat_t tsw_fpe_set_mms_ctrl(TSW_Type *ptr, uint8_t port, tsw_fpe_config_t *config)
Set MMS config.
Definition: hpm_tsw_drv.c:1094
tsw_pps_ctrl_t
TSW PPS control enumeration.
Definition: hpm_tsw_drv.h:542
tsw_stmid_control_lookup_mode_t
TSW STMID control lookup mode enumeration.
Definition: hpm_tsw_drv.h:642
hpm_stat_t tsw_get_txtimestampfifo_entry(TSW_Type *ptr, uint8_t port, tsw_tsf_t *entry)
Get TX-Timestamp FIFO entry.
Definition: hpm_tsw_drv.c:1036
hpm_stat_t tsw_cb_stmid_ingress_set_entry(TSW_Type *ptr, tsw_cb_stmid_entry_t *entry)
Set STMID entry for ingress.
Definition: hpm_tsw_drv.c:1192
hpm_stat_t tsw_cb_stmid_egress_set_entry(TSW_Type *ptr, tsw_cb_stmid_entry_t *entry)
Set STMID entry for egress.
Definition: hpm_tsw_drv.c:1224
hpm_stat_t tsw_shap_set_tas_cycletime(TSW_Type *ptr, uint8_t port, uint32_t cycle_time)
SHAP set tas cycle.
Definition: hpm_tsw_drv.c:857
hpm_stat_t tsw_cb_frer_egress_get_count(TSW_Type *ptr, tsw_cb_frer_frame_count_egress_t *count)
Get count of latten error.
Definition: hpm_tsw_drv.c:1314
hpm_stat_t tsw_shap_disable_tas(TSW_Type *ptr, uint8_t port)
Disable TAS.
Definition: hpm_tsw_drv.c:938
void tsw_set_port_speed(TSW_Type *ptr, uint8_t port, uint8_t speed)
Set TSW port speed.
Definition: hpm_tsw_drv.c:370
hpm_stat_t tsw_shap_tas_change_config(TSW_Type *ptr, uint8_t port)
Trigger to change TAS config.
Definition: hpm_tsw_drv.c:945
hpm_stat_t tsw_shap_get_tas_listlen(TSW_Type *ptr, uint8_t port, tsw_shap_tas_listlen_t *listlen)
TSW get shap tas listlen.
Definition: hpm_tsw_drv.c:849
void tsw_get_default_dma_config(tsw_dma_config_t *config)
Get default DMA configuration.
Definition: hpm_tsw_drv.c:45
hpm_stat_t tsw_get_rtc_time_increment(TSW_Type *ptr, uint32_t *increment)
Get RTC timer increment value.
Definition: hpm_tsw_drv.c:558
hpm_stat_t tsw_tsync_timer_interrupt_enable(TSW_Type *ptr, uint8_t port)
TSYNC timer interrupt enable.
Definition: hpm_tsw_drv.c:652
hpm_stat_t tsw_shap_set_tas_controllist(TSW_Type *ptr, uint8_t port, uint32_t index, tsw_tas_controllist_entry_t *entry)
SHAP set tas controllist.
Definition: hpm_tsw_drv.c:872
hpm_stat_t tsw_tsync_timer_control(TSW_Type *ptr, uint8_t port, uint8_t index, uint32_t period, uint32_t enable)
TSYNC timer control.
Definition: hpm_tsw_drv.c:627
hpm_stat_t tsw_fpe_get_mms_statistics_counter(TSW_Type *ptr, uint8_t port, tsw_fpe_mms_statistics_counter_t counter, uint32_t *value)
Get MMS statistics counter.
Definition: hpm_tsw_drv.c:1139
@ tsw_psfp_gate_open
Definition: hpm_tsw_drv.h:691
@ tsw_psfp_gate_closed
Definition: hpm_tsw_drv.h:690
@ tsw_cb_frer_xfunc_recovery_individual
Definition: hpm_tsw_drv.h:660
@ tsw_cb_frer_xfunc_recovery_sequence
Definition: hpm_tsw_drv.h:659
@ tsw_shap_tas_aclist_state_open_queueu_2
Definition: hpm_tsw_drv.h:576
@ tsw_shap_tas_aclist_state_open_queueu_0
Definition: hpm_tsw_drv.h:574
@ tsw_shap_tas_aclist_state_open_queueu_5
Definition: hpm_tsw_drv.h:579
@ tsw_shap_tas_aclist_state_open_queueu_1
Definition: hpm_tsw_drv.h:575
@ tsw_shap_tas_aclist_state_open_queueu_4
Definition: hpm_tsw_drv.h:578
@ tsw_shap_tas_aclist_state_open_queueu_6
Definition: hpm_tsw_drv.h:580
@ tsw_shap_tas_aclist_state_open_queueu_7
Definition: hpm_tsw_drv.h:581
@ tsw_shap_tas_aclist_state_open_queueu_all
Definition: hpm_tsw_drv.h:582
@ tsw_shap_tas_aclist_state_open_queueu_3
Definition: hpm_tsw_drv.h:577
@ tsw_cpu_send_to_port_1
Definition: hpm_tsw_drv.h:517
@ tsw_cpu_send_to_all_ports
Definition: hpm_tsw_drv.h:520
@ tsw_cpu_send_to_lookup
Definition: hpm_tsw_drv.h:516
@ tsw_cpu_send_to_port_2
Definition: hpm_tsw_drv.h:518
@ tsw_cpu_send_to_port_3
Definition: hpm_tsw_drv.h:519
@ tsw_fpe_mms_fragment_size_252_octets
Definition: hpm_tsw_drv.h:618
@ tsw_fpe_mms_fragment_size_60_octets
Definition: hpm_tsw_drv.h:615
@ tsw_fpe_mms_fragment_size_124_octets
Definition: hpm_tsw_drv.h:616
@ tsw_fpe_mms_fragment_size_188_octets
Definition: hpm_tsw_drv.h:617
@ tsw_frame_action_type_unknown
Definition: hpm_tsw_drv.h:499
@ tsw_frame_action_type_broadcast
Definition: hpm_tsw_drv.h:498
@ tsw_frame_action_type_internal
Definition: hpm_tsw_drv.h:497
@ tsw_stmid_lookup_mode_priority
Definition: hpm_tsw_drv.h:625
@ tsw_stmid_lookup_mode_all
Definition: hpm_tsw_drv.h:627
@ tsw_stmid_lookup_mode_tagged
Definition: hpm_tsw_drv.h:626
@ tsw_mac_type_emac
Definition: hpm_tsw_drv.h:535
@ tsw_mac_type_pmac
Definition: hpm_tsw_drv.h:536
@ tsw_port_phy_itf_mii
Definition: hpm_tsw_drv.h:477
@ tsw_port_phy_itf_rgmii
Definition: hpm_tsw_drv.h:479
@ tsw_port_phy_itf_rmii
Definition: hpm_tsw_drv.h:478
@ tsw_traffic_queue_1
Definition: hpm_tsw_drv.h:590
@ tsw_traffic_queue_5
Definition: hpm_tsw_drv.h:594
@ tsw_traffic_queue_7
Definition: hpm_tsw_drv.h:596
@ tsw_traffic_queue_6
Definition: hpm_tsw_drv.h:595
@ tsw_traffic_queue_0
Definition: hpm_tsw_drv.h:589
@ tsw_traffic_queue_3
Definition: hpm_tsw_drv.h:592
@ tsw_traffic_queue_4
Definition: hpm_tsw_drv.h:593
@ tsw_traffic_queue_2
Definition: hpm_tsw_drv.h:591
@ tsw_frame_action_qsel_type_use_pcp_remapping
Definition: hpm_tsw_drv.h:507
@ tsw_frame_action_qsel_type_use_queue
Definition: hpm_tsw_drv.h:509
@ tsw_frame_action_qsel_type_use_pcp_vlan_pvid
Definition: hpm_tsw_drv.h:506
@ tsw_frame_action_qsel_type_reserved
Definition: hpm_tsw_drv.h:508
@ tsw_psfp_gate_mode_unknown
Definition: hpm_tsw_drv.h:683
@ tsw_psfp_gate_mode_dynamic
Definition: hpm_tsw_drv.h:682
@ tsw_psfp_gate_mode_static
Definition: hpm_tsw_drv.h:681
@ tsw_port_speed_1000mbps
Definition: hpm_tsw_drv.h:470
@ tsw_port_speed_10mbps
Definition: hpm_tsw_drv.h:468
@ tsw_port_speed_100mbps
Definition: hpm_tsw_drv.h:469
@ tsw_fpe_mms_frame_reassembly_error_counter
Definition: hpm_tsw_drv.h:603
@ tsw_fpe_mms_fragment_tx_counter
Definition: hpm_tsw_drv.h:607
@ tsw_fpe_mms_fragment_rx_counter
Definition: hpm_tsw_drv.h:606
@ tsw_fpe_mms_frame_assembly_ok_counter
Definition: hpm_tsw_drv.h:605
@ tsw_fpe_mms_hold_request_counter
Definition: hpm_tsw_drv.h:608
@ tsw_fpe_mms_frame_rejected_due_to_wrong_smd
Definition: hpm_tsw_drv.h:604
@ tsw_dst_port_cpu
Definition: hpm_tsw_drv.h:487
@ tsw_dst_port_null
Definition: hpm_tsw_drv.h:486
@ tsw_dst_port_2
Definition: hpm_tsw_drv.h:489
@ tsw_dst_port_3
Definition: hpm_tsw_drv.h:490
@ tsw_dst_port_1
Definition: hpm_tsw_drv.h:488
@ tsw_stmid_actctl_use_amac_with_removed_vlan_tag
Definition: hpm_tsw_drv.h:635
@ tsw_stmid_actctl_disabled
Definition: hpm_tsw_drv.h:634
@ tsw_stmid_actctl_use_amac_with_replaced_or_inserted_vlan_tag
Definition: hpm_tsw_drv.h:636
@ tsw_shap_tas_aclist_op_set_and_hold_mac
Definition: hpm_tsw_drv.h:566
@ tsw_shap_tas_aclist_op_set_gate_states
Definition: hpm_tsw_drv.h:565
@ tsw_shap_tas_aclist_op_set_and_release_mac
Definition: hpm_tsw_drv.h:567
@ tsw_cb_frer_algo_vector_recovery
Definition: hpm_tsw_drv.h:651
@ tsw_cb_frer_algo_match_recovery
Definition: hpm_tsw_drv.h:652
@ tsw_mac_mode_gmii
Definition: hpm_tsw_drv.h:528
@ tsw_mac_mode_mii
Definition: hpm_tsw_drv.h:527
@ tagless_frames
Definition: hpm_tsw_drv.h:669
@ presented_frames
Definition: hpm_tsw_drv.h:667
@ recover_func_resets
Definition: hpm_tsw_drv.h:673
@ latent_err_dectection_resets
Definition: hpm_tsw_drv.h:674
@ discarded_frames
Definition: hpm_tsw_drv.h:668
@ lost_frames
Definition: hpm_tsw_drv.h:672
@ out_of_oder_frames
Definition: hpm_tsw_drv.h:671
@ rougue_frames
Definition: hpm_tsw_drv.h:670
@ tsw_pps_ctrl_bin_8192hz_digital_4096hz
Definition: hpm_tsw_drv.h:556
@ tsw_pps_ctrl_pps
Definition: hpm_tsw_drv.h:543
@ tsw_pps_ctrl_bin_1024hz_digital_512hz
Definition: hpm_tsw_drv.h:553
@ tsw_pps_ctrl_bin_4096hz_digital_2048hz
Definition: hpm_tsw_drv.h:555
@ tsw_pps_ctrl_bin_32hz_digital_16hz
Definition: hpm_tsw_drv.h:548
@ tsw_pps_ctrl_bin_8hz_digital_4hz
Definition: hpm_tsw_drv.h:546
@ tsw_pps_ctrl_bin_32768hz_digital_16384hz
Definition: hpm_tsw_drv.h:558
@ tsw_pps_ctrl_bin_2048hz_digital_1024hz
Definition: hpm_tsw_drv.h:554
@ tsw_pps_ctrl_bin_128hz_digital_64hz
Definition: hpm_tsw_drv.h:550
@ tsw_pps_ctrl_bin_512hz_digital_256hz
Definition: hpm_tsw_drv.h:552
@ tsw_pps_ctrl_bin_16384hz_digital_8192hz
Definition: hpm_tsw_drv.h:557
@ tsw_pps_ctrl_bin_16hz_digital_8hz
Definition: hpm_tsw_drv.h:547
@ tsw_pps_ctrl_bin_4hz_digital_2hz
Definition: hpm_tsw_drv.h:545
@ tsw_pps_ctrl_bin_256hz_digital_128hz
Definition: hpm_tsw_drv.h:551
@ tsw_pps_ctrl_bin_64hz_digital_32hz
Definition: hpm_tsw_drv.h:549
@ tsw_pps_ctrl_bin_2hz_digital_1hz
Definition: hpm_tsw_drv.h:544
@ tsw_stmid_control_lookup_by_src_mac
Definition: hpm_tsw_drv.h:644
@ tsw_stmid_control_lookup_by_dest_mac
Definition: hpm_tsw_drv.h:643
Definition: hpm_tsw_regs.h:12
TSW RX header descriptor structure.
Definition: hpm_tsw_drv.h:174
uint32_t cb
Definition: hpm_tsw_drv.h:192
uint32_t timestamp_lo
Definition: hpm_tsw_drv.h:196
uint32_t utag
Definition: hpm_tsw_drv.h:181
uint32_t rx_hdr1
Definition: hpm_tsw_drv.h:190
uint32_t timestamp_hi
Definition: hpm_tsw_drv.h:197
uint32_t queue
Definition: hpm_tsw_drv.h:180
uint32_t htype
Definition: hpm_tsw_drv.h:185
uint32_t rx_hdr0
Definition: hpm_tsw_drv.h:176
uint32_t src_port
Definition: hpm_tsw_drv.h:178
uint32_t fpe
Definition: hpm_tsw_drv.h:183
TSW CB FRER frame count egress structure.
Definition: hpm_tsw_drv.h:395
TSW CB FRER latent error detection configuration structure.
Definition: hpm_tsw_drv.h:348
uint32_t threshold
Definition: hpm_tsw_drv.h:352
bool enable_detection
Definition: hpm_tsw_drv.h:349
uint32_t err_count
Definition: hpm_tsw_drv.h:353
uint32_t test_period
Definition: hpm_tsw_drv.h:351
uint32_t reset_period
Definition: hpm_tsw_drv.h:350
TSW CB FRER recovery function configuration structure.
Definition: hpm_tsw_drv.h:359
bool freset
Definition: hpm_tsw_drv.h:361
uint8_t paths
Definition: hpm_tsw_drv.h:363
bool take_no_sequence
Definition: hpm_tsw_drv.h:362
uint32_t timeout_in_ms
Definition: hpm_tsw_drv.h:367
uint8_t history_len
Definition: hpm_tsw_drv.h:364
uint8_t fidx
Definition: hpm_tsw_drv.h:360
uint8_t algo
Definition: hpm_tsw_drv.h:365
uint8_t xrfunc
Definition: hpm_tsw_drv.h:366
tsw_cb_frer_latent_error_dectecton_config_t latent_error_dectection_config
Definition: hpm_tsw_drv.h:368
TSW CB FRER SID function configuration structure.
Definition: hpm_tsw_drv.h:339
tsw_cb_frer_xrfunc_config_t irfunc
Definition: hpm_tsw_drv.h:341
tsw_cb_frer_xrfunc_config_t srfunc
Definition: hpm_tsw_drv.h:342
uint8_t sid
Definition: hpm_tsw_drv.h:340
TSW CB FRER XR function configuration structure.
Definition: hpm_tsw_drv.h:331
uint8_t fidx
Definition: hpm_tsw_drv.h:333
bool fen
Definition: hpm_tsw_drv.h:332
TSW CB STMID active MAC structure.
Definition: hpm_tsw_drv.h:304
uint8_t vid
Definition: hpm_tsw_drv.h:308
uint32_t mach
Definition: hpm_tsw_drv.h:305
uint8_t pcp
Definition: hpm_tsw_drv.h:307
uint32_t macl
Definition: hpm_tsw_drv.h:306
TSW CB STMID entry structure.
Definition: hpm_tsw_drv.h:314
uint8_t mode
Definition: hpm_tsw_drv.h:319
int32_t seqnum
Definition: hpm_tsw_drv.h:322
uint8_t sid
Definition: hpm_tsw_drv.h:321
uint32_t match
Definition: hpm_tsw_drv.h:323
bool enable
Definition: hpm_tsw_drv.h:316
uint8_t smac
Definition: hpm_tsw_drv.h:318
uint8_t idx
Definition: hpm_tsw_drv.h:315
tsw_cb_stmid_active_mac_t active_mac
Definition: hpm_tsw_drv.h:325
uint8_t actctl
Definition: hpm_tsw_drv.h:320
tsw_cb_stmid_lookup_mac_t lookup_mac
Definition: hpm_tsw_drv.h:324
bool seqgen
Definition: hpm_tsw_drv.h:317
TSW CB STMID lookup MAC structure.
Definition: hpm_tsw_drv.h:295
uint32_t macl
Definition: hpm_tsw_drv.h:297
uint32_t mach
Definition: hpm_tsw_drv.h:296
uint32_t vid
Definition: hpm_tsw_drv.h:298
TSW CBS (Credit-Based Shaper) configuration structure.
Definition: hpm_tsw_drv.h:257
uint8_t integer
Definition: hpm_tsw_drv.h:258
uint16_t fract
Definition: hpm_tsw_drv.h:259
TSW DMA configuration structure.
Definition: hpm_tsw_drv.h:223
uint8_t maxlen
Definition: hpm_tsw_drv.h:226
bool irq
Definition: hpm_tsw_drv.h:225
bool soe
Definition: hpm_tsw_drv.h:224
TSW FPE configuration structure.
Definition: hpm_tsw_drv.h:284
uint32_t vtime
Definition: hpm_tsw_drv.h:286
uint32_t frag_size
Definition: hpm_tsw_drv.h:287
bool link_error
Definition: hpm_tsw_drv.h:289
bool dis_verification
Definition: hpm_tsw_drv.h:288
uint8_t tqueue
Definition: hpm_tsw_drv.h:285
TSW FPE MMS status structure.
Definition: hpm_tsw_drv.h:275
bool hld
Definition: hpm_tsw_drv.h:278
bool vok
Definition: hpm_tsw_drv.h:277
bool vfail
Definition: hpm_tsw_drv.h:276
TSW frame action configuration structure.
Definition: hpm_tsw_drv.h:203
uint8_t drop
Definition: hpm_tsw_drv.h:206
uint8_t utag
Definition: hpm_tsw_drv.h:208
uint8_t queue
Definition: hpm_tsw_drv.h:205
uint16_t dest
Definition: hpm_tsw_drv.h:204
uint8_t qsel
Definition: hpm_tsw_drv.h:207
TSW frame structure.
Definition: hpm_tsw_drv.h:214
uint8_t * buffer
Definition: hpm_tsw_drv.h:216
uint8_t id
Definition: hpm_tsw_drv.h:215
uint16_t length
Definition: hpm_tsw_drv.h:217
TSW PSFER gate control list configuration structure.
Definition: hpm_tsw_drv.h:384
uint8_t list_len
Definition: hpm_tsw_drv.h:386
uint32_t cycle_time
Definition: hpm_tsw_drv.h:387
tsw_psfer_gate_control_list_entry_t * entry
Definition: hpm_tsw_drv.h:385
uint32_t base_time_ns
Definition: hpm_tsw_drv.h:388
uint32_t base_time_sec
Definition: hpm_tsw_drv.h:389
TSW PSFER gate control list entry structure.
Definition: hpm_tsw_drv.h:374
uint32_t max_octets
Definition: hpm_tsw_drv.h:377
uint8_t state
Definition: hpm_tsw_drv.h:375
uint32_t interval
Definition: hpm_tsw_drv.h:378
uint8_t ipv
Definition: hpm_tsw_drv.h:376
TSW PSFP filter configuration structure.
Definition: hpm_tsw_drv.h:447
bool enable_size_checking
Definition: hpm_tsw_drv.h:450
bool enable_blocking
Definition: hpm_tsw_drv.h:449
uint8_t idx
Definition: hpm_tsw_drv.h:448
uint8_t stream_id
Definition: hpm_tsw_drv.h:457
uint32_t max_frame_size_in_octects
Definition: hpm_tsw_drv.h:458
bool filter_match_sid
Definition: hpm_tsw_drv.h:452
uint8_t pcp
Definition: hpm_tsw_drv.h:454
uint8_t gate_id
Definition: hpm_tsw_drv.h:456
uint8_t flow_meter_id
Definition: hpm_tsw_drv.h:455
bool filter_match_pcp
Definition: hpm_tsw_drv.h:453
bool enable_flow_meter
Definition: hpm_tsw_drv.h:451
TSW PSFP flow meter configuration structure.
Definition: hpm_tsw_drv.h:431
uint8_t idx
Definition: hpm_tsw_drv.h:432
bool reset
Definition: hpm_tsw_drv.h:433
tsw_psfp_flow_meter_xir_config_t eir
Definition: hpm_tsw_drv.h:439
uint32_t ebs_in_bits
Definition: hpm_tsw_drv.h:441
bool color_mode
Definition: hpm_tsw_drv.h:436
tsw_psfp_flow_meter_xir_config_t cir
Definition: hpm_tsw_drv.h:438
uint32_t cbs_in_bits
Definition: hpm_tsw_drv.h:440
bool coupling_flag
Definition: hpm_tsw_drv.h:437
bool mark_all_frames_red
Definition: hpm_tsw_drv.h:434
bool drop_on_yellow
Definition: hpm_tsw_drv.h:435
TSW PSFP flow meter XIR configuration structure.
Definition: hpm_tsw_drv.h:423
uint8_t integer
Definition: hpm_tsw_drv.h:424
uint16_t fract
Definition: hpm_tsw_drv.h:425
TSW PSFP gate dynamic mode configuration structure.
Definition: hpm_tsw_drv.h:413
bool closed_due_to_invalid_rx
Definition: hpm_tsw_drv.h:416
uint8_t idx
Definition: hpm_tsw_drv.h:414
bool closed_due_to_octets_exceeded
Definition: hpm_tsw_drv.h:415
tsw_psfer_gate_control_list_config_t gate_control_list_config
Definition: hpm_tsw_drv.h:417
TSW PSFP gate static mode configuration structure.
Definition: hpm_tsw_drv.h:402
bool closed_due_to_octets_exceeded
Definition: hpm_tsw_drv.h:404
uint8_t state
Definition: hpm_tsw_drv.h:406
uint8_t ipv
Definition: hpm_tsw_drv.h:407
bool closed_due_to_invalid_rx
Definition: hpm_tsw_drv.h:405
uint8_t idx
Definition: hpm_tsw_drv.h:403
TSW SHAP TAS list length structure.
Definition: hpm_tsw_drv.h:232
uint16_t oper_list_length
Definition: hpm_tsw_drv.h:234
uint16_t admin_list_length
Definition: hpm_tsw_drv.h:233
Definition: hpm_tsw_drv.h:246
uint32_t base_time_sec
Definition: hpm_tsw_drv.h:251
tsw_tas_controllist_entry_t * entry
Definition: hpm_tsw_drv.h:247
uint32_t cycle_time
Definition: hpm_tsw_drv.h:249
uint32_t entry_count
Definition: hpm_tsw_drv.h:248
uint32_t base_time_ns
Definition: hpm_tsw_drv.h:250
TSW TAS control list entry structure.
Definition: hpm_tsw_drv.h:240
uint8_t op
Definition: hpm_tsw_drv.h:242
uint8_t state
Definition: hpm_tsw_drv.h:241
uint32_t interval
Definition: hpm_tsw_drv.h:243
TSW timestamp FIFO entry structure.
Definition: hpm_tsw_drv.h:265
uint32_t tstamphi
Definition: hpm_tsw_drv.h:267
uint32_t tstamplo
Definition: hpm_tsw_drv.h:266
uint8_t tqueue
Definition: hpm_tsw_drv.h:268
uint8_t tuser
Definition: hpm_tsw_drv.h:269
TSW TX header descriptor structure.
Definition: hpm_tsw_drv.h:147
uint32_t tx_hdr0
Definition: hpm_tsw_drv.h:149
uint32_t dest_port
Definition: hpm_tsw_drv.h:151
uint32_t tx_hdr2
Definition: hpm_tsw_drv.h:167
uint32_t tx_hdr3
Definition: hpm_tsw_drv.h:168
uint32_t tx_hdr1
Definition: hpm_tsw_drv.h:161
uint32_t queue
Definition: hpm_tsw_drv.h:153
uint32_t utag
Definition: hpm_tsw_drv.h:154
uint32_t cb
Definition: hpm_tsw_drv.h:163
uint32_t htype
Definition: hpm_tsw_drv.h:156