@joergmittaglawo/dmvconfig
Version:
DMV Configuration scripts for Lawo V__matrix Distributed Multiviewers.
309 lines (308 loc) • 16.9 kB
TypeScript
import * as VScript from "vscript";
import * as _Time from "./Time";
import * as _NetworkInterfaces from "./NetworkInterfaces";
import * as _PTP from "./PTP";
export declare const lift: {
readonly AllGeneralSettings: (kwl: string | null, socket: VScript.VSocket) => AllGeneralSettings | null;
readonly Agent: (kwl: string | null, socket: VScript.VSocket) => Agent | null;
readonly AgentMasterStatistics: (kwl: string | null, socket: VScript.VSocket) => AgentMasterStatistics | null;
readonly AgentSlaveStatisticsInstantaneousEstimate: (x: any | null, _: VScript.VSocket) => AgentSlaveStatisticsInstantaneousEstimate | null;
readonly AgentSlaveStatisticsOneWayDelay: (x: any | null, _: VScript.VSocket) => AgentSlaveStatisticsOneWayDelay | null;
readonly AgentSlaveStatistics: (kwl: string | null, socket: VScript.VSocket) => AgentSlaveStatistics | null;
readonly MasterSettings: (kwl: string | null, socket: VScript.VSocket) => MasterSettings | null;
readonly MasterSettingsGrandmaster: (kwl: string | null, socket: VScript.VSocket) => MasterSettingsGrandmaster | null;
readonly SlaveSettings: (kwl: string | null, socket: VScript.VSocket) => SlaveSettings | null;
readonly Port: (kwl: string | null, socket: VScript.VSocket) => Port | null;
readonly PortBestMasters: (kwl: string | null, socket: VScript.VSocket) => PortBestMasters | null;
readonly Master: (kwl: string | null, socket: VScript.VSocket) => Master | null;
readonly MasterVisibleVia: (kwl: string | null, socket: VScript.VSocket) => MasterVisibleVia | null;
};
export declare const lower: {
readonly AllGeneralSettings: (ref: AllGeneralSettings | null) => string | null;
readonly Agent: (ref: Agent | null) => string | null;
readonly AgentMasterStatistics: (ref: AgentMasterStatistics | null) => string | null;
readonly AgentSlaveStatisticsInstantaneousEstimate: (x: AgentSlaveStatisticsInstantaneousEstimate | null) => (number | boolean | "SyncFollowUp" | "DelayRespReq")[] | null;
readonly AgentSlaveStatisticsOneWayDelay: (x: AgentSlaveStatisticsOneWayDelay | null) => number[] | null;
readonly AgentSlaveStatistics: (ref: AgentSlaveStatistics | null) => string | null;
readonly MasterSettings: (ref: MasterSettings | null) => string | null;
readonly MasterSettingsGrandmaster: (ref: MasterSettingsGrandmaster | null) => string | null;
readonly SlaveSettings: (ref: SlaveSettings | null) => string | null;
readonly Port: (ref: Port | null) => string | null;
readonly PortBestMasters: (ref: PortBestMasters | null) => string | null;
readonly Master: (ref: Master | null) => string | null;
readonly MasterVisibleVia: (ref: MasterVisibleVia | null) => string | null;
};
export declare type MessageClass = "Event" | "General";
export declare type MessageType = "Sync" | "Delay_Req" | "Pdelay_Req" | "Pdelay_Resp" | "Follow_Up" | "Delay_Resp" | "Pdelay_Resp_Follow_Up" | "Announce" | "Signaling" | "Management" | "Invalid";
export declare type QualityAssessment = "Convergent" | "Normal" | "Divergent" | "None";
export declare type Routing = "Unicast" | "Multicast";
declare class MasterVisibleVia {
readonly raw: VScript.Subtree;
constructor(raw: VScript.Subtree);
get port(): VScript.rKeyword<string | null, Port | null, MasterVisibleVia>;
/**
time at which an announce message from this master had last been received
via the referenced port, measured relative to process initialization time
*/
get announced_at(): VScript.rKeyword<number, number, MasterVisibleVia>;
}
export declare class Master {
readonly raw: VScript.Subtree;
constructor(raw: VScript.Subtree);
get gen_address(): VScript.rKeyword<string, string, Master>;
get evt_address(): VScript.rKeyword<string, string, Master>;
get visible_via(): VScript.StronglyTypedTable<MasterVisibleVia, VScript.TableRowView<MasterVisibleVia>>;
/**
PTP traits as extracted from the most recently received announce message
*/
get ptp_traits(): _PTP.Traits;
}
export declare class MasterAsTableRow extends Master {
readonly enclosing_table: VScript.StronglyTypedTable<Master>;
readonly index: number;
constructor(raw_row: VScript.TableRow, enclosing_table: VScript.StronglyTypedTable<Master>);
}
declare class PortBestMasters {
readonly raw: VScript.Subtree;
constructor(raw: VScript.Subtree);
get wrapped_reference(): VScript.rKeyword<string | null, Master | null, PortBestMasters>;
}
export declare class Port {
readonly raw: VScript.Subtree;
constructor(raw: VScript.Subtree);
get brief(): VScript.rKeyword<string, string, Port>;
get hosting_interface(): VScript.rKeyword<string | null, _NetworkInterfaces.VirtualInterface | null, Port>;
get lane(): VScript.rKeyword<_NetworkInterfaces.Lane, _NetworkInterfaces.Lane, Port>;
get port_identity(): VScript.rKeyword<any, _PTP.PortIdentity | null, this>;
get best_masters(): VScript.StronglyTypedArray<Port, PortBestMasters, VScript.RowView<PortBestMasters>>;
}
export declare class PortAsTableRow extends Port {
readonly enclosing_table: VScript.StronglyTypedTable<Port>;
readonly index: number;
constructor(raw_row: VScript.TableRow, enclosing_table: VScript.StronglyTypedTable<Port>);
}
export declare type MeasurementFamily = "SyncFollowUp" | "DelayRespReq";
export declare class SlaveSettings {
readonly raw: VScript.Subtree;
constructor(raw: VScript.Subtree);
/**
base-2 logarithm of the delay request interval in seconds. E.g., a
setting of -3 will cause this agent to emit delay requests 8 times a
second; 4 times a second if this is set to -2. Delay request intervals
may not be shorter than the minimum delay request interval set by the
currently active master.
*/
get log2_delayreq_interval(): VScript.duplexKeyword<number, number, SlaveSettings>;
get log2_master_sync_interval(): VScript.rKeyword<number, number, SlaveSettings>;
/**
minimum delay request interval as set by the most recently received delay
response message
*/
get relative_min_log2_delayreq_interval(): VScript.rKeyword<number, number, SlaveSettings>;
/**
unlike sync and follow-up messages, which contain no client-dependent
information and are thus useful to all clients within their PTP domain,
delay request/response messages are useful only to the inquiring client
(and perhaps to the master if it wishes to monitor its clients' timing
properties). Exchanging these messages via unicast reduces both network
traffic and local workload but yields otherwise identical results (this
mode may also be called `Hybrid` on other products). If
`delay_req_routing` is set to `Multicast`, this optimization is disabled
and all delay requests emitted by this agent will be sent to the PTP
multicast event address `224.0.1.129:319`
*/
get delay_req_routing(): VScript.duplexKeyword<Routing, Routing, SlaveSettings>;
}
declare class MasterSettingsGrandmaster {
readonly raw: VScript.Subtree;
constructor(raw: VScript.Subtree);
/**
this value will be used as `priority_1` if this agent is set to act as a
PTP master
*/
get priority_1(): VScript.duplexKeyword<number, number, MasterSettingsGrandmaster>;
/**
this value will be used as `priority_2` if this agent is set to act as a
PTP master
*/
get priority_2(): VScript.duplexKeyword<number, number, MasterSettingsGrandmaster>;
/**
this value will be used as `clock_quality` if this agent is set to act as
a PTP master
*/
get clock_quality(): VScript.duplexKeyword<any, _PTP.ClockQuality | null, this>;
/**
ClockIdentity as defined by the PTP standard, stored in big-endian order.
*/
get clock_identity(): VScript.rKeyword<[number, number, number, number, number, number, number, number], [number, number, number, number, number, number, number, number], MasterSettingsGrandmaster>;
}
export declare class MasterSettings {
readonly raw: VScript.Subtree;
constructor(raw: VScript.Subtree);
/**
base-2 logarithm of the announce interval in seconds. E.g., a setting of
-2 will cause this agent to emit announce messages 4 times a second; 2
times a second if this is set to -1.
*/
get log2_announce_interval(): VScript.duplexKeyword<number, number, MasterSettings>;
/**
base-2 logarithm of the sync interval in seconds. E.g., a setting of -3
will cause this agent to emit sync and followup messages 8 times a
second; 4 times a second if this is set to -2.
*/
get log2_sync_interval(): VScript.duplexKeyword<number, number, MasterSettings>;
get delay_decimation_factor(): VScript.rKeyword<number, number, MasterSettings>;
/**
unlike sync and follow-up messages, which contain no client-dependent
information and are thus useful to all clients within their PTP domain,
delay request/response messages are useful only to the inquiring client
(and perhaps to the master if it wishes to monitor its clients' timing
properties). Exchanging these messages via unicast reduces both network
traffic and local workload but yields otherwise identical results (this
mode may also be called `Hybrid` on other products). If
`delay_resp_routing` is set to `Multicast`, all delay responses emitted
by this agent will be sent to the PTP multicast address `224.0.1.129`
*/
get delay_resp_routing(): VScript.duplexKeyword<Routing, Routing, MasterSettings>;
get time_source(): VScript.duplexKeyword<string | null, _Time.Source | null, MasterSettings>;
get grandmaster(): MasterSettingsGrandmaster;
}
interface AgentSlaveStatisticsOneWayDelay {
mean: number;
error: number;
}
interface AgentSlaveStatisticsInstantaneousEstimate {
type: MeasurementFamily;
seconds_s: number;
nanoseconds_s: number;
seconds_m: number;
nanoseconds_m: number;
accepted: boolean;
}
declare class AgentSlaveStatistics {
readonly raw: VScript.Subtree;
constructor(raw: VScript.Subtree);
get num_syncs_received(): VScript.rKeyword<number, number, AgentSlaveStatistics>;
get num_followups_received(): VScript.rKeyword<number, number, AgentSlaveStatistics>;
/**
number of measurements performed on the basis of incoming sync/followup
messages. May be smaller than the number of received sync messages due
to, e.g., missing followup messages
*/
get num_sync_measurements(): VScript.rKeyword<number, number, AgentSlaveStatistics>;
/**
number of delay request messages handed off to the operating system. The
actual number of transmitted messages may be lower in case of network
configuration issues; check `num_delay_measurements` if you suspect this
to be the case
*/
get num_delayreqs_sent(): VScript.rKeyword<number, number, AgentSlaveStatistics>;
get num_delayresps_received(): VScript.rKeyword<number, number, AgentSlaveStatistics>;
/**
number of delay response messages considered for further processing. May
be smaller than the number of received delay response messages due to,
e.g., mismatching requesting source port identities (especially when
operating in multicast routing mode)
*/
get num_delayresps_considered(): VScript.rKeyword<number, number, AgentSlaveStatistics>;
/**
number of delay response messages that were considered for processing,
but later discarded for other reasons
*/
get num_delayresps_discarded(): VScript.rKeyword<number, number, AgentSlaveStatistics>;
/**
number of measurements performed on the basis of delay request/response
messages. May be both smaller than the number of dispatched delay request
messages (perhaps due to network configuration issues), and smaller than
the number of received delay response messages (especially when operating
in multicast routing mode, where most incoming delay response messages
are typically intended for other PTP clients)
*/
get num_delay_measurements(): VScript.rKeyword<number, number, AgentSlaveStatistics>;
get one_way_delay(): VScript.rKeyword<any, AgentSlaveStatisticsOneWayDelay | null, this>;
get estimated_jitter(): VScript.rKeyword<number, number, AgentSlaveStatistics>;
get publish_instantaneous_estimates(): VScript.rwKeyword<boolean, boolean, AgentSlaveStatistics>;
get instantaneous_estimate(): VScript.rKeyword<any, AgentSlaveStatisticsInstantaneousEstimate | null, this>;
}
declare class AgentMasterStatistics {
readonly raw: VScript.Subtree;
constructor(raw: VScript.Subtree);
get num_announces_sent(): VScript.rKeyword<number, number, AgentMasterStatistics>;
get num_syncs_sent(): VScript.rKeyword<number, number, AgentMasterStatistics>;
get num_followups_sent(): VScript.rKeyword<number, number, AgentMasterStatistics>;
get num_delayreqs_received(): VScript.rKeyword<number, number, AgentMasterStatistics>;
get num_delayresps_sent(): VScript.rKeyword<number, number, AgentMasterStatistics>;
}
export declare class Agent {
readonly raw: VScript.Subtree;
constructor(raw: VScript.Subtree);
get mode(): VScript.rwKeyword<"SlaveOnly" | "MasterSlave" | "MasterOnly", "SlaveOnly" | "MasterSlave" | "MasterOnly", Agent>;
get state(): VScript.rKeyword<"Inactive" | "Listening" | "Passive" | "Slave" | "Master", "Inactive" | "Listening" | "Passive" | "Slave" | "Master", Agent>;
get domain(): VScript.duplexKeyword<number, number, Agent>;
/**
best (as defined by the Best Master Clock algorithm) PTP master visible
on this interface and within this PTP domain, excluding this agent
itself.
*/
get best_foreign_master(): VScript.rKeyword<string | null, Master | null, Agent>;
get lane(): VScript.rKeyword<_NetworkInterfaces.Lane, _NetworkInterfaces.Lane, Agent>;
get hosting_port(): VScript.duplexKeyword<string | null, Port | null, Agent>;
get slave_settings(): SlaveSettings;
get master_settings(): MasterSettings;
get slave_statistics(): AgentSlaveStatistics;
get master_statistics(): AgentMasterStatistics;
get output(): _Time.Source;
}
export declare class AgentAsNamedTableRow extends Agent {
private readonly raw_row;
readonly enclosing_table: VScript.StronglyTypedNamedTable<Agent>;
readonly index: number;
constructor(raw_row: VScript.NamedTableRow, enclosing_table: VScript.StronglyTypedNamedTable<Agent>);
rename(name: string, opts?: VScript.CommonWriteOptions): Promise<void>;
delete(opts?: VScript.CommonWriteOptions): Promise<void>;
}
declare class AllGeneralSettings {
readonly raw: VScript.Subtree;
constructor(raw: VScript.Subtree);
/**
remove visible masters if the time elapsed since their last Announce
message exceeds *master_timeout*
*/
get master_timeout(): VScript.duplexKeyword<number, number, AllGeneralSettings>;
/**
if `best_master_selection` is set to `Eager`, an incoming Announce
message will immediately register its sender as the currently accepted
PTP master if all previously registered masters are deemed inferior by
the BMC algorithm. Conversely, if `Cautious` is selected, and if the
PTPClock is currently calibrated, a previously selected PTP master will
be retained until it times out
*/
get best_master_selection(): VScript.rwKeyword<"Eager" | "Cautious", "Eager" | "Cautious", AllGeneralSettings>;
/**
offload DelayResponse generation to hardware if supported by the
currently active FPGA build
*/
get hardware_offload(): VScript.duplexKeyword<boolean, boolean, AllGeneralSettings>;
/**
if DelayResponse hardware offloading is available, delay requests will by
default not be forwarded to the CPU. If you wish to do so to, e.g.,
analyze incoming traffic using `tcpdump`, set this option to `false`
*/
get absorb_delayrequests(): VScript.duplexKeyword<boolean, boolean, AllGeneralSettings>;
}
export declare class All {
readonly raw: VScript.Subtree;
constructor(raw: VScript.Subtree);
get general_settings(): AllGeneralSettings;
get agents(): VScript.StronglyTypedNamedTable<Agent, VScript.NamedTableRowView<Agent>>;
get ports(): VScript.StronglyTypedTable<Port, VScript.TableRowView<Port>>;
get visible_masters(): VScript.StronglyTypedTable<Master, VScript.TableRowView<Master>>;
}
export declare const Enums: {
readonly MeasurementFamily: MeasurementFamily[];
readonly Routing: Routing[];
readonly QualityAssessment: QualityAssessment[];
readonly MessageType: MessageType[];
readonly MessageClass: MessageClass[];
};
export {};