1/*
2 * Copyright (c) 2012, 2015, The Linux Foundation. All rights reserved.
3 * Permission to use, copy, modify, and/or distribute this software for
4 * any purpose with or without fee is hereby granted, provided that the
5 * above copyright notice and this permission notice appear in all copies.
6 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
7 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
8 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
9 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
10 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
11 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
12 * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
13 */
14
15
16
17#ifndef _HSL_API_H
18#define _HSL_API_H
19
20#ifdef __cplusplus
21extern "C"
22{
23#endif				/* __cplusplus */
24
25#include "fal.h"
26
27  /* Misc */
28#define MISC_FUNC_PROTOTYPE_DEF
29  typedef sw_error_t
30    (*hsl_arp_status_set) (a_uint32_t dev_id, a_bool_t enable);
31
32  typedef sw_error_t
33    (*hsl_arp_status_get) (a_uint32_t dev_id, a_bool_t * enable);
34
35  typedef sw_error_t
36    (*hsl_frame_max_size_set) (a_uint32_t dev_id, a_uint32_t size);
37
38  typedef sw_error_t
39    (*hsl_frame_max_size_get) (a_uint32_t dev_id, a_uint32_t * size);
40
41  typedef sw_error_t
42    (*hsl_port_unk_sa_cmd_set) (a_uint32_t dev_id, fal_port_t port_id,
43				fal_fwd_cmd_t cmd);
44
45  typedef sw_error_t
46    (*hsl_port_unk_sa_cmd_get) (a_uint32_t dev_id, fal_port_t port_id,
47				fal_fwd_cmd_t * cmd);
48
49  typedef sw_error_t
50    (*hsl_port_unk_uc_filter_set) (a_uint32_t dev_id, fal_port_t port_id,
51				   a_bool_t enable);
52
53  typedef sw_error_t
54    (*hsl_port_unk_uc_filter_get) (a_uint32_t dev_id, fal_port_t port_id,
55				   a_bool_t * enable);
56
57  typedef sw_error_t
58    (*hsl_port_unk_mc_filter_set) (a_uint32_t dev_id, fal_port_t port_id,
59				   a_bool_t enable);
60
61  typedef sw_error_t
62    (*hsl_port_unk_mc_filter_get) (a_uint32_t dev_id, fal_port_t port_id,
63				   a_bool_t * enable);
64
65  typedef sw_error_t
66    (*hsl_port_bc_filter_set) (a_uint32_t dev_id, fal_port_t port_id,
67			       a_bool_t enable);
68
69  typedef sw_error_t
70    (*hsl_port_bc_filter_get) (a_uint32_t dev_id, fal_port_t port_id,
71			       a_bool_t * enable);
72
73  typedef sw_error_t
74    (*hsl_cpu_port_status_set) (a_uint32_t dev_id, a_bool_t enable);
75
76  typedef sw_error_t
77    (*hsl_cpu_port_status_get) (a_uint32_t dev_id, a_bool_t * enable);
78
79  typedef sw_error_t
80    (*hsl_bc_to_cpu_port_set) (a_uint32_t dev_id, a_bool_t enable);
81
82  typedef sw_error_t
83    (*hsl_bc_to_cpu_port_get) (a_uint32_t dev_id, a_bool_t * enable);
84
85  typedef sw_error_t
86    (*hsl_port_dhcp_set) (a_uint32_t dev_id, fal_port_t port_id,
87			  a_bool_t enable);
88
89  typedef sw_error_t
90    (*hsl_pppoe_cmd_set) (a_uint32_t dev_id, fal_fwd_cmd_t cmd);
91
92  typedef sw_error_t
93    (*hsl_pppoe_cmd_get) (a_uint32_t dev_id, fal_fwd_cmd_t * cmd);
94
95  typedef sw_error_t
96    (*hsl_pppoe_status_set) (a_uint32_t dev_id, a_bool_t enable);
97
98  typedef sw_error_t
99    (*hsl_pppoe_status_get) (a_uint32_t dev_id, a_bool_t * enable);
100
101  typedef sw_error_t
102    (*hsl_port_dhcp_get) (a_uint32_t dev_id, fal_port_t port_id,
103			  a_bool_t * enable);
104
105  typedef sw_error_t
106    (*hsl_arp_cmd_set) (a_uint32_t dev_id, fal_fwd_cmd_t cmd);
107
108  typedef sw_error_t
109    (*hsl_arp_cmd_get) (a_uint32_t dev_id, fal_fwd_cmd_t * cmd);
110
111  typedef sw_error_t
112    (*hsl_eapol_cmd_set) (a_uint32_t dev_id, fal_fwd_cmd_t cmd);
113
114  typedef sw_error_t
115    (*hsl_eapol_cmd_get) (a_uint32_t dev_id, fal_fwd_cmd_t * cmd);
116
117  typedef sw_error_t
118    (*hsl_pppoe_session_add) (a_uint32_t dev_id, a_uint32_t session_id,
119			      a_bool_t strip_hdr);
120
121  typedef sw_error_t
122    (*hsl_pppoe_session_del) (a_uint32_t dev_id, a_uint32_t session_id);
123
124  typedef sw_error_t
125    (*hsl_pppoe_session_get) (a_uint32_t dev_id, a_uint32_t session_id,
126			      a_bool_t * strip_hdr);
127
128  typedef sw_error_t
129    (*hsl_eapol_status_set) (a_uint32_t dev_id, a_uint32_t port_id,
130			     a_bool_t enable);
131
132  typedef sw_error_t
133    (*hsl_eapol_status_get) (a_uint32_t dev_id, a_uint32_t port_id,
134			     a_bool_t * enable);
135
136  typedef sw_error_t
137    (*hsl_ripv1_status_set) (a_uint32_t dev_id, a_bool_t enable);
138
139  typedef sw_error_t
140    (*hsl_ripv1_status_get) (a_uint32_t dev_id, a_bool_t * enable);
141
142  typedef sw_error_t
143    (*hsl_port_arp_req_status_set) (a_uint32_t dev_id, fal_port_t port_id,
144				    a_bool_t enable);
145
146  typedef sw_error_t
147    (*hsl_port_arp_req_status_get) (a_uint32_t dev_id, fal_port_t port_id,
148				    a_bool_t * enable);
149
150  typedef sw_error_t
151    (*hsl_port_arp_ack_status_set) (a_uint32_t dev_id, fal_port_t port_id,
152				    a_bool_t enable);
153
154  typedef sw_error_t
155    (*hsl_port_arp_ack_status_get) (a_uint32_t dev_id, fal_port_t port_id,
156				    a_bool_t * enable);
157
158  typedef sw_error_t
159    (*hsl_pppoe_session_table_add) (a_uint32_t dev_id,
160				    fal_pppoe_session_t * session_tbl);
161
162  typedef sw_error_t
163    (*hsl_pppoe_session_table_del) (a_uint32_t dev_id,
164				    fal_pppoe_session_t * session_tbl);
165
166  typedef sw_error_t
167    (*hsl_pppoe_session_table_get) (a_uint32_t dev_id,
168				    fal_pppoe_session_t * session_tbl);
169
170  typedef sw_error_t
171    (*hsl_pppoe_session_id_set) (a_uint32_t dev_id, a_uint32_t index,
172				 a_uint32_t id);
173
174  typedef sw_error_t
175    (*hsl_pppoe_session_id_get) (a_uint32_t dev_id, a_uint32_t index,
176				 a_uint32_t * id);
177
178  typedef sw_error_t
179    (*hsl_intr_mask_set) (a_uint32_t dev_id, a_uint32_t intr_mask);
180
181  typedef sw_error_t
182    (*hsl_intr_mask_get) (a_uint32_t dev_id, a_uint32_t * intr_mask);
183
184  typedef sw_error_t
185    (*hsl_intr_status_get) (a_uint32_t dev_id, a_uint32_t * intr_status);
186
187  typedef sw_error_t
188    (*hsl_intr_status_clear) (a_uint32_t dev_id, a_uint32_t intr_status);
189
190  typedef sw_error_t
191    (*hsl_intr_port_link_mask_set) (a_uint32_t dev_id, fal_port_t port_id,
192				    a_uint32_t intr_mask);
193
194  typedef sw_error_t
195    (*hsl_intr_port_link_mask_get) (a_uint32_t dev_id, fal_port_t port_id,
196				    a_uint32_t * intr_mask);
197
198  typedef sw_error_t
199    (*hsl_intr_port_link_status_get) (a_uint32_t dev_id, fal_port_t port_id,
200				      a_uint32_t * intr_mask);
201
202  typedef sw_error_t
203    (*hsl_intr_mask_mac_linkchg_set) (a_uint32_t dev_id, fal_port_t port_id,
204				      a_bool_t enable);
205
206  typedef sw_error_t
207    (*hsl_intr_mask_mac_linkchg_get) (a_uint32_t dev_id, fal_port_t port_id,
208				      a_bool_t * enable);
209
210  typedef sw_error_t
211    (*hsl_intr_status_mac_linkchg_get) (a_uint32_t dev_id,
212					fal_pbmp_t * port_bitmap);
213
214  typedef sw_error_t (*hsl_intr_status_mac_linkchg_clear) (a_uint32_t dev_id);
215
216  typedef sw_error_t
217    (*hsl_cpu_vid_en_set) (a_uint32_t dev_id, a_bool_t enable);
218
219  typedef sw_error_t
220    (*hsl_cpu_vid_en_get) (a_uint32_t dev_id, a_bool_t * enable);
221
222  typedef sw_error_t
223    (*hsl_rtd_pppoe_en_set) (a_uint32_t dev_id, a_bool_t enable);
224
225  typedef sw_error_t
226    (*hsl_rtd_pppoe_en_get) (a_uint32_t dev_id, a_bool_t * enable);
227
228  typedef sw_error_t
229    (*hsl_global_macaddr_set) (a_uint32_t dev_id, fal_mac_addr_t * addr);
230
231  typedef sw_error_t
232    (*hsl_global_macaddr_get) (a_uint32_t dev_id, fal_mac_addr_t * addr);
233
234  typedef sw_error_t
235    (*hsl_lldp_status_set) (a_uint32_t dev_id, a_bool_t enable);
236
237  typedef sw_error_t
238    (*hsl_lldp_status_get) (a_uint32_t dev_id, a_bool_t * enable);
239
240  typedef sw_error_t
241    (*hsl_frame_crc_reserve_set) (a_uint32_t dev_id, a_bool_t enable);
242
243  typedef sw_error_t
244    (*hsl_frame_crc_reserve_get) (a_uint32_t dev_id, a_bool_t * enable);
245
246
247  typedef sw_error_t
248    (*hsl_register_dump) (a_uint32_t dev_id,a_uint32_t register_idx, fal_reg_dump_t * reg_dump);
249
250  typedef sw_error_t
251    (*hsl_debug_register_dump) (a_uint32_t dev_id, fal_debug_reg_dump_t * reg_dump);
252
253
254  /* Port Control */
255#define PORT_CONTROL_FUNC_PROTOTYPE_DEF
256  typedef sw_error_t
257    (*hsl_port_duplex_get) (a_uint32_t dev_id, fal_port_t port_id,
258			    fal_port_duplex_t * pduplex);
259
260  typedef sw_error_t
261    (*hsl_port_duplex_set) (a_uint32_t dev_id, fal_port_t port_id,
262			    fal_port_duplex_t duplex);
263
264  typedef sw_error_t
265    (*hsl_port_speed_get) (a_uint32_t dev_id, fal_port_t port_id,
266			   fal_port_speed_t * pspeed);
267
268  typedef sw_error_t
269    (*hsl_port_autoneg_status_get) (a_uint32_t dev_id, fal_port_t port_id,
270				    a_bool_t * status);
271
272  typedef sw_error_t
273    (*hsl_port_speed_set) (a_uint32_t dev_id, fal_port_t port_id,
274			   fal_port_speed_t speed);
275
276  typedef sw_error_t
277    (*hsl_port_autoneg_enable) (a_uint32_t dev_id, fal_port_t port_id);
278
279  typedef sw_error_t
280    (*hsl_port_autoneg_restart) (a_uint32_t dev_id, fal_port_t port_id);
281
282  typedef sw_error_t
283    (*hsl_port_autoneg_adv_get) (a_uint32_t dev_id, fal_port_t port_id,
284				 a_uint32_t * autoadv);
285
286  typedef sw_error_t
287    (*hsl_port_autoneg_adv_set) (a_uint32_t dev_id, fal_port_t port_id,
288				 a_uint32_t autoadv);
289
290  typedef sw_error_t
291    (*hsl_port_hdr_status_set) (a_uint32_t dev_id, fal_port_t port_id,
292				a_bool_t enable);
293
294  typedef sw_error_t
295    (*hsl_port_hdr_status_get) (a_uint32_t dev_id, fal_port_t port_id,
296				a_bool_t * enable);
297
298  typedef sw_error_t
299    (*hsl_port_flowctrl_set) (a_uint32_t dev_id, fal_port_t port_id,
300			      a_bool_t enable);
301
302  typedef sw_error_t
303    (*hsl_port_flowctrl_get) (a_uint32_t dev_id, fal_port_t port_id,
304			      a_bool_t * enable);
305typedef sw_error_t
306    (*hsl_port_flowctrl_thresh_set) (a_uint32_t dev_id, fal_port_t port_id,
307			      a_uint8_t  on, a_uint8_t  off);
308
309  typedef sw_error_t
310    (*hsl_port_flowctrl_forcemode_set) (a_uint32_t dev_id, fal_port_t port_id,
311					a_bool_t enable);
312
313  typedef sw_error_t
314    (*hsl_port_flowctrl_forcemode_get) (a_uint32_t dev_id, fal_port_t port_id,
315					a_bool_t * enable);
316
317  typedef sw_error_t
318    (*hsl_port_powersave_set) (a_uint32_t dev_id, fal_port_t port_id,
319			       a_bool_t enable);
320
321
322  typedef sw_error_t
323    (*hsl_port_powersave_get) (a_uint32_t dev_id, fal_port_t port_id,
324			       a_bool_t * enable);
325
326
327  typedef sw_error_t
328    (*hsl_port_hibernate_set) (a_uint32_t dev_id, fal_port_t port_id,
329			       a_bool_t enable);
330
331
332  typedef sw_error_t
333    (*hsl_port_hibernate_get) (a_uint32_t dev_id, fal_port_t port_id,
334			       a_bool_t * enable);
335
336
337  typedef sw_error_t
338    (*hsl_port_cdt) (a_uint32_t dev_id, fal_port_t port_id,
339		     a_uint32_t mdi_pair, fal_cable_status_t * cable_status,
340		     a_uint32_t * cable_len);
341
342  typedef sw_error_t
343    (*hsl_port_rxhdr_mode_set) (a_uint32_t dev_id, fal_port_t port_id,
344				fal_port_header_mode_t mode);
345
346  typedef sw_error_t
347    (*hsl_port_rxhdr_mode_get) (a_uint32_t dev_id, fal_port_t port_id,
348				fal_port_header_mode_t * mode);
349
350  typedef sw_error_t
351    (*hsl_port_txhdr_mode_set) (a_uint32_t dev_id, fal_port_t port_id,
352				fal_port_header_mode_t mode);
353
354  typedef sw_error_t
355    (*hsl_port_txhdr_mode_get) (a_uint32_t dev_id, fal_port_t port_id,
356				fal_port_header_mode_t * mode);
357
358  typedef sw_error_t
359    (*hsl_header_type_set) (a_uint32_t dev_id, a_bool_t enable,
360			    a_uint32_t type);
361
362  typedef sw_error_t
363    (*hsl_header_type_get) (a_uint32_t dev_id, a_bool_t * enable,
364			    a_uint32_t * type);
365
366  typedef sw_error_t
367    (*hsl_port_txmac_status_set) (a_uint32_t dev_id, fal_port_t port_id,
368				  a_bool_t enable);
369
370  typedef sw_error_t
371    (*hsl_port_txmac_status_get) (a_uint32_t dev_id, fal_port_t port_id,
372				  a_bool_t * enable);
373
374  typedef sw_error_t
375    (*hsl_port_rxmac_status_set) (a_uint32_t dev_id, fal_port_t port_id,
376				  a_bool_t enable);
377
378  typedef sw_error_t
379    (*hsl_port_rxmac_status_get) (a_uint32_t dev_id, fal_port_t port_id,
380				  a_bool_t * enable);
381
382  typedef sw_error_t
383    (*hsl_port_txfc_status_set) (a_uint32_t dev_id, fal_port_t port_id,
384				 a_bool_t enable);
385
386  typedef sw_error_t
387    (*hsl_port_txfc_status_get) (a_uint32_t dev_id, fal_port_t port_id,
388				 a_bool_t * enable);
389
390  typedef sw_error_t
391    (*hsl_port_rxfc_status_set) (a_uint32_t dev_id, fal_port_t port_id,
392				 a_bool_t enable);
393
394  typedef sw_error_t
395    (*hsl_port_rxfc_status_get) (a_uint32_t dev_id, fal_port_t port_id,
396				 a_bool_t * enable);
397
398  typedef sw_error_t
399    (*hsl_port_bp_status_set) (a_uint32_t dev_id, fal_port_t port_id,
400			       a_bool_t enable);
401
402  typedef sw_error_t
403    (*hsl_port_bp_status_get) (a_uint32_t dev_id, fal_port_t port_id,
404			       a_bool_t * enable);
405
406  typedef sw_error_t
407    (*hsl_port_link_forcemode_set) (a_uint32_t dev_id, fal_port_t port_id,
408				    a_bool_t enable);
409
410  typedef sw_error_t
411    (*hsl_port_link_forcemode_get) (a_uint32_t dev_id, fal_port_t port_id,
412				    a_bool_t * enable);
413
414  typedef sw_error_t
415    (*hsl_port_link_status_get) (a_uint32_t dev_id, fal_port_t port_id,
416				 a_bool_t * status);
417
418  typedef sw_error_t
419    (*hsl_ports_link_status_get) (a_uint32_t dev_id, a_uint32_t * status);
420
421  typedef sw_error_t
422    (*hsl_port_mac_loopback_set) (a_uint32_t dev_id, fal_port_t port_id,
423				  a_bool_t enable);
424
425  typedef sw_error_t
426    (*hsl_port_mac_loopback_get) (a_uint32_t dev_id, fal_port_t port_id,
427				  a_bool_t * enable);
428
429  typedef sw_error_t
430    (*hsl_port_congestion_drop_set) (a_uint32_t dev_id, fal_port_t port_id,
431				     a_uint32_t queue_id, a_bool_t enable);
432
433  typedef sw_error_t
434    (*hsl_port_congestion_drop_get) (a_uint32_t dev_id, fal_port_t port_id,
435				     a_uint32_t queue_id, a_bool_t * enable);
436
437  typedef sw_error_t
438    (*hsl_ring_flow_ctrl_thres_set) (a_uint32_t dev_id, a_uint32_t ring_id,
439				     a_uint8_t on_thres, a_uint8_t off_thres);
440
441  typedef sw_error_t
442    (*hsl_ring_flow_ctrl_thres_get) (a_uint32_t dev_id, a_uint32_t ring_id,
443				     a_uint8_t * on_thres,
444				     a_uint8_t * off_thres);
445
446  typedef sw_error_t
447    (*hsl_port_8023az_set) (a_uint32_t dev_id, fal_port_t port_id,
448			    a_bool_t enable);
449
450
451  typedef sw_error_t
452    (*hsl_port_8023az_get) (a_uint32_t dev_id, fal_port_t port_id,
453			    a_bool_t * enable);
454
455  typedef sw_error_t
456    (*hsl_port_mdix_set) (a_uint32_t dev_id, fal_port_t port_id,
457			  fal_port_mdix_mode_t mode);
458
459  typedef sw_error_t
460    (*hsl_port_mdix_get) (a_uint32_t dev_id, fal_port_t port_id,
461			  fal_port_mdix_mode_t * mode);
462
463  typedef sw_error_t
464    (*hsl_port_mdix_status_get) (a_uint32_t dev_id, fal_port_t port_id,
465				 fal_port_mdix_status_t * mode);
466
467  typedef sw_error_t
468    (*hsl_port_combo_prefer_medium_set) (a_uint32_t dev_id,
469					 fal_port_t port_id,
470					 fal_port_medium_t medium);
471
472  typedef sw_error_t
473    (*hsl_port_combo_prefer_medium_get) (a_uint32_t dev_id,
474					 fal_port_t port_id,
475					 fal_port_medium_t * medium);
476
477  typedef sw_error_t
478    (*hsl_port_combo_medium_status_get) (a_uint32_t dev_id,
479					 fal_port_t port_id,
480					 fal_port_medium_t * medium);
481
482  typedef sw_error_t
483    (*hsl_port_combo_fiber_mode_set) (a_uint32_t dev_id, fal_port_t port_id,
484				      fal_port_fiber_mode_t mode);
485
486  typedef sw_error_t
487    (*hsl_port_combo_fiber_mode_get) (a_uint32_t dev_id, fal_port_t port_id,
488				      fal_port_fiber_mode_t * mode);
489
490  typedef sw_error_t
491    (*hsl_port_local_loopback_set) (a_uint32_t dev_id, fal_port_t port_id,
492				    a_bool_t enable);
493
494  typedef sw_error_t
495    (*hsl_port_local_loopback_get) (a_uint32_t dev_id, fal_port_t port_id,
496				    a_bool_t * enable);
497
498  typedef sw_error_t
499    (*hsl_port_remote_loopback_set) (a_uint32_t dev_id, fal_port_t port_id,
500				     a_bool_t enable);
501
502  typedef sw_error_t
503    (*hsl_port_remote_loopback_get) (a_uint32_t dev_id, fal_port_t port_id,
504				     a_bool_t * enable);
505
506  typedef sw_error_t
507    (*hsl_port_reset) (a_uint32_t dev_id, fal_port_t port_id);
508
509  typedef sw_error_t
510    (*hsl_port_power_off) (a_uint32_t dev_id, fal_port_t port_id);
511
512  typedef sw_error_t
513    (*hsl_port_power_on) (a_uint32_t dev_id, fal_port_t port_id);
514
515  typedef sw_error_t
516    (*hsl_port_phy_id_get) (a_uint32_t dev_id, fal_port_t port_id,a_uint16_t * org_id, a_uint16_t * rev_id);
517
518  typedef sw_error_t
519    (*hsl_port_wol_status_set) (a_uint32_t dev_id, fal_port_t port_id,a_bool_t enable);
520
521  typedef sw_error_t
522    (*hsl_port_wol_status_get) (a_uint32_t dev_id, fal_port_t port_id,a_bool_t *enable);
523
524  typedef sw_error_t
525    (*hsl_port_magic_frame_mac_set) (a_uint32_t dev_id, fal_port_t port_id,fal_mac_addr_t * mac);
526
527  typedef sw_error_t
528    (*hsl_port_magic_frame_mac_get) (a_uint32_t dev_id, fal_port_t port_id,fal_mac_addr_t * mac);
529
530  typedef sw_error_t
531    (*hsl_port_interface_mode_set) (a_uint32_t dev_id, fal_port_t port_id,
532			      fal_port_interface_mode_t mode);
533
534  typedef sw_error_t
535    (*hsl_port_interface_mode_get) (a_uint32_t dev_id, fal_port_t port_id,
536			      fal_port_interface_mode_t * mode);
537
538  typedef sw_error_t
539    (*hsl_port_interface_mode_status_get) (a_uint32_t dev_id, fal_port_t port_id,
540			      fal_port_interface_mode_t * mode);
541   typedef sw_error_t
542    (*hsl_port_counter_set) (a_uint32_t dev_id, fal_port_t port_id,
543			    a_bool_t enable);
544  typedef sw_error_t
545    (*hsl_port_counter_get) (a_uint32_t dev_id, fal_port_t port_id,
546			    a_bool_t * enable);
547    typedef sw_error_t
548    (*hsl_port_counter_show) (a_uint32_t dev_id, fal_port_t port_id,
549			      fal_port_counter_info_t * counter_info);
550  /* VLAN */
551#define VLAN_FUNC_PROTOTYPE_DEF
552  typedef sw_error_t
553    (*hsl_vlan_entry_append) (a_uint32_t dev_id,
554			      const fal_vlan_t * vlan_entry);
555
556  typedef sw_error_t
557    (*hsl_vlan_create) (a_uint32_t dev_id, a_uint32_t vlan_id);
558
559  typedef sw_error_t
560    (*hsl_vlan_next) (a_uint32_t dev_id, a_uint32_t vlan_id,
561		      fal_vlan_t * p_vlan);
562
563  typedef sw_error_t
564    (*hsl_vlan_find) (a_uint32_t dev_id, a_uint32_t vlan_id,
565		      fal_vlan_t * p_vlan);
566
567  typedef sw_error_t
568    (*hsl_vlan_member_update) (a_uint32_t dev_id, a_uint32_t vlan_id,
569			       fal_pbmp_t member, fal_pbmp_t u_member);
570
571  typedef sw_error_t
572    (*hsl_vlan_delete) (a_uint32_t dev_id, a_uint32_t vlan_id);
573
574  typedef sw_error_t (*hsl_vlan_flush) (a_uint32_t dev_id);
575
576  typedef sw_error_t
577    (*hsl_vlan_fid_set) (a_uint32_t dev_id, a_uint32_t vlan_id,
578			 a_uint32_t fid);
579
580  typedef sw_error_t
581    (*hsl_vlan_fid_get) (a_uint32_t dev_id, a_uint32_t vlan_id,
582			 a_uint32_t * fid);
583
584  typedef sw_error_t
585    (*hsl_vlan_member_add) (a_uint32_t dev_id, a_uint32_t vlan_id,
586			    fal_port_t port_id, fal_pt_1q_egmode_t port_info);
587
588  typedef sw_error_t
589    (*hsl_vlan_member_del) (a_uint32_t dev_id, a_uint32_t vlan_id,
590			    fal_port_t port_id);
591
592  typedef sw_error_t
593    (*hsl_vlan_learning_state_set) (a_uint32_t dev_id, a_uint32_t vlan_id,
594				    a_bool_t enable);
595
596  typedef sw_error_t
597    (*hsl_vlan_learning_state_get) (a_uint32_t dev_id, a_uint32_t vlan_id,
598				    a_bool_t * enable);
599
600  /* Port Vlan */
601#define PORT_VLAN_FUNC_PROTOTYPE_DEF
602  typedef sw_error_t
603    (*hsl_port_1qmode_get) (a_uint32_t dev_id, fal_port_t port_id,
604			    fal_pt_1qmode_t * pport_1qmode);
605
606  typedef sw_error_t
607    (*hsl_port_1qmode_set) (a_uint32_t dev_id, fal_port_t port_id,
608			    fal_pt_1qmode_t port_1qmode);
609
610  typedef sw_error_t
611    (*hsl_port_egvlanmode_get) (a_uint32_t dev_id, fal_port_t port_id,
612				fal_pt_1q_egmode_t * pport_egvlanmode);
613
614  typedef sw_error_t
615    (*hsl_port_egvlanmode_set) (a_uint32_t dev_id, fal_port_t port_id,
616				fal_pt_1q_egmode_t port_egvlanmode);
617
618  typedef sw_error_t
619    (*hsl_portvlan_member_add) (a_uint32_t dev_id, fal_port_t port_id,
620				a_uint32_t mem_port_id);
621
622  typedef sw_error_t
623    (*hsl_portvlan_member_del) (a_uint32_t dev_id, fal_port_t port_id,
624				a_uint32_t mem_port_id);
625
626  typedef sw_error_t
627    (*hsl_portvlan_member_update) (a_uint32_t dev_id, fal_port_t port_id,
628				   fal_pbmp_t mem_port_map);
629
630  typedef sw_error_t
631    (*hsl_portvlan_member_get) (a_uint32_t dev_id, fal_port_t port_id,
632				fal_pbmp_t * mem_port_map);
633
634  typedef sw_error_t
635    (*hsl_port_nestvlan_set) (a_uint32_t dev_id, fal_port_t port_id,
636			      a_bool_t enable);
637
638  typedef sw_error_t
639    (*hsl_port_nestvlan_get) (a_uint32_t dev_id, fal_port_t port_id,
640			      a_bool_t * enable);
641
642  typedef sw_error_t
643    (*hsl_nestvlan_tpid_set) (a_uint32_t dev_id, a_uint32_t tpid);
644
645  typedef sw_error_t
646    (*hsl_nestvlan_tpid_get) (a_uint32_t dev_id, a_uint32_t * tpid);
647
648  typedef sw_error_t
649    (*hsl_port_default_vid_set) (a_uint32_t dev_id, fal_port_t port_id,
650				 a_uint32_t vid);
651
652  typedef sw_error_t
653    (*hsl_port_default_vid_get) (a_uint32_t dev_id, fal_port_t port_id,
654				 a_uint32_t * vid);
655
656  typedef sw_error_t
657    (*hsl_port_force_default_vid_set) (a_uint32_t dev_id,
658				       fal_port_t port_id, a_bool_t enable);
659
660  typedef sw_error_t
661    (*hsl_port_force_default_vid_get) (a_uint32_t dev_id,
662				       fal_port_t port_id, a_bool_t * enable);
663
664  typedef sw_error_t
665    (*hsl_port_force_portvlan_set) (a_uint32_t dev_id, fal_port_t port_id,
666				    a_bool_t enable);
667
668  typedef sw_error_t
669    (*hsl_port_force_portvlan_get) (a_uint32_t dev_id, fal_port_t port_id,
670				    a_bool_t * enable);
671
672  typedef sw_error_t
673    (*hsl_port_invlan_mode_set) (a_uint32_t dev_id, fal_port_t port_id,
674				 fal_pt_invlan_mode_t mode);
675
676  typedef sw_error_t
677    (*hsl_port_invlan_mode_get) (a_uint32_t dev_id, fal_port_t port_id,
678				 fal_pt_invlan_mode_t * mode);
679
680  typedef sw_error_t
681    (*hsl_port_tls_set) (a_uint32_t dev_id, fal_port_t port_id,
682			 a_bool_t enable);
683
684  typedef sw_error_t
685    (*hsl_port_tls_get) (a_uint32_t dev_id, fal_port_t port_id,
686			 a_bool_t * enable);
687
688  typedef sw_error_t
689    (*hsl_port_pri_propagation_set) (a_uint32_t dev_id, fal_port_t port_id,
690				     a_bool_t enable);
691
692  typedef sw_error_t
693    (*hsl_port_pri_propagation_get) (a_uint32_t dev_id, fal_port_t port_id,
694				     a_bool_t * enable);
695
696  typedef sw_error_t
697    (*hsl_port_default_svid_set) (a_uint32_t dev_id, fal_port_t port_id,
698				  a_uint32_t vid);
699
700  typedef sw_error_t
701    (*hsl_port_default_svid_get) (a_uint32_t dev_id, fal_port_t port_id,
702				  a_uint32_t * vid);
703
704  typedef sw_error_t
705    (*hsl_port_default_cvid_set) (a_uint32_t dev_id, fal_port_t port_id,
706				  a_uint32_t vid);
707
708  typedef sw_error_t
709    (*hsl_port_default_cvid_get) (a_uint32_t dev_id, fal_port_t port_id,
710				  a_uint32_t * vid);
711
712  typedef sw_error_t
713    (*hsl_port_vlan_propagation_set) (a_uint32_t dev_id, fal_port_t port_id,
714				      fal_vlan_propagation_mode_t mode);
715
716  typedef sw_error_t
717    (*hsl_port_vlan_propagation_get) (a_uint32_t dev_id, fal_port_t port_id,
718				      fal_vlan_propagation_mode_t * mode);
719
720  typedef sw_error_t
721    (*hsl_port_vlan_trans_add) (a_uint32_t dev_id, fal_port_t port_id,
722				fal_vlan_trans_entry_t * entry);
723
724  typedef sw_error_t
725    (*hsl_port_vlan_trans_del) (a_uint32_t dev_id, fal_port_t port_id,
726				fal_vlan_trans_entry_t * entry);
727
728  typedef sw_error_t
729    (*hsl_port_vlan_trans_get) (a_uint32_t dev_id, fal_port_t port_id,
730				fal_vlan_trans_entry_t * entry);
731
732  typedef sw_error_t
733    (*hsl_qinq_mode_set) (a_uint32_t dev_id, fal_qinq_mode_t mode);
734
735  typedef sw_error_t
736    (*hsl_qinq_mode_get) (a_uint32_t dev_id, fal_qinq_mode_t * mode);
737
738  typedef sw_error_t
739    (*hsl_port_qinq_role_set) (a_uint32_t dev_id, fal_port_t port_id,
740			       fal_qinq_port_role_t role);
741
742  typedef sw_error_t
743    (*hsl_port_qinq_role_get) (a_uint32_t dev_id, fal_port_t port_id,
744			       fal_qinq_port_role_t * role);
745
746  typedef sw_error_t
747    (*hsl_port_vlan_trans_iterate) (a_uint32_t dev_id, fal_port_t port_id,
748				    a_uint32_t * iterator,
749				    fal_vlan_trans_entry_t * entry);
750
751  typedef sw_error_t
752    (*hsl_port_mac_vlan_xlt_set) (a_uint32_t dev_id, fal_port_t port_id,
753				  a_bool_t enable);
754
755  typedef sw_error_t
756    (*hsl_port_mac_vlan_xlt_get) (a_uint32_t dev_id, fal_port_t port_id,
757				  a_bool_t * enable);
758
759  typedef sw_error_t
760    (*hsl_netisolate_set) (a_uint32_t dev_id, a_uint32_t enable);
761
762  typedef sw_error_t
763    (*hsl_netisolate_get) (a_uint32_t dev_id, a_uint32_t * enable);
764
765  typedef sw_error_t
766    (*hsl_eg_trans_filter_bypass_en_set) (a_uint32_t dev_id,
767					  a_uint32_t enable);
768
769  typedef sw_error_t
770    (*hsl_eg_trans_filter_bypass_en_get) (a_uint32_t dev_id,
771					  a_uint32_t * enable);
772
773  typedef sw_error_t
774    (*hsl_port_vrf_id_set) (a_uint32_t dev_id, fal_port_t port_id,
775			    a_uint32_t vrf_id);
776
777  typedef sw_error_t
778    (*hsl_port_vrf_id_get) (a_uint32_t dev_id, fal_port_t port_id,
779			    a_uint32_t * vrf_id);
780
781  /* FDB */
782#define FDB_FUNC_PROTOTYPE_DEF
783  typedef sw_error_t
784    (*hsl_fdb_add) (a_uint32_t dev_id, const fal_fdb_entry_t * entry);
785
786  typedef sw_error_t
787    (*hsl_fdb_rfs_set) (a_uint32_t dev_id, const fal_fdb_rfs_t * entry);
788
789  typedef sw_error_t
790    (*hsl_fdb_rfs_del) (a_uint32_t dev_id, const fal_fdb_rfs_t * entry);
791
792  typedef sw_error_t (*hsl_fdb_del_all) (a_uint32_t dev_id, a_uint32_t flag);
793
794  typedef sw_error_t
795    (*hsl_fdb_del_by_port) (a_uint32_t dev_id, a_uint32_t port_id,
796			    a_uint32_t flag);
797
798  typedef sw_error_t
799    (*hsl_fdb_del_by_mac) (a_uint32_t dev_id, const fal_fdb_entry_t * addr);
800
801  typedef sw_error_t
802    (*hsl_fdb_first) (a_uint32_t dev_id, fal_fdb_entry_t * entry);
803
804  typedef sw_error_t
805    (*hsl_fdb_next) (a_uint32_t dev_id, fal_fdb_entry_t * entry);
806
807  typedef sw_error_t
808    (*hsl_fdb_find) (a_uint32_t dev_id, fal_fdb_entry_t * entry);
809
810  typedef sw_error_t
811    (*hsl_fdb_port_learn_set) (a_uint32_t dev_id, fal_port_t port_id,
812			       a_bool_t enable);
813
814  typedef sw_error_t
815    (*hsl_fdb_port_learn_get) (a_uint32_t dev_id, fal_port_t port_id,
816			       a_bool_t * enable);
817
818  typedef sw_error_t
819    (*hsl_fdb_age_ctrl_set) (a_uint32_t dev_id, a_bool_t enable);
820
821  typedef sw_error_t
822    (*hsl_fdb_age_ctrl_get) (a_uint32_t dev_id, a_bool_t * enable);
823
824  typedef sw_error_t
825    (*hsl_fdb_vlan_ivl_svl_set) (a_uint32_t dev_id, fal_fdb_smode smode);
826
827  typedef sw_error_t
828    (*hsl_fdb_vlan_ivl_svl_get) (a_uint32_t dev_id, fal_fdb_smode * smode);
829
830  typedef sw_error_t
831    (*hsl_fdb_age_time_set) (a_uint32_t dev_id, a_uint32_t * time);
832
833  typedef sw_error_t
834    (*hsl_fdb_age_time_get) (a_uint32_t dev_id, a_uint32_t * time);
835
836  typedef sw_error_t
837    (*hsl_fdb_iterate) (a_uint32_t dev_id, a_uint32_t * iterator,
838			fal_fdb_entry_t * entry);
839
840  typedef sw_error_t
841    (*hsl_fdb_extend_next) (a_uint32_t dev_id, fal_fdb_op_t * op,
842			    fal_fdb_entry_t * entry);
843
844  typedef sw_error_t
845    (*hsl_fdb_extend_first) (a_uint32_t dev_id, fal_fdb_op_t * option,
846			     fal_fdb_entry_t * entry);
847
848  typedef sw_error_t
849    (*hsl_fdb_transfer) (a_uint32_t dev_id, fal_port_t old_port,
850			 fal_port_t new_port, a_uint32_t fid,
851			 fal_fdb_op_t * option);
852
853  typedef sw_error_t
854    (*hsl_port_fdb_learn_limit_set) (a_uint32_t dev_id, fal_port_t port_id,
855				     a_bool_t enable, a_uint32_t cnt);
856
857  typedef sw_error_t
858    (*hsl_port_fdb_learn_limit_get) (a_uint32_t dev_id, fal_port_t port_id,
859				     a_bool_t * enable, a_uint32_t * cnt);
860
861  typedef sw_error_t
862    (*hsl_port_fdb_learn_exceed_cmd_set) (a_uint32_t dev_id,
863					  fal_port_t port_id,
864					  fal_fwd_cmd_t cmd);
865
866  typedef sw_error_t
867    (*hsl_port_fdb_learn_exceed_cmd_get) (a_uint32_t dev_id,
868					  fal_port_t port_id,
869					  fal_fwd_cmd_t * cmd);
870
871  typedef sw_error_t
872    (*hsl_fdb_learn_limit_set) (a_uint32_t dev_id, a_bool_t enable,
873				a_uint32_t cnt);
874
875  typedef sw_error_t
876    (*hsl_fdb_learn_limit_get) (a_uint32_t dev_id, a_bool_t * enable,
877				a_uint32_t * cnt);
878
879  typedef sw_error_t
880    (*hsl_fdb_learn_exceed_cmd_set) (a_uint32_t dev_id, fal_fwd_cmd_t cmd);
881
882  typedef sw_error_t
883    (*hsl_fdb_learn_exceed_cmd_get) (a_uint32_t dev_id, fal_fwd_cmd_t * cmd);
884
885  typedef sw_error_t
886    (*hsl_fdb_resv_add) (a_uint32_t dev_id, fal_fdb_entry_t * entry);
887
888  typedef sw_error_t
889    (*hsl_fdb_resv_del) (a_uint32_t dev_id, fal_fdb_entry_t * entry);
890
891  typedef sw_error_t
892    (*hsl_fdb_resv_find) (a_uint32_t dev_id, fal_fdb_entry_t * entry);
893
894  typedef sw_error_t
895    (*hsl_fdb_resv_iterate) (a_uint32_t dev_id, a_uint32_t * iterator,
896			     fal_fdb_entry_t * entry);
897
898  typedef sw_error_t
899    (*hsl_fdb_port_learn_static_set) (a_uint32_t dev_id, fal_port_t port_id,
900				      a_bool_t enable);
901
902  typedef sw_error_t
903    (*hsl_fdb_port_learn_static_get) (a_uint32_t dev_id, fal_port_t port_id,
904				      a_bool_t * enable);
905
906  typedef sw_error_t
907    (*hsl_fdb_port_add) (a_uint32_t dev_id, a_uint32_t fid,
908			 fal_mac_addr_t * addr, fal_port_t port_id);
909
910  typedef sw_error_t
911    (*hsl_fdb_port_del) (a_uint32_t dev_id, a_uint32_t fid,
912			 fal_mac_addr_t * addr, fal_port_t port_id);
913
914  /* QOS */
915#define QOS_FUNC_PROTOTYPE_DEF
916  typedef sw_error_t
917    (*hsl_cosmap_up_queue_set) (a_uint32_t dev_id, a_uint32_t up,
918				fal_queue_t queue);
919
920  typedef sw_error_t
921    (*hsl_cosmap_up_queue_get) (a_uint32_t dev_id, a_uint32_t up,
922				fal_queue_t * queue);
923
924  typedef sw_error_t
925    (*hsl_cosmap_dscp_queue_set) (a_uint32_t dev_id, a_uint32_t dscp,
926				  fal_queue_t queue);
927
928  typedef sw_error_t
929    (*hsl_cosmap_dscp_queue_get) (a_uint32_t dev_id, a_uint32_t dscp,
930				  fal_queue_t * queue);
931
932  typedef sw_error_t
933    (*hsl_qos_port_mode_set) (a_uint32_t dev_id, fal_port_t port_id,
934			      fal_qos_mode_t mode, a_bool_t enable);
935
936  typedef sw_error_t
937    (*hsl_qos_port_mode_get) (a_uint32_t dev_id, fal_port_t port_id,
938			      fal_qos_mode_t mode, a_bool_t * enable);
939
940  typedef sw_error_t
941    (*hsl_qos_port_mode_pri_set) (a_uint32_t dev_id, fal_port_t port_id,
942				  fal_qos_mode_t mode, a_uint32_t pri);
943
944  typedef sw_error_t
945    (*hsl_qos_port_mode_pri_get) (a_uint32_t dev_id, fal_port_t port_id,
946				  fal_qos_mode_t mode, a_uint32_t * pri);
947
948  typedef sw_error_t
949    (*hsl_qos_port_default_up_set) (a_uint32_t dev_id, fal_port_t port_id,
950				    a_uint32_t up);
951
952  typedef sw_error_t
953    (*hsl_qos_port_default_up_get) (a_uint32_t dev_id, fal_port_t port_id,
954				    a_uint32_t * up);
955
956  typedef sw_error_t
957    (*hsl_qos_sch_mode_set) (a_uint32_t dev_id,
958			     fal_sch_mode_t mode, const a_uint32_t weight[]);
959
960  typedef sw_error_t
961    (*hsl_qos_sch_mode_get) (a_uint32_t dev_id,
962			     fal_sch_mode_t * mode, a_uint32_t weight[]);
963
964  typedef sw_error_t
965    (*hsl_qos_queue_tx_buf_status_set) (a_uint32_t dev_id, fal_port_t port_id,
966					a_bool_t enable);
967
968  typedef sw_error_t
969    (*hsl_qos_queue_tx_buf_status_get) (a_uint32_t dev_id, fal_port_t port_id,
970					a_bool_t * enable);
971
972  typedef sw_error_t
973    (*hsl_qos_queue_tx_buf_nr_set) (a_uint32_t dev_id, fal_port_t port_id,
974				    a_uint32_t queue_id, a_uint32_t * number);
975
976  typedef sw_error_t
977    (*hsl_qos_queue_tx_buf_nr_get) (a_uint32_t dev_id, fal_port_t port_id,
978				    a_uint32_t queue_id, a_uint32_t * number);
979
980  typedef sw_error_t
981    (*hsl_qos_port_tx_buf_status_set) (a_uint32_t dev_id, fal_port_t port_id,
982				       a_bool_t enable);
983
984  typedef sw_error_t
985    (*hsl_qos_port_tx_buf_status_get) (a_uint32_t dev_id, fal_port_t port_id,
986				       a_bool_t * enable);
987
988  typedef sw_error_t
989    (*hsl_qos_port_red_en_set) (a_uint32_t dev_id, fal_port_t port_id,
990				a_bool_t enable);
991
992  typedef sw_error_t
993    (*hsl_qos_port_red_en_get) (a_uint32_t dev_id, fal_port_t port_id,
994				a_bool_t * enable);
995
996  typedef sw_error_t
997    (*hsl_qos_port_tx_buf_nr_set) (a_uint32_t dev_id, fal_port_t port_id,
998				   a_uint32_t * number);
999
1000  typedef sw_error_t
1001    (*hsl_qos_port_tx_buf_nr_get) (a_uint32_t dev_id, fal_port_t port_id,
1002				   a_uint32_t * number);
1003
1004  typedef sw_error_t
1005    (*hsl_qos_port_rx_buf_nr_set) (a_uint32_t dev_id, fal_port_t port_id,
1006				   a_uint32_t * number);
1007
1008  typedef sw_error_t
1009    (*hsl_qos_port_rx_buf_nr_get) (a_uint32_t dev_id, fal_port_t port_id,
1010				   a_uint32_t * number);
1011
1012  typedef sw_error_t
1013    (*hsl_qos_port_sch_mode_set) (a_uint32_t dev_id, a_uint32_t port_id,
1014				  fal_sch_mode_t mode,
1015				  const a_uint32_t weight[]);
1016
1017  typedef sw_error_t
1018    (*hsl_qos_port_sch_mode_get) (a_uint32_t dev_id, a_uint32_t port_id,
1019				  fal_sch_mode_t * mode, a_uint32_t weight[]);
1020
1021  typedef sw_error_t
1022    (*hsl_qos_port_default_spri_set) (a_uint32_t dev_id, fal_port_t port_id,
1023				      a_uint32_t spri);
1024
1025  typedef sw_error_t
1026    (*hsl_qos_port_default_spri_get) (a_uint32_t dev_id, fal_port_t port_id,
1027				      a_uint32_t * spri);
1028
1029  typedef sw_error_t
1030    (*hsl_qos_port_default_cpri_set) (a_uint32_t dev_id, fal_port_t port_id,
1031				      a_uint32_t cpri);
1032
1033  typedef sw_error_t
1034    (*hsl_qos_port_default_cpri_get) (a_uint32_t dev_id, fal_port_t port_id,
1035				      a_uint32_t * cpri);
1036
1037  typedef sw_error_t
1038    (*hsl_qos_port_force_spri_status_set) (a_uint32_t dev_id,
1039					   fal_port_t port_id,
1040					   a_bool_t enable);
1041
1042  typedef sw_error_t
1043    (*hsl_qos_port_force_spri_status_get) (a_uint32_t dev_id,
1044					   fal_port_t port_id,
1045					   a_bool_t * enable);
1046
1047  typedef sw_error_t
1048    (*hsl_qos_port_force_cpri_status_set) (a_uint32_t dev_id,
1049					   fal_port_t port_id,
1050					   a_bool_t enable);
1051
1052  typedef sw_error_t
1053    (*hsl_qos_port_force_cpri_status_get) (a_uint32_t dev_id,
1054					   fal_port_t port_id,
1055					   a_bool_t * enable);
1056
1057  typedef sw_error_t
1058    (*hsl_qos_queue_remark_table_set) (a_uint32_t dev_id, fal_port_t port_id,
1059				       fal_queue_t queue_id,
1060				       a_uint32_t tbl_id, a_bool_t enable);
1061
1062  typedef sw_error_t
1063    (*hsl_qos_queue_remark_table_get) (a_uint32_t dev_id, fal_port_t port_id,
1064				       fal_queue_t queue_id,
1065				       a_uint32_t * tbl_id,
1066				       a_bool_t * enable);
1067
1068  /* Rate */
1069#define RATE_FUNC_PROTOTYPE_DEF
1070  typedef sw_error_t
1071    (*hsl_rate_queue_egrl_set) (a_uint32_t dev_id, fal_port_t port_id,
1072				a_uint32_t queue_id, a_uint32_t * speed,
1073				a_bool_t enable);
1074
1075  typedef sw_error_t
1076    (*hsl_rate_queue_egrl_get) (a_uint32_t dev_id, fal_port_t port_id,
1077				a_uint32_t queue_id, a_uint32_t * speed,
1078				a_bool_t * enable);
1079
1080  typedef sw_error_t
1081    (*hsl_rate_port_egrl_set) (a_uint32_t dev_id, fal_port_t port_id,
1082			       a_uint32_t * speed, a_bool_t enable);
1083
1084  typedef sw_error_t
1085    (*hsl_rate_port_egrl_get) (a_uint32_t dev_id, fal_port_t port_id,
1086			       a_uint32_t * speed, a_bool_t * enable);
1087
1088  typedef sw_error_t
1089    (*hsl_rate_port_inrl_set) (a_uint32_t dev_id, fal_port_t port_id,
1090			       a_uint32_t * speed, a_bool_t enable);
1091
1092  typedef sw_error_t
1093    (*hsl_rate_port_inrl_get) (a_uint32_t dev_id, fal_port_t port_id,
1094			       a_uint32_t * speed, a_bool_t * enable);
1095
1096  typedef sw_error_t
1097    (*hsl_storm_ctrl_frame_set) (a_uint32_t dev_id, fal_port_t port_id,
1098				 fal_storm_type_t storm_type,
1099				 a_bool_t enable);
1100
1101  typedef sw_error_t
1102    (*hsl_storm_ctrl_frame_get) (a_uint32_t dev_id, fal_port_t port_id,
1103				 fal_storm_type_t storm_type,
1104				 a_bool_t * enable);
1105
1106  typedef sw_error_t
1107    (*hsl_storm_ctrl_rate_set) (a_uint32_t dev_id, fal_port_t port_id,
1108				a_uint32_t * rate);
1109
1110  typedef sw_error_t
1111    (*hsl_storm_ctrl_rate_get) (a_uint32_t dev_id, fal_port_t port_id,
1112				a_uint32_t * rate);
1113
1114  typedef sw_error_t
1115    (*hsl_rate_port_policer_set) (a_uint32_t dev_id, fal_port_t port_id,
1116				  fal_port_policer_t * policer);
1117
1118  typedef sw_error_t
1119    (*hsl_rate_port_policer_get) (a_uint32_t dev_id, fal_port_t port_id,
1120				  fal_port_policer_t * policer);
1121
1122  typedef sw_error_t
1123    (*hsl_rate_port_shaper_set) (a_uint32_t dev_id, fal_port_t port_id,
1124				 a_bool_t enable,
1125				 fal_egress_shaper_t * shaper);
1126
1127  typedef sw_error_t
1128    (*hsl_rate_port_shaper_get) (a_uint32_t dev_id, fal_port_t port_id,
1129				 a_bool_t * enable,
1130				 fal_egress_shaper_t * shaper);
1131
1132  typedef sw_error_t
1133    (*hsl_rate_queue_shaper_set) (a_uint32_t dev_id, fal_port_t port_id,
1134				  fal_queue_t queue_id, a_bool_t enable,
1135				  fal_egress_shaper_t * shaper);
1136
1137  typedef sw_error_t
1138    (*hsl_rate_queue_shaper_get) (a_uint32_t dev_id, fal_port_t port_id,
1139				  fal_queue_t queue_id, a_bool_t * enable,
1140				  fal_egress_shaper_t * shaper);
1141
1142  typedef sw_error_t
1143    (*hsl_rate_acl_policer_set) (a_uint32_t dev_id, a_uint32_t policer_id,
1144				 fal_acl_policer_t * policer);
1145
1146  typedef sw_error_t
1147    (*hsl_rate_acl_policer_get) (a_uint32_t dev_id, a_uint32_t policer_id,
1148				 fal_acl_policer_t * policer);
1149
1150  typedef sw_error_t
1151    (*hsl_rate_port_add_rate_byte_set) (a_uint32_t dev_id, fal_port_t port_id,
1152					a_uint32_t number);
1153
1154  typedef sw_error_t
1155    (*hsl_rate_port_add_rate_byte_get) (a_uint32_t dev_id, fal_port_t port_id,
1156					a_uint32_t * number);
1157  typedef sw_error_t
1158    (*hsl_rate_port_gol_flow_en_set) (a_uint32_t dev_id, fal_port_t port_id,
1159				      a_bool_t enable);
1160
1161  typedef sw_error_t
1162    (*hsl_rate_port_gol_flow_en_get) (a_uint32_t dev_id, fal_port_t port_id,
1163				      a_bool_t * enable);
1164
1165  /* Mirror */
1166#define MIRROR_FUNC_PROTOTYPE_DEF
1167  typedef sw_error_t
1168    (*hsl_mirr_analysis_port_set) (a_uint32_t dev_id, fal_port_t port_id);
1169
1170  typedef sw_error_t
1171    (*hsl_mirr_analysis_port_get) (a_uint32_t dev_id, fal_port_t * port_id);
1172
1173  typedef sw_error_t
1174    (*hsl_mirr_port_in_set) (a_uint32_t dev_id, fal_port_t port_id,
1175			     a_bool_t enable);
1176
1177  typedef sw_error_t
1178    (*hsl_mirr_port_in_get) (a_uint32_t dev_id, fal_port_t port_id,
1179			     a_bool_t * enable);
1180
1181  typedef sw_error_t
1182    (*hsl_mirr_port_eg_set) (a_uint32_t dev_id, fal_port_t port_id,
1183			     a_bool_t enable);
1184
1185  typedef sw_error_t
1186    (*hsl_mirr_port_eg_get) (a_uint32_t dev_id, fal_port_t port_id,
1187			     a_bool_t * enable);
1188
1189  /* STP */
1190#define STP_FUNC_PROTOTYPE_DEF
1191  typedef sw_error_t
1192    (*hsl_stp_port_state_set) (a_uint32_t dev_id, a_uint32_t st_id,
1193			       fal_port_t port_id, fal_stp_state_t state);
1194
1195  typedef sw_error_t
1196    (*hsl_stp_port_state_get) (a_uint32_t dev_id, a_uint32_t st_id,
1197			       fal_port_t port_id, fal_stp_state_t * state);
1198  /* IGMP */
1199#define IGMP_FUNC_PROTOTYPE_DEF
1200  typedef sw_error_t
1201    (*hsl_port_igmps_status_set) (a_uint32_t dev_id, fal_port_t port_id,
1202				  a_bool_t enable);
1203
1204  typedef sw_error_t
1205    (*hsl_port_igmps_status_get) (a_uint32_t dev_id, fal_port_t port_id,
1206				  a_bool_t * enable);
1207
1208  typedef sw_error_t
1209    (*hsl_igmp_mld_cmd_set) (a_uint32_t dev_id, fal_fwd_cmd_t cmd);
1210
1211  typedef sw_error_t
1212    (*hsl_igmp_mld_cmd_get) (a_uint32_t dev_id, fal_fwd_cmd_t * cmd);
1213
1214  typedef sw_error_t
1215    (*hsl_port_igmp_join_set) (a_uint32_t dev_id, fal_port_t port_id,
1216			       a_bool_t enable);
1217
1218  typedef sw_error_t
1219    (*hsl_port_igmp_join_get) (a_uint32_t dev_id, fal_port_t port_id,
1220			       a_bool_t * enable);
1221
1222  typedef sw_error_t
1223    (*hsl_port_igmp_leave_set) (a_uint32_t dev_id, fal_port_t port_id,
1224				a_bool_t enable);
1225
1226  typedef sw_error_t
1227    (*hsl_port_igmp_leave_get) (a_uint32_t dev_id, fal_port_t port_id,
1228				a_bool_t * enable);
1229
1230  typedef sw_error_t (*hsl_igmp_rp_set) (a_uint32_t dev_id, fal_pbmp_t pts);
1231
1232  typedef sw_error_t (*hsl_igmp_rp_get) (a_uint32_t dev_id, fal_pbmp_t * pts);
1233
1234  typedef sw_error_t
1235    (*hsl_igmp_entry_creat_set) (a_uint32_t dev_id, a_bool_t enable);
1236
1237  typedef sw_error_t
1238    (*hsl_igmp_entry_creat_get) (a_uint32_t dev_id, a_bool_t * enable);
1239
1240  typedef sw_error_t
1241    (*hsl_igmp_entry_static_set) (a_uint32_t dev_id, a_bool_t enable);
1242
1243  typedef sw_error_t
1244    (*hsl_igmp_entry_static_get) (a_uint32_t dev_id, a_bool_t * enable);
1245
1246  typedef sw_error_t
1247    (*hsl_igmp_entry_leaky_set) (a_uint32_t dev_id, a_bool_t enable);
1248
1249  typedef sw_error_t
1250    (*hsl_igmp_entry_leaky_get) (a_uint32_t dev_id, a_bool_t * enable);
1251
1252  typedef sw_error_t
1253    (*hsl_igmp_entry_v3_set) (a_uint32_t dev_id, a_bool_t enable);
1254
1255  typedef sw_error_t
1256    (*hsl_igmp_entry_v3_get) (a_uint32_t dev_id, a_bool_t * enable);
1257
1258  typedef sw_error_t
1259    (*hsl_igmp_entry_queue_set) (a_uint32_t dev_id, a_bool_t enable,
1260				 a_uint32_t queue);
1261
1262  typedef sw_error_t
1263    (*hsl_igmp_entry_queue_get) (a_uint32_t dev_id, a_bool_t * enable,
1264				 a_uint32_t * queue);
1265
1266  typedef sw_error_t
1267    (*hsl_port_igmp_mld_learn_limit_set) (a_uint32_t dev_id,
1268					  fal_port_t port_id, a_bool_t enable,
1269					  a_uint32_t cnt);
1270
1271  typedef sw_error_t
1272    (*hsl_port_igmp_mld_learn_limit_get) (a_uint32_t dev_id,
1273					  fal_port_t port_id,
1274					  a_bool_t * enable,
1275					  a_uint32_t * cnt);
1276
1277  typedef sw_error_t
1278    (*hsl_port_igmp_mld_learn_exceed_cmd_set) (a_uint32_t dev_id,
1279					       fal_port_t port_id,
1280					       fal_fwd_cmd_t cmd);
1281
1282  typedef sw_error_t
1283    (*hsl_port_igmp_mld_learn_exceed_cmd_get) (a_uint32_t dev_id,
1284					       fal_port_t port_id,
1285					       fal_fwd_cmd_t * cmd);
1286  typedef sw_error_t (*hsl_igmp_sg_entry_set) (a_uint32_t dev_id,
1287					       fal_igmp_sg_entry_t * entry);
1288
1289  typedef sw_error_t
1290    (*hsl_igmp_sg_entry_clear) (a_uint32_t dev_id,
1291				fal_igmp_sg_entry_t * entry);
1292
1293  typedef sw_error_t (*hsl_igmp_sg_entry_show) (a_uint32_t dev_id);
1294
1295  typedef sw_error_t
1296    (*hsl_igmp_sg_entry_query) (a_uint32_t dev_id, fal_igmp_sg_info_t * info);
1297
1298  /* Leaky */
1299#define LEAKY_FUNC_PROTOTYPE_DEF
1300  typedef sw_error_t
1301    (*hsl_uc_leaky_mode_set) (a_uint32_t dev_id,
1302			      fal_leaky_ctrl_mode_t ctrl_mode);
1303
1304  typedef sw_error_t
1305    (*hsl_uc_leaky_mode_get) (a_uint32_t dev_id,
1306			      fal_leaky_ctrl_mode_t * ctrl_mode);
1307
1308  typedef sw_error_t
1309    (*hsl_mc_leaky_mode_set) (a_uint32_t dev_id,
1310			      fal_leaky_ctrl_mode_t ctrl_mode);
1311
1312  typedef sw_error_t
1313    (*hsl_mc_leaky_mode_get) (a_uint32_t dev_id,
1314			      fal_leaky_ctrl_mode_t * ctrl_mode);
1315
1316  typedef sw_error_t
1317    (*hsl_port_arp_leaky_set) (a_uint32_t dev_id, fal_port_t port_id,
1318			       a_bool_t enable);
1319
1320  typedef sw_error_t
1321    (*hsl_port_arp_leaky_get) (a_uint32_t dev_id, fal_port_t port_id,
1322			       a_bool_t * enable);
1323
1324  typedef sw_error_t
1325    (*hsl_port_uc_leaky_set) (a_uint32_t dev_id, fal_port_t port_id,
1326			      a_bool_t enable);
1327
1328  typedef sw_error_t
1329    (*hsl_port_uc_leaky_get) (a_uint32_t dev_id, fal_port_t port_id,
1330			      a_bool_t * enable);
1331
1332  typedef sw_error_t
1333    (*hsl_port_mc_leaky_set) (a_uint32_t dev_id, fal_port_t port_id,
1334			      a_bool_t enable);
1335
1336  typedef sw_error_t
1337    (*hsl_port_mc_leaky_get) (a_uint32_t dev_id, fal_port_t port_id,
1338			      a_bool_t * enable);
1339
1340  /* Mib */
1341#define MIB_FUNC_PROTOTYPE_DEF
1342  typedef sw_error_t
1343    (*hsl_get_mib_info) (a_uint32_t dev_id, fal_port_t port_id,
1344			 fal_mib_info_t * mib_info);
1345
1346  typedef sw_error_t
1347    (*hsl_get_rx_mib_info) (a_uint32_t dev_id, fal_port_t port_id,
1348			    fal_mib_info_t * mib_info);
1349
1350  typedef sw_error_t
1351    (*hsl_get_tx_mib_info) (a_uint32_t dev_id, fal_port_t port_id,
1352			    fal_mib_info_t * mib_info);
1353
1354  typedef sw_error_t
1355    (*hsl_mib_status_set) (a_uint32_t dev_id, a_bool_t enable);
1356
1357  typedef sw_error_t
1358    (*hsl_mib_status_get) (a_uint32_t dev_id, a_bool_t * enable);
1359
1360  typedef sw_error_t
1361    (*hsl_mib_port_flush_counters) (a_uint32_t dev_id, fal_port_t port_id);
1362
1363  typedef sw_error_t
1364    (*hsl_mib_cpukeep_set) (a_uint32_t dev_id, a_bool_t enable);
1365
1366  typedef sw_error_t
1367    (*hsl_mib_cpukeep_get) (a_uint32_t dev_id, a_bool_t * enable);
1368
1369  /* Acl */
1370#define ACL_FUNC_PROTOTYPE_DEF
1371  typedef sw_error_t
1372    (*hsl_acl_list_creat) (a_uint32_t dev_id, a_uint32_t list_id,
1373			   a_uint32_t list_pri);
1374
1375  typedef sw_error_t
1376    (*hsl_acl_list_destroy) (a_uint32_t dev_id, a_uint32_t list_id);
1377
1378  typedef sw_error_t
1379    (*hsl_acl_rule_add) (a_uint32_t dev_id, a_uint32_t list_id,
1380			 a_uint32_t rule_id, a_uint32_t rule_nr,
1381			 fal_acl_rule_t * rule);
1382
1383  typedef sw_error_t
1384    (*hsl_acl_rule_delete) (a_uint32_t dev_id, a_uint32_t list_id,
1385			    a_uint32_t rule_id, a_uint32_t rule_nr);
1386
1387  typedef sw_error_t
1388    (*hsl_acl_rule_query) (a_uint32_t dev_id, a_uint32_t list_id,
1389			   a_uint32_t rule_id, fal_acl_rule_t * rule);
1390
1391  typedef sw_error_t
1392    (*hsl_acl_list_bind) (a_uint32_t dev_id, a_uint32_t list_id,
1393			  fal_acl_direc_t direc, fal_acl_bind_obj_t obj_t,
1394			  a_uint32_t obj_idx);
1395
1396  typedef sw_error_t
1397    (*hsl_acl_list_unbind) (a_uint32_t dev_id, a_uint32_t list_id,
1398			    fal_acl_direc_t direc, fal_acl_bind_obj_t obj_t,
1399			    a_uint32_t obj_idx);
1400
1401  typedef sw_error_t
1402    (*hsl_acl_status_set) (a_uint32_t dev_id, a_bool_t enable);
1403
1404  typedef sw_error_t
1405    (*hsl_acl_status_get) (a_uint32_t dev_id, a_bool_t * enable);
1406
1407  typedef sw_error_t (*hsl_acl_list_dump) (a_uint32_t dev_id);
1408
1409  typedef sw_error_t (*hsl_acl_rule_dump) (a_uint32_t dev_id);
1410
1411  typedef sw_error_t
1412    (*hsl_acl_port_udf_profile_set) (a_uint32_t dev_id, fal_port_t port_id,
1413				     fal_acl_udf_type_t udf_type,
1414				     a_uint32_t offset, a_uint32_t length);
1415
1416  typedef sw_error_t
1417    (*hsl_acl_port_udf_profile_get) (a_uint32_t dev_id, fal_port_t port_id,
1418				     fal_acl_udf_type_t udf_type,
1419				     a_uint32_t * offset,
1420				     a_uint32_t * length);
1421
1422  typedef sw_error_t
1423    (*hsl_acl_rule_active) (a_uint32_t dev_id, a_uint32_t list_id,
1424			    a_uint32_t rule_id, a_uint32_t rule_nr);
1425
1426  typedef sw_error_t
1427    (*hsl_acl_rule_deactive) (a_uint32_t dev_id, a_uint32_t list_id,
1428			      a_uint32_t rule_id, a_uint32_t rule_nr);
1429
1430  typedef sw_error_t
1431    (*hsl_acl_rule_src_filter_sts_set) (a_uint32_t dev_id,
1432					a_uint32_t rule_id, a_bool_t enable);
1433
1434  typedef sw_error_t
1435    (*hsl_acl_rule_src_filter_sts_get) (a_uint32_t dev_id,
1436					a_uint32_t rule_id,
1437					a_bool_t * enable);
1438
1439  typedef a_uint32_t
1440    (*hsl_acl_rule_get_offset) (a_uint32_t dev_id, a_uint32_t list_id,
1441				a_uint32_t rule_id);
1442
1443  typedef sw_error_t
1444    (*hsl_acl_rule_sync_multi_portmap) (a_uint32_t dev_id, a_uint32_t pos,
1445					a_uint32_t * act);
1446
1447  typedef sw_error_t (*hsl_dev_reset) (a_uint32_t dev_id);
1448
1449  typedef sw_error_t (*hsl_dev_clean) (a_uint32_t dev_id);
1450
1451  typedef sw_error_t
1452    (*hsl_dev_access_set) (a_uint32_t dev_id, hsl_access_mode mode);
1453
1454  /* LED */
1455#define LED_FUNC_PROTOTYPE_DEF
1456  typedef sw_error_t
1457    (*hsl_led_ctrl_pattern_set) (a_uint32_t dev_id, led_pattern_group_t group,
1458				 led_pattern_id_t id,
1459				 led_ctrl_pattern_t * pattern);
1460
1461  typedef sw_error_t
1462    (*hsl_led_ctrl_pattern_get) (a_uint32_t dev_id, led_pattern_group_t group,
1463				 led_pattern_id_t id,
1464				 led_ctrl_pattern_t * pattern);
1465
1466  typedef sw_error_t
1467    (*hsl_led_ctrl_source_set) (a_uint32_t dev_id, a_uint32_t source_id,
1468				 led_ctrl_pattern_t * pattern);
1469
1470  /* CoSMAP */
1471#define COSMAP_FUNC_PROTOTYPE_DEF
1472  typedef sw_error_t
1473    (*hsl_cosmap_dscp_to_pri_set) (a_uint32_t dev_id, a_uint32_t dscp,
1474				   a_uint32_t pri);
1475
1476  typedef sw_error_t
1477    (*hsl_cosmap_dscp_to_pri_get) (a_uint32_t dev_id, a_uint32_t dscp,
1478				   a_uint32_t * pri);
1479
1480  typedef sw_error_t
1481    (*hsl_cosmap_dscp_to_dp_set) (a_uint32_t dev_id, a_uint32_t dscp,
1482				  a_uint32_t dp);
1483
1484  typedef sw_error_t
1485    (*hsl_cosmap_dscp_to_dp_get) (a_uint32_t dev_id, a_uint32_t dscp,
1486				  a_uint32_t * dp);
1487
1488  typedef sw_error_t
1489    (*hsl_cosmap_up_to_pri_set) (a_uint32_t dev_id, a_uint32_t up,
1490				 a_uint32_t pri);
1491
1492  typedef sw_error_t
1493    (*hsl_cosmap_up_to_pri_get) (a_uint32_t dev_id, a_uint32_t up,
1494				 a_uint32_t * pri);
1495
1496  typedef sw_error_t
1497    (*hsl_cosmap_up_to_dp_set) (a_uint32_t dev_id, a_uint32_t up,
1498				a_uint32_t dp);
1499
1500  typedef sw_error_t
1501    (*hsl_cosmap_up_to_dp_get) (a_uint32_t dev_id, a_uint32_t up,
1502				a_uint32_t * dp);
1503
1504  typedef sw_error_t
1505    (*hsl_cosmap_dscp_to_ehpri_set) (a_uint32_t dev_id, a_uint32_t dscp,
1506				     a_uint32_t pri);
1507
1508  typedef sw_error_t
1509    (*hsl_cosmap_dscp_to_ehpri_get) (a_uint32_t dev_id, a_uint32_t dscp,
1510				     a_uint32_t * pri);
1511
1512  typedef sw_error_t
1513    (*hsl_cosmap_dscp_to_ehdp_set) (a_uint32_t dev_id, a_uint32_t dscp,
1514				    a_uint32_t dp);
1515
1516  typedef sw_error_t
1517    (*hsl_cosmap_dscp_to_ehdp_get) (a_uint32_t dev_id, a_uint32_t dscp,
1518				    a_uint32_t * dp);
1519
1520  typedef sw_error_t
1521    (*hsl_cosmap_up_to_ehpri_set) (a_uint32_t dev_id, a_uint32_t up,
1522				   a_uint32_t pri);
1523
1524  typedef sw_error_t
1525    (*hsl_cosmap_up_to_ehpri_get) (a_uint32_t dev_id, a_uint32_t up,
1526				   a_uint32_t * pri);
1527
1528  typedef sw_error_t
1529    (*hsl_cosmap_up_to_ehdp_set) (a_uint32_t dev_id, a_uint32_t up,
1530				  a_uint32_t dp);
1531
1532  typedef sw_error_t
1533    (*hsl_cosmap_up_to_ehdp_get) (a_uint32_t dev_id, a_uint32_t up,
1534				  a_uint32_t * dp);
1535
1536  typedef sw_error_t
1537    (*hsl_cosmap_pri_to_queue_set) (a_uint32_t dev_id, a_uint32_t pri,
1538				    a_uint32_t queue);
1539
1540  typedef sw_error_t
1541    (*hsl_cosmap_pri_to_queue_get) (a_uint32_t dev_id, a_uint32_t pri,
1542				    a_uint32_t * queue);
1543
1544  typedef sw_error_t
1545    (*hsl_cosmap_pri_to_ehqueue_set) (a_uint32_t dev_id, a_uint32_t pri,
1546				      a_uint32_t queue);
1547
1548  typedef sw_error_t
1549    (*hsl_cosmap_pri_to_ehqueue_get) (a_uint32_t dev_id, a_uint32_t pri,
1550				      a_uint32_t * queue);
1551
1552  typedef sw_error_t
1553    (*hsl_cosmap_egress_remark_set) (a_uint32_t dev_id, a_uint32_t tbl_id,
1554				     fal_egress_remark_table_t * tbl);
1555
1556  typedef sw_error_t
1557    (*hsl_cosmap_egress_remark_get) (a_uint32_t dev_id, a_uint32_t tbl_id,
1558				     fal_egress_remark_table_t * tbl);
1559
1560
1561  /* IP */
1562#define IP_FUNC_PROTOTYPE_DEF
1563  typedef sw_error_t
1564    (*hsl_ip_host_add) (a_uint32_t dev_id, fal_host_entry_t * host_entry);
1565
1566  typedef sw_error_t
1567    (*hsl_ip_host_del) (a_uint32_t dev_id, a_uint32_t del_mode,
1568			fal_host_entry_t * host_entry);
1569
1570  typedef sw_error_t
1571    (*hsl_ip_host_get) (a_uint32_t dev_id, a_uint32_t get_mode,
1572			fal_host_entry_t * host_entry);
1573
1574  typedef sw_error_t
1575    (*hsl_ip_host_next) (a_uint32_t dev_id, a_uint32_t next_mode,
1576			 fal_host_entry_t * host_entry);
1577
1578  typedef sw_error_t
1579    (*hsl_ip_host_counter_bind) (a_uint32_t dev_id, a_uint32_t entry_id,
1580				 a_uint32_t cnt_id, a_bool_t enable);
1581
1582  typedef sw_error_t
1583    (*hsl_ip_host_pppoe_bind) (a_uint32_t dev_id, a_uint32_t entry_id,
1584			       a_uint32_t pppoe_id, a_bool_t enable);
1585
1586  typedef sw_error_t
1587    (*hsl_ip_pt_arp_learn_set) (a_uint32_t dev_id, fal_port_t port_id,
1588				a_uint32_t flags);
1589
1590  typedef sw_error_t
1591    (*hsl_ip_pt_arp_learn_get) (a_uint32_t dev_id, fal_port_t port_id,
1592				a_uint32_t * flags);
1593
1594  typedef sw_error_t
1595    (*hsl_ip_arp_learn_set) (a_uint32_t dev_id, fal_arp_learn_mode_t mode);
1596
1597  typedef sw_error_t
1598    (*hsl_ip_arp_learn_get) (a_uint32_t dev_id, fal_arp_learn_mode_t * mode);
1599
1600  typedef sw_error_t
1601    (*hsl_ip_source_guard_set) (a_uint32_t dev_id, fal_port_t port_id,
1602				fal_source_guard_mode_t mode);
1603
1604  typedef sw_error_t
1605    (*hsl_ip_source_guard_get) (a_uint32_t dev_id, fal_port_t port_id,
1606				fal_source_guard_mode_t * mode);
1607
1608  typedef sw_error_t
1609    (*hsl_ip_unk_source_cmd_set) (a_uint32_t dev_id, fal_fwd_cmd_t cmd);
1610
1611  typedef sw_error_t
1612    (*hsl_ip_unk_source_cmd_get) (a_uint32_t dev_id, fal_fwd_cmd_t * cmd);
1613
1614  typedef sw_error_t
1615    (*hsl_ip_arp_guard_set) (a_uint32_t dev_id, fal_port_t port_id,
1616			     fal_source_guard_mode_t mode);
1617
1618  typedef sw_error_t
1619    (*hsl_ip_arp_guard_get) (a_uint32_t dev_id, fal_port_t port_id,
1620			     fal_source_guard_mode_t * mode);
1621
1622  typedef sw_error_t
1623    (*hsl_arp_unk_source_cmd_set) (a_uint32_t dev_id, fal_fwd_cmd_t cmd);
1624
1625  typedef sw_error_t
1626    (*hsl_arp_unk_source_cmd_get) (a_uint32_t dev_id, fal_fwd_cmd_t * cmd);
1627
1628  typedef sw_error_t
1629    (*hsl_ip_route_status_set) (a_uint32_t dev_id, a_bool_t enable);
1630
1631  typedef sw_error_t
1632    (*hsl_ip_route_status_get) (a_uint32_t dev_id, a_bool_t * enable);
1633
1634  typedef sw_error_t
1635    (*hsl_ip_intf_entry_add) (a_uint32_t dev_id,
1636			      fal_intf_mac_entry_t * entry);
1637
1638  typedef sw_error_t
1639    (*hsl_ip_intf_entry_del) (a_uint32_t dev_id, a_uint32_t del_mode,
1640			      fal_intf_mac_entry_t * entry);
1641
1642  typedef sw_error_t
1643    (*hsl_ip_intf_entry_next) (a_uint32_t dev_id, a_uint32_t next_mode,
1644			       fal_intf_mac_entry_t * entry);
1645
1646  typedef sw_error_t
1647    (*hsl_ip_age_time_set) (a_uint32_t dev_id, a_uint32_t * time);
1648
1649  typedef sw_error_t
1650    (*hsl_ip_age_time_get) (a_uint32_t dev_id, a_uint32_t * time);
1651
1652  typedef sw_error_t
1653    (*hsl_ip_wcmp_hash_mode_set) (a_uint32_t dev_id, a_uint32_t hash_mode);
1654
1655  typedef sw_error_t
1656    (*hsl_ip_wcmp_hash_mode_get) (a_uint32_t dev_id, a_uint32_t * hash_mode);
1657
1658  typedef sw_error_t
1659    (*hsl_ip_vrf_base_addr_set) (a_uint32_t dev_id,
1660				 a_uint32_t vrf_id, fal_ip4_addr_t addr);
1661
1662  typedef sw_error_t
1663    (*hsl_ip_vrf_base_addr_get) (a_uint32_t dev_id,
1664				 a_uint32_t vrf_id, fal_ip4_addr_t * addr);
1665
1666  typedef sw_error_t
1667    (*hsl_ip_vrf_base_mask_set) (a_uint32_t dev_id,
1668				 a_uint32_t vrf_id, fal_ip4_addr_t addr);
1669
1670  typedef sw_error_t
1671    (*hsl_ip_vrf_base_mask_get) (a_uint32_t dev_id,
1672				 a_uint32_t vrf_id, fal_ip4_addr_t * addr);
1673
1674  typedef sw_error_t
1675    (*hsl_ip_default_route_set) (a_uint32_t dev_id,
1676				 a_uint32_t droute_id,
1677				 fal_default_route_t * entry);
1678
1679  typedef sw_error_t
1680    (*hsl_ip_default_route_get) (a_uint32_t dev_id,
1681				 a_uint32_t droute_id,
1682				 fal_default_route_t * entry);
1683
1684  typedef sw_error_t
1685    (*hsl_ip_host_route_set) (a_uint32_t dev_id,
1686			      a_uint32_t hroute_id, fal_host_route_t * entry);
1687
1688  typedef sw_error_t
1689    (*hsl_ip_host_route_get) (a_uint32_t dev_id,
1690			      a_uint32_t hroute_id, fal_host_route_t * entry);
1691
1692  typedef sw_error_t
1693    (*hsl_ip_wcmp_entry_set) (a_uint32_t dev_id,
1694			      a_uint32_t wcmp_id, fal_ip_wcmp_t * wcmp);
1695
1696  typedef sw_error_t
1697    (*hsl_ip_wcmp_entry_get) (a_uint32_t dev_id,
1698			      a_uint32_t wcmp_id, fal_ip_wcmp_t * wcmp);
1699  typedef sw_error_t
1700    (*hsl_ip_rfs_ip4_set) (a_uint32_t dev_id, fal_ip4_rfs_t * rfs);
1701
1702  typedef sw_error_t
1703    (*hsl_ip_rfs_ip6_set) (a_uint32_t dev_id, fal_ip6_rfs_t * rfs);
1704  typedef sw_error_t
1705    (*hsl_ip_rfs_ip4_del) (a_uint32_t dev_id, fal_ip4_rfs_t * rfs);
1706
1707  typedef sw_error_t
1708    (*hsl_ip_rfs_ip6_del) (a_uint32_t dev_id, fal_ip6_rfs_t * rfs);
1709
1710  typedef sw_error_t
1711    (*hsl_default_flow_cmd_set) (a_uint32_t dev_id,
1712				 a_uint32_t vrf_id, fal_flow_type_t type,
1713				 fal_default_flow_cmd_t cmd);
1714
1715  typedef sw_error_t
1716    (*hsl_default_flow_cmd_get) (a_uint32_t dev_id,
1717				 a_uint32_t vrf_id, fal_flow_type_t type,
1718				 fal_default_flow_cmd_t * cmd);
1719
1720  typedef sw_error_t
1721    (*hsl_default_rt_flow_cmd_set) (a_uint32_t dev_id,
1722				    a_uint32_t vrf_id, fal_flow_type_t type,
1723				    fal_default_flow_cmd_t cmd);
1724
1725  typedef sw_error_t
1726    (*hsl_default_rt_flow_cmd_get) (a_uint32_t dev_id,
1727				    a_uint32_t vrf_id, fal_flow_type_t type,
1728				    fal_default_flow_cmd_t * cmd);
1729
1730typedef sw_error_t
1731	(*hsl_ip_glb_lock_time_set) (a_uint32_t dev_id, fal_glb_lock_time_t lock_time);
1732
1733  /* NAT */
1734#define NAT_FUNC_PROTOTYPE_DEF
1735  typedef sw_error_t
1736    (*hsl_nat_add) (a_uint32_t dev_id, fal_nat_entry_t * nat_entry);
1737
1738  typedef sw_error_t
1739    (*hsl_nat_del) (a_uint32_t dev_id, a_uint32_t del_mode,
1740		    fal_nat_entry_t * nat_entry);
1741
1742  typedef sw_error_t
1743    (*hsl_nat_get) (a_uint32_t dev_id, a_uint32_t get_mode,
1744		    fal_nat_entry_t * nat_entry);
1745
1746  typedef sw_error_t
1747    (*hsl_nat_next) (a_uint32_t dev_id, a_uint32_t next_mode,
1748		     fal_nat_entry_t * nat_entry);
1749
1750  typedef sw_error_t
1751    (*hsl_nat_counter_bind) (a_uint32_t dev_id, a_uint32_t entry_id,
1752			     a_uint32_t cnt_id, a_bool_t enable);
1753
1754  typedef sw_error_t
1755    (*hsl_napt_add) (a_uint32_t dev_id, fal_napt_entry_t * napt_entry);
1756
1757  typedef sw_error_t
1758    (*hsl_napt_del) (a_uint32_t dev_id, a_uint32_t del_mode,
1759		     fal_napt_entry_t * napt_entry);
1760
1761  typedef sw_error_t
1762    (*hsl_napt_get) (a_uint32_t dev_id, a_uint32_t get_mode,
1763		     fal_napt_entry_t * napt_entry);
1764
1765  typedef sw_error_t
1766    (*hsl_napt_next) (a_uint32_t dev_id, a_uint32_t next_mode,
1767		      fal_napt_entry_t * napt_entry);
1768
1769  typedef sw_error_t
1770    (*hsl_napt_counter_bind) (a_uint32_t dev_id, a_uint32_t entry_id,
1771			      a_uint32_t cnt_id, a_bool_t enable);
1772
1773  typedef sw_error_t
1774    (*hsl_nat_status_set) (a_uint32_t dev_id, a_bool_t enable);
1775
1776  typedef sw_error_t
1777    (*hsl_nat_status_get) (a_uint32_t dev_id, a_bool_t * enable);
1778
1779  typedef sw_error_t
1780    (*hsl_nat_hash_mode_set) (a_uint32_t dev_id, a_uint32_t mode);
1781
1782  typedef sw_error_t
1783    (*hsl_nat_hash_mode_get) (a_uint32_t dev_id, a_uint32_t * mode);
1784
1785  typedef sw_error_t
1786    (*hsl_napt_status_set) (a_uint32_t dev_id, a_bool_t enable);
1787
1788  typedef sw_error_t
1789    (*hsl_napt_status_get) (a_uint32_t dev_id, a_bool_t * enable);
1790
1791  typedef sw_error_t
1792    (*hsl_napt_mode_set) (a_uint32_t dev_id, fal_napt_mode_t mode);
1793
1794  typedef sw_error_t
1795    (*hsl_napt_mode_get) (a_uint32_t dev_id, fal_napt_mode_t * mode);
1796
1797  typedef sw_error_t
1798    (*hsl_nat_prv_base_addr_set) (a_uint32_t dev_id, fal_ip4_addr_t addr);
1799
1800  typedef sw_error_t
1801    (*hsl_nat_prv_base_addr_get) (a_uint32_t dev_id, fal_ip4_addr_t * addr);
1802
1803  typedef sw_error_t
1804    (*hsl_nat_prv_base_mask_set) (a_uint32_t dev_id, fal_ip4_addr_t mask);
1805
1806  typedef sw_error_t
1807    (*hsl_nat_prv_base_mask_get) (a_uint32_t dev_id, fal_ip4_addr_t * mask);
1808
1809  typedef sw_error_t
1810    (*hsl_nat_prv_addr_mode_set) (a_uint32_t dev_id, a_bool_t map_en);
1811
1812  typedef sw_error_t
1813    (*hsl_nat_prv_addr_mode_get) (a_uint32_t dev_id, a_bool_t * map_en);
1814
1815  typedef sw_error_t
1816    (*hsl_nat_pub_addr_add) (a_uint32_t dev_id, fal_nat_pub_addr_t * entry);
1817
1818  typedef sw_error_t
1819    (*hsl_nat_pub_addr_del) (a_uint32_t dev_id, a_uint32_t del_mode,
1820			     fal_nat_pub_addr_t * entry);
1821
1822  typedef sw_error_t
1823    (*hsl_nat_pub_addr_next) (a_uint32_t dev_id, a_uint32_t next_mode,
1824			      fal_nat_pub_addr_t * entry);
1825
1826  typedef sw_error_t
1827    (*hsl_nat_unk_session_cmd_set) (a_uint32_t dev_id, fal_fwd_cmd_t cmd);
1828
1829  typedef sw_error_t
1830    (*hsl_nat_unk_session_cmd_get) (a_uint32_t dev_id, fal_fwd_cmd_t * cmd);
1831
1832  typedef sw_error_t
1833    (*hsl_nat_global_set) (a_uint32_t dev_id, a_bool_t enable);
1834
1835  typedef sw_error_t
1836    (*hsl_flow_cookie_set) (a_uint32_t dev_id,
1837			    fal_flow_cookie_t * flow_cookie);
1838
1839  typedef sw_error_t
1840    (*hsl_flow_rfs_set) (a_uint32_t dev_id, a_uint8_t action,
1841			 fal_flow_rfs_t * rfs);
1842
1843  /* SEC */
1844#define SEC_FUNC_PROTOTYPE_DEF
1845  typedef sw_error_t
1846    (*hsl_sec_norm_item_set) (a_uint32_t dev_id, fal_norm_item_t item,
1847			      void *value);
1848
1849  typedef sw_error_t
1850    (*hsl_sec_norm_item_get) (a_uint32_t dev_id, fal_norm_item_t item,
1851			      void *value);
1852
1853
1854  /* Trunk */
1855#define TRUNK_FUNC_PROTOTYPE_DEF
1856  typedef sw_error_t
1857    (*hsl_trunk_group_set) (a_uint32_t dev_id, a_uint32_t trunk_id,
1858			    a_bool_t enable, fal_pbmp_t member);
1859
1860  typedef sw_error_t
1861    (*hsl_trunk_group_get) (a_uint32_t dev_id, a_uint32_t trunk_id,
1862			    a_bool_t * enable, fal_pbmp_t * member);
1863
1864  typedef sw_error_t
1865    (*hsl_trunk_hash_mode_set) (a_uint32_t dev_id, a_uint32_t hash_mode);
1866
1867  typedef sw_error_t
1868    (*hsl_trunk_hash_mode_get) (a_uint32_t dev_id, a_uint32_t * hash_mode);
1869
1870  typedef sw_error_t
1871    (*hsl_trunk_manipulate_sa_set) (a_uint32_t dev_id, fal_mac_addr_t * addr);
1872
1873  typedef sw_error_t
1874    (*hsl_trunk_manipulate_sa_get) (a_uint32_t dev_id, fal_mac_addr_t * addr);
1875
1876  /* Interface Control */
1877#define INTERFACE_CONTROL_FUNC_PROTOTYPE_DEF
1878  typedef sw_error_t
1879    (*hsl_interface_mac_mode_set) (a_uint32_t dev_id, fal_port_t port_id,
1880				   fal_mac_config_t * config);
1881
1882  typedef sw_error_t
1883    (*hsl_interface_mac_mode_get) (a_uint32_t dev_id, fal_port_t port_id,
1884				   fal_mac_config_t * config);
1885
1886  typedef sw_error_t
1887    (*hsl_port_3az_status_set) (a_uint32_t dev_id, fal_port_t port_id,
1888				a_bool_t enable);
1889
1890  typedef sw_error_t
1891    (*hsl_port_3az_status_get) (a_uint32_t dev_id, fal_port_t port_id,
1892				a_bool_t * enable);
1893
1894  typedef sw_error_t
1895    (*hsl_interface_phy_mode_set) (a_uint32_t dev_id, a_uint32_t phy_id,
1896				   fal_phy_config_t * config);
1897
1898  typedef sw_error_t
1899    (*hsl_interface_phy_mode_get) (a_uint32_t dev_id, a_uint32_t phy_id,
1900				   fal_phy_config_t * config);
1901
1902  typedef sw_error_t
1903    (*hsl_interface_fx100_ctrl_set) (a_uint32_t dev_id,
1904				     fal_fx100_ctrl_config_t * config);
1905
1906  typedef sw_error_t
1907    (*hsl_interface_fx100_ctrl_get) (a_uint32_t dev_id,
1908				     fal_fx100_ctrl_config_t * config);
1909
1910  typedef sw_error_t
1911    (*hsl_interface_fx100_status_get) (a_uint32_t dev_id,
1912				       a_uint32_t * status);
1913
1914  typedef sw_error_t
1915    (*hsl_interface_mac06_exch_set) (a_uint32_t dev_id, a_bool_t enable);
1916
1917  typedef sw_error_t
1918    (*hsl_interface_mac06_exch_get) (a_uint32_t dev_id, a_bool_t * enable);
1919
1920  typedef sw_error_t
1921    (*hsl_interface_pad_get) (a_uint32_t dev_id,a_uint32_t port_num, a_uint32_t *value);
1922
1923  typedef sw_error_t
1924    (*hsl_interface_pad_set) (a_uint32_t dev_id,a_uint32_t port_num, a_uint32_t value);
1925
1926  typedef sw_error_t
1927    (*hsl_interface_sgmii_get) (a_uint32_t dev_id, a_uint32_t * value);
1928
1929  typedef sw_error_t
1930    (*hsl_interface_sgmii_set) (a_uint32_t dev_id, a_uint32_t value);
1931
1932
1933  /* REG */
1934#define REG_FUNC_PROTOTYPE_DEF
1935  typedef sw_error_t
1936    (*hsl_phy_get) (a_uint32_t dev_id, a_uint32_t phy_addr, a_uint32_t reg,
1937		    a_uint16_t * value);
1938
1939  typedef sw_error_t
1940    (*hsl_phy_set) (a_uint32_t dev_id, a_uint32_t phy_addr, a_uint32_t reg,
1941		    a_uint16_t value);
1942
1943  typedef sw_error_t
1944    (*hsl_reg_get) (a_uint32_t dev_id, a_uint32_t reg_addr,
1945		    a_uint8_t value[], a_uint32_t value_len);
1946
1947  typedef sw_error_t
1948    (*hsl_reg_set) (a_uint32_t dev_id, a_uint32_t reg_addr,
1949		    a_uint8_t value[], a_uint32_t value_len);
1950
1951  typedef sw_error_t
1952    (*hsl_psgmii_reg_get) (a_uint32_t dev_id, a_uint32_t reg_addr,
1953		    a_uint8_t value[], a_uint32_t value_len);
1954
1955  typedef sw_error_t
1956    (*hsl_psgmii_reg_set) (a_uint32_t dev_id, a_uint32_t reg_addr,
1957		    a_uint8_t value[], a_uint32_t value_len);
1958
1959  typedef sw_error_t
1960    (*hsl_reg_field_get) (a_uint32_t dev_id, a_uint32_t reg_addr,
1961			  a_uint32_t bit_offset, a_uint32_t field_len,
1962			  a_uint8_t value[], a_uint32_t value_len);
1963
1964  typedef sw_error_t
1965    (*hsl_reg_field_set) (a_uint32_t dev_id, a_uint32_t reg_addr,
1966			  a_uint32_t bit_offset, a_uint32_t field_len,
1967			  const a_uint8_t value[], a_uint32_t value_len);
1968
1969  typedef sw_error_t
1970    (*hsl_reg_entries_get) (a_uint32_t dev_id, a_uint32_t reg_addr,
1971			    a_uint32_t entry_len, a_uint8_t value[],
1972			    a_uint32_t value_len);
1973
1974  typedef sw_error_t
1975    (*hsl_reg_entries_set) (a_uint32_t dev_id, a_uint32_t reg_addr,
1976			    a_uint32_t entry_len, const a_uint8_t value[],
1977			    a_uint32_t value_len);
1978
1979  typedef struct
1980  {
1981#if (!(defined(USER_MODE) && defined(KERNEL_MODULE)))
1982#ifndef HSL_STANDALONG
1983    /* Misc */
1984    hsl_arp_status_set arp_status_set;
1985    hsl_arp_status_get arp_status_get;
1986    hsl_frame_max_size_set frame_max_size_set;
1987    hsl_frame_max_size_get frame_max_size_get;
1988    hsl_port_unk_sa_cmd_set port_unk_sa_cmd_set;
1989    hsl_port_unk_sa_cmd_get port_unk_sa_cmd_get;
1990    hsl_port_unk_uc_filter_set port_unk_uc_filter_set;
1991    hsl_port_unk_uc_filter_get port_unk_uc_filter_get;
1992    hsl_port_unk_mc_filter_set port_unk_mc_filter_set;
1993    hsl_port_unk_mc_filter_get port_unk_mc_filter_get;
1994    hsl_port_bc_filter_set port_bc_filter_set;
1995    hsl_port_bc_filter_get port_bc_filter_get;
1996    hsl_nestvlan_tpid_set nestvlan_tpid_set;
1997    hsl_nestvlan_tpid_get nestvlan_tpid_get;
1998    hsl_cpu_port_status_set cpu_port_status_set;
1999    hsl_cpu_port_status_get cpu_port_status_get;
2000    hsl_bc_to_cpu_port_set bc_to_cpu_port_set;
2001    hsl_bc_to_cpu_port_get bc_to_cpu_port_get;
2002    hsl_pppoe_cmd_set pppoe_cmd_set;
2003    hsl_pppoe_cmd_get pppoe_cmd_get;
2004    hsl_pppoe_status_set pppoe_status_set;
2005    hsl_pppoe_status_get pppoe_status_get;
2006    hsl_port_dhcp_set port_dhcp_set;
2007    hsl_port_dhcp_get port_dhcp_get;
2008    hsl_arp_cmd_set arp_cmd_set;
2009    hsl_arp_cmd_get arp_cmd_get;
2010    hsl_eapol_cmd_set eapol_cmd_set;
2011    hsl_eapol_cmd_get eapol_cmd_get;
2012    hsl_pppoe_session_add pppoe_session_add;
2013    hsl_pppoe_session_del pppoe_session_del;
2014    hsl_pppoe_session_get pppoe_session_get;
2015    hsl_eapol_status_set eapol_status_set;
2016    hsl_eapol_status_get eapol_status_get;
2017    hsl_ripv1_status_set ripv1_status_set;
2018    hsl_ripv1_status_get ripv1_status_get;
2019    hsl_port_arp_req_status_set port_arp_req_status_set;
2020    hsl_port_arp_req_status_get port_arp_req_status_get;
2021    hsl_port_arp_ack_status_set port_arp_ack_status_set;
2022    hsl_port_arp_ack_status_get port_arp_ack_status_get;
2023    hsl_pppoe_session_table_add pppoe_session_table_add;
2024    hsl_pppoe_session_table_del pppoe_session_table_del;
2025    hsl_pppoe_session_table_get pppoe_session_table_get;
2026    hsl_pppoe_session_id_set pppoe_session_id_set;
2027    hsl_pppoe_session_id_get pppoe_session_id_get;
2028    hsl_intr_mask_set intr_mask_set;
2029    hsl_intr_mask_get intr_mask_get;
2030    hsl_intr_status_get intr_status_get;
2031    hsl_intr_status_clear intr_status_clear;
2032    hsl_intr_port_link_mask_set intr_port_link_mask_set;
2033    hsl_intr_port_link_mask_get intr_port_link_mask_get;
2034    hsl_intr_port_link_status_get intr_port_link_status_get;
2035    hsl_intr_mask_mac_linkchg_set intr_mask_mac_linkchg_set;
2036    hsl_intr_mask_mac_linkchg_get intr_mask_mac_linkchg_get;
2037    hsl_intr_status_mac_linkchg_get intr_status_mac_linkchg_get;
2038    hsl_cpu_vid_en_set cpu_vid_en_set;
2039    hsl_cpu_vid_en_get cpu_vid_en_get;
2040    hsl_rtd_pppoe_en_set rtd_pppoe_en_set;
2041    hsl_rtd_pppoe_en_get rtd_pppoe_en_get;
2042    hsl_intr_status_mac_linkchg_clear intr_status_mac_linkchg_clear;
2043    hsl_global_macaddr_set global_macaddr_set;
2044    hsl_global_macaddr_get global_macaddr_get;
2045    hsl_lldp_status_set lldp_status_set;
2046    hsl_lldp_status_get lldp_status_get;
2047    hsl_frame_crc_reserve_set frame_crc_reserve_set;
2048    hsl_frame_crc_reserve_get frame_crc_reserve_get;
2049
2050
2051    /* Port control */
2052    hsl_port_duplex_set port_duplex_set;
2053    hsl_port_duplex_get port_duplex_get;
2054    hsl_port_speed_set port_speed_set;
2055    hsl_port_speed_get port_speed_get;
2056    hsl_port_autoneg_status_get port_autoneg_status_get;
2057    hsl_port_autoneg_enable port_autoneg_enable;
2058    hsl_port_autoneg_restart port_autoneg_restart;
2059    hsl_port_autoneg_adv_get port_autoneg_adv_get;
2060    hsl_port_autoneg_adv_set port_autoneg_adv_set;
2061    hsl_port_hdr_status_set port_hdr_status_set;
2062    hsl_port_hdr_status_get port_hdr_status_get;
2063    hsl_port_flowctrl_set port_flowctrl_set;
2064    hsl_port_flowctrl_get port_flowctrl_get;
2065	hsl_port_flowctrl_thresh_set port_flowctrl_thresh_set;
2066    hsl_port_flowctrl_forcemode_set port_flowctrl_forcemode_set;
2067    hsl_port_flowctrl_forcemode_get port_flowctrl_forcemode_get;
2068    hsl_port_powersave_set port_powersave_set;
2069    hsl_port_powersave_get port_powersave_get;
2070    hsl_port_hibernate_set port_hibernate_set;
2071    hsl_port_hibernate_get port_hibernate_get;
2072    hsl_port_cdt port_cdt;
2073    hsl_port_rxhdr_mode_set port_rxhdr_mode_set;
2074    hsl_port_rxhdr_mode_get port_rxhdr_mode_get;
2075    hsl_port_txhdr_mode_set port_txhdr_mode_set;
2076    hsl_port_txhdr_mode_get port_txhdr_mode_get;
2077    hsl_header_type_set header_type_set;
2078    hsl_header_type_get header_type_get;
2079    hsl_port_txmac_status_set port_txmac_status_set;
2080    hsl_port_txmac_status_get port_txmac_status_get;
2081    hsl_port_rxmac_status_set port_rxmac_status_set;
2082    hsl_port_rxmac_status_get port_rxmac_status_get;
2083    hsl_port_txfc_status_set port_txfc_status_set;
2084    hsl_port_txfc_status_get port_txfc_status_get;
2085    hsl_port_rxfc_status_set port_rxfc_status_set;
2086    hsl_port_rxfc_status_get port_rxfc_status_get;
2087    hsl_port_bp_status_set port_bp_status_set;
2088    hsl_port_bp_status_get port_bp_status_get;
2089    hsl_port_link_forcemode_set port_link_forcemode_set;
2090    hsl_port_link_forcemode_get port_link_forcemode_get;
2091    hsl_port_link_status_get port_link_status_get;
2092    hsl_ports_link_status_get ports_link_status_get;
2093    hsl_port_mac_loopback_set port_mac_loopback_set;
2094    hsl_port_mac_loopback_get port_mac_loopback_get;
2095    hsl_port_congestion_drop_set port_congestion_drop_set;
2096    hsl_port_congestion_drop_get port_congestion_drop_get;
2097    hsl_ring_flow_ctrl_thres_set ring_flow_ctrl_thres_set;
2098    hsl_ring_flow_ctrl_thres_get ring_flow_ctrl_thres_get;
2099    hsl_port_8023az_set port_8023az_set;
2100    hsl_port_8023az_get port_8023az_get;
2101    hsl_port_mdix_set port_mdix_set;
2102    hsl_port_mdix_get port_mdix_get;
2103    hsl_port_mdix_status_get port_mdix_status_get;
2104    hsl_port_combo_prefer_medium_set port_combo_prefer_medium_set;
2105    hsl_port_combo_prefer_medium_get port_combo_prefer_medium_get;
2106    hsl_port_combo_medium_status_get port_combo_medium_status_get;
2107    hsl_port_combo_fiber_mode_set port_combo_fiber_mode_set;
2108    hsl_port_combo_fiber_mode_get port_combo_fiber_mode_get;
2109    hsl_port_local_loopback_set port_local_loopback_set;
2110    hsl_port_local_loopback_get port_local_loopback_get;
2111    hsl_port_remote_loopback_set port_remote_loopback_set;
2112    hsl_port_remote_loopback_get port_remote_loopback_get;
2113    hsl_port_reset port_reset;
2114    hsl_port_power_off port_power_off;
2115    hsl_port_power_on port_power_on;
2116    hsl_port_phy_id_get port_phy_id_get;
2117    hsl_port_wol_status_set port_wol_status_set;
2118    hsl_port_wol_status_get port_wol_status_get;
2119    hsl_port_magic_frame_mac_set port_magic_frame_mac_set;
2120    hsl_port_magic_frame_mac_get port_magic_frame_mac_get;
2121    hsl_port_interface_mode_set port_interface_mode_set;
2122    hsl_port_interface_mode_get port_interface_mode_get;
2123    hsl_port_interface_mode_status_get port_interface_mode_status_get;
2124    hsl_port_counter_set port_counter_set;
2125    hsl_port_counter_get port_counter_get;
2126    hsl_port_counter_show port_counter_show;
2127
2128    /* VLAN */
2129    hsl_vlan_entry_append vlan_entry_append;
2130    hsl_vlan_create vlan_creat;
2131    hsl_vlan_member_update vlan_member_update;
2132    hsl_vlan_delete vlan_delete;
2133    hsl_vlan_find vlan_find;
2134    hsl_vlan_next vlan_next;
2135    hsl_vlan_flush vlan_flush;
2136    hsl_vlan_fid_set vlan_fid_set;
2137    hsl_vlan_fid_get vlan_fid_get;
2138    hsl_vlan_member_add vlan_member_add;
2139    hsl_vlan_member_del vlan_member_del;
2140    hsl_vlan_learning_state_set vlan_learning_state_set;
2141    hsl_vlan_learning_state_get vlan_learning_state_get;
2142
2143    /* Port VLAN */
2144    hsl_port_1qmode_set port_1qmode_set;
2145    hsl_port_1qmode_get port_1qmode_get;
2146    hsl_port_egvlanmode_get port_egvlanmode_get;
2147    hsl_port_egvlanmode_set port_egvlanmode_set;
2148    hsl_portvlan_member_add portvlan_member_add;
2149    hsl_portvlan_member_del portvlan_member_del;
2150    hsl_portvlan_member_update portvlan_member_update;
2151    hsl_portvlan_member_get portvlan_member_get;
2152    hsl_port_default_vid_set port_default_vid_set;
2153    hsl_port_default_vid_get port_default_vid_get;
2154    hsl_port_force_default_vid_set port_force_default_vid_set;
2155    hsl_port_force_default_vid_get port_force_default_vid_get;
2156    hsl_port_force_portvlan_set port_force_portvlan_set;
2157    hsl_port_force_portvlan_get port_force_portvlan_get;
2158    hsl_port_nestvlan_set port_nestvlan_set;
2159    hsl_port_nestvlan_get port_nestvlan_get;
2160    hsl_port_invlan_mode_set port_invlan_mode_set;
2161    hsl_port_invlan_mode_get port_invlan_mode_get;
2162    hsl_port_tls_set port_tls_set;
2163    hsl_port_tls_get port_tls_get;
2164    hsl_port_pri_propagation_set port_pri_propagation_set;
2165    hsl_port_pri_propagation_get port_pri_propagation_get;
2166    hsl_port_default_svid_set port_default_svid_set;
2167    hsl_port_default_svid_get port_default_svid_get;
2168    hsl_port_default_cvid_set port_default_cvid_set;
2169    hsl_port_default_cvid_get port_default_cvid_get;
2170    hsl_port_vlan_propagation_set port_vlan_propagation_set;
2171    hsl_port_vlan_propagation_get port_vlan_propagation_get;
2172    hsl_port_vlan_trans_add port_vlan_trans_add;
2173    hsl_port_vlan_trans_del port_vlan_trans_del;
2174    hsl_port_vlan_trans_get port_vlan_trans_get;
2175    hsl_qinq_mode_set qinq_mode_set;
2176    hsl_qinq_mode_get qinq_mode_get;
2177    hsl_port_qinq_role_set port_qinq_role_set;
2178    hsl_port_qinq_role_get port_qinq_role_get;
2179    hsl_port_vlan_trans_iterate port_vlan_trans_iterate;
2180    hsl_port_mac_vlan_xlt_set port_mac_vlan_xlt_set;
2181    hsl_port_mac_vlan_xlt_get port_mac_vlan_xlt_get;
2182    hsl_netisolate_set netisolate_set;
2183    hsl_netisolate_get netisolate_get;
2184    hsl_eg_trans_filter_bypass_en_set eg_trans_filter_bypass_en_set;
2185    hsl_eg_trans_filter_bypass_en_get eg_trans_filter_bypass_en_get;
2186    hsl_port_vrf_id_set port_vrf_id_set;
2187    hsl_port_vrf_id_get port_vrf_id_get;
2188
2189    /* FDB */
2190    hsl_fdb_add fdb_add;
2191    hsl_fdb_del_all fdb_del_all;
2192    hsl_fdb_del_by_port fdb_del_by_port;
2193    hsl_fdb_del_by_mac fdb_del_by_mac;
2194    hsl_fdb_first fdb_first;
2195    hsl_fdb_next fdb_next;
2196    hsl_fdb_find fdb_find;
2197    hsl_fdb_port_learn_set port_learn_set;
2198    hsl_fdb_port_learn_get port_learn_get;
2199    hsl_fdb_age_ctrl_set age_ctrl_set;
2200    hsl_fdb_age_ctrl_get age_ctrl_get;
2201    hsl_fdb_vlan_ivl_svl_set vlan_ivl_svl_set;
2202    hsl_fdb_vlan_ivl_svl_get vlan_ivl_svl_get;
2203    hsl_fdb_age_time_set age_time_set;
2204    hsl_fdb_age_time_get age_time_get;
2205    hsl_fdb_iterate fdb_iterate;
2206    hsl_fdb_extend_next fdb_extend_next;
2207    hsl_fdb_extend_first fdb_extend_first;
2208    hsl_fdb_transfer fdb_transfer;
2209    hsl_port_fdb_learn_limit_set port_fdb_learn_limit_set;
2210    hsl_port_fdb_learn_limit_get port_fdb_learn_limit_get;
2211    hsl_port_fdb_learn_exceed_cmd_set port_fdb_learn_exceed_cmd_set;
2212    hsl_port_fdb_learn_exceed_cmd_get port_fdb_learn_exceed_cmd_get;
2213    hsl_fdb_learn_limit_set fdb_learn_limit_set;
2214    hsl_fdb_learn_limit_get fdb_learn_limit_get;
2215    hsl_fdb_learn_exceed_cmd_set fdb_learn_exceed_cmd_set;
2216    hsl_fdb_learn_exceed_cmd_get fdb_learn_exceed_cmd_get;
2217    hsl_fdb_resv_add fdb_resv_add;
2218    hsl_fdb_resv_del fdb_resv_del;
2219    hsl_fdb_resv_find fdb_resv_find;
2220    hsl_fdb_resv_iterate fdb_resv_iterate;
2221    hsl_fdb_port_learn_static_set fdb_port_learn_static_set;
2222    hsl_fdb_port_learn_static_get fdb_port_learn_static_get;
2223    hsl_fdb_port_add fdb_port_add;
2224    hsl_fdb_port_del fdb_port_del;
2225    hsl_fdb_rfs_set fdb_rfs_set;
2226    hsl_fdb_rfs_del fdb_rfs_del;
2227
2228    /* QOS */
2229    hsl_qos_sch_mode_set qos_sch_mode_set;
2230    hsl_qos_sch_mode_get qos_sch_mode_get;
2231    hsl_qos_queue_tx_buf_status_set qos_queue_tx_buf_status_set;
2232    hsl_qos_queue_tx_buf_status_get qos_queue_tx_buf_status_get;
2233    hsl_qos_port_tx_buf_status_set qos_port_tx_buf_status_set;
2234    hsl_qos_port_tx_buf_status_get qos_port_tx_buf_status_get;
2235    hsl_qos_port_red_en_set qos_port_red_en_set;
2236    hsl_qos_port_red_en_get qos_port_red_en_get;
2237    hsl_qos_queue_tx_buf_nr_set qos_queue_tx_buf_nr_set;
2238    hsl_qos_queue_tx_buf_nr_get qos_queue_tx_buf_nr_get;
2239    hsl_qos_port_tx_buf_nr_set qos_port_tx_buf_nr_set;
2240    hsl_qos_port_tx_buf_nr_get qos_port_tx_buf_nr_get;
2241    hsl_qos_port_rx_buf_nr_set qos_port_rx_buf_nr_set;
2242    hsl_qos_port_rx_buf_nr_get qos_port_rx_buf_nr_get;
2243    hsl_cosmap_up_queue_set cosmap_up_queue_set;
2244    hsl_cosmap_up_queue_get cosmap_up_queue_get;
2245    hsl_cosmap_dscp_queue_set cosmap_dscp_queue_set;
2246    hsl_cosmap_dscp_queue_get cosmap_dscp_queue_get;
2247    hsl_qos_port_mode_set qos_port_mode_set;
2248    hsl_qos_port_mode_get qos_port_mode_get;
2249    hsl_qos_port_mode_pri_set qos_port_mode_pri_set;
2250    hsl_qos_port_mode_pri_get qos_port_mode_pri_get;
2251    hsl_qos_port_default_up_set qos_port_default_up_set;
2252    hsl_qos_port_default_up_get qos_port_default_up_get;
2253    hsl_qos_port_sch_mode_set qos_port_sch_mode_set;
2254    hsl_qos_port_sch_mode_get qos_port_sch_mode_get;
2255    hsl_qos_port_default_spri_set qos_port_default_spri_set;
2256    hsl_qos_port_default_spri_get qos_port_default_spri_get;
2257    hsl_qos_port_default_cpri_set qos_port_default_cpri_set;
2258    hsl_qos_port_default_cpri_get qos_port_default_cpri_get;
2259    hsl_qos_port_force_spri_status_set qos_port_force_spri_status_set;
2260    hsl_qos_port_force_spri_status_get qos_port_force_spri_status_get;
2261    hsl_qos_port_force_cpri_status_set qos_port_force_cpri_status_set;
2262    hsl_qos_port_force_cpri_status_get qos_port_force_cpri_status_get;
2263
2264    hsl_qos_queue_remark_table_set qos_queue_remark_table_set;
2265    hsl_qos_queue_remark_table_get qos_queue_remark_table_get;
2266
2267    /* Rate */
2268    hsl_storm_ctrl_frame_set storm_ctrl_frame_set;
2269    hsl_storm_ctrl_frame_get storm_ctrl_frame_get;
2270    hsl_storm_ctrl_rate_set storm_ctrl_rate_set;
2271    hsl_storm_ctrl_rate_get storm_ctrl_rate_get;
2272    hsl_rate_queue_egrl_set rate_queue_egrl_set;
2273    hsl_rate_queue_egrl_get rate_queue_egrl_get;
2274    hsl_rate_port_egrl_set rate_port_egrl_set;
2275    hsl_rate_port_egrl_get rate_port_egrl_get;
2276    hsl_rate_port_inrl_set rate_port_inrl_set;
2277    hsl_rate_port_inrl_get rate_port_inrl_get;
2278    hsl_rate_port_policer_set rate_port_policer_set;
2279    hsl_rate_port_policer_get rate_port_policer_get;
2280    hsl_rate_port_shaper_set rate_port_shaper_set;
2281    hsl_rate_port_shaper_get rate_port_shaper_get;
2282    hsl_rate_queue_shaper_set rate_queue_shaper_set;
2283    hsl_rate_queue_shaper_get rate_queue_shaper_get;
2284    hsl_rate_acl_policer_set rate_acl_policer_set;
2285    hsl_rate_acl_policer_get rate_acl_policer_get;
2286    hsl_rate_port_add_rate_byte_set rate_port_add_rate_byte_set;
2287    hsl_rate_port_add_rate_byte_get rate_port_add_rate_byte_get;
2288    hsl_rate_port_gol_flow_en_set rate_port_gol_flow_en_set;
2289    hsl_rate_port_gol_flow_en_get rate_port_gol_flow_en_get;
2290
2291    /* Mirror */
2292    hsl_mirr_analysis_port_set mirr_analysis_port_set;
2293    hsl_mirr_analysis_port_get mirr_analysis_port_get;
2294    hsl_mirr_port_in_set mirr_port_in_set;
2295    hsl_mirr_port_in_get mirr_port_in_get;
2296    hsl_mirr_port_eg_set mirr_port_eg_set;
2297    hsl_mirr_port_eg_get mirr_port_eg_get;
2298
2299    /* Stp */
2300    hsl_stp_port_state_set stp_port_state_set;
2301    hsl_stp_port_state_get stp_port_state_get;
2302
2303    /* IGMP */
2304    hsl_port_igmps_status_set port_igmps_status_set;
2305    hsl_port_igmps_status_get port_igmps_status_get;
2306    hsl_igmp_mld_cmd_set igmp_mld_cmd_set;
2307    hsl_igmp_mld_cmd_get igmp_mld_cmd_get;
2308    hsl_port_igmp_join_set port_igmp_join_set;
2309    hsl_port_igmp_join_get port_igmp_join_get;
2310    hsl_port_igmp_leave_set port_igmp_leave_set;
2311    hsl_port_igmp_leave_get port_igmp_leave_get;
2312    hsl_igmp_rp_set igmp_rp_set;
2313    hsl_igmp_rp_get igmp_rp_get;
2314    hsl_igmp_entry_creat_set igmp_entry_creat_set;
2315    hsl_igmp_entry_creat_get igmp_entry_creat_get;
2316    hsl_igmp_entry_static_set igmp_entry_static_set;
2317    hsl_igmp_entry_static_get igmp_entry_static_get;
2318    hsl_igmp_entry_leaky_set igmp_entry_leaky_set;
2319    hsl_igmp_entry_leaky_get igmp_entry_leaky_get;
2320    hsl_igmp_entry_v3_set igmp_entry_v3_set;
2321    hsl_igmp_entry_v3_get igmp_entry_v3_get;
2322    hsl_igmp_entry_queue_set igmp_entry_queue_set;
2323    hsl_igmp_entry_queue_get igmp_entry_queue_get;
2324    hsl_port_igmp_mld_learn_limit_set port_igmp_mld_learn_limit_set;
2325    hsl_port_igmp_mld_learn_limit_get port_igmp_mld_learn_limit_get;
2326    hsl_port_igmp_mld_learn_exceed_cmd_set port_igmp_mld_learn_exceed_cmd_set;
2327    hsl_port_igmp_mld_learn_exceed_cmd_get port_igmp_mld_learn_exceed_cmd_get;
2328    hsl_igmp_sg_entry_set igmp_sg_entry_set;
2329    hsl_igmp_sg_entry_clear igmp_sg_entry_clear;
2330    hsl_igmp_sg_entry_show igmp_sg_entry_show;
2331    hsl_igmp_sg_entry_query igmp_sg_entry_query;
2332
2333    /* Leaky */
2334    hsl_uc_leaky_mode_set uc_leaky_mode_set;
2335    hsl_uc_leaky_mode_get uc_leaky_mode_get;
2336    hsl_mc_leaky_mode_set mc_leaky_mode_set;
2337    hsl_mc_leaky_mode_get mc_leaky_mode_get;
2338    hsl_port_arp_leaky_set port_arp_leaky_set;
2339    hsl_port_arp_leaky_get port_arp_leaky_get;
2340    hsl_port_uc_leaky_set port_uc_leaky_set;
2341    hsl_port_uc_leaky_get port_uc_leaky_get;
2342    hsl_port_mc_leaky_set port_mc_leaky_set;
2343    hsl_port_mc_leaky_get port_mc_leaky_get;
2344
2345    /* MIB API */
2346    hsl_get_mib_info get_mib_info;
2347    hsl_get_rx_mib_info get_rx_mib_info;
2348    hsl_get_tx_mib_info get_tx_mib_info;
2349    hsl_mib_status_set mib_status_set;
2350    hsl_mib_status_get mib_status_get;
2351    hsl_mib_port_flush_counters mib_port_flush_counters;
2352    hsl_mib_cpukeep_set mib_cpukeep_set;
2353    hsl_mib_cpukeep_get mib_cpukeep_get;
2354
2355
2356    /* Acl */
2357    hsl_acl_list_creat acl_list_creat;
2358    hsl_acl_list_destroy acl_list_destroy;
2359    hsl_acl_rule_add acl_rule_add;
2360    hsl_acl_rule_delete acl_rule_delete;
2361    hsl_acl_rule_query acl_rule_query;
2362    hsl_acl_list_bind acl_list_bind;
2363    hsl_acl_list_unbind acl_list_unbind;
2364    hsl_acl_status_set acl_status_set;
2365    hsl_acl_status_get acl_status_get;
2366    hsl_acl_list_dump acl_list_dump;
2367    hsl_acl_rule_dump acl_rule_dump;
2368    hsl_acl_port_udf_profile_set acl_port_udf_profile_set;
2369    hsl_acl_port_udf_profile_get acl_port_udf_profile_get;
2370    hsl_acl_rule_active acl_rule_active;
2371    hsl_acl_rule_deactive acl_rule_deactive;
2372    hsl_acl_rule_src_filter_sts_set acl_rule_src_filter_sts_set;
2373    hsl_acl_rule_src_filter_sts_get acl_rule_src_filter_sts_get;
2374    hsl_acl_rule_get_offset acl_rule_get_offset;
2375    hsl_acl_rule_sync_multi_portmap acl_rule_sync_multi_portmap;
2376
2377    /* LED */
2378    hsl_led_ctrl_pattern_set led_ctrl_pattern_set;
2379    hsl_led_ctrl_pattern_get led_ctrl_pattern_get;
2380    hsl_led_ctrl_source_set led_ctrl_source_set;
2381
2382    /* CoSMap */
2383    hsl_cosmap_dscp_to_pri_set cosmap_dscp_to_pri_set;
2384    hsl_cosmap_dscp_to_pri_get cosmap_dscp_to_pri_get;
2385    hsl_cosmap_dscp_to_dp_set cosmap_dscp_to_dp_set;
2386    hsl_cosmap_dscp_to_dp_get cosmap_dscp_to_dp_get;
2387    hsl_cosmap_up_to_pri_set cosmap_up_to_pri_set;
2388    hsl_cosmap_up_to_pri_get cosmap_up_to_pri_get;
2389    hsl_cosmap_up_to_dp_set cosmap_up_to_dp_set;
2390    hsl_cosmap_up_to_dp_get cosmap_up_to_dp_get;
2391    hsl_cosmap_dscp_to_ehpri_set cosmap_dscp_to_ehpri_set;
2392    hsl_cosmap_dscp_to_ehpri_get cosmap_dscp_to_ehpri_get;
2393    hsl_cosmap_dscp_to_ehdp_set cosmap_dscp_to_ehdp_set;
2394    hsl_cosmap_dscp_to_ehdp_get cosmap_dscp_to_ehdp_get;
2395    hsl_cosmap_up_to_ehpri_set cosmap_up_to_ehpri_set;
2396    hsl_cosmap_up_to_ehpri_get cosmap_up_to_ehpri_get;
2397    hsl_cosmap_up_to_ehdp_set cosmap_up_to_ehdp_set;
2398    hsl_cosmap_up_to_ehdp_get cosmap_up_to_ehdp_get;
2399    hsl_cosmap_pri_to_queue_set cosmap_pri_to_queue_set;
2400    hsl_cosmap_pri_to_queue_get cosmap_pri_to_queue_get;
2401    hsl_cosmap_pri_to_ehqueue_set cosmap_pri_to_ehqueue_set;
2402    hsl_cosmap_pri_to_ehqueue_get cosmap_pri_to_ehqueue_get;
2403    hsl_cosmap_egress_remark_set cosmap_egress_remark_set;
2404    hsl_cosmap_egress_remark_get cosmap_egress_remark_get;
2405
2406    /* IP */
2407    hsl_ip_host_add ip_host_add;
2408    hsl_ip_host_del ip_host_del;
2409    hsl_ip_host_get ip_host_get;
2410    hsl_ip_host_next ip_host_next;
2411    hsl_ip_host_counter_bind ip_host_counter_bind;
2412    hsl_ip_host_pppoe_bind ip_host_pppoe_bind;
2413    hsl_ip_pt_arp_learn_set ip_pt_arp_learn_set;
2414    hsl_ip_pt_arp_learn_get ip_pt_arp_learn_get;
2415    hsl_ip_arp_learn_set ip_arp_learn_set;
2416    hsl_ip_arp_learn_get ip_arp_learn_get;
2417    hsl_ip_source_guard_set ip_source_guard_set;
2418    hsl_ip_source_guard_get ip_source_guard_get;
2419    hsl_ip_unk_source_cmd_set ip_unk_source_cmd_set;
2420    hsl_ip_unk_source_cmd_get ip_unk_source_cmd_get;
2421    hsl_ip_arp_guard_set ip_arp_guard_set;
2422    hsl_ip_arp_guard_get ip_arp_guard_get;
2423    hsl_arp_unk_source_cmd_set arp_unk_source_cmd_set;
2424    hsl_arp_unk_source_cmd_get arp_unk_source_cmd_get;
2425    hsl_ip_route_status_set ip_route_status_set;
2426    hsl_ip_route_status_get ip_route_status_get;
2427    hsl_ip_intf_entry_add ip_intf_entry_add;
2428    hsl_ip_intf_entry_del ip_intf_entry_del;
2429    hsl_ip_intf_entry_next ip_intf_entry_next;
2430    hsl_ip_age_time_set ip_age_time_set;
2431    hsl_ip_age_time_get ip_age_time_get;
2432    hsl_ip_wcmp_hash_mode_set ip_wcmp_hash_mode_set;
2433    hsl_ip_wcmp_hash_mode_get ip_wcmp_hash_mode_get;
2434    hsl_ip_vrf_base_addr_set ip_vrf_base_addr_set;
2435    hsl_ip_vrf_base_addr_get ip_vrf_base_addr_get;
2436    hsl_ip_vrf_base_mask_set ip_vrf_base_mask_set;
2437    hsl_ip_vrf_base_mask_get ip_vrf_base_mask_get;
2438    hsl_ip_default_route_set ip_default_route_set;
2439    hsl_ip_default_route_get ip_default_route_get;
2440    hsl_ip_host_route_set ip_host_route_set;
2441    hsl_ip_host_route_get ip_host_route_get;
2442    hsl_ip_wcmp_entry_set ip_wcmp_entry_set;
2443    hsl_ip_wcmp_entry_get ip_wcmp_entry_get;
2444    hsl_ip_rfs_ip4_set ip_rfs_ip4_set;
2445    hsl_ip_rfs_ip6_set ip_rfs_ip6_set;
2446    hsl_ip_rfs_ip4_del ip_rfs_ip4_del;
2447    hsl_ip_rfs_ip6_del ip_rfs_ip6_del;
2448    hsl_default_flow_cmd_set ip_default_flow_cmd_set;
2449    hsl_default_flow_cmd_get ip_default_flow_cmd_get;
2450    hsl_default_rt_flow_cmd_set ip_default_rt_flow_cmd_set;
2451    hsl_default_rt_flow_cmd_get ip_default_rt_flow_cmd_get;
2452	hsl_ip_glb_lock_time_set ip_glb_lock_time_set;
2453
2454    /* NAT */
2455    hsl_nat_add nat_add;
2456    hsl_nat_del nat_del;
2457    hsl_nat_get nat_get;
2458    hsl_nat_next nat_next;
2459    hsl_nat_counter_bind nat_counter_bind;
2460    hsl_napt_add napt_add;
2461    hsl_napt_del napt_del;
2462    hsl_napt_get napt_get;
2463    hsl_napt_next napt_next;
2464    hsl_napt_counter_bind napt_counter_bind;
2465    hsl_napt_add flow_add;
2466    hsl_napt_del flow_del;
2467    hsl_napt_get flow_get;
2468    hsl_napt_next flow_next;
2469    hsl_napt_counter_bind flow_counter_bind;
2470    hsl_nat_status_set nat_status_set;
2471    hsl_nat_status_get nat_status_get;
2472    hsl_nat_hash_mode_set nat_hash_mode_set;
2473    hsl_nat_hash_mode_get nat_hash_mode_get;
2474    hsl_napt_status_set napt_status_set;
2475    hsl_napt_status_get napt_status_get;
2476    hsl_napt_mode_set napt_mode_set;
2477    hsl_napt_mode_get napt_mode_get;
2478    hsl_nat_prv_base_addr_set nat_prv_base_addr_set;
2479    hsl_nat_prv_base_addr_get nat_prv_base_addr_get;
2480    hsl_nat_prv_base_mask_set nat_prv_base_mask_set;
2481    hsl_nat_prv_base_mask_get nat_prv_base_mask_get;
2482    hsl_nat_prv_addr_mode_set nat_prv_addr_mode_set;
2483    hsl_nat_prv_addr_mode_get nat_prv_addr_mode_get;
2484    hsl_nat_pub_addr_add nat_pub_addr_add;
2485    hsl_nat_pub_addr_del nat_pub_addr_del;
2486    hsl_nat_pub_addr_next nat_pub_addr_next;
2487    hsl_nat_unk_session_cmd_set nat_unk_session_cmd_set;
2488    hsl_nat_unk_session_cmd_get nat_unk_session_cmd_get;
2489    hsl_nat_global_set nat_global_set;
2490    hsl_flow_cookie_set flow_cookie_set;
2491    hsl_flow_rfs_set flow_rfs_set;
2492
2493    /* SEC */
2494    hsl_sec_norm_item_set sec_norm_item_set;
2495    hsl_sec_norm_item_get sec_norm_item_get;
2496
2497    /* Trunk */
2498    hsl_trunk_group_set trunk_group_set;
2499    hsl_trunk_group_get trunk_group_get;
2500    hsl_trunk_hash_mode_set trunk_hash_mode_set;
2501    hsl_trunk_hash_mode_get trunk_hash_mode_get;
2502    hsl_trunk_manipulate_sa_set trunk_manipulate_sa_set;
2503    hsl_trunk_manipulate_sa_get trunk_manipulate_sa_get;
2504
2505    /* Interface Control */
2506    hsl_interface_mac_mode_set interface_mac_mode_set;
2507    hsl_interface_mac_mode_get interface_mac_mode_get;
2508    hsl_port_3az_status_set port_3az_status_set;
2509    hsl_port_3az_status_get port_3az_status_get;
2510    hsl_interface_phy_mode_set interface_phy_mode_set;
2511    hsl_interface_phy_mode_get interface_phy_mode_get;
2512    hsl_interface_fx100_ctrl_set interface_fx100_ctrl_set;
2513    hsl_interface_fx100_ctrl_get interface_fx100_ctrl_get;
2514    hsl_interface_fx100_status_get interface_fx100_status_get;
2515    hsl_interface_mac06_exch_set interface_mac06_exch_set;
2516    hsl_interface_mac06_exch_get interface_mac06_exch_get;
2517    hsl_interface_pad_get	interface_mac_pad_get;
2518    hsl_interface_pad_set	interface_mac_pad_set;
2519    hsl_interface_sgmii_get	interface_mac_sgmii_get;
2520    hsl_interface_sgmii_set	interface_mac_sgmii_set;
2521#endif
2522#endif
2523
2524    /* REG Access */
2525    hsl_phy_get phy_get;
2526    hsl_phy_set phy_set;
2527    hsl_reg_get reg_get;
2528    hsl_reg_set reg_set;
2529    hsl_reg_field_get reg_field_get;
2530    hsl_reg_field_set reg_field_set;
2531    hsl_reg_entries_get reg_entries_get;
2532    hsl_reg_entries_set reg_entries_set;
2533    hsl_psgmii_reg_get psgmii_reg_get;
2534    hsl_psgmii_reg_set psgmii_reg_set;
2535	hsl_register_dump	register_dump;
2536	hsl_debug_register_dump	debug_register_dump;
2537
2538      /*INIT*/ hsl_dev_reset dev_reset;
2539    hsl_dev_clean dev_clean;
2540    hsl_dev_access_set dev_access_set;
2541  } hsl_api_t;
2542
2543  hsl_api_t *hsl_api_ptr_get (a_uint32_t dev_id);
2544
2545    sw_error_t hsl_api_init (a_uint32_t dev_id);
2546
2547#if defined(SW_API_LOCK) && (!defined(HSL_STANDALONG))
2548  extern aos_lock_t sw_hsl_api_lock;
2549#define FAL_API_LOCK    aos_lock(&sw_hsl_api_lock)
2550#define FAL_API_UNLOCK  aos_unlock(&sw_hsl_api_lock)
2551#else
2552#define FAL_API_LOCK
2553#define FAL_API_UNLOCK
2554#endif
2555
2556#ifdef __cplusplus
2557}
2558#endif				/* __cplusplus */
2559#endif				/* _SW_API_H */
2560