use crate::values::*;
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum HwTsRxFilter {
Any,
None,
Ntp,
Ptp,
All,
}
#[derive(Debug, Clone, PartialEq)]
pub struct HwTimestampConfig {
pub interface: String,
pub minpoll: PollInterval,
pub maxpoll: PollInterval,
pub minsamples: u32,
pub maxsamples: u32,
pub nocrossts: bool,
pub rxfilter: HwTsRxFilter,
pub precision: f64,
pub tx_comp: f64,
pub rx_comp: f64,
}
impl Default for HwTimestampConfig {
fn default() -> Self {
Self {
interface: String::new(),
minpoll: PollInterval::new_unchecked(0),
maxpoll: PollInterval::new_unchecked(1),
minsamples: 2, maxsamples: 16, nocrossts: false,
rxfilter: HwTsRxFilter::Any, precision: 100e-9,
tx_comp: 0.0, rx_comp: 0.0,
}
}
}
#[derive(Debug, Clone, PartialEq)]
pub struct HwTsTimeoutConfig { pub timeout: f64 }
#[derive(Debug, Clone, PartialEq)]
pub struct MaxTxBuffersConfig { pub buffers: TxBuffers }
#[derive(Debug, Clone, PartialEq)]
pub struct PtpPortConfig { pub port: UdpPort }
#[derive(Debug, Clone, PartialEq)]
pub struct PtpDomainConfig { pub domain: PtpDomain }