openbcm

Git mirror of https://github.com/Broadcom-Network-Switching-Software/OpenBCM
git clone git://git.finwo.net/mirror/broadcom/openbcm
Log | Files | Refs | README

ptp_common.h (28751B)


      1 /*
      2  * 
      3  * This license is set out in https://raw.githubusercontent.com/Broadcom-Network-Switching-Software/OpenBCM/master/Legal/LICENSE file.
      4  * 
      5  * Copyright 2007-2019 Broadcom Inc. All rights reserved.
      6  *
      7  * File:	ptp_common.h
      8  * Purpose:	Common PTP API functions
      9  */
     10 
     11 #if defined(INCLUDE_PTP)
     12 
     13 #include <soc/defs.h>
     14 #include <soc/drv.h>
     15 
     16 #include <sal/core/dpc.h>
     17 
     18 #include <bcm/ptp.h>
     19 #include <bcm/error.h>
     20 
     21 #ifdef BCM_PTP_EXT_SERVO_SUPPORT
     22 #define IDT_BC_CLOCK
     23 #define IDT_COMPILE_MAX_NUM_STACK_INSTANCES BCM_PTP_MAX_UNICAST_MASTER_TABLE_ENTRIES 
     24 
     25 #include "cmnInitConfiguration.h"
     26 #include "cmnReferenceTrackerTypes.h"
     27 #include "mngDeviceAdaptorTS.h"
     28 #include "mngApi/mngApi.h"
     29 #include "mngUserCallbacks.h"
     30 #include "stackAdaptorApi/mngConfigApi.h"
     31 
     32 #endif /* BCM_PTP_EXT_SERVO_SUPPORT */
     33 
     34 
     35 extern int bcm_common_ptp_acceptable_master_add(int,bcm_ptp_stack_id_t,int,int,int,bcm_ptp_clock_peer_address_t *);
     36 extern int bcm_common_ptp_acceptable_master_enabled_get(int,bcm_ptp_stack_id_t,int,int,uint8 *);
     37 extern int bcm_common_ptp_acceptable_master_enabled_set(int,bcm_ptp_stack_id_t,int,int,uint8);
     38 extern int bcm_common_ptp_acceptable_master_list(int,bcm_ptp_stack_id_t,int,int,int,int *,bcm_ptp_clock_peer_address_t *);
     39 extern int bcm_common_ptp_acceptable_master_remove(int,bcm_ptp_stack_id_t,int,int,bcm_ptp_clock_peer_address_t *);
     40 extern int bcm_common_ptp_acceptable_master_table_clear(int,bcm_ptp_stack_id_t,int,int);
     41 extern int bcm_common_ptp_acceptable_master_table_size_get(int,bcm_ptp_stack_id_t,int,int,int *);
     42 extern int bcm_common_ptp_cb_register(int,bcm_ptp_cb_types_t,bcm_ptp_cb,void *);
     43 extern int bcm_common_ptp_cb_unregister(int,bcm_ptp_cb_types_t,bcm_ptp_cb);
     44 extern int bcm_common_ptp_clock_accuracy_get(int,bcm_ptp_stack_id_t,int,bcm_ptp_clock_accuracy_t *);
     45 extern int bcm_common_ptp_clock_accuracy_set(int,bcm_ptp_stack_id_t,int,bcm_ptp_clock_accuracy_t *);
     46 extern int bcm_common_ptp_clock_quality_get(int,bcm_ptp_stack_id_t,int,bcm_ptp_clock_quality_t *, uint32);
     47 extern int bcm_common_ptp_clock_quality_set(int,bcm_ptp_stack_id_t,int,bcm_ptp_clock_quality_t, uint32);
     48 extern int bcm_common_ptp_g8275p1_traceability_info_clock_class_map(int,bcm_ptp_stack_id_t,int,bcm_ptp_g8275p1_clock_traceability_info_t, uint8 *);
     49 extern int bcm_common_ptp_clock_create(int,bcm_ptp_stack_id_t,bcm_ptp_clock_info_t *);
     50 extern int bcm_common_ptp_clock_current_dataset_get(int,bcm_ptp_stack_id_t,int,bcm_ptp_current_dataset_t *);
     51 extern int bcm_common_ptp_clock_default_dataset_get(int,bcm_ptp_stack_id_t,int,bcm_ptp_default_dataset_t *);
     52 extern int bcm_common_ptp_clock_domain_get(int,bcm_ptp_stack_id_t,int,uint32 *);
     53 extern int bcm_common_ptp_clock_domain_set(int,bcm_ptp_stack_id_t,int,uint32);
     54 extern int bcm_common_ptp_clock_get(int,bcm_ptp_stack_id_t,int,bcm_ptp_clock_info_t *);
     55 extern int bcm_common_ptp_clock_parent_dataset_get(int,bcm_ptp_stack_id_t,int,bcm_ptp_parent_dataset_t *);
     56 extern int bcm_common_ptp_phase_offset_set(int,bcm_ptp_stack_id_t,int,const bcm_ptp_phase_offset_t *); 
     57 extern int bcm_common_ptp_phase_offset_get(int,bcm_ptp_stack_id_t,int,bcm_ptp_phase_offset_t *); 
     58 extern int bcm_common_ptp_clock_port_announce_receipt_timeout_get(int,bcm_ptp_stack_id_t,int,uint32,uint32 *);
     59 extern int bcm_common_ptp_clock_port_announce_receipt_timeout_set(int,bcm_ptp_stack_id_t,int,uint32,uint32);
     60 extern int bcm_common_ptp_clock_port_configure(int,bcm_ptp_stack_id_t,int,uint32,bcm_ptp_clock_port_info_t *);
     61 extern int bcm_common_ptp_clock_port_dataset_get(int,bcm_ptp_stack_id_t,int,uint32,bcm_ptp_port_dataset_t *);
     62 extern int bcm_common_ptp_clock_port_delay_mechanism_get(int,bcm_ptp_stack_id_t,int,uint32,uint32 *);
     63 extern int bcm_common_ptp_clock_port_delay_mechanism_set(int,bcm_ptp_stack_id_t,int,uint32,uint32);
     64 extern int bcm_common_ptp_clock_port_disable(int,bcm_ptp_stack_id_t,int,uint32);
     65 extern int bcm_common_ptp_clock_port_enable(int,bcm_ptp_stack_id_t,int,uint32);
     66 extern int bcm_common_ptp_clock_port_identity_get(int,bcm_ptp_stack_id_t,int,uint32,bcm_ptp_port_identity_t *);
     67 extern int bcm_common_ptp_clock_port_info_get(int,bcm_ptp_stack_id_t,int,uint32,bcm_ptp_clock_port_info_t *);
     68 extern int bcm_common_ptp_clock_port_latency_get(int,bcm_ptp_stack_id_t,int,uint32,uint32 *,uint32 *);
     69 extern int bcm_common_ptp_clock_port_latency_set(int,bcm_ptp_stack_id_t,int,uint32,uint32,uint32);
     70 extern int bcm_common_ptp_clock_port_log_announce_interval_get(int,bcm_ptp_stack_id_t,int,uint32,int *);
     71 extern int bcm_common_ptp_clock_port_log_announce_interval_set(int,bcm_ptp_stack_id_t,int,uint32,int);
     72 extern int bcm_common_ptp_clock_port_log_min_delay_req_interval_get(int,bcm_ptp_stack_id_t,int,uint32,int *);
     73 extern int bcm_common_ptp_clock_port_log_min_delay_req_interval_set(int,bcm_ptp_stack_id_t,int,uint32,int);
     74 extern int bcm_common_ptp_clock_port_log_min_pdelay_req_interval_get(int,bcm_ptp_stack_id_t,int,uint32,int *);
     75 extern int bcm_common_ptp_clock_port_log_min_pdelay_req_interval_set(int,bcm_ptp_stack_id_t,int,uint32,int);
     76 extern int bcm_common_ptp_clock_port_log_sync_interval_get(int,bcm_ptp_stack_id_t,int,uint32,int *);
     77 extern int bcm_common_ptp_clock_port_log_sync_interval_set(int,bcm_ptp_stack_id_t,int,uint32,int);
     78 extern int bcm_common_ptp_clock_port_mac_get(int,bcm_ptp_stack_id_t,int,uint32,bcm_mac_t *);
     79 extern int bcm_common_ptp_clock_port_protocol_get(int,bcm_ptp_stack_id_t,int,uint32,bcm_ptp_protocol_t *);
     80 extern int bcm_common_ptp_clock_port_type_get(int,bcm_ptp_stack_id_t,int,uint32,bcm_ptp_port_type_t *);
     81 extern int bcm_common_ptp_clock_port_version_number_get(int,bcm_ptp_stack_id_t,int,uint32,uint32 *);
     82 extern int bcm_common_ptp_clock_priority1_get(int,bcm_ptp_stack_id_t,int,uint32 *);
     83 extern int bcm_common_ptp_clock_priority1_set(int,bcm_ptp_stack_id_t,int,uint32);
     84 extern int bcm_common_ptp_clock_priority2_get(int,bcm_ptp_stack_id_t,int,uint32 *);
     85 extern int bcm_common_ptp_clock_priority2_set(int,bcm_ptp_stack_id_t,int,uint32);
     86 extern int bcm_common_ptp_clock_local_priority_get(int,bcm_ptp_stack_id_t,int,uint8 *);
     87 extern int bcm_common_ptp_clock_local_priority_set(int,bcm_ptp_stack_id_t,int,uint8);
     88 extern int bcm_common_ptp_clock_max_steps_removed_get(int,bcm_ptp_stack_id_t,int,uint8 *);
     89 extern int bcm_common_ptp_clock_max_steps_removed_set(int,bcm_ptp_stack_id_t,int,uint8);
     90 extern int bcm_common_ptp_clock_peer_age_timer_get(int,bcm_ptp_stack_id_t,int,uint8 *);
     91 extern int bcm_common_ptp_clock_peer_age_timer_set(int,bcm_ptp_stack_id_t,int,uint8);
     92 extern int bcm_common_ptp_pkt_flags_override_get(int,bcm_ptp_stack_id_t,int,uint32 *,uint32 *);
     93 extern int bcm_common_ptp_pkt_flags_override_set(int,bcm_ptp_stack_id_t,int,uint32,uint32);
     94 
     95 extern int bcm_common_ptp_clock_slaveonly_get(int,bcm_ptp_stack_id_t,int,uint32 *);
     96 extern int bcm_common_ptp_clock_slaveonly_set(int,bcm_ptp_stack_id_t,int,uint32);
     97 extern int bcm_common_ptp_clock_time_get(int,bcm_ptp_stack_id_t,int,bcm_ptp_timestamp_t *);
     98 extern int bcm_common_ptp_clock_time_properties_get(int,bcm_ptp_stack_id_t,int,bcm_ptp_time_properties_t *);
     99 extern int bcm_common_ptp_clock_time_set(int,bcm_ptp_stack_id_t,int,bcm_ptp_timestamp_t *);
    100 extern int bcm_common_ptp_clock_timescale_get(int,bcm_ptp_stack_id_t,int,bcm_ptp_timescale_t *);
    101 extern int bcm_common_ptp_clock_timescale_set(int,bcm_ptp_stack_id_t,int,bcm_ptp_timescale_t *);
    102 extern int bcm_common_ptp_clock_traceability_get(int,bcm_ptp_stack_id_t,int,bcm_ptp_trace_t *);
    103 extern int bcm_common_ptp_clock_traceability_set(int,bcm_ptp_stack_id_t,int,bcm_ptp_trace_t *);
    104 extern int bcm_common_ptp_clock_user_description_set(int,bcm_ptp_stack_id_t,int,uint8 *);
    105 extern int bcm_common_ptp_clock_utc_get(int,bcm_ptp_stack_id_t,int,bcm_ptp_utc_t *);
    106 extern int bcm_common_ptp_clock_utc_set(int,bcm_ptp_stack_id_t,int,bcm_ptp_utc_t *);
    107 extern int bcm_common_ptp_ctdev_alarm_callback_register(int,bcm_ptp_stack_id_t,int,bcm_ptp_ctdev_alarm_cb);
    108 extern int bcm_common_ptp_ctdev_alarm_callback_unregister(int,bcm_ptp_stack_id_t,int);
    109 extern int bcm_common_ptp_ctdev_alpha_get(int,bcm_ptp_stack_id_t,int,uint16 *,uint16 *);
    110 extern int bcm_common_ptp_ctdev_alpha_set(int,bcm_ptp_stack_id_t,int,uint16,uint16);
    111 extern int bcm_common_ptp_ctdev_enable_get(int,bcm_ptp_stack_id_t,int,int *,uint32 *);
    112 extern int bcm_common_ptp_ctdev_enable_set(int,bcm_ptp_stack_id_t,int,int,uint32);
    113 extern int bcm_common_ptp_ctdev_verbose_get(int,bcm_ptp_stack_id_t,int,int *);
    114 extern int bcm_common_ptp_ctdev_verbose_set(int,bcm_ptp_stack_id_t,int,int);
    115 extern int bcm_common_ptp_detach(int);
    116 extern int bcm_common_ptp_foreign_master_dataset_get(int,bcm_ptp_stack_id_t,int,int,bcm_ptp_foreign_master_dataset_t *);
    117 extern int bcm_common_ptp_lock(int);
    118 extern int bcm_common_ptp_unlock(int);
    119 extern int bcm_common_ptp_init(int);
    120 extern int bcm_common_ptp_input_channel_precedence_mode_set(int,bcm_ptp_stack_id_t,int,int);
    121 extern int bcm_common_ptp_input_channel_switching_mode_set(int,bcm_ptp_stack_id_t,int,int);
    122 extern int bcm_common_ptp_input_channels_get(int,bcm_ptp_stack_id_t,int,int *,bcm_ptp_channel_t *);
    123 extern int bcm_common_ptp_input_channels_set(int,bcm_ptp_stack_id_t,int,int,bcm_ptp_channel_t *);
    124 extern int bcm_common_ptp_modular_enable_get(int,bcm_ptp_stack_id_t,int,int *,uint32 *);
    125 extern int bcm_common_ptp_modular_enable_set(int,bcm_ptp_stack_id_t,int,int,uint32);
    126 extern int bcm_common_ptp_modular_phyts_get(int,bcm_ptp_stack_id_t,int,int *,int *);
    127 extern int bcm_common_ptp_modular_phyts_set(int,bcm_ptp_stack_id_t,int,int,int);
    128 extern int bcm_common_ptp_modular_portbitmap_get(int,bcm_ptp_stack_id_t,int,bcm_pbmp_t *);
    129 extern int bcm_common_ptp_modular_portbitmap_set(int,bcm_ptp_stack_id_t,int,bcm_pbmp_t);
    130 extern int bcm_common_ptp_modular_verbose_get(int,bcm_ptp_stack_id_t,int,int *);
    131 extern int bcm_common_ptp_modular_verbose_set(int,bcm_ptp_stack_id_t,int,int);
    132 extern int bcm_common_ptp_packet_counters_get(int,bcm_ptp_stack_id_t,int,bcm_ptp_packet_counters_t *);
    133 extern int bcm_common_ptp_packet_counters_clear(int,bcm_ptp_stack_id_t,int,int,uint32);
    134 extern int bcm_common_ptp_peer_dataset_get(int, bcm_ptp_stack_id_t,int,int,int,bcm_ptp_peer_entry_t *,int *);
    135 extern int bcm_common_ptp_primary_domain_get(int,bcm_ptp_stack_id_t,int,int *);
    136 extern int bcm_common_ptp_primary_domain_set(int,bcm_ptp_stack_id_t,int,int);
    137 extern int bcm_common_ptp_servo_configuration_get(int,bcm_ptp_stack_id_t,int,bcm_ptp_servo_config_t *);
    138 extern int bcm_common_ptp_servo_configuration_set(int,bcm_ptp_stack_id_t,int,bcm_ptp_servo_config_t *);
    139 extern int bcm_common_ptp_servo_status_get(int,bcm_ptp_stack_id_t,int,bcm_ptp_servo_status_t *);
    140 extern int bcm_common_ptp_servo_threshold_get(int,bcm_ptp_stack_id_t,int,bcm_ptp_servo_threshold_t *);
    141 extern int bcm_common_ptp_servo_threshold_set(int,bcm_ptp_stack_id_t,int,bcm_ptp_servo_threshold_t *);
    142 extern int bcm_common_ptp_signal_output_get(int,bcm_ptp_stack_id_t,int,int *,bcm_ptp_signal_output_t *);
    143 extern int bcm_common_ptp_signal_output_remove(int,bcm_ptp_stack_id_t,int,int);
    144 extern int bcm_common_ptp_signal_output_set(int,bcm_ptp_stack_id_t,int,int *,bcm_ptp_signal_output_t *);
    145 extern int bcm_common_ptp_signaled_unicast_master_add(int,bcm_ptp_stack_id_t,int,int,bcm_ptp_clock_unicast_master_t *,uint32);
    146 extern int bcm_common_ptp_signaled_unicast_master_remove(int,bcm_ptp_stack_id_t,int,int,bcm_ptp_clock_peer_address_t *);
    147 extern int bcm_common_ptp_signaled_unicast_slave_list(int,bcm_ptp_stack_id_t,int,int,int,int *,bcm_ptp_clock_peer_t *);
    148 extern int bcm_common_ptp_signaled_unicast_slave_table_clear(int,bcm_ptp_stack_id_t,int,int,int);
    149 extern int bcm_common_ptp_stack_create(int,bcm_ptp_stack_info_t *);
    150 extern int bcm_common_ptp_stack_destroy(int,bcm_ptp_stack_id_t);
    151 extern int bcm_common_ptp_stack_get(int,bcm_ptp_stack_id_t, bcm_ptp_stack_info_t *);
    152 extern int bcm_common_ptp_stack_get_all(int,int,bcm_ptp_stack_info_t *,int *);
    153 extern int bcm_common_ptp_static_unicast_master_add(int,bcm_ptp_stack_id_t,int,int,bcm_ptp_clock_unicast_master_t *);
    154 extern int bcm_common_ptp_static_unicast_master_list(int,bcm_ptp_stack_id_t,int,int,int,int *,bcm_ptp_clock_peer_address_t *);
    155 extern int bcm_common_ptp_static_unicast_master_remove(int,bcm_ptp_stack_id_t,int,int,bcm_ptp_clock_peer_address_t *);
    156 extern int bcm_common_ptp_static_unicast_master_table_clear(int,bcm_ptp_stack_id_t,int,int);
    157 extern int bcm_common_ptp_static_unicast_master_table_size_get(int,bcm_ptp_stack_id_t,int,int,int *);
    158 extern int bcm_common_ptp_static_unicast_slave_add(int,bcm_ptp_stack_id_t,int,int,bcm_ptp_clock_peer_t *);
    159 extern int bcm_common_ptp_static_unicast_slave_list(int,bcm_ptp_stack_id_t,int,int,int,int *,bcm_ptp_clock_peer_t *);
    160 extern int bcm_common_ptp_static_unicast_slave_remove(int,bcm_ptp_stack_id_t,int,int,bcm_ptp_clock_peer_t *);
    161 extern int bcm_common_ptp_static_unicast_slave_table_clear(int,bcm_ptp_stack_id_t,int,int);
    162 extern int bcm_common_ptp_sync_phy(int,bcm_ptp_stack_id_t,int,bcm_ptp_sync_phy_input_t);
    163 extern int bcm_common_ptp_bs_time_info_get(int,bcm_ptp_stack_id_t,int,bcm_ptp_bs_time_info_t *);
    164 extern int bcm_common_ptp_telecom_g8265_init(int,bcm_ptp_stack_id_t,int);
    165 extern int bcm_common_ptp_telecom_g8265_network_option_get(int,bcm_ptp_stack_id_t,int,bcm_ptp_telecom_g8265_network_option_t *);
    166 extern int bcm_common_ptp_telecom_g8265_network_option_set(int,bcm_ptp_stack_id_t,int,bcm_ptp_telecom_g8265_network_option_t);
    167 extern int bcm_common_ptp_telecom_g8265_packet_master_add(int,bcm_ptp_stack_id_t,int,int,bcm_ptp_clock_port_address_t *);
    168 extern int bcm_common_ptp_telecom_g8265_packet_master_best_get(int,bcm_ptp_stack_id_t,int,bcm_ptp_telecom_g8265_pktmaster_t *);
    169 extern int bcm_common_ptp_telecom_g8265_packet_master_get(int,bcm_ptp_stack_id_t,int,bcm_ptp_clock_port_address_t *,bcm_ptp_telecom_g8265_pktmaster_t *);
    170 extern int bcm_common_ptp_telecom_g8265_packet_master_list(int,bcm_ptp_stack_id_t,int,int,int *,int *,bcm_ptp_telecom_g8265_pktmaster_t *);
    171 extern int bcm_common_ptp_telecom_g8265_packet_master_lockout_set(int,bcm_ptp_stack_id_t,int,uint8,bcm_ptp_clock_port_address_t *);
    172 extern int bcm_common_ptp_telecom_g8265_packet_master_non_reversion_set(int,bcm_ptp_stack_id_t,int,uint8,bcm_ptp_clock_port_address_t *);
    173 extern int bcm_common_ptp_telecom_g8265_packet_master_priority_override(int,bcm_ptp_stack_id_t,int,uint8,bcm_ptp_clock_port_address_t *);
    174 extern int bcm_common_ptp_telecom_g8265_packet_master_priority_set(int,bcm_ptp_stack_id_t,int,uint16,bcm_ptp_clock_port_address_t *);
    175 extern int bcm_common_ptp_telecom_g8265_packet_master_remove(int,bcm_ptp_stack_id_t,int,int,bcm_ptp_clock_port_address_t *);
    176 extern int bcm_common_ptp_telecom_g8265_packet_master_wait_duration_set(int,bcm_ptp_stack_id_t,int,uint64,bcm_ptp_clock_port_address_t *);
    177 extern int bcm_common_ptp_telecom_g8265_pktstats_thresholds_get(int,bcm_ptp_stack_id_t,int,bcm_ptp_telecom_g8265_pktstats_t *);
    178 extern int bcm_common_ptp_telecom_g8265_pktstats_thresholds_set(int,bcm_ptp_stack_id_t,int,bcm_ptp_telecom_g8265_pktstats_t);
    179 extern int bcm_common_ptp_telecom_g8265_quality_level_set(int,bcm_ptp_stack_id_t,int,bcm_ptp_telecom_g8265_quality_level_t);
    180 extern int bcm_common_ptp_telecom_g8265_receipt_timeout_get(int,bcm_ptp_stack_id_t,int,bcm_ptp_message_type_t,uint32 *);
    181 extern int bcm_common_ptp_telecom_g8265_receipt_timeout_set(int,bcm_ptp_stack_id_t,int,bcm_ptp_message_type_t,uint32);
    182 extern int bcm_common_ptp_telecom_g8265_shutdown(int);
    183 extern int bcm_common_ptp_time_format_set(int,bcm_ptp_stack_id_t,bcm_ptp_time_type_t);
    184 extern int bcm_common_ptp_timesource_input_status_get(int,bcm_ptp_stack_id_t,int,bcm_ptp_timesource_status_t *);
    185 extern int bcm_common_ptp_tod_input_sources_get(int,bcm_ptp_stack_id_t,int,int *,bcm_ptp_tod_input_t *);
    186 extern int bcm_common_ptp_tod_input_sources_set(int,bcm_ptp_stack_id_t,int,int,bcm_ptp_tod_input_t *);
    187 extern int bcm_common_ptp_tod_output_get(int,bcm_ptp_stack_id_t,int,int *,bcm_ptp_tod_output_t *);
    188 extern int bcm_common_ptp_tod_output_remove(int,bcm_ptp_stack_id_t,int,int);
    189 extern int bcm_common_ptp_tod_output_set(int,bcm_ptp_stack_id_t,int,int *,bcm_ptp_tod_output_t *);
    190 extern int bcm_common_ptp_synce_output_set(int,bcm_ptp_stack_id_t,int,int,int);
    191 extern int bcm_common_ptp_synce_output_get(int,bcm_ptp_stack_id_t,int,int *);
    192 extern int bcm_common_ptp_transparent_clock_default_dataset_get(int,bcm_ptp_stack_id_t,int,bcm_ptp_transparent_clock_default_dataset_t *);
    193 extern int bcm_common_ptp_transparent_clock_port_dataset_get(int,bcm_ptp_stack_id_t,int,uint16,bcm_ptp_transparent_clock_port_dataset_t *);
    194 extern int bcm_common_ptp_unicast_request_duration_get(int,bcm_ptp_stack_id_t,int,int,uint32 *);
    195 extern int bcm_common_ptp_unicast_request_duration_max_get(int,bcm_ptp_stack_id_t,int,int,uint32 *);
    196 extern int bcm_common_ptp_unicast_request_duration_max_set(int,bcm_ptp_stack_id_t,int,int,uint32);
    197 extern int bcm_common_ptp_unicast_request_duration_min_get(int,bcm_ptp_stack_id_t,int,int,uint32 *);
    198 extern int bcm_common_ptp_unicast_request_duration_min_set(int,bcm_ptp_stack_id_t,int,int,uint32);
    199 extern int bcm_common_ptp_unicast_request_duration_set(int,bcm_ptp_stack_id_t,int,int,uint32);
    200 extern int bcm_common_ptp_clock_port_drop_counters_enable_set( int ,bcm_ptp_stack_id_t ,int ,uint32 ,int );
    201 extern int bcm_common_ptp_clock_port_drop_counters_get(int ,bcm_ptp_stack_id_t ,int ,uint32 ,bcm_ptp_clock_port_packet_drop_counters_t *);
    202 extern int bcm_common_clock_bmca_override_set(int unit, bcm_ptp_stack_id_t ptp_id, int clock_num, uint32 flags, uint32 enable_mask);
    203 extern int bcm_common_clock_bmca_override_get(int unit, bcm_ptp_stack_id_t ptp_id, int clock_num, uint32 *flags, uint32 *enable_mask);
    204 extern int bcm_common_ptp_clock_apts_enable_get(int unit, bcm_ptp_stack_id_t ptp_id, int clock_num, int *enable);
    205 extern int bcm_common_ptp_clock_apts_enable_set(int unit, bcm_ptp_stack_id_t ptp_id, int clock_num, int enable);
    206 extern int bcm_common_ptp_clock_apts_source_prio_get(int unit, bcm_ptp_stack_id_t ptp_id, int clock_num, int *num_sources, bcm_ptp_clock_apts_source_t *priority_list);
    207 extern int bcm_common_ptp_clock_apts_source_prio_set(int unit, bcm_ptp_stack_id_t ptp_id, int clock_num, int num_sources, bcm_ptp_clock_apts_source_t *priority_list);
    208 extern int bcm_common_ptp_clock_apts_mode_get(int unit, bcm_ptp_stack_id_t ptp_id, int clock_num, bcm_ptp_clock_apts_mode_t *current_mode);
    209 extern int bcm_common_ptp_clock_apts_source_enable_get(int unit, bcm_ptp_stack_id_t ptp_id, int clock_num, bcm_ptp_clock_apts_source_t source, int *enable);
    210 extern int bcm_common_ptp_clock_apts_source_enable_set(int unit, bcm_ptp_stack_id_t ptp_id, int clock_num, bcm_ptp_clock_apts_source_t source, int enable);
    211 
    212 extern int bcm_common_esmc_tx(int, int, bcm_pbmp_t, bcm_esmc_pdu_data_t *);
    213 #if defined (BCM_QAX_SUPPORT) || defined (BCM_QUX_SUPPORT)
    214 extern void bcm_esmc_pdu_tx_dnx(int, uint8 *, int);
    215 #endif
    216 extern int bcm_common_esmc_rx_callback_register(int, int, bcm_esmc_rx_cb);
    217 extern int bcm_common_esmc_rx_callback_unregister(int, int);
    218 extern int bcm_common_esmc_tunnel_get(int, int, int *);
    219 extern int bcm_common_esmc_tunnel_set(int, int, int);
    220 extern int bcm_common_esmc_g781_option_get(int, int, bcm_esmc_network_option_t *);
    221 extern int bcm_common_esmc_g781_option_set(int, int, bcm_esmc_network_option_t);
    222 extern int bcm_common_esmc_QL_SSM_map(int, bcm_esmc_network_option_t, bcm_esmc_quality_level_t, uint8 *);
    223 extern int bcm_common_esmc_SSM_QL_map(int, bcm_esmc_network_option_t, uint8, bcm_esmc_quality_level_t *);
    224 
    225 extern int bcm_common_tdpll_dpll_bindings_get(int, int, int, bcm_tdpll_dpll_bindings_t *);
    226 extern int bcm_common_tdpll_dpll_bindings_set(int, int, int, bcm_tdpll_dpll_bindings_t *);
    227 extern int bcm_common_tdpll_dpll_reference_get(int, int, int, int *, int *);
    228 extern int bcm_common_tdpll_dpll_bandwidth_get(int, int, int, bcm_tdpll_dpll_bandwidth_t *);
    229 extern int bcm_common_tdpll_dpll_bandwidth_set(int, int, int, bcm_tdpll_dpll_bandwidth_t *);
    230 extern int bcm_common_tdpll_dpll_phase_control_get(int, int, int, bcm_tdpll_dpll_phase_control_t *);
    231 extern int bcm_common_tdpll_dpll_phase_control_set(int, int, int, bcm_tdpll_dpll_phase_control_t *);
    232 
    233 extern int bcm_common_tdpll_input_clock_control(int, int, int);
    234 extern int bcm_common_tdpll_input_clock_mac_get(int, int, int, bcm_mac_t *);
    235 extern int bcm_common_tdpll_input_clock_mac_set(int, int, int, bcm_mac_t *);
    236 extern int bcm_common_tdpll_input_clock_frequency_error_get(int, int, int, int *);
    237 extern int bcm_common_tdpll_input_clock_threshold_state_get(int, int, int, bcm_tdpll_input_clock_monitor_type_t, int *);
    238 extern int bcm_common_tdpll_input_clock_enable_get(int, int, int, int *);
    239 extern int bcm_common_tdpll_input_clock_enable_set(int, int, int, int);
    240 extern int bcm_common_tdpll_input_clock_l1mux_get(int, int, int, bcm_tdpll_input_clock_l1mux_t *);
    241 extern int bcm_common_tdpll_input_clock_l1mux_set(int, int, int, bcm_tdpll_input_clock_l1mux_t *);
    242 extern int bcm_common_tdpll_input_clock_valid_get(int, int, int, int *);
    243 extern int bcm_common_tdpll_input_clock_valid_set(int, int, int, int);
    244 extern int bcm_common_tdpll_input_clock_frequency_get(int, int, int, uint32 *, uint32 *);
    245 extern int bcm_common_tdpll_input_clock_frequency_set(int, int, int, uint32, uint32);
    246 extern int bcm_common_tdpll_input_clock_ql_get(int, int, int, bcm_esmc_quality_level_t *);
    247 extern int bcm_common_tdpll_input_clock_ql_set(int, int, int, bcm_esmc_quality_level_t);
    248 extern int bcm_common_tdpll_input_clock_priority_get(int, int, int, int *);
    249 extern int bcm_common_tdpll_input_clock_priority_set(int, int, int, int);
    250 extern int bcm_common_tdpll_input_clock_lockout_get(int, int, int, int *);
    251 extern int bcm_common_tdpll_input_clock_lockout_set(int, int, int, int);
    252 extern int bcm_common_tdpll_input_clock_monitor_interval_get(int, int, uint32 *);
    253 extern int bcm_common_tdpll_input_clock_monitor_interval_set(int, int, uint32);
    254 extern int bcm_common_tdpll_input_clock_monitor_threshold_get(int, int, bcm_tdpll_input_clock_monitor_type_t, uint32 *);
    255 extern int bcm_common_tdpll_input_clock_monitor_threshold_set(int, int, bcm_tdpll_input_clock_monitor_type_t, uint32);
    256 extern int bcm_common_tdpll_input_clock_ql_enabled_get(int, int, int, int *);
    257 extern int bcm_common_tdpll_input_clock_ql_enabled_set(int, int, int, int);
    258 extern int bcm_common_tdpll_input_clock_revertive_get(int, int, int, int *);
    259 extern int bcm_common_tdpll_input_clock_revertive_set(int, int, int, int);
    260 extern int bcm_common_tdpll_input_clock_best_get(int, int, int, int *);
    261 extern int bcm_common_tdpll_input_clock_monitor_callback_register(int, int, bcm_tdpll_input_clock_monitor_cb);
    262 extern int bcm_common_tdpll_input_clock_monitor_callback_unregister(int, int);
    263 extern int bcm_common_tdpll_input_clock_selector_callback_register(int, int, bcm_tdpll_input_clock_selector_cb);
    264 extern int bcm_common_tdpll_input_clock_selector_callback_unregister(int, int);
    265 extern int bcm_common_tdpll_input_clock_ql_change_callback_register(int, int, bcm_tdpll_input_clock_ql_change_cb);
    266 extern int bcm_common_tdpll_input_clock_ql_change_callback_unregister(int, int);
    267 
    268 extern int bcm_common_tdpll_input_clock_callback_register(int, int, bcm_tdpll_callback_type_t, bcm_tdpll_input_clock_cb);
    269 extern int bcm_common_tdpll_input_clock_callback_unregister(int, int, bcm_tdpll_callback_type_t);
    270 
    271 extern int bcm_common_tdpll_output_clock_enable_get(int, int, int, int *);
    272 extern int bcm_common_tdpll_output_clock_enable_set(int, int, int, int);
    273 extern int bcm_common_tdpll_output_clock_synth_frequency_get(int, int, int, uint32 *, uint32 *);
    274 extern int bcm_common_tdpll_output_clock_synth_frequency_set(int, int, int, uint32, uint32);
    275 extern int bcm_common_tdpll_output_clock_deriv_frequency_get(int, int, int, uint32 *);
    276 extern int bcm_common_tdpll_output_clock_deriv_frequency_set(int, int, int, uint32);
    277 extern int bcm_common_tdpll_output_clock_holdover_data_get(int, int, int, bcm_tdpll_holdover_data_t *);
    278 extern int bcm_common_tdpll_output_clock_holdover_frequency_set(int, int, int, bcm_tdpll_frequency_correction_t);
    279 extern int bcm_common_tdpll_output_clock_holdover_mode_get(int, int, int, bcm_tdpll_holdover_mode_t *);
    280 extern int bcm_common_tdpll_output_clock_holdover_mode_set(int, int, int, bcm_tdpll_holdover_mode_t);
    281 extern int bcm_common_tdpll_output_clock_holdover_reset(int, int, int);
    282 
    283 extern int bcm_common_tdpll_esmc_rx_state_machine(int, int, int, bcm_esmc_pdu_data_t *);
    284 extern int bcm_common_tdpll_esmc_ql_get(int, int, int, bcm_esmc_quality_level_t *);
    285 extern int bcm_common_tdpll_esmc_ql_set(int, int, int, bcm_esmc_quality_level_t);
    286 extern int bcm_common_tdpll_esmc_holdover_ql_get(int, int, int, bcm_esmc_quality_level_t *);
    287 extern int bcm_common_tdpll_esmc_holdover_ql_set(int, int, int, bcm_esmc_quality_level_t);
    288 extern int bcm_common_tdpll_esmc_mac_get(int, int, int, bcm_mac_t *);
    289 extern int bcm_common_tdpll_esmc_mac_set(int, int, int, bcm_mac_t *);
    290 extern int bcm_common_tdpll_esmc_rx_enable_get(int, int, int *);
    291 extern int bcm_common_tdpll_esmc_rx_enable_set(int, int, int);
    292 extern int bcm_common_tdpll_esmc_tx_enable_get(int, int, int, int *);
    293 extern int bcm_common_tdpll_esmc_tx_enable_set(int, int, int, int);
    294 extern int bcm_common_tdpll_esmc_rx_portbitmap_get(int, int, int, bcm_pbmp_t *);
    295 extern int bcm_common_tdpll_esmc_rx_portbitmap_set(int, int, int, bcm_pbmp_t);
    296 extern int bcm_common_tdpll_esmc_tx_portbitmap_get(int, int, int, bcm_pbmp_t *);
    297 extern int bcm_common_tdpll_esmc_tx_portbitmap_set(int, int, int, bcm_pbmp_t);
    298 extern int bcm_common_tdpll_esmc_essm_code_set(int ,int ,int , bcm_esmc_essm_code_t);
    299 extern int bcm_common_tdpll_esmc_essm_code_get(int ,int ,int , bcm_esmc_essm_code_t*);
    300 extern int bcm_common_ptp_external_phy_synchronize(int ,int ,int , bcm_ptp_external_phy_config_t);
    301 extern int bcm_common_tdpll_event_callback_register(int ,int , bcm_tdpll_event_cb_f );
    302 extern int bcm_common_tdpll_event_callback_unregister(int ,int);
    303 
    304 
    305 #define PTP_SERVO_IS_BCM(unit, ptp_id, clock_num) \
    306 	(_bcm_common_ptp_unit_array[unit].stack_array[ptp_id].clock_array[clock_num].servo_type == bcmPTPServoTypeBCM)
    307 
    308 #define PTP_SERVO_IS_EXT(unit, ptp_id, clock_num) \
    309 	(_bcm_common_ptp_unit_array[unit].stack_array[ptp_id].clock_array[clock_num].servo_type == bcmPTPServoTypeExt)
    310 
    311 #define PTP_CLOCK_IS_G8265P1_PROF(clock_info) \
    312 	( SHR_BITGET(&(clock_info->flags), PTP_CLOCK_FLAGS_TELECOM_PROFILE_BIT) && \
    313 	(((clock_info->flags >> 8)&0x0F) == e_PtpProfType_8265p1) )
    314 
    315 #define PTP_CLOCK_IS_G8275P1_PROF(clock_info) \
    316 	( ((clock_info->flags >> 8)&0x0F) == e_PtpProfType_8275p1 )
    317 
    318 #define PTP_CLOCK_IS_G8275P2_PROF(clock_info) \
    319 	( ((clock_info->flags >> 8)&0x0F) == e_PtpProfType_8275p2 )
    320 
    321 #ifdef BCM_PTP_EXT_SERVO_SUPPORT
    322 
    323 extern void mngPtpLoggerStart( T_srvMessageLoggingConfig *logConfig );
    324 extern void mngPtpSessionStart( T_cmnConfigParameterSet *configParam, T_userCallbacks *);
    325 extern void mngPtpSessionStop( void );
    326 
    327 extern void    format_ipaddr(char buf[IPADDR_STR_LEN], ip_addr_t ipaddr);
    328 
    329 int _bcm_ptp_servo_init(int, bcm_ptp_stack_id_t, int, bcm_ptp_osc_type_t);
    330 int _bcm_ptp_servo_deinit(int, bcm_ptp_stack_id_t, int);
    331 
    332 int _bcm_ptp_servo_master_add(int, bcm_ptp_stack_id_t, int, uint16, bcm_ptp_port_identity_t *, 
    333         bcm_ptp_clock_port_address_t *, uint8, unsigned char);
    334 int _bcm_ptp_servo_master_remove(int ,bcm_ptp_stack_id_t ,int , uint16, uint8, bcm_ptp_port_identity_t * ,bcm_ptp_port_identity_t * , bcm_ptp_clock_port_address_t *);
    335 int _bcm_ptp_servo_master_replace(int , bcm_ptp_stack_id_t, int, uint16, bcm_ptp_port_identity_t *, bcm_ptp_port_identity_t *, uint8);
    336 
    337 int _bcm_ptp_servo_best_master_update(int , bcm_ptp_stack_id_t , int , bcm_ptp_port_identity_t * );
    338 int _bcm_ptp_servo_pdv_threshold_set(int , bcm_ptp_stack_id_t ,  int , bcm_ptp_telecom_g8265_pktstats_t);
    339 int _bcm_ptp_servo_master_lockout_set(int , bcm_ptp_stack_id_t , int , int , bcm_ptp_port_identity_t *);
    340 
    341 int _bcm_ptp_servo_debug_level_set(int ,bcm_ptp_stack_id_t ,int ,uint16 ,uint32 );
    342 int _bcm_ptp_servo_sys_log_set(int unit, bcm_ptp_stack_id_t , int , uint32 , bcm_ip_t , uint16 );
    343 
    344 #ifdef BCM_PTP_EXT_SERVO_ABS_TS_SUPPORT
    345 /* absolute timestamps */
    346 int _bcm_ptp_servo_AddFullTimestamps(int , bcm_ptp_stack_id_t , int , bcm_ptp_port_identity_t *, int, uint8 *, _bcm_ptp_ts_type_t, uint32);
    347 #else
    348 /* timestamp differences */
    349 int _bcm_ptp_servo_AddTimestampDiffs(int , bcm_ptp_stack_id_t , int , bcm_ptp_port_identity_t *, int, bcm_ptp_timestamp_t, uint8* , _bcm_ptp_ts_type_t , uint32 );
    350 #endif/* BCM_PTP_EXT_SERVO_ABS_TS_SUPPORT */
    351 
    352 int _bcm_ptp_ext_servo_master_table_entry_add(int, bcm_ptp_stack_id_t , int, bcm_ptp_port_identity_t *, bcm_ptp_clock_port_address_t *, uint8, int *);
    353 int _bcm_ptp_ext_servo_master_table_entry_delete( int unit, bcm_ptp_stack_id_t, int, bcm_ptp_port_identity_t *, bcm_ptp_clock_port_address_t *, uint8, int * ); 
    354 
    355 #endif /* BCM_PTP_EXT_SERVO_SUPPORT */
    356 
    357 #endif	/* defined(INCLUDE_PTP) */
    358