text:
/**********************************************************
 * ctc_api.h
 * Date:
 * Author: auto generate from include file
 **********************************************************/
#ifndef _CTC_API_H
#define _CTC_API_H
#ifdef __cplusplus
extern "C" {
#endif
/**********************************************************
 *
 * Header file
 *
 **********************************************************/
#include "sal_types.h"
#include "ctc_error.h"
#include "ctc_const.h"
#include "ctc_acl.h"
#include "ctc_aps.h"
#include "ctc_bheader.h"
#include "ctc_bpe.h"
#include "ctc_chip.h"
#include "ctc_cpu_traffic.h"
#include "ctc_dma.h"
#include "ctc_efd.h"
#include "ctc_fcoe.h"
#include "ctc_ftm.h"
#include "ctc_internal_port.h"
#include "ctc_interrupt.h"
#include "ctc_ipfix.h"
#include "ctc_ipmc.h"
#include "ctc_ipuc.h"
#include "ctc_l2.h"
#include "ctc_l3if.h"
#include "ctc_learning_aging.h"
#include "ctc_linkagg.h"
#include "ctc_mirror.h"
#include "ctc_monitor.h"
#include "ctc_mpls.h"
#include "ctc_nexthop.h"
#include "ctc_oam.h"
#include "ctc_overlay_tunnel.h"
#include "ctc_packet.h"
#include "ctc_parser.h"
#include "ctc_pdu.h"
#include "ctc_port.h"
#include "ctc_ptp.h"
#include "ctc_qos.h"
#include "ctc_register.h"
#include "ctc_scl.h"
#include "ctc_security.h"
#include "ctc_sgmac.h"
#include "ctc_stacking.h"
#include "ctc_stats.h"
#include "ctc_sync_ether.h"
#include "ctc_trill.h"
#include "ctc_vlan.h"
/**********************************************************
 *
 * Defines and macros
 *
 **********************************************************/
struct ctc_api_s
{
    char *chip_name;
    /*##acl##*/
    int32(*ctc_acl_add_entry)(uint32, ctc_acl_entry_t*);
    int32(*ctc_acl_clear_stats)(uint32);
    int32(*ctc_acl_copy_entry)(ctc_acl_copy_entry_t*);
    int32(*ctc_acl_create_group)(uint32, ctc_acl_group_info_t*);
    int32(*ctc_acl_destroy_group)(uint32);
    int32(*ctc_acl_get_group_info)(uint32, ctc_acl_group_info_t*);
    int32(*ctc_acl_get_multi_entry)(ctc_acl_query_t*);
    int32(*ctc_acl_get_stats)(uint32, ctc_stats_basic_t*);
    int32(*ctc_acl_init)(ctc_acl_global_cfg_t*);
    int32(*ctc_acl_install_entry)(uint32);
    int32(*ctc_acl_install_group)(uint32, ctc_acl_group_info_t*);
    int32(*ctc_acl_remove_all_entry)(uint32);
    int32(*ctc_acl_remove_entry)(uint32);
    int32(*ctc_acl_set_entry_priority)(uint32, uint32);
    int32(*ctc_acl_set_hash_field_sel)(ctc_acl_hash_field_sel_t*);
    int32(*ctc_acl_uninstall_entry)(uint32);
    int32(*ctc_acl_uninstall_group)(uint32);
    int32(*ctc_acl_update_action)(uint32, ctc_acl_action_t*);
    /*##aps##*/
    int32(*ctc_aps_create_aps_bridge_group)(uint16, ctc_aps_bridge_group_t*);
    int32(*ctc_aps_create_raps_mcast_group)(uint16);
    int32(*ctc_aps_destroy_aps_bridge_group)(uint16);
    int32(*ctc_aps_destroy_raps_mcast_group)(uint16);
    int32(*ctc_aps_get_aps_bridge_protection_path)(uint16, uint16*);
    int32(*ctc_aps_get_aps_bridge)(uint16, bool*);
    int32(*ctc_aps_get_aps_bridge_working_path)(uint16, uint16*);
    int32(*ctc_aps_get_aps_select)(uint16, bool*);
    int32(*ctc_aps_init)(void*);
    int32(*ctc_aps_set_aps_bridge_group)(uint16, ctc_aps_bridge_group_t*);
    int32(*ctc_aps_set_aps_bridge_protection_path)(uint16, uint32);
    int32(*ctc_aps_set_aps_bridge)(uint16, bool);
    int32(*ctc_aps_set_aps_bridge_working_path)(uint16, uint32);
    int32(*ctc_aps_set_aps_select)(uint16, bool);
    int32(*ctc_aps_update_raps_mcast_member)(ctc_raps_member_t*);
    /*##bheader##*/
    int32(*ctc_bheader_decap)(void*, uint16, ctc_bheader_rx_info_t*);
    int32(*ctc_bheader_encap)(ctc_bheader_tx_info_t*, void*, uint16*);
    /*##bpe##*/
    int32(*ctc_bpe_get_intlk_en)(bool*);
    int32(*ctc_bpe_get_port_extender)(uint32, bool*);
    int32(*ctc_bpe_init)(void*);
    int32(*ctc_bpe_set_intlk_en)(bool);
    int32(*ctc_bpe_set_port_extender)(uint32, ctc_bpe_extender_t*);
    /*##chip##*/
    int32(*ctc_chip_get_access_type)(ctc_chip_access_type_t*);
    int32(*ctc_chip_get_gpio_input)(uint8, uint8*);
    int32(*ctc_chip_get_mdio_clock)(ctc_chip_mdio_type_t, uint16*);
    int32(*ctc_chip_get_phy_mapping)(ctc_chip_phy_mapping_para_t*);
    int32(*ctc_chip_get_property)(uint8, ctc_chip_property_t, void*);
    int32(*ctc_chip_i2c_read)(ctc_chip_i2c_read_t*);
    int32(*ctc_chip_i2c_write)(ctc_chip_i2c_write_t*);
    int32(*ctc_chip_init)(uint8);
    int32(*ctc_chip_mdio_read)(uint8, ctc_chip_mdio_type_t, ctc_chip_mdio_para_t*);
    int32(*ctc_chip_mdio_write)(uint8, ctc_chip_mdio_type_t, ctc_chip_mdio_para_t*);
    int32(*ctc_chip_read_gephy_reg)(uint32, ctc_chip_gephy_para_t*);
    int32(*ctc_chip_read_i2c_buf)(ctc_chip_i2c_scan_read_t*);
    int32(*ctc_chip_read_xgphy_reg)(uint32, ctc_chip_xgphy_para_t*);
    int32(*ctc_chip_set_access_type)(ctc_chip_access_type_t);
    int32(*ctc_chip_set_gephy_scan_special_reg)(ctc_chip_ge_opt_reg_t*, bool);
    int32(*ctc_chip_set_gpio_mode)(uint8, ctc_chip_gpio_mode_t);
    int32(*ctc_chip_set_gpio_output)(uint8, uint8);
    int32(*ctc_chip_set_hss12g_enable)(uint8, uint8, ctc_chip_serdes_mode_t, uint8);
    int32(*ctc_chip_set_i2c_scan_en)(bool);
    int32(*ctc_chip_set_i2c_scan_para)(ctc_chip_i2c_scan_t*);
    int32(*ctc_chip_set_mac_led_en)(bool);
    int32(*ctc_chip_set_mac_led_mapping)(ctc_chip_mac_led_mapping_t*);
    int32(*ctc_chip_set_mac_led_mode)(ctc_chip_led_para_t*, ctc_chip_mac_led_type_t);
    int32(*ctc_chip_set_mdio_clock)(ctc_chip_mdio_type_t, uint16);
    int32(*ctc_chip_set_phy_mapping)(ctc_chip_phy_mapping_para_t*);
    int32(*ctc_chip_set_phy_scan_en)(bool);
    int32(*ctc_chip_set_phy_scan_para)(ctc_chip_phy_scan_ctrl_t*);
    int32(*ctc_chip_set_property)(uint8, ctc_chip_property_t, void*);
    int32(*ctc_chip_set_serdes_mode)(uint8, ctc_chip_serdes_info_t*);
    int32(*ctc_chip_set_xgphy_scan_special_reg)(ctc_chip_xg_opt_reg_t*, uint8);
    int32(*ctc_chip_write_gephy_reg)(uint32, ctc_chip_gephy_para_t*);
    int32(*ctc_chip_write_xgphy_reg)(uint32, ctc_chip_xgphy_para_t*);
    int32(*ctc_datapath_get_mode)(uint8, ctc_chip_datapath_mode_t*);
    int32(*ctc_data_path_init)(ctc_chip_reset_cb, ctc_chip_datapath_t*, char*);
    int32(*ctc_datapath_init)(uint8, void*);
    int32(*ctc_datapath_set_mode)(uint8, ctc_chip_datapath_mode_t);
    int32(*ctc_datapath_sim_init)();
    int32(*ctc_get_chip_clock)(uint16*);
    int32(*ctc_get_chip_sensor)(uint8, ctc_chip_sensor_type_t, uint32*);
    int32(*ctc_get_gchip_id)(uint8, uint8*);
    int32(*ctc_get_local_chip_num)(uint8*);
    int32(*ctc_get_serdes_mode)(uint16, ctc_serdes_mode_t*);
    int32(*ctc_init_pll_hss)();
    int32(*ctc_parity_error_init)();
    int32(*ctc_parse_datapath)(char*);
    int32(*ctc_set_chip_global_cfg)(ctc_chip_global_cfg_t*);
    int32(*ctc_set_gchip_id)(uint8, uint8);
    int32(*ctc_set_serdes_mode)(uint16, ctc_serdes_mode_t);
    /*##cpu_traffic##*/
    int32(*ctc_cpu_traffic_init)(void*);
    int32(*ctc_cpu_traffic_set_exception)(uint8, uint16, ctc_excp_dest_type_t);
    int32(*ctc_cpu_traffic_set_fatal_exception)(uint8, uint16, ctc_excp_dest_type_t);
    /*##dma##*/
    int32(*ctc_dma_init)(ctc_dma_global_cfg_t*);
    int32(*ctc_dma_rw_table)(ctc_dma_tbl_rw_t*);
    int32(*ctc_dma_tx_pkt)(ctc_pkt_tx_t*);
    /*##efd##*/
    int32(*ctc_efd_get_global_ctl)(ctc_efd_global_control_type_t, void*);
    int32(*ctc_efd_init)(void*);
    int32(*ctc_efd_register_cb)(ctc_efd_fn_t, void*);
    int32(*ctc_efd_set_global_ctl)(ctc_efd_global_control_type_t, void*);
    /*##fcoe##*/
    int32(*ctc_fcoe_add_route)(ctc_fcoe_route_t*);
    int32(*ctc_fcoe_init)(void*);
    int32(*ctc_fcoe_remove_route)(ctc_fcoe_route_t*);
    /*##ftm##*/
    int32(*ctc_ftm_mem_alloc)(ctc_ftm_profile_info_t*);
    int32(*ctc_ftm_set_default_profile)(ctc_ftm_profile_info_t*);
    int32(*ctc_ftm_show_alloc_info)();
    /*##internal_port##*/
    int32(*ctc_alloc_internal_port)(ctc_internal_port_assign_para_t*);
    int32(*ctc_free_internal_port)(ctc_internal_port_assign_para_t*);
    int32(*ctc_internal_port_init)(void*);
    int32(*ctc_set_internal_port)(ctc_internal_port_assign_para_t*);
    /*##interrupt##*/
    int32(*ctc_interrupt_clear_fatal_intr)(uint8, uint8);
    int32(*ctc_interrupt_clear_normal_intr)(uint8, uint8);
    int32(*ctc_interrupt_clear_status)(uint8, ctc_intr_type_t*);
    int32(*ctc_interrupt_clear_sub_normal_intr)(uint8, ctc_interrupt_normal_intr_type_t, uint8);
    int32(*ctc_interrupt_deinit)();
    int32(*ctc_interrupt_disable_fatal_intr)(uint8, uint8);
    int32(*ctc_interrupt_disable_normal_intr)(uint8, uint8);
    int32(*ctc_interrupt_disable_sub_normal_intr)(uint8, ctc_interrupt_normal_intr_type_t, uint8);
    int32(*ctc_interrupt_enable_fatal_intr)(uint8, uint8);
    int32(*ctc_interrupt_enable_normal_intr)(uint8, uint8);
    int32(*ctc_interrupt_enable_sub_normal_intr)(uint8, ctc_interrupt_normal_intr_type_t, uint8);
    int32(*ctc_interrupt_get_en)(uint8, ctc_intr_type_t*, uint32*);
    int32(*ctc_interrupt_get_fatal_intr_status)(uint8, uint8, ctc_interrupt_fatal_intr_status_t*);
    int32(*ctc_interrupt_get_normal_all_intr_status)(uint8, uint32*);
    int32(*ctc_interrupt_get_normal_intr_status)(uint8, uint8, bool*);
    int32(*ctc_interrupt_get_status)(uint8, ctc_intr_type_t*, ctc_intr_status_t*);
    int32(*ctc_interrupt_init)(void*);
    int32(*ctc_interrupt_reg_init_end)();
    int32(*ctc_interrupt_reg_init_start)();
    int32(*ctc_interrupt_register_event_cb)(ctc_interrupt_event_t, CTC_INTERRUPT_EVENT_FUNC);
    int32(*ctc_interrupt_set_en)(uint8, ctc_intr_type_t*, uint32);
    /*##ipfix##*/
    int32(*ctc_ipfix_add_entry)(ctc_ipfix_data_t*);
    int32(*ctc_ipfix_delete_entry)(ctc_ipfix_data_t*);
    int32(*ctc_ipfix_get_global_cfg)(ctc_ipfix_global_cfg_t*);
    int32(*ctc_ipfix_get_port_cfg)(uint32, ctc_ipfix_port_cfg_t*);
    int32(*ctc_ipfix_init)(void*);
    int32(*ctc_ipfix_register_cb)(ctc_ipfix_fn_t, void*);
    int32(*ctc_ipfix_set_global_cfg)(ctc_ipfix_global_cfg_t*);
    int32(*ctc_ipfix_set_hash_field_sel)(ctc_ipfix_hash_field_sel_t*);
    int32(*ctc_ipfix_set_port_cfg)(uint32, ctc_ipfix_port_cfg_t*);
    int32(*ctc_ipfix_traverse)(ctc_ipfix_traverse_fn, ctc_ipfix_traverse_t*);
    /*##ipmc##*/
    int32(*ctc_ipmc_add_default_entry)(uint8, ctc_ipmc_default_action_t);
    int32(*ctc_ipmc_add_group)(ctc_ipmc_group_info_t*);
    int32(*ctc_ipmc_add_member)(ctc_ipmc_group_info_t*);
    int32(*ctc_ipmc_add_rp_intf)(ctc_ipmc_rp_t*);
    int32(*ctc_ipmc_clear_stats)(ctc_ipmc_group_info_t*);
    int32(*ctc_ipmc_get_group_info)(ctc_ipmc_group_info_t*);
    int32(*ctc_ipmc_get_mcast_force_route)(ctc_ipmc_force_route_t*);
    int32(*ctc_ipmc_get_stats)(ctc_ipmc_group_info_t*, ctc_stats_basic_t*);
    int32(*ctc_ipmc_init)(void*);
    int32(*ctc_ipmc_remove_group)(ctc_ipmc_group_info_t*);
    int32(*ctc_ipmc_remove_member)(ctc_ipmc_group_info_t*);
    int32(*ctc_ipmc_remove_rp_intf)(ctc_ipmc_rp_t*);
    int32(*ctc_ipmc_set_mcast_force_route)(ctc_ipmc_force_route_t*);
    int32(*ctc_ipmc_traverse)(uint8, ctc_ipmc_traverse_fn, void*);
    int32(*ctc_ipmc_update_rpf)(ctc_ipmc_group_info_t*);
    /*##ipuc##*/
    int32(*ctc_ipuc_add_default_entry)(uint8, uint32);
    int32(*ctc_ipuc_add_nat_sa)(ctc_ipuc_nat_sa_param_t*);
    int32(*ctc_ipuc_add_tunnel)(ctc_ipuc_tunnel_param_t*);
    int32(*ctc_ipuc_add)(ctc_ipuc_param_t*);
    int32(*ctc_ipuc_arrange_fragment)(void*);
    int32(*ctc_ipuc_cpu_rpf_check)(bool);
    int32(*ctc_ipuc_get)(ctc_ipuc_param_t*);
    int32(*ctc_ipuc_init)(void*);
    int32(*ctc_ipuc_ipv6_enable)(bool);
    int32(*ctc_ipuc_remove_nat_sa)(ctc_ipuc_nat_sa_param_t*);
    int32(*ctc_ipuc_remove_tunnel)(ctc_ipuc_tunnel_param_t*);
    int32(*ctc_ipuc_remove)(ctc_ipuc_param_t*);
    int32(*ctc_ipuc_set_global_property)(ctc_ipuc_global_property_t*);
    int32(*ctc_ipuc_set_lookup_ctl)(ctc_ipuc_global_property_t*);
    int32(*ctc_ipuc_set_route_ctl)(ctc_ipuc_global_property_t*);
    int32(*ctc_ipuc_traverse)(uint8, void*, void*);
    /*##l2##*/
    int32(*ctc_l2_add_default_entry)(ctc_l2dflt_addr_t*);
    int32(*ctc_l2_add_fdb)(ctc_l2_addr_t*);
    int32(*ctc_l2_add_fdb_with_nexthop)(ctc_l2_addr_t*, uint32);
    int32(*ctc_l2_add_port_to_default_entry)(ctc_l2dflt_addr_t*);
    int32(*ctc_l2_fdb_init)(void*);
    int32(*ctc_l2_flush_fdb)(ctc_l2_flush_fdb_t*);
    int32(*ctc_l2_get_default_entry_features)(ctc_l2dflt_addr_t*);
    int32(*ctc_l2_get_fdb_by_index)(uint32, ctc_l2_addr_t*);
    int32(*ctc_l2_get_fdb_count)(ctc_l2_fdb_query_t*);
    int32(*ctc_l2_get_fdb_entry)(ctc_l2_fdb_query_t*, ctc_l2_fdb_query_rst_t*);
    int32(*ctc_l2_get_fid_property)(uint16, ctc_l2_fid_property_t, uint32*);
    int32(*ctc_l2_get_nhid_by_logic_port)(uint16, uint32*);
    int32(*ctc_l2mcast_add_addr)(ctc_l2_mcast_addr_t*);
    int32(*ctc_l2mcast_add_member)(ctc_l2_mcast_addr_t*);
    int32(*ctc_l2mcast_remove_addr)(ctc_l2_mcast_addr_t*);
    int32(*ctc_l2mcast_remove_member)(ctc_l2_mcast_addr_t*);
    int32(*ctc_l2_remove_default_entry)(ctc_l2dflt_addr_t*);
    int32(*ctc_l2_remove_fdb_by_index)(uint32);
    int32(*ctc_l2_remove_fdb)(ctc_l2_addr_t*);
    int32(*ctc_l2_remove_port_from_default_entry)(ctc_l2dflt_addr_t*);
    int32(*ctc_l2_set_default_entry_features)(ctc_l2dflt_addr_t*);
    int32(*ctc_l2_set_fid_property)(uint16, ctc_l2_fid_property_t, uint32);
    int32(*ctc_l2_set_nhid_by_logic_port)(uint16, uint32);
    /*##l3if##*/
    int32(*ctc_l3if_add_ecmp_if_member)(uint16, uint16);
    int32(*ctc_l3if_add_vmac_low_8bit)(uint16, ctc_l3if_vmac_t*);
    int32(*ctc_l3if_create_ecmp_if)(ctc_l3if_ecmp_if_t*);
    int32(*ctc_l3if_create)(uint16, ctc_l3if_t*);
    int32(*ctc_l3if_destory_ecmp_if)(uint16);
    int32(*ctc_l3if_destory)(uint16, ctc_l3if_t*);
    int32(*ctc_l3if_get_interface_router_mac)(uint16, ctc_l3if_router_mac_t*);
    int32(*ctc_l3if_get_l3if_id)(ctc_l3if_t*, uint16*);
    int32(*ctc_l3if_get_property)(uint16, ctc_l3if_property_t, uint32*);
    int32(*ctc_l3if_get_router_mac)(mac_addr_t);
    int32(*ctc_l3if_get_vmac_low_8bit)(uint16, ctc_l3if_vmac_t*);
    int32(*ctc_l3if_get_vmac_prefix)(ctc_l3if_route_mac_type_t, mac_addr_t);
    int32(*ctc_l3if_init)(void*);
    int32(*ctc_l3if_remove_ecmp_if_member)(uint16, uint16);
    int32(*ctc_l3if_remove_vmac_low_8bit)(uint16, ctc_l3if_vmac_t*);
    int32(*ctc_l3if_set_interface_router_mac)(uint16, ctc_l3if_router_mac_t);
    int32(*ctc_l3if_set_property)(uint16, ctc_l3if_property_t, uint32);
    int32(*ctc_l3if_set_router_mac)(mac_addr_t);
    int32(*ctc_l3if_set_vmac_prefix)(ctc_l3if_route_mac_type_t, mac_addr_t);
    int32(*ctc_l3if_set_vrf_stats_en)(ctc_l3if_vrf_stats_t*);
    /*##learning_aging##*/
    int32(*ctc_aging_get_aging_status)(uint32, ctc_aging_status_t*);
    int32(*ctc_aging_get_property)(ctc_aging_table_type_t, ctc_aging_prop_t, uint32*);
    int32(*ctc_aging_read_aging_fifo)(ctc_aging_fifo_info_t*);
    int32(*ctc_aging_set_property)(ctc_aging_table_type_t, ctc_aging_prop_t, uint32);
    int32(*ctc_get_learning_action)(ctc_learning_action_info_t*);
    int32(*ctc_learning_aging_init)(void*);
    int32(*ctc_learning_clear_learning_cache)(uint16);
    int32(*ctc_learning_get_cache_entry_valid_bitmap)(uint16*);
    int32(*ctc_learning_read_learning_cache)(uint16, ctc_learning_cache_t*);
    int32(*ctc_set_learning_action)(ctc_learning_action_info_t*);
    /*##linkagg##*/
    int32(*ctc_linkagg_add_port)(uint8, uint32);
    int32(*ctc_linkagg_create)(ctc_linkagg_group_t*);
    int32(*ctc_linkagg_destroy)(uint8);
    int32(*ctc_linkagg_get_1st_local_port)(uint8, uint8, uint16*, uint8*);
    int32(*ctc_linkagg_get_max_mem_num)(uint8*);
    int32(*ctc_linkagg_get_member_ports)(uint8, uint16*, uint8*);
    int32(*ctc_linkagg_get_psc)(ctc_linkagg_psc_t*);
    int32(*ctc_linkagg_init)(void*);
    int32(*ctc_linkagg_remove_port)(uint8, uint32);
    int32(*ctc_linkagg_set_psc)(ctc_linkagg_psc_t*);
    /*##mirror##*/
    int32(*ctc_mirror_add_session)(ctc_mirror_dest_t*);
    int32(*ctc_mirror_get_mirror_discard)(ctc_direction_t, ctc_mirror_discard_t, bool*);
    int32(*ctc_mirror_get_port_info)(uint32, ctc_direction_t, bool*, uint8*);
    int32(*ctc_mirror_get_vlan_info)(uint16, ctc_direction_t, bool*, uint8*);
    int32(*ctc_mirror_init)(void*);
    int32(*ctc_mirror_remove_session)(ctc_mirror_dest_t*);
    int32(*ctc_mirror_set_erspan_psc)(ctc_mirror_erspan_psc_t*);
    int32(*ctc_mirror_set_escape_en)(bool);
    int32(*ctc_mirror_set_escape_mac)(ctc_mirror_rspan_escape_t*);
    int32(*ctc_mirror_set_mirror_discard)(ctc_direction_t, uint16, bool);
    int32(*ctc_mirror_set_port_en)(uint32, ctc_direction_t, bool, uint8);
    int32(*ctc_mirror_set_vlan_en)(uint16, ctc_direction_t, bool, uint8);
    /*##monitor##*/
    int32(*ctc_monitor_clear_watermark)(ctc_monitor_watermark_t*);
    int32(*ctc_monitor_get_config)(ctc_monitor_config_t*);
    int32(*ctc_monitor_get_watermark)(ctc_monitor_watermark_t*);
    int32(*ctc_monitor_init)(void*);
    int32(*ctc_monitor_register_cb)(ctc_monitor_fn_t, void*);
    int32(*ctc_monitor_set_config)(ctc_monitor_config_t*);
    int32(*ctc_monitor_set_global_config)(ctc_monitor_glb_cfg_t*);
    /*##mpls##*/
    int32(*ctc_mpls_add_ilm)(ctc_mpls_ilm_t*);
    int32(*ctc_mpls_add_l2vpn_pw)(ctc_mpls_l2vpn_pw_t*);
    int32(*ctc_mpls_add_stats)(ctc_mpls_stats_index_t*);
    int32(*ctc_mpls_clear_in_sqn)(uint8);
    int32(*ctc_mpls_clear_out_sqn)(uint8);
    int32(*ctc_mpls_clear_stats)(ctc_mpls_stats_index_t*);
    int32(*ctc_mpls_del_ilm)(ctc_mpls_ilm_t*);
    int32(*ctc_mpls_del_l2vpn_pw)(ctc_mpls_l2vpn_pw_t*);
    int32(*ctc_mpls_get_ilm)(uint32*, ctc_mpls_ilm_t*);
    int32(*ctc_mpls_get_stats)(ctc_mpls_stats_index_t*, ctc_stats_basic_t*);
    int32(*ctc_mpls_init)(ctc_mpls_init_t*);
    int32(*ctc_mpls_remove_stats)(ctc_mpls_stats_index_t*);
    int32(*ctc_mpls_set_ilm_property)(ctc_mpls_property_t*);
    int32(*ctc_mpls_update_ilm)(ctc_mpls_ilm_t*);
    /*##nexthop##*/
    int32(*ctc_nexthop_init)(ctc_nh_global_cfg_t*);
    int32(*ctc_nh_add_ecmp)(uint32, ctc_nh_ecmp_nh_param_t*);
    int32(*ctc_nh_add_iloop)(uint32, ctc_loopback_nexthop_param_t*);
    int32(*ctc_nh_add_ip_tunnel)(uint32, ctc_ip_tunnel_nh_param_t*);
    int32(*ctc_nh_add_ipuc)(uint32, ctc_ip_nh_param_t*);
    int32(*ctc_nh_add_l2uc)(uint32, ctc_nh_param_brguc_sub_type_t);
    int32(*ctc_nh_add_mcast)(uint32, ctc_mcast_nh_param_group_t*);
    int32(*ctc_nh_add_misc)(uint32, ctc_misc_nh_param_t*);
    int32(*ctc_nh_add_mpls_tunnel_label)(uint16, ctc_mpls_nexthop_tunnel_param_t*);
    int32(*ctc_nh_add_mpls)(uint32, ctc_mpls_nexthop_param_t*);
    int32(*ctc_nh_add_nexthop_mac)(uint16, ctc_nh_nexthop_mac_param_t*);
    int32(*ctc_nh_add_rspan)(uint32, ctc_rspan_nexthop_param_t*);
    int32(*ctc_nh_add_stats)(uint32);
    int32(*ctc_nh_add_trill)(uint32, ctc_nh_trill_param_t*);
    int32(*ctc_nh_add_xlate)(uint32, ctc_vlan_edit_nh_param_t*);
    int32(*ctc_nh_clear_stats)(ctc_nh_stats_info_t*);
    int32(*ctc_nh_del_stats)(uint32);
    int32(*ctc_nh_get_l2uc)(uint32, ctc_nh_param_brguc_sub_type_t, uint32*);
    int32(*ctc_nh_get_max_ecmp)(uint16*);
    int32(*ctc_nh_get_mcast_nh)(uint32, uint32*);
    int32(*ctc_nh_get_nh_info)(uint32, ctc_nh_info_t*);
    int32(*ctc_nh_get_resolved_dsnh_offset)(ctc_nh_reserved_dsnh_offset_type_t, uint32*);
    int32(*ctc_nh_get_stats)(ctc_nh_stats_info_t*);
    int32(*ctc_nh_remove_ecmp)(uint32);
    int32(*ctc_nh_remove_iloop)(uint32);
    int32(*ctc_nh_remove_ip_tunnel)(uint32);
    int32(*ctc_nh_remove_ipuc)(uint32);
    int32(*ctc_nh_remove_l2uc)(uint32);
    int32(*ctc_nh_remove_mcast)(uint32);
    int32(*ctc_nh_remove_misc)(uint32);
    int32(*ctc_nh_remove_mpls_tunnel_label)(uint16);
    int32(*ctc_nh_remove_mpls)(uint32);
    int32(*ctc_nh_remove_nexthop_mac)(uint16);
    int32(*ctc_nh_remove_rspan)(uint32);
    int32(*ctc_nh_remove_trill)(uint32);
    int32(*ctc_nh_remove_xlate)(uint32);
    int32(*ctc_nh_set_global_config)(ctc_nh_global_cfg_t*);
    int32(*ctc_nh_set_max_ecmp)(uint16);
    int32(*ctc_nh_set_nh_drop)(uint32, ctc_nh_drop_info_t*);
    int32(*ctc_nh_swap_mpls_tunnel_label)(uint16, uint16);
    int32(*ctc_nh_update_ecmp)(uint32, ctc_nh_ecmp_nh_param_t*);
    int32(*ctc_nh_update_ip_tunnel)(uint32, ctc_ip_tunnel_nh_param_t*);
    int32(*ctc_nh_update_ipuc)(uint32, ctc_ip_nh_param_t*);
    int32(*ctc_nh_update_mcast)(uint32, ctc_mcast_nh_param_group_t*);
    int32(*ctc_nh_update_mpls_tunnel_label)(uint16, ctc_mpls_nexthop_tunnel_param_t*);
    int32(*ctc_nh_update_mpls)(uint32, ctc_mpls_nexthop_param_t*);
    int32(*ctc_nh_update_nexthop_mac)(uint16, ctc_nh_nexthop_mac_param_t*);
    int32(*ctc_nh_update_trill)(uint32, ctc_nh_trill_param_t*);
    /*##oam##*/
    int32(*ctc_oam_add_chan)(ctc_oam_chan_t*);
    int32(*ctc_oam_add_lmep)(ctc_oam_lmep_t*);
    int32(*ctc_oam_add_maid)(ctc_oam_maid_t*);
    int32(*ctc_oam_add_mip)(ctc_oam_mip_t*);
    int32(*ctc_oam_add_rmep)(ctc_oam_rmep_t*);
    int32(*ctc_oam_clear_trpt_stats)(uint8, uint8);
    int32(*ctc_oam_get_defect_info)(uint8, void*);
    int32(*ctc_oam_get_mep_info)(uint8, ctc_oam_mep_info_t*);
    int32(*ctc_oam_get_mep_info_with_key)(ctc_oam_mep_info_with_key_t*);
    int32(*ctc_oam_get_stats)(ctc_oam_stats_info_t*);
    int32(*ctc_oam_get_trpt_stats)(uint8, uint8, ctc_oam_trpt_stats_t*);
    int32(*ctc_oam_init)(ctc_oam_global_t*);
    int32(*ctc_oam_remove_chan)(ctc_oam_chan_t*);
    int32(*ctc_oam_remove_lmep)(ctc_oam_lmep_t*);
    int32(*ctc_oam_remove_maid)(ctc_oam_maid_t*);
    int32(*ctc_oam_remove_mip)(ctc_oam_mip_t*);
    int32(*ctc_oam_remove_rmep)(ctc_oam_rmep_t*);
    int32(*ctc_oam_set_property)(ctc_oam_property_t*);
    int32(*ctc_oam_set_trpt_cfg)(ctc_oam_trpt_t*);
    int32(*ctc_oam_set_trpt_en)(uint8, uint8, uint8);
    int32(*ctc_oam_update_lmep)(ctc_oam_update_t*);
    int32(*ctc_oam_update_rmep)(ctc_oam_update_t*);
    /*##overlay_tunnel##*/
    int32(*ctc_overlay_tunnel_add_tunnel)(ctc_overlay_tunnel_param_t*);
    int32(*ctc_overlay_tunnel_get_fid)(uint32, uint16*);
    int32(*ctc_overlay_tunnel_init)(void*);
    int32(*ctc_overlay_tunnel_remove_tunnel)(ctc_overlay_tunnel_param_t*);
    int32(*ctc_overlay_tunnel_set_fid)(uint32, uint16);
    int32(*ctc_overlay_tunnel_update_tunnel)(ctc_overlay_tunnel_param_t*);
    /*##packet##*/
    int32(*ctc_packet_decap)(ctc_pkt_rx_t*);
    int32(*ctc_packet_encap)(ctc_pkt_tx_t*);
    int32(*ctc_packet_init)(void*);
    int32(*ctc_packet_tx)(ctc_pkt_tx_t*);
    /*##parser##*/
    int32(*ctc_parser_enable_l3_type)(ctc_parser_l3_type_t, bool);
    int32(*ctc_parser_get_ecmp_hash_field)(ctc_parser_ecmp_hash_ctl_t*);
    int32(*ctc_parser_get_global_cfg)(ctc_parser_global_cfg_t*);
    int32(*ctc_parser_get_ipv6_ctl)(uint8, ctc_parser_ipv6_ctl_t*);
    int32(*ctc_parser_get_l2_flex_header)(ctc_parser_l2flex_header_t*);
    int32(*ctc_parser_get_l3_flex_header)(ctc_parser_l3flex_header_t*);
    int32(*ctc_parser_get_l4_app_ctl)(ctc_parser_l4app_ctl_t*);
    int32(*ctc_parser_get_l4_app_data_ctl)(uint8, ctc_parser_l4_app_data_entry_t*);
    int32(*ctc_parser_get_l4_flex_header)(ctc_parser_l4flex_header_t*);
    int32(*ctc_parser_get_l4_len_op_ctl)(uint8, uint16*);
    int32(*ctc_parser_get_l4_ptp_ctl)(ctc_parser_ptp_ctl_t*);
    int32(*ctc_parser_get_max_length_filed)(uint16*);
    int32(*ctc_parser_get_pbb_header)(ctc_parser_pbb_header_t*);
    int32(*ctc_parser_get_tpid)(ctc_parser_l2_tpid_t, uint16*);
    int32(*ctc_parser_get_trill_header)(ctc_parser_trill_header_t*);
    int32(*ctc_parser_get_udf)(uint32, ctc_parser_udf_t*);
    int32(*ctc_parser_get_udp_app_op_ctl)(uint8, ctc_parser_udp_app_op_ctl_t*);
    int32(*ctc_parser_get_vlan_parser_num)(uint8*);
    int32(*ctc_parser_init)(void*);
    int32(*ctc_parser_l2_enable_l3_type)(ctc_parser_l3_type_t, bool);
    int32(*ctc_parser_l3_enable_l4_type)(ctc_parser_l4_type_t, bool);
    int32(*ctc_parser_map_l3_type)(uint8, ctc_parser_l2_protocol_entry_t*);
    int32(*ctc_parser_map_l4_type)(uint8, ctc_parser_l3_protocol_entry_t*);
    int32(*ctc_parser_set_ecmp_hash_field)(ctc_parser_ecmp_hash_ctl_t*);
    int32(*ctc_parser_set_global_cfg)(ctc_parser_global_cfg_t*);
    int32(*ctc_parser_set_ipv6_ctl)(uint8, ctc_parser_ipv6_ctl_t*);
    int32(*ctc_parser_set_l2_flex_header)(ctc_parser_l2flex_header_t*);
    int32(*ctc_parser_set_l3_flex_header)(ctc_parser_l3flex_header_t*);
    int32(*ctc_parser_set_l4_app_ctl)(ctc_parser_l4app_ctl_t*);
    int32(*ctc_parser_set_l4_app_data_ctl)(uint8, ctc_parser_l4_app_data_entry_t*);
    int32(*ctc_parser_set_l4_flex_header)(ctc_parser_l4flex_header_t*);
    int32(*ctc_parser_set_l4_len_op_ctl)(uint8, uint16);
    int32(*ctc_parser_set_l4_ptp_ctl)(ctc_parser_ptp_ctl_t*);
    int32(*ctc_parser_set_l4_type)(uint8, ctc_parser_l4_protocol_entry_t*);
    int32(*ctc_parser_set_max_length_field)(uint16);
    int32(*ctc_parser_set_pbb_header)(ctc_parser_pbb_header_t*);
    int32(*ctc_parser_set_tpid)(ctc_parser_l2_tpid_t, uint16);
    int32(*ctc_parser_set_trill_header)(ctc_parser_trill_header_t*);
    int32(*ctc_parser_set_udf)(uint32, ctc_parser_udf_t*);
    int32(*ctc_parser_set_udp_app_op_ctl)(uint8, ctc_parser_udp_app_op_ctl_t*);
    int32(*ctc_parser_set_vlan_parser_num)(uint8);
    int32(*ctc_parser_unmap_l3_type)(uint8);
    int32(*ctc_parser_unmap_l4_type)(uint8);
    /*##pdu##*/
    int32(*ctc_l2pdu_classify_l2pdu)(ctc_pdu_l2pdu_type_t, uint8, ctc_pdu_l2pdu_key_t*);
    int32(*ctc_l2pdu_get_classified_key)(ctc_pdu_l2pdu_type_t, uint8, ctc_pdu_l2pdu_key_t*);
    int32(*ctc_l2pdu_get_global_action)(ctc_pdu_l2pdu_type_t, uint8, ctc_pdu_global_l2pdu_action_t*);
    int32(*ctc_l2pdu_get_port_action)(uint32, uint8, ctc_pdu_port_l2pdu_action_t*);
    int32(*ctc_l2pdu_set_default_global_action)();
    int32(*ctc_l2pdu_set_global_action)(ctc_pdu_l2pdu_type_t, uint8, ctc_pdu_global_l2pdu_action_t*);
    int32(*ctc_l2pdu_set_port_action)(uint32, uint8, ctc_pdu_port_l2pdu_action_t);
    int32(*ctc_l3pdu_classify_l3pdu)(ctc_pdu_l3pdu_type_t, uint8, ctc_pdu_l3pdu_key_t*);
    int32(*ctc_l3pdu_get_classified_key)(ctc_pdu_l3pdu_type_t, uint8, ctc_pdu_l3pdu_key_t*);
    int32(*ctc_l3pdu_get_global_action)(ctc_pdu_l3pdu_type_t, uint8, ctc_pdu_global_l3pdu_action_t*);
    int32(*ctc_l3pdu_get_l3if_action)(uint16, uint8, ctc_pdu_l3if_l3pdu_action_t*);
    int32(*ctc_l3pdu_set_default_global_action)();
    int32(*ctc_l3pdu_set_global_action)(ctc_pdu_l3pdu_type_t, uint8, ctc_pdu_global_l3pdu_action_t*);
    int32(*ctc_l3pdu_set_l3if_action)(uint16, uint8, ctc_pdu_l3if_l3pdu_action_t);
    int32(*ctc_pdu_init)(void*);
    /*##port##*/
    int32(*ctc_get_ipg_size)(ctc_ipg_size_t, uint8*);
    int32(*ctc_get_max_frame_size)(ctc_frame_size_t, uint16*);
    int32(*ctc_get_min_frame_size)(ctc_frame_size_t, uint16*);
    int32(*ctc_port_get_bridge_en)(uint32, bool*);
    int32(*ctc_port_get_cpu_mac_en)(bool*);
    int32(*ctc_port_get_cross_connect)(uint32, uint32*);
    int32(*ctc_port_get_default_vlan)(uint32, uint16*);
    int32(*ctc_port_get_direction_property)(uint32, ctc_port_direction_property_t, ctc_direction_t, uint32*);
    int32(*ctc_port_get_dot1q_type)(uint32, ctc_dot1q_type_t*);
    int32(*ctc_port_get_flow_ctl_en)(ctc_port_fc_prop_t*);
    int32(*ctc_port_get_ipg)(uint32, ctc_ipg_size_t*);
    int32(*ctc_port_get_ipsg_en)(uint32, bool*);
    int32(*ctc_port_get_keep_vlan_tag)(uint32, bool*);
    int32(*ctc_port_get_learning_en)(uint32, bool*);
    int32(*ctc_port_get_mac_en)(uint32, bool*);
    int32(*ctc_port_get_mac_link_up)(uint32, bool*);
    int32(*ctc_port_get_max_frame)(uint32, uint32*);
    int32(*ctc_port_get_min_frame_size)(uint32, uint8*);
    int32(*ctc_port_get_mux_demux_en)(uint32, ctc_port_mux_demux_type_t, bool*);
    int32(*ctc_port_get_pading_en)(uint32, bool*);
    int32(*ctc_port_get_phy_if_en)(uint32, uint16*, bool*);
    int32(*ctc_port_get_port_check_en)(uint32, bool*);
    int32(*ctc_port_get_port_en)(uint32, bool*);
    int32(*ctc_port_get_port_mac)(uint32, mac_addr_t*);
    int32(*ctc_port_get_preamble)(uint32, uint8*);
    int32(*ctc_port_get_property)(uint32, ctc_port_property_t, uint32*);
    int32(*ctc_port_get_protocol_vlan_en)(uint32, bool*);
    int32(*ctc_port_get_random_log_en)(uint32, ctc_direction_t, bool*);
    int32(*ctc_port_get_random_log_percent)(uint32, ctc_direction_t, uint8*);
    int32(*ctc_port_get_receive_en)(uint32, bool*);
    int32(*ctc_port_get_reflective_bridge_en)(uint32, bool*);
    int32(*ctc_port_get_restriction)(uint32, ctc_port_restriction_t*);
    int32(*ctc_port_get_scl_key_type)(uint32, ctc_direction_t, uint8, ctc_port_scl_key_type_t*);
    int32(*ctc_port_get_scl_property)(uint32, ctc_port_scl_property_t*);
    int32(*ctc_port_get_speed)(uint32, ctc_port_speed_t*);
    int32(*ctc_port_get_srcdiscard_en)(uint32, bool*);
    int32(*ctc_port_get_stag_tpid_index)(uint32, ctc_direction_t, uint8*);
    int32(*ctc_port_get_stretch_mode_en)(uint32, bool*);
    int32(*ctc_port_get_sub_if_en)(uint32, bool*);
    int32(*ctc_port_get_transmit_en)(uint32, bool*);
    int32(*ctc_port_get_untag_dft_vid)(uint32, bool*, bool*);
    int32(*ctc_port_get_use_inner_cos)(uint32, bool*);
    int32(*ctc_port_get_use_outer_ttl)(uint32, bool*);
    int32(*ctc_port_get_vlan_classify_enable)(uint32, ctc_vlan_class_type_t*);
    int32(*ctc_port_get_vlan_ctl)(uint32, ctc_vlantag_ctl_t*);
    int32(*ctc_port_get_vlan_domain)(uint32, ctc_port_vlan_domain_type_t*);
    int32(*ctc_port_get_vlan_filter_en)(uint32, ctc_direction_t, bool*);
    int32(*ctc_port_get_vlan_mapping_en)(uint32, bool*);
    int32(*ctc_port_get_vlan_range)(uint32, ctc_vlan_range_info_t*, bool*);
    int32(*ctc_port_init)(void*);
    int32(*ctc_port_set_auto_neg)(uint32, uint32);
    int32(*ctc_port_set_bridge_en)(uint32, bool);
    int32(*ctc_port_set_cpu_mac_en)(bool);
    int32(*ctc_port_set_cross_connect)(uint32, uint32);
    int32(*ctc_port_set_default_cfg)(uint32);
    int32(*ctc_port_set_default_vlan)(uint32, uint16);
    int32(*ctc_port_set_direction_property)(uint32, ctc_port_direction_property_t, ctc_direction_t, uint32);
    int32(*ctc_port_set_dot1q_type)(uint32, ctc_dot1q_type_t);
    int32(*ctc_port_set_flow_ctl_en)(ctc_port_fc_prop_t*);
    int32(*ctc_port_set_ipg)(uint32, ctc_ipg_size_t);
    int32(*ctc_port_set_ipsg_en)(uint32, bool);
    int32(*ctc_port_set_keep_vlan_tag)(uint32, bool);
    int32(*ctc_port_set_learning_en)(uint32, bool);
    int32(*ctc_port_set_link_intr)(uint32, uint32);
    int32(*ctc_port_set_loopback)(ctc_port_lbk_param_t*);
    int32(*ctc_port_set_mac_en)(uint32, bool);
    int32(*ctc_port_set_max_frame)(uint32, uint32);
    int32(*ctc_port_set_min_frame_size)(uint32, uint8);
    int32(*ctc_port_set_mux_demux_en)(uint32, ctc_port_mux_demux_type_t, bool);
    int32(*ctc_port_set_pading_en)(uint32, bool);
    int32(*ctc_port_set_phy_if_en)(uint32, bool);
    int32(*ctc_port_set_port_check_en)(uint32, bool);
    int32(*ctc_port_set_port_en)(uint32, bool);
    int32(*ctc_port_set_port_mac_postfix)(uint32, ctc_port_mac_postfix_t*);
    int32(*ctc_port_set_port_mac_prefix)(ctc_port_mac_prefix_t*);
    int32(*ctc_port_set_preamble)(uint32, uint8);
    int32(*ctc_port_set_property)(uint32, ctc_port_property_t, uint32);
    int32(*ctc_port_set_protocol_vlan_en)(uint32, bool);
    int32(*ctc_port_set_random_log_en)(uint32, ctc_direction_t, bool);
    int32(*ctc_port_set_random_log_percent)(uint32, ctc_direction_t, uint8);
    int32(*ctc_port_set_receive_en)(uint32, bool);
    int32(*ctc_port_set_reflective_bridge_en)(uint32, bool);
    int32(*ctc_port_set_restriction)(uint32, ctc_port_restriction_t*);
    int32(*ctc_port_set_scl_key_type)(uint32, ctc_direction_t, uint8, ctc_port_scl_key_type_t);
    int32(*ctc_port_set_scl_property)(uint32, ctc_port_scl_property_t*);
    int32(*ctc_port_set_speed)(uint32, ctc_port_speed_t);
    int32(*ctc_port_set_srcdiscard_en)(uint32, bool);
    int32(*ctc_port_set_stag_tpid_index)(uint32, ctc_direction_t, uint8);
    int32(*ctc_port_set_stretch_mode_en)(uint32, bool);
    int32(*ctc_port_set_sub_if_en)(uint32, bool);
    int32(*ctc_port_set_transmit_en)(uint32, bool);
    int32(*ctc_port_set_untag_dft_vid)(uint32, bool, bool);
    int32(*ctc_port_set_use_inner_cos)(uint32, bool);
    int32(*ctc_port_set_use_outer_ttl)(uint32, bool);
    int32(*ctc_port_set_vlan_classify_disable)(uint32, ctc_vlan_class_type_t);
    int32(*ctc_port_set_vlan_classify_enable)(uint32, ctc_vlan_class_type_t);
    int32(*ctc_port_set_vlan_ctl)(uint32, ctc_vlantag_ctl_t);
    int32(*ctc_port_set_vlan_domain)(uint32, ctc_port_vlan_domain_type_t);
    int32(*ctc_port_set_vlan_filter_en)(uint32, ctc_direction_t, bool);
    int32(*ctc_port_set_vlan_mapping_en)(uint32, bool);
    int32(*ctc_port_set_vlan_range)(uint32, ctc_vlan_range_info_t*, bool);
    int32(*ctc_set_ipg_size)(ctc_ipg_size_t, uint8);
    int32(*ctc_set_max_frame_size)(ctc_frame_size_t, uint16);
    int32(*ctc_set_min_frame_size)(ctc_frame_size_t, uint16);
    /*##ptp##*/
    int32(*ctc_ptp_add_device_clock)(ctc_ptp_clock_t*);
    int32(*ctc_ptp_adjust_clock_offset)(uint8, ctc_ptp_time_t*);
    int32(*ctc_ptp_clear_sync_intf_code)();
    int32(*ctc_ptp_clear_tod_intf_code)();
    int32(*ctc_ptp_get_adjust_delay)(uint32, ctc_ptp_adjust_delay_type_t, int64*);
    int32(*ctc_ptp_get_captured_frc_ts)(uint8, ctc_ptp_time_t*);
    int32(*ctc_ptp_get_captured_rx_ts)(uint8, ctc_ptp_time_t*);
    int32(*ctc_ptp_get_captured_ts)(uint8, ctc_ptp_capured_ts_t*);
    int32(*ctc_ptp_get_captured_tx_ts)(uint8, ctc_ptp_capured_ts_t*);
    int32(*ctc_ptp_get_clock_drift)(uint8, ctc_ptp_time_t*);
    int32(*ctc_ptp_get_clock_timestamp)(uint8, ctc_ptp_time_t*);
    int32(*ctc_ptp_get_device_type)(ctc_ptp_device_type_t*);
    int32(*ctc_ptp_get_frc_offset)(uint8, ctc_ptp_time_t*);
    int32(*ctc_ptp_get_frc)(uint8, ctc_ptp_time_t*);
    int32(*ctc_ptp_get_global_property)(ctc_ptp_global_prop_t, uint32*);
    int32(*ctc_ptp_get_intr_bitmap)(uint8, uint32*);
    int32(*ctc_ptp_get_sync_intf_code)(uint8, ctc_ptp_sync_intf_code_t*);
    int32(*ctc_ptp_get_sync_intf_toggle_time)(uint8, ctc_ptp_time_t*);
    int32(*ctc_ptp_get_sync_intf)(uint8, ctc_ptp_sync_intf_cfg_t*);
    int32(*ctc_ptp_get_tod_intf_rx_code)(uint8, ctc_ptp_tod_intf_code_t*);
    int32(*ctc_ptp_get_tod_intf_tx_code)(uint8, ctc_ptp_tod_intf_code_t*);
    int32(*ctc_ptp_get_tod_intf)(uint8, ctc_ptp_tod_intf_cfg_t*);
    int32(*ctc_ptp_init)(ctc_ptp_global_config_t*);
    int32(*ctc_ptp_port_enable)(uint32, bool);
    int32(*ctc_ptp_remove_device_clock)(ctc_ptp_clock_t*);
    int32(*ctc_ptp_set_adjust_delay)(uint32, ctc_ptp_adjust_delay_type_t, int64);
    int32(*ctc_ptp_set_clock_drift)(uint8, ctc_ptp_time_t*);
    int32(*ctc_ptp_set_device_type)(ctc_ptp_device_type_t);
    int32(*ctc_ptp_set_frc_offset)(uint8, ctc_ptp_time_t*);
    int32(*ctc_ptp_set_global_property)(ctc_ptp_global_prop_t, uint32);
    int32(*ctc_ptp_set_sync_intf_toggle_time)(uint8, ctc_ptp_time_t*);
    int32(*ctc_ptp_set_sync_intf)(uint8, ctc_ptp_sync_intf_cfg_t*);
    int32(*ctc_ptp_set_tod_intf_tx_code)(uint8, ctc_ptp_tod_intf_code_t*);
    int32(*ctc_ptp_set_tod_intf)(uint8, ctc_ptp_tod_intf_cfg_t*);
    int32(*ctc_ptp_sync_intf_set_capture_ctl_mode)(uint8, uint8);
    /*##qos##*/
    int32(*ctc_qos_clear_policer_stats)(ctc_qos_policer_stats_t*);
    int32(*ctc_qos_clear_queue_stats)(ctc_qos_queue_stats_t*);
    int32(*ctc_qos_create_service)(ctc_qos_service_info_t*);
    int32(*ctc_qos_destroy_service)(ctc_qos_service_info_t*);
    int32(*ctc_qos_get_domain_map)(ctc_qos_domain_map_t*);
    int32(*ctc_qos_get_drop_scheme)(ctc_qos_drop_t*);
    int32(*ctc_qos_get_global_config)(ctc_qos_glb_cfg_t*);
    int32(*ctc_qos_get_policer)(ctc_qos_policer_t*);
    int32(*ctc_qos_get_queue)(ctc_qos_queue_cfg_t*);
    int32(*ctc_qos_get_sched)(ctc_qos_sched_t*);
    int32(*ctc_qos_get_shape)(ctc_qos_shape_t*);
    int32(*ctc_qos_init)(void*);
    int32(*ctc_qos_query_policer_stats)(ctc_qos_policer_stats_t*);
    int32(*ctc_qos_query_pool_stats)(ctc_qos_resrc_pool_stats_t*);
    int32(*ctc_qos_query_queue_stats)(ctc_qos_queue_stats_t*);
    int32(*ctc_qos_set_domain_map)(ctc_qos_domain_map_t*);
    int32(*ctc_qos_set_drop_scheme)(ctc_qos_drop_t*);
    int32(*ctc_qos_set_global_config)(ctc_qos_glb_cfg_t*);
    int32(*ctc_qos_set_policer)(ctc_qos_policer_t*);
    int32(*ctc_qos_set_queue)(ctc_qos_queue_cfg_t*);
    int32(*ctc_qos_set_resrc)(ctc_qos_resrc_t*);
    int32(*ctc_qos_set_sched)(ctc_qos_sched_t*);
    int32(*ctc_qos_set_shape)(ctc_qos_shape_t*);
    /*##register##*/
    int32(*ctc_global_ctl_get)(ctc_global_control_type_t, void*);
    int32(*ctc_global_ctl_set)(ctc_global_control_type_t, void*);
    int32(*ctc_register_init)(void*);
    /*##scl##*/
    int32(*ctc_scl_add_entry)(uint32, ctc_scl_entry_t*);
    int32(*ctc_scl_copy_entry)(ctc_scl_copy_entry_t*);
    int32(*ctc_scl_create_group)(uint32, ctc_scl_group_info_t*);
    int32(*ctc_scl_destroy_group)(uint32);
    int32(*ctc_scl_get_group_info)(uint32, ctc_scl_group_info_t*);
    int32(*ctc_scl_get_multi_entry)(ctc_scl_query_t*);
    int32(*ctc_scl_init)(void*);
    int32(*ctc_scl_install_entry)(uint32);
    int32(*ctc_scl_install_group)(uint32, ctc_scl_group_info_t*);
    int32(*ctc_scl_remove_all_entry)(uint32);
    int32(*ctc_scl_remove_entry)(uint32);
    int32(*ctc_scl_set_default_action)(ctc_scl_default_action_t*);
    int32(*ctc_scl_set_entry_priority)(uint32, uint32);
    int32(*ctc_scl_set_hash_field_sel)(ctc_scl_hash_field_sel_t*);
    int32(*ctc_scl_uninstall_entry)(uint32);
    int32(*ctc_scl_uninstall_group)(uint32);
    int32(*ctc_scl_update_action)(uint32, ctc_scl_action_t*);
    /*##security##*/
    int32(*ctc_ip_source_guard_add_entry)(ctc_security_ip_source_guard_elem_t*);
    int32(*ctc_ip_source_guard_remove_entry)(ctc_security_ip_source_guard_elem_t*);
    int32(*ctc_mac_security_get_learn_limit)(ctc_security_learn_limit_t*);
    int32(*ctc_mac_security_get_port_mac_limit)(uint32, ctc_maclimit_action_t*);
    int32(*ctc_mac_security_get_port_security)(uint32, bool*);
    int32(*ctc_mac_security_get_system_mac_limit)(ctc_maclimit_action_t*);
    int32(*ctc_mac_security_get_vlan_mac_limit)(uint16, ctc_maclimit_action_t*);
    int32(*ctc_mac_security_set_learn_limit)(ctc_security_learn_limit_t*);
    int32(*ctc_mac_security_set_port_mac_limit)(uint32, ctc_maclimit_action_t);
    int32(*ctc_mac_security_set_port_security)(uint32, bool);
    int32(*ctc_mac_security_set_system_mac_limit)(ctc_maclimit_action_t);
    int32(*ctc_mac_security_set_vlan_mac_limit)(uint16, ctc_maclimit_action_t);
    int32(*ctc_port_isolation_get_route_obey_isolated_en)(bool*);
    int32(*ctc_port_isolation_set_route_obey_isolated_en)(bool);
    int32(*ctc_security_init)(void*);
    int32(*ctc_storm_ctl_get_cfg)(ctc_security_stmctl_cfg_t*);
    int32(*ctc_storm_ctl_get_global_cfg)(ctc_security_stmctl_glb_cfg_t*);
    int32(*ctc_storm_ctl_set_cfg)(ctc_security_stmctl_cfg_t*);
    int32(*ctc_storm_ctl_set_global_cfg)(ctc_security_stmctl_glb_cfg_t*);
    /*##sgmac##*/
    int32(*ctc_sgmac_add_trunk_member)(uint8, uint8);
    int32(*ctc_sgmac_get_dual_mode)(bool*);
    int32(*ctc_sgmac_get_port_egress_vlan_mapping)(uint32, bool*);
    int32(*ctc_sgmac_get_register_base)(ctc_sgmac_reg_base_t, uint16*);
    int32(*ctc_sgmac_get_trunk_en)(bool*);
    int32(*ctc_sgmac_get_vlan_pfm)(uint16, uint8*);
    int32(*ctc_sgmac_get_vplssrcport_enable)(uint16, bool*);
    int32(*ctc_sgmac_init)(ctc_sgmac_t*);
    int32(*ctc_sgmac_linkagg_add_member)(uint8, uint32);
    int32(*ctc_sgmac_linkagg_create)(uint8);
    int32(*ctc_sgmac_linkagg_remove_member)(uint8, uint32);
    int32(*ctc_sgmac_linkagg_remove)(uint8);
    int32(*ctc_sgmac_remove_trunk_member)(uint8, uint8);
    int32(*ctc_sgmac_set_dual_mode)(bool);
    int32(*ctc_sgmac_set_port_egress_vlan_mapping)(uint32, bool);
    int32(*ctc_sgmac_set_register_base)(ctc_sgmac_reg_base_t, uint16);
    int32(*ctc_sgmac_set_trunk_en)(bool);
    int32(*ctc_sgmac_set_vlan_pfm)(uint16, uint8);
    int32(*ctc_sgmac_set_vplssrcport_enable)(uint16, bool);
    int32(*ctc_sgmac_show_qmgr_sgmac_ctl)();
    /*##stacking##*/
    int32(*ctc_stacking_add_trunk_port)(ctc_stacking_trunk_t*);
    int32(*ctc_stacking_add_trunk_rchip)(ctc_stacking_trunk_t*);
    int32(*ctc_stacking_create_trunk)(ctc_stacking_trunk_t*);
    int32(*ctc_stacking_destroy_trunk)(ctc_stacking_trunk_t*);
    int32(*ctc_stacking_get_property)(ctc_stacking_property_t*);
    int32(*ctc_stacking_init)(void*);
    int32(*ctc_stacking_keeplive_add_member)(ctc_stacking_keeplive_t*);
    int32(*ctc_stacking_keeplive_remove_member)(ctc_stacking_keeplive_t*);
    int32(*ctc_stacking_remove_trunk_port)(ctc_stacking_trunk_t*);
    int32(*ctc_stacking_remove_trunk_rchip)(ctc_stacking_trunk_t*);
    int32(*ctc_stacking_set_property)(ctc_stacking_property_t*);
    /*##stats##*/
    int32(*ctc_stats_clear_cpu_mac_stats)(uint32);
    int32(*ctc_stats_clear_global_fwd_stats)(ctc_direction_t);
    int32(*ctc_stats_clear_mac_stats)(uint32, ctc_mac_stats_dir_t);
    int32(*ctc_stats_clear_port_log_stats)(uint32, ctc_direction_t);
    int32(*ctc_stats_clear_port_stats)(uint32, ctc_direction_t);
    int32(*ctc_stats_clear_stats)(uint32);
    int32(*ctc_stats_create_statsid)(ctc_stats_statsid_t*);
    int32(*ctc_stats_destroy_statsid)(uint32);
    int32(*ctc_stats_get_cpu_mac_stats)(uint32, ctc_cpu_mac_stats_t*);
    int32(*ctc_stats_get_drop_packet_stats_en)(ctc_stats_discard_t, bool*);
    int32(*ctc_stats_get_global_cfg)(ctc_stats_property_param_t, ctc_stats_property_t*);
    int32(*ctc_stats_get_mac_stats_cfg)(uint32, ctc_mac_stats_prop_type_t, ctc_mac_stats_property_t*);
    int32(*ctc_stats_get_mac_stats)(uint32, ctc_mac_stats_dir_t, ctc_mac_stats_t*);
    int32(*ctc_stats_get_port_log_stats)(uint32, ctc_direction_t, ctc_stats_basic_t*);
    int32(*ctc_stats_get_port_stats_cfg)(ctc_direction_t, ctc_stats_port_stats_option_type_t*);
    int32(*ctc_stats_get_stats)(uint32, ctc_stats_basic_t*);
    int32(*ctc_stats_init)(void*);
    int32(*ctc_stats_intr_callback_func)(uint8*);
    int32(*ctc_stats_register_cb)(ctc_stats_sync_fn_t, void*);
    int32(*ctc_stats_set_drop_packet_stats_en)(ctc_stats_discard_t, bool);
    int32(*ctc_stats_set_global_cfg)(ctc_stats_property_param_t, ctc_stats_property_t);
    int32(*ctc_stats_set_mac_stats_cfg)(uint32, ctc_mac_stats_prop_type_t, ctc_mac_stats_property_t);
    int32(*ctc_stats_set_port_stats_cfg)(ctc_direction_t, ctc_stats_port_stats_option_type_t);
    int32(*ctc_stats_set_syncup_cb_internal)(uint32);
    /*##stp##*/
    int32(*ctc_stp_clear_all_inst_state)(uint32);
    int32(*ctc_stp_get_state)(uint32, uint8, uint8*);
    int32(*ctc_stp_get_vlan_stpid)(uint16, uint8*);
    int32(*ctc_stp_init)(void*);
    int32(*ctc_stp_set_state)(uint32, uint8, uint8);
    int32(*ctc_stp_set_vlan_stpid)(uint16, uint8);
    /*##sync_ether##*/
    int32(*ctc_sync_ether_get_cfg)(uint8, uint8, ctc_sync_ether_cfg_t*);
    int32(*ctc_sync_ether_init)(void*);
    int32(*ctc_sync_ether_set_cfg)(uint8, uint8, ctc_sync_ether_cfg_t*);
    /*##trill##*/
    int32(*ctc_trill_add_route)(ctc_trill_route_t*);
    int32(*ctc_trill_add_tunnel)(ctc_trill_tunnel_t*);
    int32(*ctc_trill_init)(void*);
    int32(*ctc_trill_remove_route)(ctc_trill_route_t*);
    int32(*ctc_trill_remove_tunnel)(ctc_trill_tunnel_t*);
    /*##usrid##*/
    int32(*ctc_usrid_init)(void*);
    /*##vlan##*/
    int32(*ctc_vlan_add_default_egress_vlan_mapping)(uint32, ctc_vlan_miss_t*);
    int32(*ctc_vlan_add_default_vlan_class)(ctc_vlan_class_type_t, ctc_vlan_miss_t*);
    int32(*ctc_vlan_add_default_vlan_mapping)(uint32, ctc_vlan_miss_t*);
    int32(*ctc_vlan_add_egress_vlan_mapping)(uint32, ctc_egress_vlan_mapping_t*);
    int32(*ctc_vlan_add_port)(uint16, uint32);
    int32(*ctc_vlan_add_vlan_class)(ctc_vlan_class_t*);
    int32(*ctc_vlan_add_vlan_mapping)(uint32, ctc_vlan_mapping_t*);
    int32(*ctc_vlan_add_vlan_range)(ctc_vlan_range_info_t*, ctc_vlan_range_t*);
    int32(*ctc_vlan_create_uservlan)(ctc_vlan_uservlan_t*);
    int32(*ctc_vlan_create_vlan_range_group)(ctc_vlan_range_info_t*, bool);
    int32(*ctc_vlan_create_vlan)(uint16);
    int32(*ctc_vlan_destroy_vlan_range_group)(ctc_vlan_range_info_t*);
    int32(*ctc_vlan_destroy_vlan)(uint16);
    int32(*ctc_vlan_get_arp_excp_type)(uint16, ctc_exception_type_t*);
    int32(*ctc_vlan_get_bridge_en)(uint16, bool*);
    int32(*ctc_vlan_get_dhcp_excp_type)(uint16, ctc_exception_type_t*);
    int32(*ctc_vlan_get_direction_property)(uint16, ctc_vlan_direction_property_t, ctc_direction_t, uint32*);
    int32(*ctc_vlan_get_fid)(uint16, uint16*);
    int32(*ctc_vlan_get_igmp_snoop_en)(uint16, bool*);
    int32(*ctc_vlan_get_learning_en)(uint16, bool*);
    int32(*ctc_vlan_get_ports)(uint16, uint8, ctc_port_bitmap_t);
    int32(*ctc_vlan_get_property)(uint16, ctc_vlan_property_t, uint32*);
    int32(*ctc_vlan_get_receive_en)(uint16, bool*);
    int32(*ctc_vlan_get_replace_dspc_en)(uint16, bool*);
    int32(*ctc_vlan_get_tagged_ports)(uint16, uint8, ctc_port_bitmap_t);
    int32(*ctc_vlan_get_transmit_en)(uint16, bool*);
    int32(*ctc_vlan_get_vlan_range_type)(ctc_vlan_range_info_t*, bool*);
    int32(*ctc_vlan_get_vlan_range)(ctc_vlan_range_info_t*, ctc_vlan_range_group_t*, uint8*);
    int32(*ctc_vlan_init)(ctc_vlan_global_cfg_t*);
    int32(*ctc_vlan_remove_all_egress_vlan_mapping_by_port)(uint32);
    int32(*ctc_vlan_remove_all_vlan_class)(ctc_vlan_class_type_t);
    int32(*ctc_vlan_remove_all_vlan_mapping_by_port)(uint32);
    int32(*ctc_vlan_remove_default_egress_vlan_mapping)(uint32);
    int32(*ctc_vlan_remove_default_vlan_class)(ctc_vlan_class_type_t);
    int32(*ctc_vlan_remove_default_vlan_mapping)(uint32);
    int32(*ctc_vlan_remove_egress_vlan_mapping)(uint32, ctc_egress_vlan_mapping_t*);
    int32(*ctc_vlan_remove_port)(uint16, uint32);
    int32(*ctc_vlan_remove_vlan_class)(ctc_vlan_class_t*);
    int32(*ctc_vlan_remove_vlan_mapping)(uint32, ctc_vlan_mapping_t*);
    int32(*ctc_vlan_remove_vlan_range)(ctc_vlan_range_info_t*, ctc_vlan_range_t*);
    int32(*ctc_vlan_set_arp_excp_type)(uint16, ctc_exception_type_t);
    int32(*ctc_vlan_set_bridge_en)(uint16, bool);
    int32(*ctc_vlan_set_dhcp_excp_type)(uint16, ctc_exception_type_t);
    int32(*ctc_vlan_set_direction_property)(uint16, ctc_vlan_direction_property_t, ctc_direction_t, uint32);
    int32(*ctc_vlan_set_fid)(uint16, uint16);
    int32(*ctc_vlan_set_igmp_snoop_en)(uint16, bool);
    int32(*ctc_vlan_set_learning_en)(uint16, bool);
    int32(*ctc_vlan_set_property)(uint16, ctc_vlan_property_t, uint32);
    int32(*ctc_vlan_set_receive_en)(uint16, bool);
    int32(*ctc_vlan_set_replace_dscp_en)(uint16, bool);
    int32(*ctc_vlan_set_tagged_port)(uint16, uint32, bool);
    int32(*ctc_vlan_set_transmit_en)(uint16, bool);
    int32(*ctc_vlan_update_vlan_mapping)(uint32, ctc_vlan_mapping_t*);
};
typedef struct ctc_api_s ctc_api_t;
/**********************************************************
 *
 * Functions
 *
 **********************************************************/
extern int32 ctc_install_api();
extern int32 ctc_uninstall_api();
extern int32 ctc_acl_add_entry(uint32 group_id, ctc_acl_entry_t* acl_entry);
extern int32 ctc_acl_clear_stats(uint32 entry_id);
extern int32 ctc_acl_copy_entry(ctc_acl_copy_entry_t* copy_entry);
extern int32 ctc_acl_create_group(uint32 group_id, ctc_acl_group_info_t* group_info);
extern int32 ctc_acl_destroy_group(uint32 group_id);
extern int32 ctc_acl_get_group_info(uint32 group_id, ctc_acl_group_info_t* group_info);
extern int32 ctc_acl_get_multi_entry(ctc_acl_query_t* query);
extern int32 ctc_acl_get_stats(uint32 entry_id, ctc_stats_basic_t* stats);
extern int32 ctc_acl_init(ctc_acl_global_cfg_t* acl_global_cfg);
extern int32 ctc_acl_install_entry(uint32 entry_id);
extern int32 ctc_acl_install_group(uint32 group_id, ctc_acl_group_info_t* group_info);
extern int32 ctc_acl_remove_all_entry(uint32 group_id);
extern int32 ctc_acl_remove_entry(uint32 entry_id);
extern int32 ctc_acl_set_entry_priority(uint32 entry_id, uint32 priority);
extern int32 ctc_acl_set_hash_field_sel(ctc_acl_hash_field_sel_t* field_sel);
extern int32 ctc_acl_uninstall_entry(uint32 entry_id);
extern int32 ctc_acl_uninstall_group(uint32 group_id);
extern int32 ctc_acl_update_action(uint32 entry_id, ctc_acl_action_t* action);
extern int32 ctc_aps_create_aps_bridge_group(uint16 aps_bridge_group_id, ctc_aps_bridge_group_t* aps_group);
extern int32 ctc_aps_create_raps_mcast_group(uint16 group_id);
extern int32 ctc_aps_destroy_aps_bridge_group(uint16 aps_bridge_group_id);
extern int32 ctc_aps_destroy_raps_mcast_group(uint16 group_id);
extern int32 ctc_aps_get_aps_bridge_protection_path(uint16 aps_bridge_group_id, uint16* gport);
extern int32 ctc_aps_get_aps_bridge(uint16 aps_bridge_group_id, bool* protect_en);
extern int32 ctc_aps_get_aps_bridge_working_path(uint16 aps_bridge_group_id, uint16* gport);
extern int32 ctc_aps_get_aps_select(uint16 aps_select_group_id, bool* protect_en);
extern int32 ctc_aps_init(void* aps_global_cfg);
extern int32 ctc_aps_set_aps_bridge_group(uint16 aps_bridge_group_id, ctc_aps_bridge_group_t* aps_group);
extern int32 ctc_aps_set_aps_bridge_protection_path(uint16 aps_bridge_group_id, uint32 gport);
extern int32 ctc_aps_set_aps_bridge(uint16 aps_bridge_group_id, bool protect_en);
extern int32 ctc_aps_set_aps_bridge_working_path(uint16 aps_bridge_group_id, uint32 gport);
extern int32 ctc_aps_set_aps_select(uint16 aps_select_group_id, bool protect_en);
extern int32 ctc_aps_update_raps_mcast_member(ctc_raps_member_t* p_raps_mem);
extern int32 ctc_bheader_decap(void* pkt, uint16 pkt_len, ctc_bheader_rx_info_t* rx_info);
extern int32 ctc_bheader_encap(ctc_bheader_tx_info_t* tx_info, void* pkt, uint16* pkt_len);
extern int32 ctc_bpe_get_intlk_en(bool* enable);
extern int32 ctc_bpe_get_port_extender(uint32 gport, bool* enable);
extern int32 ctc_bpe_init(void* bpe_global_cfg);
extern int32 ctc_bpe_set_intlk_en(bool enable);
extern int32 ctc_bpe_set_port_extender(uint32 gport, ctc_bpe_extender_t* p_extender);
extern int32 ctc_chip_get_access_type(ctc_chip_access_type_t* p_access_type);
extern int32 ctc_chip_get_gpio_input(uint8 gpio_id, uint8* in_value);
extern int32 ctc_chip_get_mdio_clock(ctc_chip_mdio_type_t type, uint16* p_freq);
extern int32 ctc_chip_get_phy_mapping(ctc_chip_phy_mapping_para_t* phy_mapping_para);
extern int32 ctc_chip_get_property(uint8 lchip, ctc_chip_property_t chip_prop, void* p_value);
extern int32 ctc_chip_i2c_read(ctc_chip_i2c_read_t* p_i2c_para);
extern int32 ctc_chip_i2c_write(ctc_chip_i2c_write_t* i2c_para);
extern int32 ctc_chip_init(uint8 lchip_num);
extern int32 ctc_chip_mdio_read(uint8 lchip, ctc_chip_mdio_type_t type, ctc_chip_mdio_para_t* p_para);
extern int32 ctc_chip_mdio_write(uint8 lchip, ctc_chip_mdio_type_t type, ctc_chip_mdio_para_t* p_para);
extern int32 ctc_chip_read_gephy_reg(uint32 gport, ctc_chip_gephy_para_t* gephy_para);
extern int32 ctc_chip_read_i2c_buf(ctc_chip_i2c_scan_read_t* p_i2c_scan_read);
extern int32 ctc_chip_read_xgphy_reg(uint32 gport, ctc_chip_xgphy_para_t* xgphy_para);
extern int32 ctc_chip_set_access_type(ctc_chip_access_type_t access_type);
extern int32 ctc_chip_set_gephy_scan_special_reg(ctc_chip_ge_opt_reg_t* p_scan_opt, bool enable);
extern int32 ctc_chip_set_gpio_mode(uint8 gpio_id, ctc_chip_gpio_mode_t mode);
extern int32 ctc_chip_set_gpio_output(uint8 gpio_id, uint8 out_para);
extern int32 ctc_chip_set_hss12g_enable(uint8 lchip, uint8 macro_id, ctc_chip_serdes_mode_t mode, uint8 enable);
extern int32 ctc_chip_set_i2c_scan_en(bool enable);
extern int32 ctc_chip_set_i2c_scan_para(ctc_chip_i2c_scan_t* p_i2c_para);
extern int32 ctc_chip_set_mac_led_en(bool enable);
extern int32 ctc_chip_set_mac_led_mapping(ctc_chip_mac_led_mapping_t* p_led_map);
extern int32 ctc_chip_set_mac_led_mode(ctc_chip_led_para_t* p_led_para, ctc_chip_mac_led_type_t led_type);
extern int32 ctc_chip_set_mdio_clock(ctc_chip_mdio_type_t type, uint16 freq);
extern int32 ctc_chip_set_phy_mapping(ctc_chip_phy_mapping_para_t* phy_mapping_para);
extern int32 ctc_chip_set_phy_scan_en(bool enable);
extern int32 ctc_chip_set_phy_scan_para(ctc_chip_phy_scan_ctrl_t* p_scan_para);
extern int32 ctc_chip_set_property(uint8 lchip, ctc_chip_property_t chip_prop, void* p_value);
extern int32 ctc_chip_set_serdes_mode(uint8 lchip, ctc_chip_serdes_info_t* p_serdes_info);
extern int32 ctc_chip_set_xgphy_scan_special_reg(ctc_chip_xg_opt_reg_t* scan_opt, uint8 enable);
extern int32 ctc_chip_write_gephy_reg(uint32 gport, ctc_chip_gephy_para_t* gephy_para);
extern int32 ctc_chip_write_xgphy_reg(uint32 gport, ctc_chip_xgphy_para_t* xgphy_para);
extern int32 ctc_datapath_get_mode(uint8 gchip, ctc_chip_datapath_mode_t* pmode);
extern int32 ctc_data_path_init(ctc_chip_reset_cb reset_cb, ctc_chip_datapath_t* chip_datapath, char* datapath_config_file);
extern int32 ctc_datapath_init(uint8 lchip, void* p_global_cfg);
extern int32 ctc_datapath_set_mode(uint8 gchip, ctc_chip_datapath_mode_t datapath_mode);
extern int32 ctc_datapath_sim_init();
extern int32 ctc_get_chip_clock(uint16* freq);
extern int32 ctc_get_chip_sensor(uint8 lchip, ctc_chip_sensor_type_t type, uint32* p_value);
extern int32 ctc_get_gchip_id(uint8 lchip, uint8* gchip_id);
extern int32 ctc_get_local_chip_num(uint8* lchip_num);
extern int32 ctc_get_serdes_mode(uint16 gserdes_id, ctc_serdes_mode_t* serdes_mode);
extern int32 ctc_init_pll_hss();
extern int32 ctc_parity_error_init();
extern int32 ctc_parse_datapath(char* datapath_config_file);
extern int32 ctc_set_chip_global_cfg(ctc_chip_global_cfg_t* chip_cfg);
extern int32 ctc_set_gchip_id(uint8 lchip, uint8 gchip_id);
extern int32 ctc_set_serdes_mode(uint16 gserdes_id, ctc_serdes_mode_t serdes_mode);
extern int32 ctc_cpu_traffic_init(void* p_global_cfg);
extern int32 ctc_cpu_traffic_set_exception(uint8 excp, uint16 dest_id, ctc_excp_dest_type_t dest_type);
extern int32 ctc_cpu_traffic_set_fatal_exception(uint8 excp, uint16 dest_id, ctc_excp_dest_type_t dest_type);
extern int32 ctc_dma_init(ctc_dma_global_cfg_t* dma_global_cfg);
extern int32 ctc_dma_rw_table(ctc_dma_tbl_rw_t* tbl_cfg);
extern int32 ctc_dma_tx_pkt(ctc_pkt_tx_t* tx_cfg);
extern int32 ctc_efd_get_global_ctl(ctc_efd_global_control_type_t type, void* value);
extern int32 ctc_efd_init(void* p_global_cfg);
extern int32 ctc_efd_register_cb(ctc_efd_fn_t callback, void* userdata);
extern int32 ctc_efd_set_global_ctl(ctc_efd_global_control_type_t type, void* value);
extern int32 ctc_fcoe_add_route(ctc_fcoe_route_t* p_fcoe_route);
extern int32 ctc_fcoe_init(void* fcoe_global_cfg);
extern int32 ctc_fcoe_remove_route(ctc_fcoe_route_t* p_fcoe_route);
extern int32 ctc_ftm_mem_alloc(ctc_ftm_profile_info_t* ctc_profile_info);
extern int32 ctc_ftm_set_default_profile(ctc_ftm_profile_info_t* ctc_profile_info);
extern int32 ctc_ftm_show_alloc_info();
extern int32 ctc_alloc_internal_port(ctc_internal_port_assign_para_t* port_assign);
extern int32 ctc_free_internal_port(ctc_internal_port_assign_para_t* port_assign);
extern int32 ctc_internal_port_init(void* p_global_cfg);
extern int32 ctc_set_internal_port(ctc_internal_port_assign_para_t* port_assign);
extern int32 ctc_interrupt_clear_fatal_intr(uint8 lchip, uint8 type);
extern int32 ctc_interrupt_clear_normal_intr(uint8 lchip, uint8 type);
extern int32 ctc_interrupt_clear_status(uint8 lchip, ctc_intr_type_t* p_type);
extern int32 ctc_interrupt_clear_sub_normal_intr(uint8 lchip, ctc_interrupt_normal_intr_type_t type, uint8 bit_offset);
extern int32 ctc_interrupt_deinit();
extern int32 ctc_interrupt_disable_fatal_intr(uint8 lchip, uint8 type);
extern int32 ctc_interrupt_disable_normal_intr(uint8 lchip, uint8 type);
extern int32 ctc_interrupt_disable_sub_normal_intr(uint8 lchip, ctc_interrupt_normal_intr_type_t type, uint8 bit_offset);
extern int32 ctc_interrupt_enable_fatal_intr(uint8 lchip, uint8 type);
extern int32 ctc_interrupt_enable_normal_intr(uint8 lchip, uint8 type);
extern int32 ctc_interrupt_enable_sub_normal_intr(uint8 lchip, ctc_interrupt_normal_intr_type_t type, uint8 bit_offset);
extern int32 ctc_interrupt_get_en(uint8 lchip, ctc_intr_type_t* p_type, uint32* p_enable);
extern int32 ctc_interrupt_get_fatal_intr_status(uint8 lchip, uint8 type, ctc_interrupt_fatal_intr_status_t* status);
extern int32 ctc_interrupt_get_normal_all_intr_status(uint8 lchip, uint32* p_bitmap);
extern int32 ctc_interrupt_get_normal_intr_status(uint8 lchip, uint8 type, bool* p_enable);
extern int32 ctc_interrupt_get_status(uint8 lchip, ctc_intr_type_t* p_type, ctc_intr_status_t* p_status);
extern int32 ctc_interrupt_init(void* p_global_cfg);
extern int32 ctc_interrupt_reg_init_end();
extern int32 ctc_interrupt_reg_init_start();
extern int32 ctc_interrupt_register_event_cb(ctc_interrupt_event_t event, CTC_INTERRUPT_EVENT_FUNC cb);
extern int32 ctc_interrupt_set_en(uint8 lchip, ctc_intr_type_t* p_type, uint32 enable);
extern int32 ctc_ipfix_add_entry(ctc_ipfix_data_t* p_data);
extern int32 ctc_ipfix_delete_entry(ctc_ipfix_data_t* p_data);
extern int32 ctc_ipfix_get_global_cfg(ctc_ipfix_global_cfg_t* ipfix_cfg);
extern int32 ctc_ipfix_get_port_cfg(uint32 gport,ctc_ipfix_port_cfg_t* ipfix_cfg);
extern int32 ctc_ipfix_init(void* p_global_cfg);
extern int32 ctc_ipfix_register_cb(ctc_ipfix_fn_t callback,void* userdata);
extern int32 ctc_ipfix_set_global_cfg(ctc_ipfix_global_cfg_t* ipfix_cfg);
extern int32 ctc_ipfix_set_hash_field_sel(ctc_ipfix_hash_field_sel_t* field_sel);
extern int32 ctc_ipfix_set_port_cfg(uint32 gport,ctc_ipfix_port_cfg_t* ipfix_cfg);
extern int32 ctc_ipfix_traverse(ctc_ipfix_traverse_fn fn, ctc_ipfix_traverse_t* p_data);
extern int32 ctc_ipmc_add_default_entry(uint8 ip_version, ctc_ipmc_default_action_t type);
extern int32 ctc_ipmc_add_group(ctc_ipmc_group_info_t* p_group);
extern int32 ctc_ipmc_add_member(ctc_ipmc_group_info_t* p_group);
extern int32 ctc_ipmc_add_rp_intf(ctc_ipmc_rp_t* p_rp);
extern int32 ctc_ipmc_clear_stats(ctc_ipmc_group_info_t* p_group);
extern int32 ctc_ipmc_get_group_info(ctc_ipmc_group_info_t* p_group);
extern int32 ctc_ipmc_get_mcast_force_route(ctc_ipmc_force_route_t* p_data);
extern int32 ctc_ipmc_get_stats(ctc_ipmc_group_info_t* p_group, ctc_stats_basic_t* p_stats);
extern int32 ctc_ipmc_init(void* ipmc_global_cfg);
extern int32 ctc_ipmc_remove_group(ctc_ipmc_group_info_t* p_group);
extern int32 ctc_ipmc_remove_member(ctc_ipmc_group_info_t* p_group);
extern int32 ctc_ipmc_remove_rp_intf(ctc_ipmc_rp_t* p_rp);
extern int32 ctc_ipmc_set_mcast_force_route(ctc_ipmc_force_route_t* p_data);
extern int32 ctc_ipmc_traverse(uint8 ip_ver, ctc_ipmc_traverse_fn fn, void* user_data);
extern int32 ctc_ipmc_update_rpf(ctc_ipmc_group_info_t* p_group);
extern int32 ctc_ipuc_add_default_entry(uint8 ip_ver, uint32 nh_id);
extern int32 ctc_ipuc_add_nat_sa(ctc_ipuc_nat_sa_param_t* p_ipuc_nat_sa_param);
extern int32 ctc_ipuc_add_tunnel(ctc_ipuc_tunnel_param_t* p_ipuc_tunnel_param);
extern int32 ctc_ipuc_add(ctc_ipuc_param_t* p_ipuc_param);
extern int32 ctc_ipuc_arrange_fragment(void* p_arrange_info);
extern int32 ctc_ipuc_cpu_rpf_check(bool enable);
extern int32 ctc_ipuc_get(ctc_ipuc_param_t* p_ipuc_param);
extern int32 ctc_ipuc_init(void* ipuc_global_cfg);
extern int32 ctc_ipuc_ipv6_enable(bool enable);
extern int32 ctc_ipuc_remove_nat_sa(ctc_ipuc_nat_sa_param_t* p_ipuc_nat_sa_param);
extern int32 ctc_ipuc_remove_tunnel(ctc_ipuc_tunnel_param_t* p_ipuc_tunnel_param);
extern int32 ctc_ipuc_remove(ctc_ipuc_param_t* p_ipuc_param);
extern int32 ctc_ipuc_set_global_property(ctc_ipuc_global_property_t* p_global_prop);
extern int32 ctc_ipuc_set_lookup_ctl(ctc_ipuc_global_property_t* p_global_prop);
extern int32 ctc_ipuc_set_route_ctl(ctc_ipuc_global_property_t* p_global_prop);
extern int32 ctc_ipuc_traverse(uint8 ip_ver, void* fn, void* data);
extern int32 ctc_l2_add_default_entry(ctc_l2dflt_addr_t* l2dflt_addr);
extern int32 ctc_l2_add_fdb(ctc_l2_addr_t* l2_addr);
extern int32 ctc_l2_add_fdb_with_nexthop(ctc_l2_addr_t* l2_addr, uint32 nhp_id);
extern int32 ctc_l2_add_port_to_default_entry(ctc_l2dflt_addr_t* l2dflt_addr);
extern int32 ctc_l2_fdb_init(void* l2_fdb_global_cfg);
extern int32 ctc_l2_flush_fdb(ctc_l2_flush_fdb_t* pFlush);
extern int32 ctc_l2_get_default_entry_features(ctc_l2dflt_addr_t* l2dflt_addr);
extern int32 ctc_l2_get_fdb_by_index(uint32 index, ctc_l2_addr_t* l2_addr);
extern int32 ctc_l2_get_fdb_count(ctc_l2_fdb_query_t* pQuery);
extern int32 ctc_l2_get_fdb_entry(ctc_l2_fdb_query_t* pQuery, ctc_l2_fdb_query_rst_t* query_rst);
extern int32 ctc_l2_get_fid_property(uint16 fid_id, ctc_l2_fid_property_t property, uint32* value);
extern int32 ctc_l2_get_nhid_by_logic_port(uint16 logic_port, uint32* nhp_id);
extern int32 ctc_l2mcast_add_addr(ctc_l2_mcast_addr_t* l2mc_addr);
extern int32 ctc_l2mcast_add_member(ctc_l2_mcast_addr_t* l2mc_addr);
extern int32 ctc_l2mcast_remove_addr(ctc_l2_mcast_addr_t* l2mc_addr);
extern int32 ctc_l2mcast_remove_member(ctc_l2_mcast_addr_t* l2mc_addr);
extern int32 ctc_l2_remove_default_entry(ctc_l2dflt_addr_t* l2dflt_addr);
extern int32 ctc_l2_remove_fdb_by_index(uint32 index);
extern int32 ctc_l2_remove_fdb(ctc_l2_addr_t* l2_addr);
extern int32 ctc_l2_remove_port_from_default_entry(ctc_l2dflt_addr_t* l2dflt_addr);
extern int32 ctc_l2_set_default_entry_features(ctc_l2dflt_addr_t* l2dflt_addr);
extern int32 ctc_l2_set_fid_property(uint16 fid_id, ctc_l2_fid_property_t property, uint32 value);
extern int32 ctc_l2_set_nhid_by_logic_port(uint16 logic_port, uint32 nhp_id);
extern int32 ctc_l3if_add_ecmp_if_member(uint16 ecmp_if_id, uint16 l3if_id);
extern int32 ctc_l3if_add_vmac_low_8bit(uint16 l3if_id, ctc_l3if_vmac_t* p_l3if_vmac);
extern int32 ctc_l3if_create_ecmp_if(ctc_l3if_ecmp_if_t* p_ecmp_if);
extern int32 ctc_l3if_create(uint16 l3if_id, ctc_l3if_t* p_l3_if);
extern int32 ctc_l3if_destory_ecmp_if(uint16 ecmp_if_id);
extern int32 ctc_l3if_destory(uint16 l3if_id, ctc_l3if_t* p_l3_if);
extern int32 ctc_l3if_get_interface_router_mac(uint16 l3if_id, ctc_l3if_router_mac_t* router_mac);
extern int32 ctc_l3if_get_l3if_id(ctc_l3if_t* p_l3_if, uint16* l3if_id);
extern int32 ctc_l3if_get_property(uint16 l3if_id, ctc_l3if_property_t l3if_prop, uint32* p_value);
extern int32 ctc_l3if_get_router_mac(mac_addr_t mac_addr);
extern int32 ctc_l3if_get_vmac_low_8bit(uint16 l3if_id, ctc_l3if_vmac_t* p_l3if_vmac);
extern int32 ctc_l3if_get_vmac_prefix(ctc_l3if_route_mac_type_t prefix_type, mac_addr_t mac_40bit);
extern int32 ctc_l3if_init(void* l3if_global_cfg);
extern int32 ctc_l3if_remove_ecmp_if_member(uint16 ecmp_if_id, uint16 l3if_id);
extern int32 ctc_l3if_remove_vmac_low_8bit(uint16 l3if_id, ctc_l3if_vmac_t* p_l3if_vmac);
extern int32 ctc_l3if_set_interface_router_mac(uint16 l3if_id, ctc_l3if_router_mac_t router_mac);
extern int32 ctc_l3if_set_property(uint16 l3if_id, ctc_l3if_property_t l3if_prop, uint32 value);
extern int32 ctc_l3if_set_router_mac(mac_addr_t mac_addr);
extern int32 ctc_l3if_set_vmac_prefix(ctc_l3if_route_mac_type_t prefix_type, mac_addr_t mac_40bit);
extern int32 ctc_l3if_set_vrf_stats_en(ctc_l3if_vrf_stats_t* p_vrf_stats);
extern int32 ctc_aging_get_aging_status(uint32 aging_index, ctc_aging_status_t* age_status);
extern int32 ctc_aging_get_property(ctc_aging_table_type_t tbl_type, ctc_aging_prop_t aging_prop, uint32* value);
extern int32 ctc_aging_read_aging_fifo(ctc_aging_fifo_info_t* fifo_info);
extern int32 ctc_aging_set_property(ctc_aging_table_type_t tbl_type, ctc_aging_prop_t aging_prop, uint32 value);
extern int32 ctc_get_learning_action(ctc_learning_action_info_t* p_learning_action);
extern int32 ctc_learning_aging_init(void* global_cfg);
extern int32 ctc_learning_clear_learning_cache(uint16 entry_vld_bitmap);
extern int32 ctc_learning_get_cache_entry_valid_bitmap(uint16* entry_vld_bitmap);
extern int32 ctc_learning_read_learning_cache(uint16 entry_vld_bitmap, ctc_learning_cache_t* l2_lc);
extern int32 ctc_set_learning_action(ctc_learning_action_info_t* p_learning_action);
extern int32 ctc_linkagg_add_port(uint8 tid, uint32 gport);
extern int32 ctc_linkagg_create(ctc_linkagg_group_t* p_linkagg_grp);
extern int32 ctc_linkagg_destroy(uint8 tid);
extern int32 ctc_linkagg_get_1st_local_port(uint8 lchip, uint8 tid, uint16* p_gport, uint8* local_cnt);
extern int32 ctc_linkagg_get_max_mem_num(uint8* max_num);
extern int32 ctc_linkagg_get_member_ports(uint8 tid, uint16* p_gports, uint8* cnt);
extern int32 ctc_linkagg_get_psc(ctc_linkagg_psc_t* psc);
extern int32 ctc_linkagg_init(void* linkagg_global_cfg);
extern int32 ctc_linkagg_remove_port(uint8 tid, uint32 gport);
extern int32 ctc_linkagg_set_psc(ctc_linkagg_psc_t* psc);
extern int32 ctc_mirror_add_session(ctc_mirror_dest_t* mirror);
extern int32 ctc_mirror_get_mirror_discard(ctc_direction_t dir, ctc_mirror_discard_t discard_flag, bool* enable);
extern int32 ctc_mirror_get_port_info(uint32 gport, ctc_direction_t dir, bool* enable, uint8* session_id);
extern int32 ctc_mirror_get_vlan_info(uint16 vlan_id, ctc_direction_t dir, bool* enable, uint8* session_id);
extern int32 ctc_mirror_init(void* mirror_global_cfg);
extern int32 ctc_mirror_remove_session(ctc_mirror_dest_t* mirror);
extern int32 ctc_mirror_set_erspan_psc(ctc_mirror_erspan_psc_t* psc);
extern int32 ctc_mirror_set_escape_en(bool enable);
extern int32 ctc_mirror_set_escape_mac(ctc_mirror_rspan_escape_t* escape);
extern int32 ctc_mirror_set_mirror_discard(ctc_direction_t dir, uint16 discard_flag, bool enable);
extern int32 ctc_mirror_set_port_en(uint32 gport, ctc_direction_t dir, bool enable, uint8 session_id);
extern int32 ctc_mirror_set_vlan_en(uint16 vlan_id, ctc_direction_t dir, bool enable, uint8 session_id);
extern int32 ctc_monitor_clear_watermark(ctc_monitor_watermark_t* p_watermark);
extern int32 ctc_monitor_get_config(ctc_monitor_config_t* p_cfg);
extern int32 ctc_monitor_get_watermark(ctc_monitor_watermark_t* p_watermark);
extern int32 ctc_monitor_init(void* p_global_cfg);
extern int32 ctc_monitor_register_cb(ctc_monitor_fn_t callback,void* userdata);
extern int32 ctc_monitor_set_config(ctc_monitor_config_t* p_cfg);
extern int32 ctc_monitor_set_global_config(ctc_monitor_glb_cfg_t* p_cfg);
extern int32 ctc_mpls_add_ilm(ctc_mpls_ilm_t* p_mpls_ilm);
extern int32 ctc_mpls_add_l2vpn_pw(ctc_mpls_l2vpn_pw_t* p_mpls_pw);
extern int32 ctc_mpls_add_stats(ctc_mpls_stats_index_t* stats_index);
extern int32 ctc_mpls_clear_in_sqn(uint8 index);
extern int32 ctc_mpls_clear_out_sqn(uint8 index);
extern int32 ctc_mpls_clear_stats(ctc_mpls_stats_index_t* stats_index);
extern int32 ctc_mpls_del_ilm(ctc_mpls_ilm_t* p_mpls_ilm);
extern int32 ctc_mpls_del_l2vpn_pw(ctc_mpls_l2vpn_pw_t* p_mpls_pw);
extern int32 ctc_mpls_get_ilm(uint32* nh_id, ctc_mpls_ilm_t* p_mpls_ilm);
extern int32 ctc_mpls_get_stats(ctc_mpls_stats_index_t* stats_index, ctc_stats_basic_t* p_stats);
extern int32 ctc_mpls_init(ctc_mpls_init_t* p_mpls_info);
extern int32 ctc_mpls_remove_stats(ctc_mpls_stats_index_t* stats_index);
extern int32 ctc_mpls_set_ilm_property(ctc_mpls_property_t* p_mpls_pro);
extern int32 ctc_mpls_update_ilm(ctc_mpls_ilm_t* p_mpls_ilm);
extern int32 ctc_nexthop_init(ctc_nh_global_cfg_t* nh_cfg);
extern int32 ctc_nh_add_ecmp(uint32 nhid, ctc_nh_ecmp_nh_param_t* p_nh_param);
extern int32 ctc_nh_add_iloop(uint32 nhid, ctc_loopback_nexthop_param_t* p_nh_param);
extern int32 ctc_nh_add_ip_tunnel(uint32 nhid, ctc_ip_tunnel_nh_param_t* p_nh_param);
extern int32 ctc_nh_add_ipuc(uint32 nhid, ctc_ip_nh_param_t* p_nh_param);
extern int32 ctc_nh_add_l2uc(uint32 gport, ctc_nh_param_brguc_sub_type_t nh_type);
extern int32 ctc_nh_add_mcast(uint32 nhid, ctc_mcast_nh_param_group_t* p_nh_mcast_group);
extern int32 ctc_nh_add_misc(uint32 nhid, ctc_misc_nh_param_t* p_nh_param);
extern int32 ctc_nh_add_mpls_tunnel_label(uint16 tunnel_id, ctc_mpls_nexthop_tunnel_param_t* p_nh_param);
extern int32 ctc_nh_add_mpls(uint32 nhid, ctc_mpls_nexthop_param_t* p_nh_param);
extern int32 ctc_nh_add_nexthop_mac(uint16 arp_id, ctc_nh_nexthop_mac_param_t* p_param);
extern int32 ctc_nh_add_rspan(uint32 nhid, ctc_rspan_nexthop_param_t* p_nh_param);
extern int32 ctc_nh_add_stats(uint32 nhid);
extern int32 ctc_nh_add_trill(uint32 nhid, ctc_nh_trill_param_t* p_nh_param);
extern int32 ctc_nh_add_xlate(uint32 nhid, ctc_vlan_edit_nh_param_t* p_nh_param);
extern int32 ctc_nh_clear_stats(ctc_nh_stats_info_t* stats_info);
extern int32 ctc_nh_del_stats(uint32 nhid);
extern int32 ctc_nh_get_l2uc(uint32 gport, ctc_nh_param_brguc_sub_type_t nh_type, uint32* nhid);
extern int32 ctc_nh_get_max_ecmp(uint16* max_ecmp);
extern int32 ctc_nh_get_mcast_nh(uint32 group_id, uint32* p_nhid);
extern int32 ctc_nh_get_nh_info(uint32 nhid, ctc_nh_info_t* p_nh_info);
extern int32 ctc_nh_get_resolved_dsnh_offset(ctc_nh_reserved_dsnh_offset_type_t type, uint32* p_offset);
extern int32 ctc_nh_get_stats(ctc_nh_stats_info_t* stats_info);
extern int32 ctc_nh_remove_ecmp(uint32 nhid);
extern int32 ctc_nh_remove_iloop(uint32 nhid);
extern int32 ctc_nh_remove_ip_tunnel(uint32 nhid);
extern int32 ctc_nh_remove_ipuc(uint32 nhid);
extern int32 ctc_nh_remove_l2uc(uint32 gport);
extern int32 ctc_nh_remove_mcast(uint32 nhid);
extern int32 ctc_nh_remove_misc(uint32 nhid);
extern int32 ctc_nh_remove_mpls_tunnel_label(uint16 tunnel_id);
extern int32 ctc_nh_remove_mpls(uint32 nhid);
extern int32 ctc_nh_remove_nexthop_mac(uint16 arp_id);
extern int32 ctc_nh_remove_rspan(uint32 nhid);
extern int32 ctc_nh_remove_trill(uint32 nhid);
extern int32 ctc_nh_remove_xlate(uint32 nhid);
extern int32 ctc_nh_set_global_config(ctc_nh_global_cfg_t* p_glb_cfg);
extern int32 ctc_nh_set_max_ecmp(uint16 max_ecmp);
extern int32 ctc_nh_set_nh_drop(uint32 nhid, ctc_nh_drop_info_t* p_nh_drop);
extern int32 ctc_nh_swap_mpls_tunnel_label(uint16 old_tunnel_id,uint16 new_tunnel_id);
extern int32 ctc_nh_update_ecmp(uint32 nhid, ctc_nh_ecmp_nh_param_t* p_nh_param);
extern int32 ctc_nh_update_ip_tunnel(uint32 nhid, ctc_ip_tunnel_nh_param_t* p_nh_param);
extern int32 ctc_nh_update_ipuc(uint32 nhid, ctc_ip_nh_param_t* p_nh_param);
extern int32 ctc_nh_update_mcast(uint32 nhid, ctc_mcast_nh_param_group_t* p_nh_mcast_group);
extern int32 ctc_nh_update_mpls_tunnel_label(uint16 tunnel_id, ctc_mpls_nexthop_tunnel_param_t* p_new_param);
extern int32 ctc_nh_update_mpls(uint32 nhid, ctc_mpls_nexthop_param_t* p_nh_param);
extern int32 ctc_nh_update_nexthop_mac(uint16 arp_id, ctc_nh_nexthop_mac_param_t* p_new_param);
extern int32 ctc_nh_update_trill(uint32 nhid, ctc_nh_trill_param_t* p_nh_param);
extern int32 ctc_oam_add_chan(ctc_oam_chan_t* p_chan);
extern int32 ctc_oam_add_lmep(ctc_oam_lmep_t* p_lmep);
extern int32 ctc_oam_add_maid(ctc_oam_maid_t* p_maid);
extern int32 ctc_oam_add_mip(ctc_oam_mip_t* p_mip);
extern int32 ctc_oam_add_rmep(ctc_oam_rmep_t* p_rmep);
extern int32 ctc_oam_clear_trpt_stats(uint8 gchip, uint8 session_id);
extern int32 ctc_oam_get_defect_info(uint8 lchip, void* p_defect_info);
extern int32 ctc_oam_get_mep_info(uint8 lchip, ctc_oam_mep_info_t* p_mep_info);
extern int32 ctc_oam_get_mep_info_with_key(ctc_oam_mep_info_with_key_t* p_mep_info);
extern int32 ctc_oam_get_stats(ctc_oam_stats_info_t* p_stat_info);
extern int32 ctc_oam_get_trpt_stats(uint8 gchip, uint8 session_id, ctc_oam_trpt_stats_t* p_trpt_stats);
extern int32 ctc_oam_init(ctc_oam_global_t* p_cfg);
extern int32 ctc_oam_remove_chan(ctc_oam_chan_t* p_chan);
extern int32 ctc_oam_remove_lmep(ctc_oam_lmep_t* p_lmep);
extern int32 ctc_oam_remove_maid(ctc_oam_maid_t* p_maid);
extern int32 ctc_oam_remove_mip(ctc_oam_mip_t* p_mip);
extern int32 ctc_oam_remove_rmep(ctc_oam_rmep_t* p_rmep);
extern int32 ctc_oam_set_property(ctc_oam_property_t* p_prop);
extern int32 ctc_oam_set_trpt_cfg(ctc_oam_trpt_t* p_throughput);
extern int32 ctc_oam_set_trpt_en(uint8 gchip, uint8 session_id, uint8 enable);
extern int32 ctc_oam_update_lmep(ctc_oam_update_t* p_lmep);
extern int32 ctc_oam_update_rmep(ctc_oam_update_t* p_rmep);
extern int32 ctc_overlay_tunnel_add_tunnel(ctc_overlay_tunnel_param_t* p_tunnel_param);
extern int32 ctc_overlay_tunnel_get_fid(uint32 vn_id, uint16* p_fid);
extern int32 ctc_overlay_tunnel_init(void* param);
extern int32 ctc_overlay_tunnel_remove_tunnel(ctc_overlay_tunnel_param_t* p_tunnel_param);
extern int32 ctc_overlay_tunnel_set_fid(uint32 vn_id, uint16 fid);
extern int32 ctc_overlay_tunnel_update_tunnel(ctc_overlay_tunnel_param_t* p_tunnel_param);
extern int32 ctc_packet_decap(ctc_pkt_rx_t* p_pkt_rx);
extern int32 ctc_packet_encap(ctc_pkt_tx_t* p_pkt_tx);
extern int32 ctc_packet_init(void* p_global_cfg);
extern int32 ctc_packet_tx(ctc_pkt_tx_t* p_pkt_tx);
extern int32 ctc_parser_enable_l3_type(ctc_parser_l3_type_t l3_type, bool enable);
extern int32 ctc_parser_get_ecmp_hash_field(ctc_parser_ecmp_hash_ctl_t* hash_ctl);
extern int32 ctc_parser_get_global_cfg(ctc_parser_global_cfg_t* global_cfg);
extern int32 ctc_parser_get_ipv6_ctl(uint8 index, ctc_parser_ipv6_ctl_t* ipv6_ctl);
extern int32 ctc_parser_get_l2_flex_header(ctc_parser_l2flex_header_t* l2flex_header);
extern int32 ctc_parser_get_l3_flex_header(ctc_parser_l3flex_header_t* l3flex_header);
extern int32 ctc_parser_get_l4_app_ctl(ctc_parser_l4app_ctl_t* l4app_ctl);
extern int32 ctc_parser_get_l4_app_data_ctl(uint8 index, ctc_parser_l4_app_data_entry_t* entry);
extern int32 ctc_parser_get_l4_flex_header(ctc_parser_l4flex_header_t* l4flex_header);
extern int32 ctc_parser_get_l4_len_op_ctl(uint8 index, uint16* length);
extern int32 ctc_parser_get_l4_ptp_ctl(ctc_parser_ptp_ctl_t* l4ptp_ctl);
extern int32 ctc_parser_get_max_length_filed(uint16* max_length);
extern int32 ctc_parser_get_pbb_header(ctc_parser_pbb_header_t* pbb_header);
extern int32 ctc_parser_get_tpid(ctc_parser_l2_tpid_t type, uint16* tpid);
extern int32 ctc_parser_get_trill_header(ctc_parser_trill_header_t* trill_header);
extern int32 ctc_parser_get_udf(uint32 index, ctc_parser_udf_t* udf);
extern int32 ctc_parser_get_udp_app_op_ctl(uint8 index, ctc_parser_udp_app_op_ctl_t* udp_app_op_ctl);
extern int32 ctc_parser_get_vlan_parser_num(uint8* vlan_num);
extern int32 ctc_parser_init(void* parser_global_cfg);
extern int32 ctc_parser_l2_enable_l3_type(ctc_parser_l3_type_t l3_type, bool enable);
extern int32 ctc_parser_l3_enable_l4_type(ctc_parser_l4_type_t l4_type, bool enable);
extern int32 ctc_parser_map_l3_type(uint8 index, ctc_parser_l2_protocol_entry_t* entry);
extern int32 ctc_parser_map_l4_type(uint8 index, ctc_parser_l3_protocol_entry_t* entry);
extern int32 ctc_parser_set_ecmp_hash_field(ctc_parser_ecmp_hash_ctl_t* hash_ctl);
extern int32 ctc_parser_set_global_cfg(ctc_parser_global_cfg_t* global_cfg);
extern int32 ctc_parser_set_ipv6_ctl(uint8 index, ctc_parser_ipv6_ctl_t* ipv6_ctl);
extern int32 ctc_parser_set_l2_flex_header(ctc_parser_l2flex_header_t* l2flex_header);
extern int32 ctc_parser_set_l3_flex_header(ctc_parser_l3flex_header_t* l3flex_header);
extern int32 ctc_parser_set_l4_app_ctl(ctc_parser_l4app_ctl_t* l4app_ctl);
extern int32 ctc_parser_set_l4_app_data_ctl(uint8 index, ctc_parser_l4_app_data_entry_t* entry);
extern int32 ctc_parser_set_l4_flex_header(ctc_parser_l4flex_header_t* l4flex_header);
extern int32 ctc_parser_set_l4_len_op_ctl(uint8 index, uint16 length);
extern int32 ctc_parser_set_l4_ptp_ctl(ctc_parser_ptp_ctl_t* l4ptp_ctl);
extern int32 ctc_parser_set_l4_type(uint8 index, ctc_parser_l4_protocol_entry_t* entry);
extern int32 ctc_parser_set_max_length_field(uint16 max_length);
extern int32 ctc_parser_set_pbb_header(ctc_parser_pbb_header_t* pbb_header);
extern int32 ctc_parser_set_tpid(ctc_parser_l2_tpid_t type, uint16 tpid);
extern int32 ctc_parser_set_trill_header(ctc_parser_trill_header_t* trill_header);
extern int32 ctc_parser_set_udf(uint32 index, ctc_parser_udf_t* udf);
extern int32 ctc_parser_set_udp_app_op_ctl(uint8 index, ctc_parser_udp_app_op_ctl_t* udp_app_op_ctl);
extern int32 ctc_parser_set_vlan_parser_num(uint8 vlan_num);
extern int32 ctc_parser_unmap_l3_type(uint8 index);
extern int32 ctc_parser_unmap_l4_type(uint8 index);
extern int32 ctc_l2pdu_classify_l2pdu(ctc_pdu_l2pdu_type_t l2pdu_type, uint8 index, ctc_pdu_l2pdu_key_t* key);
extern int32 ctc_l2pdu_get_classified_key(ctc_pdu_l2pdu_type_t l2pdu_type, uint8 index, ctc_pdu_l2pdu_key_t* key);
extern int32 ctc_l2pdu_get_global_action(ctc_pdu_l2pdu_type_t l2pdu_type, uint8 index, ctc_pdu_global_l2pdu_action_t* action);
extern int32 ctc_l2pdu_get_port_action(uint32 gport, uint8 action_index, ctc_pdu_port_l2pdu_action_t* action);
extern int32 ctc_l2pdu_set_default_global_action();
extern int32 ctc_l2pdu_set_global_action(ctc_pdu_l2pdu_type_t l2pdu_type, uint8 index, ctc_pdu_global_l2pdu_action_t* action);
extern int32 ctc_l2pdu_set_port_action(uint32 gport, uint8 action_index, ctc_pdu_port_l2pdu_action_t action);
extern int32 ctc_l3pdu_classify_l3pdu(ctc_pdu_l3pdu_type_t l3pdu_type, uint8 index, ctc_pdu_l3pdu_key_t* key);
extern int32 ctc_l3pdu_get_classified_key(ctc_pdu_l3pdu_type_t l3pdu_type, uint8 index, ctc_pdu_l3pdu_key_t* key);
extern int32 ctc_l3pdu_get_global_action(ctc_pdu_l3pdu_type_t l3pdu_type, uint8 index, ctc_pdu_global_l3pdu_action_t* action);
extern int32 ctc_l3pdu_get_l3if_action(uint16 l3ifid, uint8 action_index, ctc_pdu_l3if_l3pdu_action_t* action);
extern int32 ctc_l3pdu_set_default_global_action();
extern int32 ctc_l3pdu_set_global_action(ctc_pdu_l3pdu_type_t l3pdu_type, uint8 index, ctc_pdu_global_l3pdu_action_t* action);
extern int32 ctc_l3pdu_set_l3if_action(uint16 l3ifid, uint8 action_index, ctc_pdu_l3if_l3pdu_action_t action);
extern int32 ctc_pdu_init(void* pdu_global_cfg);
extern int32 ctc_get_ipg_size(ctc_ipg_size_t index, uint8* p_size);
extern int32 ctc_get_max_frame_size(ctc_frame_size_t index, uint16* p_value);
extern int32 ctc_get_min_frame_size(ctc_frame_size_t index, uint16* p_value);
extern int32 ctc_port_get_bridge_en(uint32 gport, bool* p_enable);
extern int32 ctc_port_get_cpu_mac_en(bool* p_enable);
extern int32 ctc_port_get_cross_connect(uint32 gport, uint32* p_value);
extern int32 ctc_port_get_default_vlan(uint32 gport, uint16* p_vid);
extern int32 ctc_port_get_direction_property(uint32 gport, ctc_port_direction_property_t port_prop, ctc_direction_t dir, uint32* p_value);
extern int32 ctc_port_get_dot1q_type(uint32 gport, ctc_dot1q_type_t* p_type);
extern int32 ctc_port_get_flow_ctl_en(ctc_port_fc_prop_t* p_fc_prop);
extern int32 ctc_port_get_ipg(uint32 gport, ctc_ipg_size_t* p_index);
extern int32 ctc_port_get_ipsg_en(uint32 gport, bool* p_enable);
extern int32 ctc_port_get_keep_vlan_tag(uint32 gport, bool* p_enable);
extern int32 ctc_port_get_learning_en(uint32 gport, bool* p_enable);
extern int32 ctc_port_get_mac_en(uint32 gport, bool* p_enable);
extern int32 ctc_port_get_mac_link_up(uint32 gport, bool* p_is_up);
extern int32 ctc_port_get_max_frame(uint32 gport, uint32* p_value);
extern int32 ctc_port_get_min_frame_size(uint32 gport, uint8* p_size);
extern int32 ctc_port_get_mux_demux_en(uint32 gport, ctc_port_mux_demux_type_t type, bool* p_enable);
extern int32 ctc_port_get_pading_en(uint32 gport, bool* p_enable);
extern int32 ctc_port_get_phy_if_en(uint32 gport, uint16* p_l3if_id, bool* p_enable);
extern int32 ctc_port_get_port_check_en(uint32 gport, bool* p_enable);
extern int32 ctc_port_get_port_en(uint32 gport, bool* p_enable);
extern int32 ctc_port_get_port_mac(uint32 gport, mac_addr_t* p_port_mac);
extern int32 ctc_port_get_preamble(uint32 gport, uint8* p_pre_bytes);
extern int32 ctc_port_get_property(uint32 gport, ctc_port_property_t port_prop, uint32* p_value);
extern int32 ctc_port_get_protocol_vlan_en(uint32 gport, bool* p_enable);
extern int32 ctc_port_get_random_log_en(uint32 gport, ctc_direction_t dir, bool* p_enable);
extern int32 ctc_port_get_random_log_percent(uint32 gport, ctc_direction_t dir, uint8* p_percent);
extern int32 ctc_port_get_receive_en(uint32 gport, bool* p_enable);
extern int32 ctc_port_get_reflective_bridge_en(uint32 gport, bool* p_enable);
extern int32 ctc_port_get_restriction(uint32 gport, ctc_port_restriction_t* p_restriction);
extern int32 ctc_port_get_scl_key_type(uint32 gport, ctc_direction_t dir, uint8 scl_id, ctc_port_scl_key_type_t* p_type);
extern int32 ctc_port_get_scl_property(uint32 gport, ctc_port_scl_property_t* prop);
extern int32 ctc_port_get_speed(uint32 gport, ctc_port_speed_t* p_speed_mode);
extern int32 ctc_port_get_srcdiscard_en(uint32 gport, bool* p_enable);
extern int32 ctc_port_get_stag_tpid_index(uint32 gport, ctc_direction_t dir, uint8* p_index);
extern int32 ctc_port_get_stretch_mode_en(uint32 gport, bool* p_enable);
extern int32 ctc_port_get_sub_if_en(uint32 gport, bool* p_enable);
extern int32 ctc_port_get_transmit_en(uint32 gport, bool* p_enable);
extern int32 ctc_port_get_untag_dft_vid(uint32 gport, bool* p_enable, bool* p_untag_svlan);
extern int32 ctc_port_get_use_inner_cos(uint32 gport, bool* p_is_inner);
extern int32 ctc_port_get_use_outer_ttl(uint32 gport, bool* p_enable);
extern int32 ctc_port_get_vlan_classify_enable(uint32 gport, ctc_vlan_class_type_t* p_type);
extern int32 ctc_port_get_vlan_ctl(uint32 gport, ctc_vlantag_ctl_t* p_mode);
extern int32 ctc_port_get_vlan_domain(uint32 gport, ctc_port_vlan_domain_type_t* p_vlan_domain);
extern int32 ctc_port_get_vlan_filter_en(uint32 gport, ctc_direction_t dir, bool* p_enable);
extern int32 ctc_port_get_vlan_mapping_en(uint32 gport, bool* p_enable);
extern int32 ctc_port_get_vlan_range(uint32 gport, ctc_vlan_range_info_t* p_vrange_info, bool* p_enable);
extern int32 ctc_port_init(void* p_port_global_cfg);
extern int32 ctc_port_set_auto_neg(uint32 gport, uint32 value);
extern int32 ctc_port_set_bridge_en(uint32 gport, bool enable);
extern int32 ctc_port_set_cpu_mac_en(bool enable);
extern int32 ctc_port_set_cross_connect(uint32 gport, uint32 nhid);
extern int32 ctc_port_set_default_cfg(uint32 gport);
extern int32 ctc_port_set_default_vlan(uint32 gport, uint16 vid);
extern int32 ctc_port_set_direction_property(uint32 gport, ctc_port_direction_property_t port_prop, ctc_direction_t dir, uint32 value);
extern int32 ctc_port_set_dot1q_type(uint32 gport, ctc_dot1q_type_t type);
extern int32 ctc_port_set_flow_ctl_en(ctc_port_fc_prop_t* p_fc_prop);
extern int32 ctc_port_set_ipg(uint32 gport, ctc_ipg_size_t index);
extern int32 ctc_port_set_ipsg_en(uint32 gport, bool enable);
extern int32 ctc_port_set_keep_vlan_tag(uint32 gport, bool enable);
extern int32 ctc_port_set_learning_en(uint32 gport, bool enable);
extern int32 ctc_port_set_link_intr(uint32 gport, uint32 value);
extern int32 ctc_port_set_loopback(ctc_port_lbk_param_t* p_port_lbk);
extern int32 ctc_port_set_mac_en(uint32 gport, bool enable);
extern int32 ctc_port_set_max_frame(uint32 gport, uint32 value);
extern int32 ctc_port_set_min_frame_size(uint32 gport, uint8 size);
extern int32 ctc_port_set_mux_demux_en(uint32 gport, ctc_port_mux_demux_type_t type, bool enable);
extern int32 ctc_port_set_pading_en(uint32 gport, bool enable);
extern int32 ctc_port_set_phy_if_en(uint32 gport, bool enable);
extern int32 ctc_port_set_port_check_en(uint32 gport, bool enable);
extern int32 ctc_port_set_port_en(uint32 gport, bool enable);
extern int32 ctc_port_set_port_mac_postfix(uint32 gport, ctc_port_mac_postfix_t* p_port_mac);
extern int32 ctc_port_set_port_mac_prefix(ctc_port_mac_prefix_t* p_port_mac);
extern int32 ctc_port_set_preamble(uint32 gport, uint8 pre_bytes);
extern int32 ctc_port_set_property(uint32 gport, ctc_port_property_t port_prop, uint32 value);
extern int32 ctc_port_set_protocol_vlan_en(uint32 gport, bool enable);
extern int32 ctc_port_set_random_log_en(uint32 gport, ctc_direction_t dir, bool enable);
extern int32 ctc_port_set_random_log_percent(uint32 gport, ctc_direction_t dir, uint8 percent);
extern int32 ctc_port_set_receive_en(uint32 gport, bool enable);
extern int32 ctc_port_set_reflective_bridge_en(uint32 gport, bool enable);
extern int32 ctc_port_set_restriction(uint32 gport, ctc_port_restriction_t* p_restriction);
extern int32 ctc_port_set_scl_key_type(uint32 gport, ctc_direction_t dir, uint8 scl_id, ctc_port_scl_key_type_t type);
extern int32 ctc_port_set_scl_property(uint32 gport, ctc_port_scl_property_t* prop);
extern int32 ctc_port_set_speed(uint32 gport, ctc_port_speed_t speed_mode);
extern int32 ctc_port_set_srcdiscard_en(uint32 gport, bool enable);
extern int32 ctc_port_set_stag_tpid_index(uint32 gport, ctc_direction_t dir, uint8 index);
extern int32 ctc_port_set_stretch_mode_en(uint32 gport, bool enable);
extern int32 ctc_port_set_sub_if_en(uint32 gport, bool enable);
extern int32 ctc_port_set_transmit_en(uint32 gport, bool enable);
extern int32 ctc_port_set_untag_dft_vid(uint32 gport, bool enable, bool untag_svlan);
extern int32 ctc_port_set_use_inner_cos(uint32 gport, bool is_inner);
extern int32 ctc_port_set_use_outer_ttl(uint32 gport, bool enable);
extern int32 ctc_port_set_vlan_classify_disable(uint32 gport, ctc_vlan_class_type_t type);
extern int32 ctc_port_set_vlan_classify_enable(uint32 gport, ctc_vlan_class_type_t type);
extern int32 ctc_port_set_vlan_ctl(uint32 gport, ctc_vlantag_ctl_t mode);
extern int32 ctc_port_set_vlan_domain(uint32 gport, ctc_port_vlan_domain_type_t vlan_domain);
extern int32 ctc_port_set_vlan_filter_en(uint32 gport, ctc_direction_t dir, bool enable);
extern int32 ctc_port_set_vlan_mapping_en(uint32 gport, bool enable);
extern int32 ctc_port_set_vlan_range(uint32 gport, ctc_vlan_range_info_t* p_vrange_info, bool enable);
extern int32 ctc_set_ipg_size(ctc_ipg_size_t index, uint8 size);
extern int32 ctc_set_max_frame_size(ctc_frame_size_t index, uint16 value);
extern int32 ctc_set_min_frame_size(ctc_frame_size_t index, uint16 value);
extern int32 ctc_ptp_add_device_clock(ctc_ptp_clock_t* clock);
extern int32 ctc_ptp_adjust_clock_offset(uint8 lchip, ctc_ptp_time_t* p_offset);
extern int32 ctc_ptp_clear_sync_intf_code();
extern int32 ctc_ptp_clear_tod_intf_code();
extern int32 ctc_ptp_get_adjust_delay(uint32 gport, ctc_ptp_adjust_delay_type_t type, int64* value);
extern int32 ctc_ptp_get_captured_frc_ts(uint8 lchip, ctc_ptp_time_t* p_ts);
extern int32 ctc_ptp_get_captured_rx_ts(uint8 lchip, ctc_ptp_time_t* p_ts);
extern int32 ctc_ptp_get_captured_ts(uint8 lchip, ctc_ptp_capured_ts_t* p_captured_ts);
extern int32 ctc_ptp_get_captured_tx_ts(uint8 lchip, ctc_ptp_capured_ts_t* p_ts);
extern int32 ctc_ptp_get_clock_drift(uint8 lchip, ctc_ptp_time_t* p_drift);
extern int32 ctc_ptp_get_clock_timestamp(uint8 lchip, ctc_ptp_time_t* p_timestamp);
extern int32 ctc_ptp_get_device_type(ctc_ptp_device_type_t* p_device_type);
extern int32 ctc_ptp_get_frc_offset(uint8 lchip, ctc_ptp_time_t* p_frc_offset);
extern int32 ctc_ptp_get_frc(uint8 lchip, ctc_ptp_time_t* p_frc);
extern int32 ctc_ptp_get_global_property(ctc_ptp_global_prop_t property, uint32* value);
extern int32 ctc_ptp_get_intr_bitmap(uint8 lchip, uint32* ptp_isr_bitmap);
extern int32 ctc_ptp_get_sync_intf_code(uint8 lchip, ctc_ptp_sync_intf_code_t* p_time_code);
extern int32 ctc_ptp_get_sync_intf_toggle_time(uint8 lchip, ctc_ptp_time_t* p_toggle_time);
extern int32 ctc_ptp_get_sync_intf(uint8 lchip, ctc_ptp_sync_intf_cfg_t* p_sync_cfg);
extern int32 ctc_ptp_get_tod_intf_rx_code(uint8 lchip, ctc_ptp_tod_intf_code_t* p_rx_code);
extern int32 ctc_ptp_get_tod_intf_tx_code(uint8 lchip, ctc_ptp_tod_intf_code_t* p_tx_code);
extern int32 ctc_ptp_get_tod_intf(uint8 lchip, ctc_ptp_tod_intf_cfg_t* p_tod_cfg);
extern int32 ctc_ptp_init(ctc_ptp_global_config_t* p_ptp_cfg);
extern int32 ctc_ptp_port_enable(uint32 gport, bool ptp_enable);
extern int32 ctc_ptp_remove_device_clock(ctc_ptp_clock_t* clock);
extern int32 ctc_ptp_set_adjust_delay(uint32 gport, ctc_ptp_adjust_delay_type_t type, int64 value);
extern int32 ctc_ptp_set_clock_drift(uint8 lchip, ctc_ptp_time_t* p_drift);
extern int32 ctc_ptp_set_device_type(ctc_ptp_device_type_t device_type);
extern int32 ctc_ptp_set_frc_offset(uint8 lchip, ctc_ptp_time_t* p_frc_offset);
extern int32 ctc_ptp_set_global_property(ctc_ptp_global_prop_t property, uint32 value);
extern int32 ctc_ptp_set_sync_intf_toggle_time(uint8 lchip, ctc_ptp_time_t* p_toggle_time);
extern int32 ctc_ptp_set_sync_intf(uint8 lchip, ctc_ptp_sync_intf_cfg_t* p_sync_cfg);
extern int32 ctc_ptp_set_tod_intf_tx_code(uint8 lchip, ctc_ptp_tod_intf_code_t* p_tx_code);
extern int32 ctc_ptp_set_tod_intf(uint8 lchip, ctc_ptp_tod_intf_cfg_t* p_tod_cfg);
extern int32 ctc_ptp_sync_intf_set_capture_ctl_mode(uint8 lchip, uint8 capture_mode);
extern int32 ctc_qos_clear_policer_stats(ctc_qos_policer_stats_t* p_policer_stats);
extern int32 ctc_qos_clear_queue_stats(ctc_qos_queue_stats_t* p_queue_stats);
extern int32 ctc_qos_create_service(ctc_qos_service_info_t* p_service);
extern int32 ctc_qos_destroy_service(ctc_qos_service_info_t* p_service);
extern int32 ctc_qos_get_domain_map(ctc_qos_domain_map_t* p_domain_map);
extern int32 ctc_qos_get_drop_scheme(ctc_qos_drop_t* p_drop);
extern int32 ctc_qos_get_global_config(ctc_qos_glb_cfg_t* p_glb_cfg);
extern int32 ctc_qos_get_policer(ctc_qos_policer_t* p_policer);
extern int32 ctc_qos_get_queue(ctc_qos_queue_cfg_t* p_que_cfg);
extern int32 ctc_qos_get_sched(ctc_qos_sched_t* p_sched);
extern int32 ctc_qos_get_shape(ctc_qos_shape_t* p_shape);
extern int32 ctc_qos_init(void* p_glb_parm);
extern int32 ctc_qos_query_policer_stats(ctc_qos_policer_stats_t* p_policer_stats);
extern int32 ctc_qos_query_pool_stats(ctc_qos_resrc_pool_stats_t* p_stats);
extern int32 ctc_qos_query_queue_stats(ctc_qos_queue_stats_t* p_queue_stats);
extern int32 ctc_qos_set_domain_map(ctc_qos_domain_map_t* p_domain_map);
extern int32 ctc_qos_set_drop_scheme(ctc_qos_drop_t* p_drop);
extern int32 ctc_qos_set_global_config(ctc_qos_glb_cfg_t* p_glb_cfg);
extern int32 ctc_qos_set_policer(ctc_qos_policer_t* p_policer);
extern int32 ctc_qos_set_queue(ctc_qos_queue_cfg_t* p_que_cfg);
extern int32 ctc_qos_set_resrc(ctc_qos_resrc_t* p_resrc);
extern int32 ctc_qos_set_sched(ctc_qos_sched_t* p_sched);
extern int32 ctc_qos_set_shape(ctc_qos_shape_t* p_shape);
extern int32 ctc_global_ctl_get(ctc_global_control_type_t type, void* value);
extern int32 ctc_global_ctl_set(ctc_global_control_type_t type, void* value);
extern int32 ctc_register_init(void* p_global_cfg);
extern int32 ctc_scl_add_entry(uint32 group_id, ctc_scl_entry_t* scl_entry);
extern int32 ctc_scl_copy_entry(ctc_scl_copy_entry_t* copy_entry);
extern int32 ctc_scl_create_group(uint32 group_id, ctc_scl_group_info_t* group_info);
extern int32 ctc_scl_destroy_group(uint32 group_id);
extern int32 ctc_scl_get_group_info(uint32 group_id, ctc_scl_group_info_t* group_info);
extern int32 ctc_scl_get_multi_entry(ctc_scl_query_t* query);
extern int32 ctc_scl_init(void* scl_global_cfg);
extern int32 ctc_scl_install_entry(uint32 entry_id);
extern int32 ctc_scl_install_group(uint32 group_id, ctc_scl_group_info_t* group_info);
extern int32 ctc_scl_remove_all_entry(uint32 group_id);
extern int32 ctc_scl_remove_entry(uint32 entry_id);
extern int32 ctc_scl_set_default_action(ctc_scl_default_action_t* def_action);
extern int32 ctc_scl_set_entry_priority(uint32 entry_id, uint32 priority);
extern int32 ctc_scl_set_hash_field_sel(ctc_scl_hash_field_sel_t* field_sel);
extern int32 ctc_scl_uninstall_entry(uint32 entry_id);
extern int32 ctc_scl_uninstall_group(uint32 group_id);
extern int32 ctc_scl_update_action(uint32 entry_id, ctc_scl_action_t* action);
extern int32 ctc_ip_source_guard_add_entry(ctc_security_ip_source_guard_elem_t* p_elem);
extern int32 ctc_ip_source_guard_remove_entry(ctc_security_ip_source_guard_elem_t* p_elem);
extern int32 ctc_mac_security_get_learn_limit(ctc_security_learn_limit_t* p_learn_limit);
extern int32 ctc_mac_security_get_port_mac_limit(uint32 gport, ctc_maclimit_action_t* action);
extern int32 ctc_mac_security_get_port_security(uint32 gport, bool* p_enable);
extern int32 ctc_mac_security_get_system_mac_limit(ctc_maclimit_action_t* action);
extern int32 ctc_mac_security_get_vlan_mac_limit(uint16 vlan_id, ctc_maclimit_action_t* action);
extern int32 ctc_mac_security_set_learn_limit(ctc_security_learn_limit_t* p_learn_limit);
extern int32 ctc_mac_security_set_port_mac_limit(uint32 gport, ctc_maclimit_action_t action);
extern int32 ctc_mac_security_set_port_security(uint32 gport, bool enable);
extern int32 ctc_mac_security_set_system_mac_limit(ctc_maclimit_action_t action);
extern int32 ctc_mac_security_set_vlan_mac_limit(uint16 vlan_id, ctc_maclimit_action_t action);
extern int32 ctc_port_isolation_get_route_obey_isolated_en(bool* p_enable);
extern int32 ctc_port_isolation_set_route_obey_isolated_en(bool enable);
extern int32 ctc_security_init(void* security_global_cfg);
extern int32 ctc_storm_ctl_get_cfg(ctc_security_stmctl_cfg_t* stmctl_cfg);
extern int32 ctc_storm_ctl_get_global_cfg(ctc_security_stmctl_glb_cfg_t* p_glb_cfg);
extern int32 ctc_storm_ctl_set_cfg(ctc_security_stmctl_cfg_t* stmctl_cfg);
extern int32 ctc_storm_ctl_set_global_cfg(ctc_security_stmctl_glb_cfg_t* p_glb_cfg);
extern int32 ctc_sgmac_add_trunk_member(uint8 trunk_id, uint8 lport);
extern int32 ctc_sgmac_get_dual_mode(bool* enable);
extern int32 ctc_sgmac_get_port_egress_vlan_mapping(uint32 gport, bool* enable);
extern int32 ctc_sgmac_get_register_base(ctc_sgmac_reg_base_t flag, uint16* reg_base);
extern int32 ctc_sgmac_get_trunk_en(bool* enable);
extern int32 ctc_sgmac_get_vlan_pfm(uint16 vlan_id, uint8* pfm);
extern int32 ctc_sgmac_get_vplssrcport_enable(uint16 logic_port, bool* enable);
extern int32 ctc_sgmac_init(ctc_sgmac_t* p_sgmac);
extern int32 ctc_sgmac_linkagg_add_member(uint8 tid, uint32 gport);
extern int32 ctc_sgmac_linkagg_create(uint8 tid);
extern int32 ctc_sgmac_linkagg_remove_member(uint8 tid, uint32 gport);
extern int32 ctc_sgmac_linkagg_remove(uint8 tid);
extern int32 ctc_sgmac_remove_trunk_member(uint8 trunk_id, uint8 lport);
extern int32 ctc_sgmac_set_dual_mode(bool enable);
extern int32 ctc_sgmac_set_port_egress_vlan_mapping(uint32 gport, bool enable);
extern int32 ctc_sgmac_set_register_base(ctc_sgmac_reg_base_t flag, uint16 reg_base);
extern int32 ctc_sgmac_set_trunk_en(bool enable);
extern int32 ctc_sgmac_set_vlan_pfm(uint16 vlan_id, uint8 pfm);
extern int32 ctc_sgmac_set_vplssrcport_enable(uint16 logic_port, bool enable);
extern int32 ctc_sgmac_show_qmgr_sgmac_ctl();
extern int32 ctc_stacking_add_trunk_port(ctc_stacking_trunk_t* p_trunk);
extern int32 ctc_stacking_add_trunk_rchip(ctc_stacking_trunk_t* p_trunk);
extern int32 ctc_stacking_create_trunk(ctc_stacking_trunk_t* p_trunk);
extern int32 ctc_stacking_destroy_trunk(ctc_stacking_trunk_t* p_trunk);
extern int32 ctc_stacking_get_property(ctc_stacking_property_t* p_prop);
extern int32 ctc_stacking_init(void* p_cfg);
extern int32 ctc_stacking_keeplive_add_member(ctc_stacking_keeplive_t* p_keeplive);
extern int32 ctc_stacking_keeplive_remove_member(ctc_stacking_keeplive_t* p_keeplive);
extern int32 ctc_stacking_remove_trunk_port(ctc_stacking_trunk_t* p_trunk);
extern int32 ctc_stacking_remove_trunk_rchip(ctc_stacking_trunk_t* p_trunk);
extern int32 ctc_stacking_set_property(ctc_stacking_property_t* p_prop);
extern int32 ctc_stats_clear_cpu_mac_stats(uint32 gport);
extern int32 ctc_stats_clear_global_fwd_stats(ctc_direction_t dir);
extern int32 ctc_stats_clear_mac_stats(uint32 gport, ctc_mac_stats_dir_t dir);
extern int32 ctc_stats_clear_port_log_stats(uint32 gport, ctc_direction_t dir);
extern int32 ctc_stats_clear_port_stats(uint32 gport, ctc_direction_t dir);
extern int32 ctc_stats_clear_stats(uint32 stats_id);
extern int32 ctc_stats_create_statsid(ctc_stats_statsid_t* statsid);
extern int32 ctc_stats_destroy_statsid(uint32 stats_id);
extern int32 ctc_stats_get_cpu_mac_stats(uint32 gport, ctc_cpu_mac_stats_t* p_stats);
extern int32 ctc_stats_get_drop_packet_stats_en(ctc_stats_discard_t bitmap, bool* enable);
extern int32 ctc_stats_get_global_cfg(ctc_stats_property_param_t stats_param, ctc_stats_property_t* p_stats_prop);
extern int32 ctc_stats_get_mac_stats_cfg(uint32 gport, ctc_mac_stats_prop_type_t mac_stats_prop_type, ctc_mac_stats_property_t* p_prop_data);
extern int32 ctc_stats_get_mac_stats(uint32 gport, ctc_mac_stats_dir_t dir, ctc_mac_stats_t* p_stats);
extern int32 ctc_stats_get_port_log_stats(uint32 gport, ctc_direction_t dir, ctc_stats_basic_t* p_stats);
extern int32 ctc_stats_get_port_stats_cfg(ctc_direction_t dir, ctc_stats_port_stats_option_type_t* p_type);
extern int32 ctc_stats_get_stats(uint32 stats_id, ctc_stats_basic_t* p_stats);
extern int32 ctc_stats_init(void* stats_global_cfg);
extern int32 ctc_stats_intr_callback_func(uint8* gchip);
extern int32 ctc_stats_register_cb(ctc_stats_sync_fn_t cb, void* userdata);
extern int32 ctc_stats_set_drop_packet_stats_en(ctc_stats_discard_t bitmap, bool enable);
extern int32 ctc_stats_set_global_cfg(ctc_stats_property_param_t stats_param, ctc_stats_property_t stats_prop);
extern int32 ctc_stats_set_mac_stats_cfg(uint32 gport, ctc_mac_stats_prop_type_t mac_stats_prop_type, ctc_mac_stats_property_t prop_data);
extern int32 ctc_stats_set_port_stats_cfg(ctc_direction_t dir, ctc_stats_port_stats_option_type_t type);
extern int32 ctc_stats_set_syncup_cb_internal(uint32 stats_interval);
extern int32 ctc_stp_clear_all_inst_state(uint32 gport);
extern int32 ctc_stp_get_state(uint32 gport, uint8 stpid, uint8* state);
extern int32 ctc_stp_get_vlan_stpid(uint16 vlan_id, uint8* stpid);
extern int32 ctc_stp_init(void* stp_global_cfg);
extern int32 ctc_stp_set_state(uint32 gport, uint8 stpid, uint8 state);
extern int32 ctc_stp_set_vlan_stpid(uint16 vlan_id, uint8 stpid);
extern int32 ctc_sync_ether_get_cfg(uint8 lchip, uint8 sync_ether_clock_id, ctc_sync_ether_cfg_t* p_sync_ether_cfg);
extern int32 ctc_sync_ether_init(void* sync_ether_global_cfg);
extern int32 ctc_sync_ether_set_cfg(uint8 lchip, uint8 sync_ether_clock_id, ctc_sync_ether_cfg_t* p_sync_ether_cfg);
extern int32 ctc_trill_add_route(ctc_trill_route_t* p_trill_route);
extern int32 ctc_trill_add_tunnel(ctc_trill_tunnel_t* p_trill_tunnel);
extern int32 ctc_trill_init(void* trill_global_cfg);
extern int32 ctc_trill_remove_route(ctc_trill_route_t* p_trill_route);
extern int32 ctc_trill_remove_tunnel(ctc_trill_tunnel_t* p_trill_tunnel);
extern int32 ctc_usrid_init(void* usrid_global_cfg);
extern int32 ctc_vlan_add_default_egress_vlan_mapping(uint32 gport, ctc_vlan_miss_t* p_action);
extern int32 ctc_vlan_add_default_vlan_class(ctc_vlan_class_type_t type, ctc_vlan_miss_t* p_action);
extern int32 ctc_vlan_add_default_vlan_mapping(uint32 gport, ctc_vlan_miss_t* p_action);
extern int32 ctc_vlan_add_egress_vlan_mapping(uint32 gport, ctc_egress_vlan_mapping_t* p_vlan_mapping);
extern int32 ctc_vlan_add_port(uint16 vlan_id, uint32 gport);
extern int32 ctc_vlan_add_vlan_class(ctc_vlan_class_t* p_vlan_class);
extern int32 ctc_vlan_add_vlan_mapping(uint32 gport, ctc_vlan_mapping_t* p_vlan_mapping);
extern int32 ctc_vlan_add_vlan_range(ctc_vlan_range_info_t* vrange_info, ctc_vlan_range_t* vlan_range);
extern int32 ctc_vlan_create_uservlan(ctc_vlan_uservlan_t* user_vlan);
extern int32 ctc_vlan_create_vlan_range_group(ctc_vlan_range_info_t* vrange_info, bool is_svlan);
extern int32 ctc_vlan_create_vlan(uint16 vlan_id);
extern int32 ctc_vlan_destroy_vlan_range_group(ctc_vlan_range_info_t* vrange_info);
extern int32 ctc_vlan_destroy_vlan(uint16 vlan_id);
extern int32 ctc_vlan_get_arp_excp_type(uint16 vlan_id, ctc_exception_type_t* type);
extern int32 ctc_vlan_get_bridge_en(uint16 vlan_id, bool* enable);
extern int32 ctc_vlan_get_dhcp_excp_type(uint16 vlan_id, ctc_exception_type_t* type);
extern int32 ctc_vlan_get_direction_property(uint16 vlan_id, ctc_vlan_direction_property_t vlan_prop, ctc_direction_t dir, uint32* value);
extern int32 ctc_vlan_get_fid(uint16 vlan_id, uint16* fid);
extern int32 ctc_vlan_get_igmp_snoop_en(uint16 vlan_id, bool* enable);
extern int32 ctc_vlan_get_learning_en(uint16 vlan_id, bool* enable);
extern int32 ctc_vlan_get_ports(uint16 vlan_id, uint8 gchip, ctc_port_bitmap_t port_bitmap);
extern int32 ctc_vlan_get_property(uint16 vlan_id, ctc_vlan_property_t vlan_prop, uint32* value);
extern int32 ctc_vlan_get_receive_en(uint16 vlan_id, bool* enable);
extern int32 ctc_vlan_get_replace_dspc_en(uint16 vlan_id, bool* enable);
extern int32 ctc_vlan_get_tagged_ports(uint16 vlan_id, uint8 gchip, ctc_port_bitmap_t port_bitmap);
extern int32 ctc_vlan_get_transmit_en(uint16 vlan_id, bool* enable);
extern int32 ctc_vlan_get_vlan_range_type(ctc_vlan_range_info_t* vrange_info, bool* is_svlan);
extern int32 ctc_vlan_get_vlan_range(ctc_vlan_range_info_t* vrange_info, ctc_vlan_range_group_t* vrange_group, uint8* count);
extern int32 ctc_vlan_init(ctc_vlan_global_cfg_t* vlan_global_cfg);
extern int32 ctc_vlan_remove_all_egress_vlan_mapping_by_port(uint32 gport);
extern int32 ctc_vlan_remove_all_vlan_class(ctc_vlan_class_type_t type);
extern int32 ctc_vlan_remove_all_vlan_mapping_by_port(uint32 gport);
extern int32 ctc_vlan_remove_default_egress_vlan_mapping(uint32 gport);
extern int32 ctc_vlan_remove_default_vlan_class(ctc_vlan_class_type_t type);
extern int32 ctc_vlan_remove_default_vlan_mapping(uint32 gport);
extern int32 ctc_vlan_remove_egress_vlan_mapping(uint32 gport, ctc_egress_vlan_mapping_t* p_vlan_mapping);
extern int32 ctc_vlan_remove_port(uint16 vlan_id, uint32 gport);
extern int32 ctc_vlan_remove_vlan_class(ctc_vlan_class_t* p_vlan_class);
extern int32 ctc_vlan_remove_vlan_mapping(uint32 gport, ctc_vlan_mapping_t* p_vlan_mapping);
extern int32 ctc_vlan_remove_vlan_range(ctc_vlan_range_info_t* vrange_info, ctc_vlan_range_t* vlan_range);
extern int32 ctc_vlan_set_arp_excp_type(uint16 vlan_id, ctc_exception_type_t type);
extern int32 ctc_vlan_set_bridge_en(uint16 vlan_id, bool enable);
extern int32 ctc_vlan_set_dhcp_excp_type(uint16 vlan_id, ctc_exception_type_t type);
extern int32 ctc_vlan_set_direction_property(uint16 vlan_id, ctc_vlan_direction_property_t vlan_prop, ctc_direction_t dir, uint32 value);
extern int32 ctc_vlan_set_fid(uint16 vlan_id, uint16 fid);
extern int32 ctc_vlan_set_igmp_snoop_en(uint16 vlan_id, bool enable);
extern int32 ctc_vlan_set_learning_en(uint16 vlan_id, bool enable);
extern int32 ctc_vlan_set_property(uint16 vlan_id, ctc_vlan_property_t vlan_prop, uint32 value);
extern int32 ctc_vlan_set_receive_en(uint16 vlan_id, bool enable);
extern int32 ctc_vlan_set_replace_dscp_en(uint16 vlan_id, bool enable);
extern int32 ctc_vlan_set_tagged_port(uint16 vlan_id, uint32 gport, bool tagged);
extern int32 ctc_vlan_set_transmit_en(uint16 vlan_id, bool enable);
extern int32 ctc_vlan_update_vlan_mapping(uint32 gport, ctc_vlan_mapping_t* p_vlan_mapping);

#ifdef __cplusplus
}
#endif
#endif

redpajama_set_name: RedPajamaGithub