int bcm_tunnel_config_get(int unit, bcm_tunnel_config_t *tconfig);
int bcm_tunnel_config_set(int unit, bcm_tunnel_config_t *tconfig);
void bcm_tunnel_config_t_init(bcm_tunnel_config_t *tconfig);
int bcm_tunnel_dscp_map_create(int unit, uint32 flags, int *dscp_map_id);
int bcm_tunnel_dscp_map_destroy(int unit, int dscp_map_id);
int bcm_tunnel_dscp_map_get(int unit, int dscp_map_id, bcm_tunnel_dscp_map_t *dscp_map);
int bcm_tunnel_dscp_map_port_get(int unit, bcm_port_t port, bcm_tunnel_dscp_map_t *dscp_map);
int bcm_tunnel_dscp_map_port_set(int unit, bcm_port_t port, bcm_tunnel_dscp_map_t *dscp_map);
int bcm_tunnel_dscp_map_set(int unit, int dscp_map_id, bcm_tunnel_dscp_map_t *dscp_map);
void bcm_tunnel_dscp_map_t_init(bcm_tunnel_dscp_map_t *dscp_info);
int bcm_tunnel_initiator_clear(int unit, bcm_l3_intf_t *intf);
int bcm_tunnel_initiator_create(int unit, bcm_l3_intf_t *intf, bcm_tunnel_initiator_t *tunnel);
int bcm_tunnel_initiator_destroy(int unit, bcm_gport_t tunnel_id);
int bcm_tunnel_initiator_flexctr_object_get(int unit, bcm_if_t intf, uint32 *value);
int bcm_tunnel_initiator_get(int unit, bcm_l3_intf_t *intf, bcm_tunnel_initiator_t *tunnel);
int bcm_tunnel_initiator_set(int unit, bcm_l3_intf_t *intf, bcm_tunnel_initiator_t *tunnel);
int bcm_tunnel_initiator_stat_attach(int unit, bcm_if_t intf_id, uint32 stat_counter_id);
int bcm_tunnel_initiator_stat_detach(int unit, bcm_if_t intf_id);
int bcm_tunnel_initiator_stat_id_get(int unit, bcm_if_t intf_id, uint32 *stat_counter_id);
void bcm_tunnel_initiator_t_init(bcm_tunnel_initiator_t *tunnel_init);
int bcm_tunnel_initiator_traverse(int unit, bcm_tunnel_initiator_traverse_cb cb, void *user_data);
int bcm_tunnel_terminator_add(int unit, bcm_tunnel_terminator_t *info);
void bcm_tunnel_terminator_config_action_t_init(bcm_tunnel_terminator_config_action_t *config_action);
int bcm_tunnel_terminator_config_add(int unit, uint32 flags, bcm_tunnel_terminator_config_key_t *config_key, bcm_tunnel_terminator_config_action_t *config_action);
int bcm_tunnel_terminator_config_delete(int unit, bcm_tunnel_terminator_config_key_t *config_key);
int bcm_tunnel_terminator_config_get(int unit, bcm_tunnel_terminator_config_key_t *config_key, bcm_tunnel_terminator_config_action_t *config_action);
void bcm_tunnel_terminator_config_key_t_init(bcm_tunnel_terminator_config_key_t *config_key);
int bcm_tunnel_terminator_config_traverse(int unit, bcm_tunnel_terminator_config_traverse_info_t additional_info, bcm_tunnel_terminator_config_traverse_cb cb, void *user_data);
int bcm_tunnel_terminator_create(int unit, bcm_tunnel_terminator_t *info);
int bcm_tunnel_terminator_delete(int unit, bcm_tunnel_terminator_t *info);
int bcm_tunnel_terminator_flexctr_object_get(int unit, bcm_tunnel_terminator_t *terminator, uint32 *value);
int bcm_tunnel_terminator_flexctr_object_set(int unit, bcm_tunnel_terminator_t *terminator, uint32 value);
int bcm_tunnel_terminator_get(int unit, bcm_tunnel_terminator_t *info);
int bcm_tunnel_terminator_stat_attach(int unit, bcm_tunnel_terminator_t *terminator, uint32 stat_counter_id);
int bcm_tunnel_terminator_stat_detach(int unit, bcm_tunnel_terminator_t *terminator);
int bcm_tunnel_terminator_stat_id_get(int unit, bcm_tunnel_terminator_t *terminator, uint32 *stat_counter_id);
void bcm_tunnel_terminator_t_init(bcm_tunnel_terminator_t *tunnel_term);
int bcm_tunnel_terminator_traverse(int unit, bcm_tunnel_terminator_traverse_cb cb, void *user_data);
int bcm_tunnel_terminator_update(int unit, bcm_tunnel_terminator_t *info);
int bcm_tunnel_terminator_vlan_get(int unit, bcm_gport_t tunnel, bcm_vlan_vector_t *vlan_vec);
int bcm_tunnel_terminator_vlan_set(int unit, bcm_gport_t tunnel, bcm_vlan_vector_t vlan_vec);