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 
8 #ifndef HPM_TSW_DRV_H
9 #define HPM_TSW_DRV_H
10 
11 /*---------------------------------------------------------------------
12  * Includes
13  *--------------------------------------------------------------------*/
14 #include "hpm_common.h"
15 #include "hpm_soc_feature.h"
16 #include "hpm_tsw_regs.h"
17 
25 /*---------------------------------------------------------------------
26  * Macro Constant Declarations
27  *-------------------------------------------------------------------*/
28 #define MAC_LO(mac) (uint32_t)(mac[0] | (mac[1] << 8) | (mac[2] << 16) | (mac[3] << 24))
29 #define MAC_HI(mac) (uint32_t)(mac[4] | (mac[5] << 8))
30 
31 #define MAC_MDIO_CTRL_OP_WR (0x01)
32 #define MAC_MDIO_CTRL_OP_RD (0x02)
33 
34 #ifndef TSW_SEND_DESC_COUNT
35 #define TSW_SEND_DESC_COUNT (16U)
36 #endif
37 
38 #ifndef TSW_RECV_DESC_COUNT
39 #define TSW_RECV_DESC_COUNT (16U)
40 #endif
41 
42 #ifndef TSW_SEND_BUFF_LEN
43 #define TSW_SEND_BUFF_LEN (1536U)
44 #endif
45 
46 #ifndef TSW_RECV_BUFF_LEN
47 #define TSW_RECV_BUFF_LEN (1536U)
48 #endif
49 
50 #ifndef TSW_NS_IN_ONE_SEC
51 #define TSW_NS_IN_ONE_SEC (1000000000UL)
52 #endif
53 
54 #ifndef TSW_BUS_FREQ
55 #define TSW_BUS_FREQ (100000000UL)
56 #endif
57 
58 #ifndef TSW_MM2S_DMA_WAIT_CBUFF_TIMEOUT
59 #define TSW_MM2S_DMA_WAIT_CBUFF_TIMEOUT (1000U)
60 #endif
61 
62 #ifndef TSW_MM2S_DMA_CHECK_RBUFE_TIMEOUT
63 #define TSW_MM2S_DMA_CHECK_RBUFE_TIMEOUT (1000U)
64 #endif
65 
66 #define TSW_ENET_MAC (6U) /* MAC size */
67 #define TSW_FPE_MMS_MIN_VTIME_MIN (1U) /* 1ms */
68 #define TSW_FPE_MMS_MAX_VTIME_MAX (128U) /* 128ms */
69 /*---------------------------------------------------------------------
70  * Typedef Struct Declarations
71  *-------------------------------------------------------------------*/
72 typedef struct {
73  union {
74  uint32_t tx_hdr0;
75  struct {
76  uint32_t dest_port: 8;
77  uint32_t : 8;
78  uint32_t queue : 3;
79  uint32_t utag : 3;
80  uint32_t : 6;
81  uint32_t htype : 4;
82  } tx_hdr0_bm;
83  };
84 
85  union {
86  uint32_t tx_hdr1;
87  struct {
88  uint32_t cb: 32;
89  } tx_hdr1_bm;
90  };
91 
92  uint32_t tx_hdr2;
93  uint32_t tx_hdr3;
95 
96 typedef struct {
97  union {
98  uint32_t rx_hdr0;
99  struct {
100  uint32_t src_port : 8;
101  uint32_t : 8;
102  uint32_t queue : 3;
103  uint32_t utag : 3;
104  uint32_t : 2;
105  uint32_t fpe : 1;
106  uint32_t : 3;
107  uint32_t htype : 4;
108  } rx_hdr0_bm;
109  };
110 
111  union {
112  uint32_t rx_hdr1;
113  struct {
114  uint32_t cb: 32;
115  } rx_hdr1_bm;
116  };
117 
118  uint32_t timestamp_lo;
119  uint32_t timestamp_hi;
120 } rx_hdr_desc_t;
121 
122 typedef struct {
123  uint8_t id;
124  uint8_t *buffer;
125  uint16_t length;
126 } tsw_frame_t;
127 
128 typedef struct {
129  bool soe;
130  bool irq;
131  uint8_t maxlen;
133 
134 typedef struct {
138 
139 typedef struct {
140  uint8_t state;
141  uint8_t op;
142  uint32_t interval;
144 
145 typedef struct {
147  uint32_t entry_count;
148  uint32_t cycle_time;
149  uint32_t base_time_ns;
150  uint32_t base_time_sec;
152 
153 typedef struct {
154  uint8_t integer;
155  uint16_t fract;
157 
158 typedef struct {
159  uint32_t tstamplo;
160  uint32_t tstamphi;
161  uint8_t tqueue;
162  uint8_t tuser;
163 } tsw_tsf_t;
164 
165 typedef struct {
166  bool vfail;
167  bool vok;
168  bool hld;
170 
171 typedef struct {
172  uint8_t tqueue;
173  uint32_t vtime;
174  uint32_t frag_size;
178 
179 typedef struct {
180  uint32_t mach;
181  uint32_t macl;
182  uint32_t vid;
184 
185 typedef struct {
186  uint32_t mach;
187  uint32_t macl;
188  uint8_t pcp;
189  uint8_t vid;
191 
192 typedef struct {
193  uint8_t idx;
194  bool enable;
195  bool seqgen;
196  uint8_t smac;
197  uint8_t mode;
198  uint8_t actctl;
199  uint8_t sid;
200  int32_t seqnum;
201  uint32_t match;
205 
206 typedef struct {
207  bool fen;
208  uint8_t fidx;
210 
211 typedef struct {
212  uint8_t sid;
216 
217 typedef struct {
219  uint32_t reset_period;
220  uint32_t test_period;
221  uint32_t threshold;
222  uint32_t err_count;
224 
225 typedef struct {
226  uint8_t fidx;
227  bool freset;
229  uint8_t paths;
230  uint8_t history_len;
231  uint8_t algo;
232  uint8_t xrfunc;
233  uint32_t timeout_in_ms;
236 
237 typedef struct {
238  uint8_t state;
239  uint8_t ipv;
240  uint32_t max_octets;
241  uint32_t interval;
243 
244 typedef struct {
246  uint8_t list_len;
247  uint32_t cycle_time;
248  uint32_t base_time_ns;
249  uint32_t base_time_sec;
251 
252 typedef struct {
253  uint32_t egess_frame_count[8];
255 
256 typedef struct {
257  uint8_t idx;
260  uint8_t state;
261  uint8_t ipv;
263 
264 typedef struct {
265  uint8_t idx;
270 
271 typedef struct {
272  uint8_t integer;
273  uint16_t fract;
275 
276 typedef struct {
277  uint8_t idx;
278  bool reset;
285  uint32_t cbs_in_bits;
286  uint32_t ebs_in_bits;
288 
289 typedef struct {
290  uint8_t idx;
296  uint8_t pcp;
297  uint8_t flow_meter_id;
298  uint8_t gate_id;
299  uint8_t stream_id;
302 
303 /*---------------------------------------------------------------------
304  * Typedef Enum Declarations
305  *-------------------------------------------------------------------*/
306 typedef enum {
311 
312 typedef enum {
317 
318 typedef enum {
321  tsw_dst_port_1 = 1 << 1,
322  tsw_dst_port_2 = 1 << 2,
323  tsw_dst_port_3 = 1 << 3,
324 } tsw_dst_t;
325 
326 typedef enum {
333 
334 typedef enum {
338 
339 typedef enum {
343 
344 typedef enum {
362 
363 typedef enum {
368 
369 typedef enum {
380 
381 typedef enum {
391 
392 typedef enum {
400 
401 typedef enum {
407 
408 typedef enum {
413 
414 typedef enum {
419 
420 typedef enum {
424 
425 typedef enum {
429 
430 typedef enum {
434 
435 typedef enum {
445 
446 typedef enum {
451 
452 typedef enum {
456 
457 #if defined __cplusplus
458 extern "C" {
459 #endif /* __cplusplus */
460 /*---------------------------------------------------------------------
461  * Exported Functions
462  *-------------------------------------------------------------------*/
468 
475 void tsw_init_send(TSW_Type *ptr, tsw_dma_config_t *config);
476 
483 void tsw_init_recv(TSW_Type *ptr, tsw_dma_config_t *config);
484 
494 hpm_stat_t tsw_send_frame(TSW_Type *ptr, uint8_t *buffer, uint16_t length, uint8_t id);
495 
505 hpm_stat_t tsw_send_frame_check_response(TSW_Type *ptr, uint8_t *buffer, uint16_t length, uint8_t id);
506 
516 hpm_stat_t tsw_commit_recv_desc(TSW_Type *ptr, uint8_t *buffer, uint16_t length, uint8_t id);
517 
526 
533 void tsw_mac_lookup_bypass(TSW_Type *ptr, uint8_t dst_port);
534 
542 
551 hpm_stat_t tsw_ep_set_mdio_config(TSW_Type *ptr, uint8_t port, uint8_t clk_div);
552 
563 hpm_stat_t tsw_ep_mdio_read(TSW_Type *ptr, uint8_t port, uint32_t phy_addr, uint32_t reg_addr, uint16_t *data);
564 
575 hpm_stat_t tsw_ep_mdio_write(TSW_Type *ptr, uint8_t port, uint32_t phy_addr, uint32_t reg_addr, uint16_t data);
576 
585 hpm_stat_t tsw_ep_enable_mac_ctrl(TSW_Type *ptr, uint8_t port, tsw_mac_type_t mac_type);
586 
595 hpm_stat_t tsw_ep_disable_mac_ctrl(TSW_Type *ptr, uint8_t port, tsw_mac_type_t mac_type);
596 
605 
614 
624 hpm_stat_t tsw_ep_set_mac_addr(TSW_Type *ptr, uint8_t port, uint8_t *mac_addr, bool promisc);
625 
636 hpm_stat_t tsw_ep_set_mac_mode(TSW_Type *ptr, uint8_t port, uint8_t gmii);
637 
647 hpm_stat_t tsw_ep_set_xmac_mode(TSW_Type *ptr, uint8_t port, uint8_t gmii, tsw_mac_type_t mac_type);
648 
659 void tsw_port_gpr(TSW_Type *ptr, uint8_t port, uint8_t speed, uint8_t itf, uint8_t tx_dly, uint8_t rx_dly);
660 
668 void tsw_set_port_speed(TSW_Type *ptr, uint8_t port, uint8_t speed);
669 
677 void tsw_set_port_interface(TSW_Type *ptr, uint8_t port, uint8_t itf);
678 
687 void tsw_set_port_clock_delay(TSW_Type *ptr, uint8_t port, uint8_t tx_dly, uint8_t rx_dly);
688 
695 void tsw_set_internal_frame_action(TSW_Type *ptr, uint8_t dest_port);
696 
703 void tsw_set_broadcast_frame_action(TSW_Type *ptr, uint8_t dest_port);
704 
711 void tsw_set_unknown_frame_action(TSW_Type *ptr, uint8_t dest_port);
712 
721 void tsw_set_lookup_table(TSW_Type *ptr, uint16_t entry_num, uint8_t dest_port, uint64_t dest_mac);
722 
728 void tsw_clear_cam(TSW_Type *ptr);
729 
736 void tsw_enable_store_forward_mode(TSW_Type *ptr, uint8_t port);
737 
744 void tsw_disable_store_forward_mode(TSW_Type *ptr, uint8_t port);
745 
753 hpm_stat_t tsw_get_rtc_time_increment(TSW_Type *ptr, uint32_t *increment);
754 
762 hpm_stat_t tsw_set_rtc_time_increment(TSW_Type *ptr, uint32_t increment);
763 
772 hpm_stat_t tsw_get_rtc_current_time(TSW_Type *ptr, uint32_t *sec, uint32_t *nsec);
773 
782 hpm_stat_t tsw_get_rtc_offset(TSW_Type *ptr, int64_t *sec, uint32_t *nsec);
783 
792 hpm_stat_t tsw_set_rtc_offset(TSW_Type *ptr, int64_t sec, uint32_t nsec);
793 
801 hpm_stat_t tsw_set_rtc_offset_change(TSW_Type *ptr, uint32_t change);
802 
811 hpm_stat_t tsw_set_tsync_timer_hclkdiv(TSW_Type *ptr, uint8_t port, uint32_t host_clkdiv);
812 
823 hpm_stat_t tsw_tsync_timer_control(TSW_Type *ptr, uint8_t port, uint8_t index, uint32_t period, uint32_t enable);
824 
833 
845 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);
846 
856 hpm_stat_t tsw_tsync_update_len(TSW_Type *ptr, uint8_t port, uint32_t bin, uint8_t lenbytes, uint8_t tqueue);
857 
866 hpm_stat_t tsw_tsync_trigger_tx(TSW_Type *ptr, uint8_t port, uint32_t bin);
867 
878 hpm_stat_t tsw_tsync_get_txtimestamp(TSW_Type *ptr, uint8_t port, uint32_t bin, uint32_t *timestamplo, uint32_t *timestamphi);
879 
889 hpm_stat_t tsw_tsync_get_rxtimestamp(TSW_Type *ptr, uint8_t port, uint32_t *timestamplo, uint32_t *timestamphi);
890 
899 hpm_stat_t tsw_tsync_disable_current_events(TSW_Type *ptr, uint8_t port, uint32_t *disabled);
900 
910 hpm_stat_t tsw_tsync_get_rxstatus(TSW_Type *ptr, uint8_t port, uint8_t *ov, uint8_t *avnxt, uint8_t *rxsel);
911 
919 hpm_stat_t tsw_tsync_next_rxbuffer(TSW_Type *ptr, uint8_t port);
920 
928 hpm_stat_t tsw_tsync_clear_overflow(TSW_Type *ptr, uint8_t port);
929 
938 hpm_stat_t tsw_tsync_get_txdone(TSW_Type *ptr, uint8_t port, uint32_t *done);
939 
948 hpm_stat_t tsw_tsync_clear_txdone(TSW_Type *ptr, uint8_t port, uint32_t done);
949 
958 hpm_stat_t tsw_tsync_get_tmrdone(TSW_Type *ptr, uint8_t port, uint32_t *done);
959 
969 
978 hpm_stat_t tsw_shap_set_tas_cycletime(TSW_Type *ptr, uint8_t port, uint32_t cycle_time);
979 
989 hpm_stat_t tsw_shap_set_tas_controllist(TSW_Type *ptr, uint8_t port, uint32_t index, tsw_tas_controllist_entry_t *entry);
990 
1000 hpm_stat_t tsw_shap_get_tas_controllist(TSW_Type *ptr, uint8_t port, uint32_t index, tsw_tas_controllist_entry_t *entry);
1001 
1010 hpm_stat_t tsw_shap_set_tas_max_sdu_ticks(TSW_Type *ptr, uint8_t port, uint8_t index, uint32_t ticks);
1011 
1020 hpm_stat_t tsw_shap_get_tas_max_sdu_ticks(TSW_Type *ptr, uint8_t port, uint8_t index, uint32_t *ticks);
1021 
1029 
1037 hpm_stat_t tsw_shap_enable_tas(TSW_Type *ptr, uint8_t port);
1038 
1046 hpm_stat_t tsw_shap_disable_tas(TSW_Type *ptr, uint8_t port);
1047 
1056 hpm_stat_t tsw_shap_set_tas_listlen(TSW_Type *ptr, uint8_t port, uint32_t listlen);
1057 
1066 hpm_stat_t tsw_shap_set_tas_cycletime(TSW_Type *ptr, uint8_t port, uint32_t cycle_time);
1067 
1077 hpm_stat_t tsw_shap_set_tas_basetime(TSW_Type *ptr, uint8_t port, uint32_t basetime_sec, uint32_t basetime_ns);
1078 
1086 hpm_stat_t tsw_shap_tas_change_config(TSW_Type *ptr, uint8_t port);
1087 
1096 hpm_stat_t tsw_shap_get_tas_crsr(TSW_Type *ptr, uint8_t port, uint32_t *crsr);
1097 
1106 hpm_stat_t tsw_shap_set_tas(TSW_Type *ptr, uint8_t port, tsw_tas_config_t *config);
1107 
1117 hpm_stat_t tsw_shap_set_cbs(TSW_Type *ptr, uint8_t port, uint8_t index, tsw_cbs_config_t *config);
1118 
1127 hpm_stat_t tsw_get_txtimestampfifo_used(TSW_Type *ptr, uint8_t port, uint32_t *count);
1128 
1137 hpm_stat_t tsw_get_txtimestampfifo_entry(TSW_Type *ptr, uint8_t port, tsw_tsf_t *entry);
1138 
1148 
1156 hpm_stat_t tsw_fpe_enable_mms(TSW_Type *ptr, uint8_t port);
1157 
1165 hpm_stat_t tsw_fpe_disable_mms(TSW_Type *ptr, uint8_t port);
1166 
1175 hpm_stat_t tsw_fpe_set_mms_ctrl(TSW_Type *ptr, uint8_t port, tsw_fpe_config_t *config);
1176 
1186 
1196 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);
1197 
1206 
1215 
1224 
1232 
1241 
1250 
1258 
1267 
1275 hpm_stat_t tsw_cb_frer_set_msec_cycles(TSW_Type *ptr, uint32_t msec_cycles);
1276 
1285 
1294 
1303 
1312 
1313 
1314 #if defined __cplusplus
1315 }
1316 #endif /* __cplusplus */
1318 #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
Definition: hpm_tsw_drv.h:452
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:1025
hpm_stat_t tsw_tsync_next_rxbuffer(TSW_Type *ptr, uint8_t port)
TSYNC next RX buffer.
Definition: hpm_tsw_drv.c:696
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:437
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:521
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:765
hpm_stat_t tsw_psfp_set_filter(TSW_Type *ptr, tsw_psfp_filter_config_t *config)
Set PSFP filter.
Definition: hpm_tsw_drv.c:1240
hpm_stat_t tsw_cb_frer_ingress_enable_rtag(TSW_Type *ptr)
Enable RTAG with CB frer for ingress.
Definition: hpm_tsw_drv.c:1156
void tsw_set_broadcast_frame_action(TSW_Type *ptr, uint8_t dest_port)
Set Broadcast Frame Action.
Definition: hpm_tsw_drv.c:431
void tsw_disable_store_forward_mode(TSW_Type *ptr, uint8_t port)
Disable RXFIFO to store and forward mode.
Definition: hpm_tsw_drv.c:454
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:1228
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:620
tsw_cb_frer_xfunc_recovery_t
Definition: hpm_tsw_drv.h:430
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:679
tsw_shap_tas_aclist_state_open_queue_t
Definition: hpm_tsw_drv.h:369
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:1288
void tsw_set_internal_frame_action(TSW_Type *ptr, uint8_t dest_port)
Set Internal Frame Action.
Definition: hpm_tsw_drv.c:425
void tsw_clear_cam(TSW_Type *ptr)
Clear CAM.
Definition: hpm_tsw_drv.c:443
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:637
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:1349
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 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:649
hpm_stat_t tsw_set_rtc_time_increment(TSW_Type *ptr, uint32_t increment)
Set RTC timer increment value.
Definition: hpm_tsw_drv.c:470
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
Definition: hpm_tsw_drv.h:326
hpm_stat_t tsw_fpe_disable_mms(TSW_Type *ptr, uint8_t port)
Disable MMS.
Definition: hpm_tsw_drv.c:974
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:477
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
Definition: hpm_tsw_drv.h:401
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:786
void tsw_enable_store_forward_mode(TSW_Type *ptr, uint8_t port)
Enable RXFIFO to store and forward mode.
Definition: hpm_tsw_drv.c:449
hpm_stat_t tsw_shap_enable_tas(TSW_Type *ptr, uint8_t port)
Enable TAS.
Definition: hpm_tsw_drv.c:832
tsw_stmid_lookup_mode_t
Definition: hpm_tsw_drv.h:408
hpm_stat_t tsw_tsync_trigger_tx(TSW_Type *ptr, uint8_t port, uint32_t bin)
TSYNC trigger TX.
Definition: hpm_tsw_drv.c:608
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
Definition: hpm_tsw_drv.h:339
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:1163
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:1307
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:595
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:1055
tsw_port_phy_itf_t
Definition: hpm_tsw_drv.h:312
tsw_traffic_queue_t
Definition: hpm_tsw_drv.h:381
hpm_stat_t tsw_set_rtc_offset(TSW_Type *ptr, int64_t sec, uint32_t nsec)
Set RTC offset.
Definition: hpm_tsw_drv.c:505
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_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:799
hpm_stat_t tsw_set_pps_tod_output(TSW_Type *ptr)
Set pps tod output.
Definition: hpm_tsw_drv.c:853
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:810
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:721
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
Definition: hpm_tsw_drv.h:446
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:891
tsw_port_speed_t
Definition: hpm_tsw_drv.h:306
hpm_stat_t tsw_cb_frer_egress_clear_latten_error_flag(TSW_Type *ptr)
Clear latten error flag.
Definition: hpm_tsw_drv.c:1208
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:560
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:710
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:728
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
Definition: hpm_tsw_drv.h:392
tsw_dst_t
Definition: hpm_tsw_drv.h:318
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
Definition: hpm_tsw_drv.h:414
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 @Note This API will be deprecated from V2.0.0.
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:967
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:1176
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:739
hpm_stat_t tsw_set_rtc_offset_change(TSW_Type *ptr, uint32_t change)
Set RTC offset change.
Definition: hpm_tsw_drv.c:514
hpm_stat_t tsw_tsync_clear_overflow(TSW_Type *ptr, uint8_t port)
TSYNC clear overflow status.
Definition: hpm_tsw_drv.c:703
tsw_shap_tas_alist_op_t
Definition: hpm_tsw_drv.h:363
hpm_stat_t tsw_get_txtimestampfifo_used(TSW_Type *ptr, uint8_t port, uint32_t *count)
Get used countsed count from the TX-Timestamp FIFO.
Definition: hpm_tsw_drv.c:926
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:861
hpm_stat_t tsw_get_rtc_offset(TSW_Type *ptr, int64_t *sec, uint32_t *nsec)
Get RTC offset.
Definition: hpm_tsw_drv.c:490
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:981
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:825
tsw_cb_frer_algo_t
Definition: hpm_tsw_drv.h:425
tsw_mac_mode_t
Definition: hpm_tsw_drv.h:334
tsw_cb_frer_frame_ount_egress_t
Definition: hpm_tsw_drv.h:435
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:995
tsw_pps_ctrl_t
Definition: hpm_tsw_drv.h:344
tsw_stmid_control_lookup_mode_t
Definition: hpm_tsw_drv.h:420
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:937
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:1093
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:1125
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:758
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:1215
hpm_stat_t tsw_shap_disable_tas(TSW_Type *ptr, uint8_t port)
Disable TAS.
Definition: hpm_tsw_drv.c:839
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:846
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:750
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:459
hpm_stat_t tsw_tsync_timer_interrupt_enable(TSW_Type *ptr, uint8_t port)
TSYNC timer interrupt enable.
Definition: hpm_tsw_drv.c:553
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:773
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:528
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:1040
@ tsw_psfp_gate_open
Definition: hpm_tsw_drv.h:454
@ tsw_psfp_gate_closed
Definition: hpm_tsw_drv.h:453
@ tsw_cb_frer_xfunc_recovery_individual
Definition: hpm_tsw_drv.h:432
@ tsw_cb_frer_xfunc_recovery_sequence
Definition: hpm_tsw_drv.h:431
@ tsw_shap_tas_aclist_state_open_queueu_2
Definition: hpm_tsw_drv.h:372
@ tsw_shap_tas_aclist_state_open_queueu_0
Definition: hpm_tsw_drv.h:370
@ tsw_shap_tas_aclist_state_open_queueu_5
Definition: hpm_tsw_drv.h:375
@ tsw_shap_tas_aclist_state_open_queueu_1
Definition: hpm_tsw_drv.h:371
@ tsw_shap_tas_aclist_state_open_queueu_4
Definition: hpm_tsw_drv.h:374
@ tsw_shap_tas_aclist_state_open_queueu_6
Definition: hpm_tsw_drv.h:376
@ tsw_shap_tas_aclist_state_open_queueu_7
Definition: hpm_tsw_drv.h:377
@ tsw_shap_tas_aclist_state_open_queueu_all
Definition: hpm_tsw_drv.h:378
@ tsw_shap_tas_aclist_state_open_queueu_3
Definition: hpm_tsw_drv.h:373
@ tsw_cpu_send_to_port_1
Definition: hpm_tsw_drv.h:328
@ tsw_cpu_send_to_all_ports
Definition: hpm_tsw_drv.h:331
@ tsw_cpu_send_to_lookup
Definition: hpm_tsw_drv.h:327
@ tsw_cpu_send_to_port_2
Definition: hpm_tsw_drv.h:329
@ tsw_cpu_send_to_port_3
Definition: hpm_tsw_drv.h:330
@ tsw_fpe_mms_fragment_size_252_octets
Definition: hpm_tsw_drv.h:405
@ tsw_fpe_mms_fragment_size_60_octets
Definition: hpm_tsw_drv.h:402
@ tsw_fpe_mms_fragment_size_124_octets
Definition: hpm_tsw_drv.h:403
@ tsw_fpe_mms_fragment_size_188_octets
Definition: hpm_tsw_drv.h:404
@ tsw_stmid_lookup_mode_priority
Definition: hpm_tsw_drv.h:409
@ tsw_stmid_lookup_mode_all
Definition: hpm_tsw_drv.h:411
@ tsw_stmid_lookup_mode_tagged
Definition: hpm_tsw_drv.h:410
@ tsw_mac_type_emac
Definition: hpm_tsw_drv.h:340
@ tsw_mac_type_pmac
Definition: hpm_tsw_drv.h:341
@ tsw_port_phy_itf_mii
Definition: hpm_tsw_drv.h:313
@ tsw_port_phy_itf_rgmii
Definition: hpm_tsw_drv.h:315
@ tsw_port_phy_itf_rmii
Definition: hpm_tsw_drv.h:314
@ tsw_traffic_queue_1
Definition: hpm_tsw_drv.h:383
@ tsw_traffic_queue_5
Definition: hpm_tsw_drv.h:387
@ tsw_traffic_queue_7
Definition: hpm_tsw_drv.h:389
@ tsw_traffic_queue_6
Definition: hpm_tsw_drv.h:388
@ tsw_traffic_queue_0
Definition: hpm_tsw_drv.h:382
@ tsw_traffic_queue_3
Definition: hpm_tsw_drv.h:385
@ tsw_traffic_queue_4
Definition: hpm_tsw_drv.h:386
@ tsw_traffic_queue_2
Definition: hpm_tsw_drv.h:384
@ tsw_psfp_gate_mode_unknown
Definition: hpm_tsw_drv.h:449
@ tsw_psfp_gate_mode_dynamic
Definition: hpm_tsw_drv.h:448
@ tsw_psfp_gate_mode_static
Definition: hpm_tsw_drv.h:447
@ tsw_port_speed_1000mbps
Definition: hpm_tsw_drv.h:309
@ tsw_port_speed_10mbps
Definition: hpm_tsw_drv.h:307
@ tsw_port_speed_100mbps
Definition: hpm_tsw_drv.h:308
@ tsw_fpe_mms_frame_reassembly_error_counter
Definition: hpm_tsw_drv.h:393
@ tsw_fpe_mms_fragment_tx_counter
Definition: hpm_tsw_drv.h:397
@ tsw_fpe_mms_fragment_rx_counter
Definition: hpm_tsw_drv.h:396
@ tsw_fpe_mms_frame_assembly_ok_counter
Definition: hpm_tsw_drv.h:395
@ tsw_fpe_mms_hold_request_counter
Definition: hpm_tsw_drv.h:398
@ tsw_fpe_mms_frame_rejected_due_to_wrong_smd
Definition: hpm_tsw_drv.h:394
@ tsw_dst_port_cpu
Definition: hpm_tsw_drv.h:320
@ tsw_dst_port_null
Definition: hpm_tsw_drv.h:319
@ tsw_dst_port_2
Definition: hpm_tsw_drv.h:322
@ tsw_dst_port_3
Definition: hpm_tsw_drv.h:323
@ tsw_dst_port_1
Definition: hpm_tsw_drv.h:321
@ tsw_stmid_actctl_use_amac_with_removed_vlan_tag
Definition: hpm_tsw_drv.h:416
@ tsw_stmid_actctl_disabled
Definition: hpm_tsw_drv.h:415
@ tsw_stmid_actctl_use_amac_with_replaced_or_inserted_vlan_tag
Definition: hpm_tsw_drv.h:417
@ tsw_shap_tas_aclist_op_set_and_hold_mac
Definition: hpm_tsw_drv.h:365
@ tsw_shap_tas_aclist_op_set_gate_states
Definition: hpm_tsw_drv.h:364
@ tsw_shap_tas_aclist_op_set_and_release_mac
Definition: hpm_tsw_drv.h:366
@ tsw_cb_frer_algo_vector_recovery
Definition: hpm_tsw_drv.h:426
@ tsw_cb_frer_algo_match_recovery
Definition: hpm_tsw_drv.h:427
@ tsw_mac_mode_gmii
Definition: hpm_tsw_drv.h:336
@ tsw_mac_mode_mii
Definition: hpm_tsw_drv.h:335
@ tagless_frames
Definition: hpm_tsw_drv.h:438
@ presented_frames
Definition: hpm_tsw_drv.h:436
@ recover_func_resets
Definition: hpm_tsw_drv.h:442
@ latent_err_dectection_resets
Definition: hpm_tsw_drv.h:443
@ discarded_frames
Definition: hpm_tsw_drv.h:437
@ lost_frames
Definition: hpm_tsw_drv.h:441
@ out_of_oder_frames
Definition: hpm_tsw_drv.h:440
@ rougue_frames
Definition: hpm_tsw_drv.h:439
@ tsw_pps_ctrl_bin_8192hz_digital_4096hz
Definition: hpm_tsw_drv.h:358
@ tsw_pps_ctrl_pps
Definition: hpm_tsw_drv.h:345
@ tsw_pps_ctrl_bin_1024hz_digital_512hz
Definition: hpm_tsw_drv.h:355
@ tsw_pps_ctrl_bin_4096hz_digital_2048hz
Definition: hpm_tsw_drv.h:357
@ tsw_pps_ctrl_bin_32hz_digital_16hz
Definition: hpm_tsw_drv.h:350
@ tsw_pps_ctrl_bin_8hz_digital_4hz
Definition: hpm_tsw_drv.h:348
@ tsw_pps_ctrl_bin_32768hz_digital_16384hz
Definition: hpm_tsw_drv.h:360
@ tsw_pps_ctrl_bin_2048hz_digital_1024hz
Definition: hpm_tsw_drv.h:356
@ tsw_pps_ctrl_bin_128hz_digital_64hz
Definition: hpm_tsw_drv.h:352
@ tsw_pps_ctrl_bin_512hz_digital_256hz
Definition: hpm_tsw_drv.h:354
@ tsw_pps_ctrl_bin_16384hz_digital_8192hz
Definition: hpm_tsw_drv.h:359
@ tsw_pps_ctrl_bin_16hz_digital_8hz
Definition: hpm_tsw_drv.h:349
@ tsw_pps_ctrl_bin_4hz_digital_2hz
Definition: hpm_tsw_drv.h:347
@ tsw_pps_ctrl_bin_256hz_digital_128hz
Definition: hpm_tsw_drv.h:353
@ tsw_pps_ctrl_bin_64hz_digital_32hz
Definition: hpm_tsw_drv.h:351
@ tsw_pps_ctrl_bin_2hz_digital_1hz
Definition: hpm_tsw_drv.h:346
@ tsw_stmid_control_lookup_by_src_mac
Definition: hpm_tsw_drv.h:422
@ tsw_stmid_control_lookup_by_dest_mac
Definition: hpm_tsw_drv.h:421
Definition: hpm_tsw_regs.h:12
Definition: hpm_tsw_drv.h:96
uint32_t cb
Definition: hpm_tsw_drv.h:114
uint32_t timestamp_lo
Definition: hpm_tsw_drv.h:118
uint32_t utag
Definition: hpm_tsw_drv.h:103
uint32_t rx_hdr1
Definition: hpm_tsw_drv.h:112
uint32_t timestamp_hi
Definition: hpm_tsw_drv.h:119
uint32_t queue
Definition: hpm_tsw_drv.h:102
uint32_t htype
Definition: hpm_tsw_drv.h:107
uint32_t rx_hdr0
Definition: hpm_tsw_drv.h:98
uint32_t src_port
Definition: hpm_tsw_drv.h:100
uint32_t fpe
Definition: hpm_tsw_drv.h:105
Definition: hpm_tsw_drv.h:252
Definition: hpm_tsw_drv.h:217
uint32_t threshold
Definition: hpm_tsw_drv.h:221
bool enable_detection
Definition: hpm_tsw_drv.h:218
uint32_t err_count
Definition: hpm_tsw_drv.h:222
uint32_t test_period
Definition: hpm_tsw_drv.h:220
uint32_t reset_period
Definition: hpm_tsw_drv.h:219
Definition: hpm_tsw_drv.h:225
bool freset
Definition: hpm_tsw_drv.h:227
uint8_t paths
Definition: hpm_tsw_drv.h:229
uint32_t timeout_in_ms
Definition: hpm_tsw_drv.h:233
uint8_t history_len
Definition: hpm_tsw_drv.h:230
uint8_t fidx
Definition: hpm_tsw_drv.h:226
uint8_t algo
Definition: hpm_tsw_drv.h:231
uint8_t xrfunc
Definition: hpm_tsw_drv.h:232
bool taske_no_sequence
Definition: hpm_tsw_drv.h:228
tsw_cb_frer_latent_error_dectecton_config_t latent_error_dectection_config
Definition: hpm_tsw_drv.h:234
Definition: hpm_tsw_drv.h:211
tsw_cb_frer_xrfunc_config_t irfunc
Definition: hpm_tsw_drv.h:213
tsw_cb_frer_xrfunc_config_t srfunc
Definition: hpm_tsw_drv.h:214
uint8_t sid
Definition: hpm_tsw_drv.h:212
Definition: hpm_tsw_drv.h:206
uint8_t fidx
Definition: hpm_tsw_drv.h:208
bool fen
Definition: hpm_tsw_drv.h:207
Definition: hpm_tsw_drv.h:185
uint8_t vid
Definition: hpm_tsw_drv.h:189
uint32_t mach
Definition: hpm_tsw_drv.h:186
uint8_t pcp
Definition: hpm_tsw_drv.h:188
uint32_t macl
Definition: hpm_tsw_drv.h:187
Definition: hpm_tsw_drv.h:192
uint8_t mode
Definition: hpm_tsw_drv.h:197
int32_t seqnum
Definition: hpm_tsw_drv.h:200
uint8_t sid
Definition: hpm_tsw_drv.h:199
uint32_t match
Definition: hpm_tsw_drv.h:201
bool enable
Definition: hpm_tsw_drv.h:194
uint8_t smac
Definition: hpm_tsw_drv.h:196
uint8_t idx
Definition: hpm_tsw_drv.h:193
tsw_cb_stmid_active_mac_t active_mac
Definition: hpm_tsw_drv.h:203
uint8_t actctl
Definition: hpm_tsw_drv.h:198
tsw_cb_stmid_lookup_mac_t lookup_mac
Definition: hpm_tsw_drv.h:202
bool seqgen
Definition: hpm_tsw_drv.h:195
Definition: hpm_tsw_drv.h:179
uint32_t macl
Definition: hpm_tsw_drv.h:181
uint32_t mach
Definition: hpm_tsw_drv.h:180
uint32_t vid
Definition: hpm_tsw_drv.h:182
Definition: hpm_tsw_drv.h:153
uint8_t integer
Definition: hpm_tsw_drv.h:154
uint16_t fract
Definition: hpm_tsw_drv.h:155
Definition: hpm_tsw_drv.h:128
uint8_t maxlen
Definition: hpm_tsw_drv.h:131
bool irq
Definition: hpm_tsw_drv.h:130
bool soe
Definition: hpm_tsw_drv.h:129
Definition: hpm_tsw_drv.h:171
uint32_t vtime
Definition: hpm_tsw_drv.h:173
uint32_t frag_size
Definition: hpm_tsw_drv.h:174
bool link_error
Definition: hpm_tsw_drv.h:176
uint8_t tqueue
Definition: hpm_tsw_drv.h:172
bool dis_verificaiton
Definition: hpm_tsw_drv.h:175
Definition: hpm_tsw_drv.h:165
bool hld
Definition: hpm_tsw_drv.h:168
bool vok
Definition: hpm_tsw_drv.h:167
bool vfail
Definition: hpm_tsw_drv.h:166
Definition: hpm_tsw_drv.h:122
uint8_t * buffer
Definition: hpm_tsw_drv.h:124
uint8_t id
Definition: hpm_tsw_drv.h:123
uint16_t length
Definition: hpm_tsw_drv.h:125
Definition: hpm_tsw_drv.h:244
uint8_t list_len
Definition: hpm_tsw_drv.h:246
uint32_t cycle_time
Definition: hpm_tsw_drv.h:247
tsw_psfer_gate_control_list_entry_t * entry
Definition: hpm_tsw_drv.h:245
uint32_t base_time_ns
Definition: hpm_tsw_drv.h:248
uint32_t base_time_sec
Definition: hpm_tsw_drv.h:249
Definition: hpm_tsw_drv.h:237
uint32_t max_octets
Definition: hpm_tsw_drv.h:240
uint8_t state
Definition: hpm_tsw_drv.h:238
uint32_t interval
Definition: hpm_tsw_drv.h:241
uint8_t ipv
Definition: hpm_tsw_drv.h:239
Definition: hpm_tsw_drv.h:289
bool enable_size_checking
Definition: hpm_tsw_drv.h:292
bool enable_blocking
Definition: hpm_tsw_drv.h:291
uint8_t idx
Definition: hpm_tsw_drv.h:290
uint8_t stream_id
Definition: hpm_tsw_drv.h:299
uint32_t max_frame_size_in_octects
Definition: hpm_tsw_drv.h:300
bool filter_match_sid
Definition: hpm_tsw_drv.h:294
uint8_t pcp
Definition: hpm_tsw_drv.h:296
uint8_t gate_id
Definition: hpm_tsw_drv.h:298
uint8_t flow_meter_id
Definition: hpm_tsw_drv.h:297
bool filter_match_pcp
Definition: hpm_tsw_drv.h:295
bool enable_flow_meter
Definition: hpm_tsw_drv.h:293
Definition: hpm_tsw_drv.h:276
uint8_t idx
Definition: hpm_tsw_drv.h:277
bool reset
Definition: hpm_tsw_drv.h:278
tsw_psfp_flow_meter_xir_config_t eir
Definition: hpm_tsw_drv.h:284
uint32_t ebs_in_bits
Definition: hpm_tsw_drv.h:286
bool color_mode
Definition: hpm_tsw_drv.h:281
tsw_psfp_flow_meter_xir_config_t cir
Definition: hpm_tsw_drv.h:283
uint32_t cbs_in_bits
Definition: hpm_tsw_drv.h:285
bool coupling_flag
Definition: hpm_tsw_drv.h:282
bool mark_all_frames_red
Definition: hpm_tsw_drv.h:279
bool drop_on_yellow
Definition: hpm_tsw_drv.h:280
Definition: hpm_tsw_drv.h:271
uint8_t integer
Definition: hpm_tsw_drv.h:272
uint16_t fract
Definition: hpm_tsw_drv.h:273
Definition: hpm_tsw_drv.h:264
bool closed_due_to_invalid_rx
Definition: hpm_tsw_drv.h:267
uint8_t idx
Definition: hpm_tsw_drv.h:265
bool closed_due_to_octets_exceeded
Definition: hpm_tsw_drv.h:266
tsw_psfer_gate_control_list_config_t gate_control_list_config
Definition: hpm_tsw_drv.h:268
Definition: hpm_tsw_drv.h:256
bool closed_due_to_octets_exceeded
Definition: hpm_tsw_drv.h:258
uint8_t state
Definition: hpm_tsw_drv.h:260
uint8_t ipv
Definition: hpm_tsw_drv.h:261
bool closed_due_to_invalid_rx
Definition: hpm_tsw_drv.h:259
uint8_t idx
Definition: hpm_tsw_drv.h:257
Definition: hpm_tsw_drv.h:134
uint16_t oper_list_length
Definition: hpm_tsw_drv.h:136
uint16_t admin_list_length
Definition: hpm_tsw_drv.h:135
Definition: hpm_tsw_drv.h:145
uint32_t base_time_sec
Definition: hpm_tsw_drv.h:150
tsw_tas_controllist_entry_t * entry
Definition: hpm_tsw_drv.h:146
uint32_t cycle_time
Definition: hpm_tsw_drv.h:148
uint32_t entry_count
Definition: hpm_tsw_drv.h:147
uint32_t base_time_ns
Definition: hpm_tsw_drv.h:149
Definition: hpm_tsw_drv.h:139
uint8_t op
Definition: hpm_tsw_drv.h:141
uint8_t state
Definition: hpm_tsw_drv.h:140
uint32_t interval
Definition: hpm_tsw_drv.h:142
Definition: hpm_tsw_drv.h:158
uint32_t tstamphi
Definition: hpm_tsw_drv.h:160
uint32_t tstamplo
Definition: hpm_tsw_drv.h:159
uint8_t tqueue
Definition: hpm_tsw_drv.h:161
uint8_t tuser
Definition: hpm_tsw_drv.h:162
Definition: hpm_tsw_drv.h:72
uint32_t tx_hdr0
Definition: hpm_tsw_drv.h:74
uint32_t dest_port
Definition: hpm_tsw_drv.h:76
uint32_t tx_hdr2
Definition: hpm_tsw_drv.h:92
uint32_t tx_hdr3
Definition: hpm_tsw_drv.h:93
uint32_t tx_hdr1
Definition: hpm_tsw_drv.h:86
uint32_t queue
Definition: hpm_tsw_drv.h:78
uint32_t utag
Definition: hpm_tsw_drv.h:79
uint32_t cb
Definition: hpm_tsw_drv.h:88
uint32_t htype
Definition: hpm_tsw_drv.h:81