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; | |
} | |
} |