| /* |
| * 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 <zephyr/net/gptp.h> |
| |
| #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 */ |