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