/* * Copyright (c) 2017 Intel Corporation. * * SPDX-License-Identifier: Apache-2.0 */ /** * @file * @brief GPTP Media Dependent interface for full duplex and point to point * * This is not to be included by the application. */ #ifndef __GPTP_MD_H #define __GPTP_MD_H #include #ifdef __cplusplus extern "C" { #endif /** * @brief Media Dependent Sync Information. * * This structure applies for MDSyncReceive as well as MDSyncSend. */ struct gptp_md_sync_info { /* Time of the current grandmaster compared to the previous. */ struct gptp_scaled_ns last_gm_phase_change; /** Most recent preciseOriginTimestamp from the PortSyncSync. */ struct net_ptp_time precise_orig_ts; /** Most recent followupCorrectionField from the PortSyncSync. */ int64_t follow_up_correction_field; /** Most recent upstreamTxTime from the PortSyncSync. */ uint64_t upstream_tx_time; /* Frequency of the current grandmaster compared to the previous. */ double last_gm_freq_change; /** Most recent rateRatio from the PortSyncSync. */ double rate_ratio; /** PortIdentity of this port. */ struct gptp_port_identity src_port_id; /* Time Base Indicator of the current Grand Master. */ uint16_t gm_time_base_indicator; /** Current Log Sync Interval for this port. */ int8_t log_msg_interval; }; /** * @brief Initialize all Media Dependent State Machines. */ void gptp_md_init_state_machine(void); /** * @brief Run all Media Dependent State Machines. * * @param port Number of the port the State Machines needs to be run on. */ void gptp_md_state_machines(int port); #ifdef __cplusplus } #endif #endif /* __GPTP_MD_H */