statime/observability/
port.rs1use crate::datastructures::common::{PortIdentity, TimeInterval};
2
3#[derive(Copy, Clone, Debug, Eq, PartialEq)]
5#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
6#[repr(u8)]
7#[allow(missing_docs)]
8pub enum PortState {
9 Initializing = 1,
10 Faulty = 2,
11 Disabled = 3,
12 Listening = 4,
13 PreMaster = 5,
14 Master = 6,
15 Passive = 7,
16 Uncalibrated = 8,
17 Slave = 9,
18}
19
20#[derive(Copy, Clone, Debug, Eq, PartialEq)]
21#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
22#[repr(u8)]
23#[allow(missing_docs)]
24pub enum DelayMechanism {
25 E2E {
26 log_min_delay_req_interval: i8,
28 } = 1,
29 P2P {
30 log_min_p_delay_req_interval: i8,
32 mean_link_delay: TimeInterval,
34 } = 2,
35 NoMechanism = 0xfe,
36 CommonP2P {
37 mean_link_delay: TimeInterval,
39 } = 3,
40 Special = 4,
41}
42
43#[derive(Copy, Clone, Debug, Eq, PartialEq)]
50#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
51pub struct PortDS {
52 pub port_identity: PortIdentity,
54 pub port_state: PortState,
56 pub log_announce_interval: i8,
58 pub announce_receipt_timeout: u8,
60 pub log_sync_interval: i8,
62 pub delay_mechanism: DelayMechanism,
64 pub version_number: u8,
66 pub minor_version_number: u8,
68 pub delay_asymmetry: TimeInterval,
70 pub master_only: bool,
72}