blob: d899e569276da7bd2df00f866f48c3d43fa51f89 [file] [log] [blame]
module ietf-ptp-dataset{
namespace "urn:ietf:params:xml:ns:yang:ietf-ptp-dataset";
prefix "ptp-dataset";
organization "IETF TICTOC Working Group";
contact
"WG Web: http://tools.ietf.org/wg/tictoc/
WG List: <mailto:tictoc@ietf.org>
WG Chair: Karen O'Donoghue
<mailto:odonoghue@isoc.org>
WG Chair: Yaakov Stein
<mailto: Yaakov_s@rad.com>
Editor: Yuanlong Jiang
<mailto:jiangyuanlong@huawei.com>
Editor: Rodney Cummings
<mailto:rodney.cummings@ni.com>";
description
"This YANG module defines a data model for the configuration
of IEEE 1588-2008 clocks, and also for retrieval of the state
data of IEEE 1588-2008 clocks.";
revision "2017-02-08" {
description "Version 4.0";
reference "draft-ietf-tictoc-1588v2-yang";
}
typedef delay-mechanism-enumeration {
type enumeration {
enum E2E {
value 1;
description
"The port uses the delay request-response
mechanism.";
}
enum P2P {
value 2;
description
"The port uses the peer delay mechanism.";
}
enum DISABLED {
value 254;
description
"The port does not implement any delay
mechanism.";
}
}
description
"The propagation delay measuring option used by the
port. Values for this enumeration are specified
by the IEEE 1588 standard exclusively.";
reference
"IEEE Std 1588-2008: 8.2.5.4.4";
}
typedef port-state-enumeration {
type enumeration {
enum INITIALIZING {
value 1;
description
"The port is initializing its data sets, hardware, and
communication facilities.";
}
enum FAULTY {
value 2;
description
"The port is in the fault state.";
}
enum DISABLED {
value 3;
description
"The port is disabled, and is not communicating PTP
messages (other than possibly PTP management
messages).";
}
enum LISTENING {
value 4;
description
"The port is listening for an Announce message.";
}
enum PRE_MASTER {
value 5;
description
"The port is in the pre-master state.";
}
enum MASTER {
value 6;
description
"The port is behaving as a master port.";
}
enum PASSIVE {
value 7;
description
"The port is in the passive state.";
}
enum UNCALIBRATED {
value 8;
description
"A master port has been selected, but the port is still
in the uncalibrated state.";
}
enum SLAVE {
value 9;
description
"The port is synchronizing to the selected
master port.";
}
}
description
"The current state of the protocol engine associated
with the port. Values for this enumeration are specified
by the IEEE 1588 standard exclusively.";
reference
"IEEE Std 1588-2008: 8.2.5.3.1, 9.2.5";
}
typedef time-interval-type {
type int64;
description
"Derived data type for time interval,
represented in units of nanoseconds and
multipled by 2^16";
reference
"IEEE Std 1588-2008: 5.3.2";
}
typedef clock-identity-type {
type binary {
length "8";
}
description
"Derived data type to identify a clock";
reference
"IEEE Std 1588-2008: 5.3.4";
}
grouping port-identity-grouping {
description
"Derived data type to identify a port, which contains
two members: clockIdentity and portNumber.";
reference
"IEEE Std 1588-2008: 5.3.5";
leaf clock-identity {
type clock-identity-type;
description
"Identity of the clock";
}
leaf port-number {
type uint16;
description
"Port number";
}
}
grouping clock-quality-grouping {
description
"Derived data type for quality of a clock, which contains
clockClass, clockAccuracy and offsetScaledLogVariance.";
reference
"IEEE Std 1588-2008: 5.3.7";
leaf clock-class {
type uint8;
default 248;
description
"The clockClass denotes the traceability of the time
or frequency distributed by the clock.";
}
leaf clock-accuracy {
type uint8;
description
"The clockAccuracy indicates the expected accuracy
of the clock.";
}
leaf offset-scaled-log-variance {
type uint16;
description
"The offsetScaledLogVariance provides an
estimate of the variations of the clock
from a linear timescale when it is not synchronized
to another clock using the protocol.";
}
}
grouping default-ds-entry {
description
"Collection of members of the default data set.";
leaf two-step-flag {
type boolean;
description
"When set, the clock is a two-step clock; otherwise,
the clock is a one-step clock.";
}
leaf clock-identity {
type clock-identity-type;
description
"The clockIdentity of the local clock";
}
leaf number-ports {
type uint16;
description
"The number of PTP ports on the device.";
}
container clock-quality {
description
"The clockQuality of the local clock.";
uses clock-quality-grouping;
}
leaf priority1 {
type uint8;
description
"The priority1 attribute of the local clock.";
}
leaf priority2{
type uint8;
description
"The priority2 attribute of the local clock. ";
}
leaf domain-number {
type uint8;
description
"The domain number of the current syntonization
domain.";
}
leaf slave-only {
type boolean;
description
"When set, the clock is a slave-only clock.";
}
}
grouping current-ds-entry {
description
"Collection of members of current data set.";
leaf steps-removed {
type uint16;
default 0;
description
"The number of communication paths traversed
between the local clock and the grandmaster clock.";
}
leaf offset-from-master {
type time-interval-type;
description
"The current value of the time difference between
a master and a slave clock as computed by the slave.";
}
leaf mean-path-delay {
type time-interval-type;
description
"The current value of the mean propagation time between
a master and a slave clock as computed by the slave.";
}
}
grouping parent-ds-entry {
description
"Collection of members of the parent data set.";
container parent-port-identity {
description
"The portIdentity of the port on the master";
uses port-identity-grouping;
}
leaf parent-stats {
type boolean;
default false;
description
"When set, the values of
observedParentOffsetScaledLogVariance and
observedParentClockPhaseChangeRate of parentDS
have been measured and are valid.";
}
leaf observed-parent-offset-scaled-log-variance {
type uint16;
default 0xFFFF;
description
"An estimate of the parent clock's PTP variance
as observed by the slave clock.";
}
leaf observed-parent-clock-phase-change-rate {
type int32;
description
"An estimate of the parent clock's phase change rate
as observed by the slave clock.";
}
leaf grandmaster-identity {
type binary{
length "8";
}
description
"The clockIdentity attribute of the grandmaster clock.";
}
container grandmaster-clock-quality {
description
"The clockQuality of the grandmaster clock.";
uses clock-quality-grouping;
}
leaf grandmaster-priority1 {
type uint8;
description
"The priority1 attribute of the grandmaster clock.";
}
leaf grandmaster-priority2 {
type uint8;
description
"The priority2 attribute of the grandmaster clock.";
}
}
grouping time-properties-ds-entry {
description
"Collection of members of the timeProperties data set.";
leaf current-utc-offset-valid {
type boolean;
description
"When set, the current UTC offset is valid.";
}
leaf current-utc-offset {
type int16;
description
"The offset between TAI and UTC when the epoch of the
PTP system is the PTP epoch, i.e., when ptp-timescale
is TRUE; otherwise, the value has no meaning.";
}
leaf leap59 {
type boolean;
description
"When set, the last minute of the current UTC day
contains 59 seconds.";
}
leaf leap61 {
type boolean;
description
"When set, the last minute of the current UTC day
contains 61 seconds.";
}
leaf time-traceable {
type boolean;
description
"When set, the timescale and the currentUtcOffset are
traceable to a primary reference.";
}
leaf frequency-traceable {
type boolean;
description
"When set, the frequency determining the timescale
is traceable to a primary reference.";
}
leaf ptp-timescale {
type boolean;
description
"When set, the clock timescale of the grandmaster
clock is PTP; otherwise, the timescale is ARB
(arbitrary).";
}
leaf time-source {
type uint8;
description
"The source of time used by the grandmaster clock.";
}
}
grouping port-ds-entry {
description
"Collection of members of the port data set.";
container port-identity {
description
"The portIdentity attribute of the local port.";
uses port-identity-grouping;
}
leaf port-state {
type port-state-enumeration;
default "INITIALIZING";
description
"Current state associated with the port.";
}
leaf log-min-delay-req-interval {
type int8;
description
"The base-two logarithm of the minDelayReqInterval
(the minimum permitted mean time interval between
successive Delay_Req messages).";
}
leaf peer-mean-path-delay {
type time-interval-type;
default 0;
description
"An estimate of the current one-way propagation delay
on the link when the delayMechanism is P2P; otherwise,
it is zero.";
}
leaf log-announce-interval {
type int8;
description
"The base-two logarithm of the mean
announceInterval (mean time interval between
successive Announce messages).";
}
leaf announce-receipt-timeout {
type uint8;
description
"The number of announceInterval that have to pass
without receipt of an Announce message before the
occurrence of the event ANNOUNCE_RECEIPT_TIMEOUT_
EXPIRES.";
}
leaf log-sync-interval {
type int8;
description
"The base-two logarithm of the mean SyncInterval
for multicast messages. The rates for unicast
transmissions are negotiated separately on a per port
basis and are not constrained by this attribute.";
}
leaf delay-mechanism {
type delay-mechanism-enumeration;
description
"The propagation delay measuring option used by the
port in computing meanPathDelay.";
}
leaf log-min-pdelay-req-interval {
type int8;
description
"The base-two logarithm of the
minPdelayReqInterval (minimum permitted mean time
interval between successive Pdelay_Req messages).";
}
leaf version-number {
type uint8;
description
"The PTP version in use on the port.";
}
}
grouping transparent-clock-default-ds-entry {
description
"Collection of members of the transparentClockDefault data
set (default data set for a transparent clock).";
leaf clock-identity {
type clock-identity-type;
description
"The clockIdentity of the transparent clock.";
}
leaf number-ports {
type uint16;
description
"The number of PTP ports on the device.";
}
leaf delay-mechanism {
type delay-mechanism-enumeration;
description
"The propagation delay measuring option
used by the transparent clock.";
}
leaf primary-domain {
type uint8;
default 0;
description
"The domainNumber of the primary syntonization domain.";
}
}
grouping transparent-clock-port-ds-entry {
description
"Collection of members of the transparentClockPort data
set (port data set for a transparent clock).";
container port-identity {
description
"The portIdentity of the local port.";
uses port-identity-grouping;
}
leaf log-min-pdelay-req-interval {
type int8;
description
"The logarithm to the base 2 of the
minPdelayReqInterval (minimum permitted mean time
interval between successive Pdelay_Req messages).";
}
leaf faulty-flag {
type boolean;
default false;
description
"When set, the port is faulty.";
}
leaf peer-mean-path-delay {
type time-interval-type;
default 0;
description
"An estimate of the current one-way propagation delay
on the link when the delayMechanism is P2P; otherwise,
it is zero.";
}
}
list instance-list {
key "instance-number";
description
"List of one or more PTP datasets in the device, one for
each domain (see IEEE 1588-2008 subclause 6.3).
Each PTP dataset represents a distinct instance of
PTP implementation in the device (i.e. distinct
Ordinary Clock or Boundary Clock).";
leaf instance-number {
type uint16;
description
"The instance number of the current PTP instance";
}
container default-ds {
description
"The default data set of the clock.";
uses default-ds-entry;
}
container current-ds {
description
"The current data set of the clock.";
uses current-ds-entry;
}
container parent-ds {
description
"The parent data set of the clock.";
uses parent-ds-entry;
}
container time-properties-ds {
description
"The timeProperties data set of the clock.";
uses time-properties-ds-entry;
}
list port-ds-list {
key "port-number";
description
"List of port data sets of the clock.";
leaf port-number{
type leafref{
path "../port-identity/port-number";
}
description
"Refers to the portNumber memer of
portDS.portIdentity.";
}
uses port-ds-entry;
}
}
container transparent-clock-default-ds {
description
"The members of the transparentClockDefault Data Set";
uses transparent-clock-default-ds-entry;
}
list transparent-clock-port-ds-list {
key "port-number";
description
"List of transparentClockPort data sets
of the transparent clock.";
leaf port-number {
type leafref {
path "../port-identity/port-number";
}
description
"Refers to the portNumber memer
of transparentClockPortDS.portIdentity.";
}
uses transparent-clock-port-ds-entry;
}
}