You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
4291 lines
156 KiB
4291 lines
156 KiB
module ieee1588-ptp { |
|
yang-version 1.1; |
|
namespace urn:ieee:std:1588:yang:ieee1588-ptp; |
|
prefix "ptp"; |
|
|
|
import ietf-yang-types { |
|
prefix yang; |
|
} |
|
import ietf-interfaces { |
|
prefix if; |
|
} |
|
|
|
organization "IEEE 1588 Working Group"; |
|
contact |
|
"Web: https://sagroups.ieee.org/1588/ |
|
E-mail: 1588officers@listserv.ieee.org |
|
|
|
Postal: C/O IEEE 1588 Working Group Chair |
|
IEEE Standards Association |
|
445 Hoes Lane |
|
Piscataway, NJ 08854 |
|
USA"; |
|
description |
|
"This YANG module defines a data model for the configuration |
|
and state of IEEE Std 1588 clocks. IEEE Std 1588 specifies the |
|
Precision Time Protocol (PTP). |
|
|
|
The nodes in this YANG module are designed for compatibility |
|
with ietf-ptp.yang, the YANG data model for IEEE Std 1588-2008, |
|
as specified in IETF RFC 8575. |
|
|
|
NOTE regarding default value: |
|
PTP's concept of 'initialization value' is analogous to YANG's |
|
concept of a 'default value'. According to 8.1.3.4 of |
|
IEEE Std 1588-2019, the initialization value for configuration |
|
is specified in IEEE Std 1588, but that value can be overridden |
|
by a PTP Profile specification, or by the product that |
|
implements PTP. This makes it challenging to repeat the |
|
specification of initialization value using a YANG 'default' |
|
statement, because there is no straightforward mechanism for |
|
a PTP Profile's (or product's) YANG module to import this |
|
module and override its YANG default. Since a YANG management |
|
client can read the default value from the operational |
|
datastore, there is no need to re-specify the default in YANG. |
|
The implementer of PTP refers to the relevant PTP |
|
specifications for the default (not YANG modules). |
|
Therefore, this YANG module avoids use of the YANG 'default' |
|
statement. |
|
|
|
NOTE regarding IEEE Std 1588 classification: |
|
8.1.2 of IEEE Std 1588-2019 specifies a classification of |
|
each data set member, which corresponds to a leaf in YANG. |
|
The relationship between 1588 classification and |
|
YANG 'config' (i.e., whether the leaf is read-write) is: |
|
- 1588 static: The leaf is 'config false' (read-only). |
|
- 1588 configurable: The leaf is 'config true', which is |
|
the default value for a YANG leaf. |
|
- 1588 dynamic: A judgement is made on a member-by-member |
|
basis. If the member corresponds to the first item of |
|
8.1.2.1.2 of IEEE Std 1588-2019 (i.e., value from protocol |
|
only, such as log of protocol behavior), the YANG leaf |
|
is 'config false'. Otherwise, the member's value can be |
|
provided by an entity outside PTP (e.g., NETCONF or |
|
RESTCONF client), and therefore the YANG leaf is |
|
'config true'."; |
|
|
|
revision 2022-08-30 { |
|
description |
|
"Initial revision."; |
|
reference |
|
"IEEE Std 1588e-XXXX, IEEE Standard for a Precision Clock |
|
Synchronization Protocol for Networked Measurement and |
|
Control Systems - MIB and YANG Data Models."; |
|
} |
|
// The year (XXXX) will be replaced during publication. |
|
// This is the third balloted draft D0.3 |
|
// of the YANG module for amendment IEEE P1588e. |
|
|
|
feature fault-log { |
|
description |
|
"Logging of faults detected in the PTP Instance."; |
|
reference |
|
"8.2.6 of IEEE Std 1588-2019"; |
|
} |
|
|
|
feature unicast-negotiation { |
|
description |
|
"Unicast negotiation conducted through use of TLVs."; |
|
reference |
|
"16.1 of IEEE Std 1588-2019"; |
|
} |
|
|
|
feature path-trace { |
|
description |
|
"Use of the PATH_TRACE TLV for tracing the route of |
|
a PTP Announce message through the PTP Network."; |
|
reference |
|
"16.2 of IEEE Std 1588-2019"; |
|
} |
|
|
|
feature alternate-timescale { |
|
description |
|
"The transmission of an ALTERNATE_TIME_OFFSET_INDICATOR TLV |
|
entity from the Grandmaster PTP Instance may indicate the |
|
offset of an alternate timescale from the timescale in |
|
use in the domain."; |
|
reference |
|
"16.3 of IEEE Std 1588-2019"; |
|
} |
|
|
|
feature holdover-upgrade { |
|
description |
|
"A holdover-upgradable PTP Instance can potentially |
|
become the Grandmaster PTP Instance in the event the |
|
previous Grandmaster PTP Instance is disconnected |
|
or its characteristics degrade."; |
|
reference |
|
"16.4 of IEEE Std 1588-2019"; |
|
} |
|
|
|
feature cmlds { |
|
description |
|
"The Common Mean Link Delay Service (CMLDS) is an optional |
|
service that enables any PTP Port that would normally obtain |
|
the value of a link's <meanLinkDelay> and <neighborRateRatio> |
|
using the peer-to-peer method to instead obtain these |
|
values from this optional service. The CMLDS service is |
|
available to all PTP Instances communicating with a specific |
|
transport mechanism, over the physical link between two PTP |
|
Nodes."; |
|
reference |
|
"16.6 of IEEE Std 1588-2019"; |
|
} |
|
|
|
feature timestamp-correction { |
|
description |
|
"Correction of timestamps using configurable management data."; |
|
reference |
|
"16.7 of IEEE Std 1588-2019"; |
|
} |
|
|
|
feature asymmetry-correction { |
|
description |
|
"Calculation of the <delayAsymmetry> on a Direct PTP Link |
|
between two PTP Instances connected using an applicable |
|
bidirectional medium."; |
|
reference |
|
"16.8 of IEEE Std 1588-2019"; |
|
} |
|
|
|
feature slave-monitoring { |
|
description |
|
"Mechanism for monitoring timing information in a PTP Port |
|
in the slave state. The slave-monitoring feature specifies |
|
TLVs that the Slave PTP Instance transmits with this |
|
information, typically in a Signaling message."; |
|
reference |
|
"16.11 of IEEE Std 1588-2019"; |
|
} |
|
|
|
feature enhanced-metrics { |
|
description |
|
"Mechanism for propagating estimates of various |
|
inaccuracy components affecting the overall expected |
|
PTP Instance Time accuracy. The metrics will be updated |
|
and available for utilization at the various points along |
|
the PTP timing chain: from the Grandmaster Instance, up to |
|
a leaf PTP Instance in the synchronization tree. Each |
|
PTP Instance along the timing path updates the |
|
relevant metrics based on its contribution to the expected |
|
degradation in PTP Instance Time accuracy due to various |
|
induced timing error components."; |
|
reference |
|
"16.12 of IEEE Std 1588-2019"; |
|
} |
|
|
|
feature grandmaster-cluster { |
|
description |
|
"Mechanism for faster selection of the Grandmaster PTP Instance |
|
from the set of PTP Instances for which this option is both |
|
implemented and enabled."; |
|
reference |
|
"17.2 of IEEE Std 1588-2019"; |
|
} |
|
|
|
feature alternate-master { |
|
description |
|
"Mechanism for PTP Ports on a PTP Communication Path that |
|
are not currently the MASTER port of that PTP Communication |
|
Path to exchange PTP timing information with other PTP Ports |
|
on the same PTP Communication Path, and for each of the other |
|
PTP Ports to acquire knowledge of the characteristics |
|
of the transmission path between itself and each alternate |
|
master PTP Port."; |
|
reference |
|
"17.3 of IEEE Std 1588-2019"; |
|
} |
|
|
|
feature unicast-discovery { |
|
description |
|
"Mechanism for PTP to be used over a network that does not |
|
provide multicast. A PTP Instance is configured with the |
|
addresses of PTP Ports of other PTP Instances with which |
|
it should attempt to establish unicast communication. |
|
The PTP Instance may request that these PTP Ports transmit |
|
unicast Announce, Sync, and Delay_Resp messages to it."; |
|
reference |
|
"17.4 of IEEE Std 1588-2019"; |
|
} |
|
|
|
feature acceptable-master { |
|
description |
|
"Mechanism that allows PTP Ports in the SLAVE state to be |
|
configured to refuse to synchronize to PTP Instances not |
|
on the acceptable master list."; |
|
reference |
|
"17.5 of IEEE Std 1588-2019"; |
|
} |
|
|
|
feature external-port-config { |
|
description |
|
"External port configuration allows an external entity |
|
(such as YANG-based remote management) to disable the |
|
IEEE Std 1588 state machines that control each port's |
|
state, including the BMCA. Each port's state is |
|
then configured by the external entity."; |
|
reference |
|
"17.6 of IEEE Std 1588-2019"; |
|
} |
|
|
|
feature performance-monitoring { |
|
description |
|
"Collection of performance monitoring logs that can be |
|
read using management."; |
|
reference |
|
"Annex J of IEEE Std 1588-2019"; |
|
} |
|
|
|
feature l1-sync { |
|
description |
|
"Layer 1-based synchronization performance |
|
enhancement."; |
|
reference |
|
"Annex L of IEEE Std 1588-2019"; |
|
} |
|
|
|
identity network-protocol { |
|
description |
|
"Enumeration for the protocol used by a PTP Instance to |
|
transport PTP messages. |
|
YANG identity is used so that a PTP Profile's YANG augment |
|
can assign values, using numeric range F000 to FFFD hex."; |
|
reference |
|
"7.4.1 of IEEE Std 1588-2019"; |
|
} |
|
identity udp-ipv4 { |
|
base network-protocol; |
|
description |
|
"UDP on IPv4. Numeric value is 0001 hex."; |
|
} |
|
identity udp-ipv6 { |
|
base network-protocol; |
|
description |
|
"UDP on IPv6. Numeric value is 0002 hex."; |
|
} |
|
identity ieee802-3 { |
|
base network-protocol; |
|
description |
|
"IEEE Std 802.3 (Ethernet). Numeric value is 0003 hex."; |
|
} |
|
identity devicenet { |
|
base network-protocol; |
|
description |
|
"DeviceNet. Numeric value is 0004 hex."; |
|
} |
|
identity controlnet { |
|
base network-protocol; |
|
description |
|
"ControlNet. Numeric value is 0005 hex."; |
|
} |
|
identity profinet { |
|
base network-protocol; |
|
description |
|
"PROFINET. Numeric value is 0006 hex."; |
|
} |
|
identity otn { |
|
base network-protocol; |
|
description |
|
"Optical Transport Network (OTN). Numeric value |
|
is 0007 hex."; |
|
} |
|
identity unknown { |
|
base network-protocol; |
|
description |
|
"Unknown. Numeric value is FFFE hex."; |
|
} |
|
|
|
identity clock-class { |
|
description |
|
"Enumeration that denotes the traceability, synchronization |
|
state and expected performance of the time or frequency |
|
distributed by the Grandmaster PTP Instance. |
|
IEEE Std 1588 does not specify a name for each clock-class, |
|
but the names below are intended to be as intuitive as possible. |
|
YANG identity is used so that a PTP Profile's YANG augment |
|
can assign values using a numeric range designated for use by |
|
alternate PTP Profiles."; |
|
reference |
|
"7.6.2.5 of IEEE Std 1588-2019"; |
|
} |
|
identity cc-primary-sync { |
|
base clock-class; |
|
description |
|
"A PTP Instance that is synchronized to a primary |
|
reference time source. The timescale distributed shall be PTP. |
|
Numeric value is 6 decimal."; |
|
} |
|
identity cc-primary-sync-lost { |
|
base clock-class; |
|
description |
|
"A PTP Instance that has previously been designated |
|
as clockClass 6, but that has lost the ability to |
|
synchronize to a primary reference time source and is in |
|
holdover mode and within holdover specifications. Or a PTP |
|
Instance designated with clockClass 7 based on the Holdover |
|
Upgrade option. The timescale distributed shall be PTP. |
|
Numeric value is 7 decimal."; |
|
} |
|
identity cc-application-specific-sync { |
|
base clock-class; |
|
description |
|
"A PTP Instance that is synchronized to an |
|
application-specific source of time. The timescale |
|
distributed shall be ARB. |
|
Numeric value is 13 decimal."; |
|
} |
|
identity cc-application-specific-sync-lost { |
|
base clock-class; |
|
description |
|
"A PTP Instance that has previously been designated as |
|
clockClass 13, but that has lost the ability to synchronize |
|
to an application-specific source of time and is in |
|
holdover mode and within holdover specifications. Or a PTP |
|
Instance designated with clockClass 14 based on the Holdover |
|
Upgrade option. The timescale distributed shall be ARB. |
|
Numeric value is 14 decimal."; |
|
} |
|
identity cc-primary-sync-alternative-a { |
|
base clock-class; |
|
description |
|
"Degradation alternative A for a PTP Instance of |
|
clockClass 7 that is not within holdover specification |
|
or that is based on the specifications of the Holdover |
|
Upgrade option. |
|
Numeric value is 52 decimal."; |
|
} |
|
identity cc-application-specific-alternative-a { |
|
base clock-class; |
|
description |
|
"Degradation alternative A for a PTP Instance of |
|
clockClass 14 that is not within holdover specification or |
|
that is based on the specifications of the Holdover Upgrade |
|
option. |
|
Numeric value is 58 decimal."; |
|
} |
|
identity cc-primary-sync-alternative-b { |
|
base clock-class; |
|
description |
|
"Degradation alternative B for a PTP Instance of |
|
clockClass 7 that is not within holdover specification |
|
or that is based on the specifications of the Holdover |
|
Upgrade option. |
|
Numeric value is 187 decimal."; |
|
} |
|
identity cc-application-specific-alternative-b { |
|
base clock-class; |
|
description |
|
"Degradation alternative B for a PTP Instance of |
|
clockClass 14 that is not within holdover specification or |
|
that is based on the specifications of the Holdover Upgrade |
|
option. |
|
Numeric value is 193 decimal."; |
|
} |
|
identity cc-default { |
|
base clock-class; |
|
description |
|
"Default clockClass, used if none of the other |
|
clockClass definitions apply. |
|
Numeric value is 248 decimal."; |
|
} |
|
identity cc-slave-only { |
|
base clock-class; |
|
description |
|
"A PTP Instance that is slave-only. |
|
Numeric value is 255 decimal."; |
|
} |
|
|
|
identity clock-accuracy { |
|
description |
|
"Enumeration that indicates the expected accuracy of a |
|
PTP Instance when it is the Grandmaster PTP Instance, |
|
or in the event it becomes the Grandmaster PTP Instance. |
|
The value shall be conservatively estimated by the PTP |
|
Instance to a precision consistent with the value of the |
|
selected clock-accuracy and of the next lower enumerated |
|
value, for example, for clockAccuracy = 23 hex, between |
|
250 ns and 1000 ns. |
|
IEEE Std 1588 does not specify a name for each clock-accuracy, |
|
but the names below are intended to be as intuitive as possible. |
|
YANG identity is used so that a PTP Profile's YANG augment |
|
can assign values, using numeric range 80 to FD hex."; |
|
reference |
|
"7.6.2.6 of IEEE Std 1588-2019"; |
|
} |
|
identity ca-time-accurate-to-1000-fs { |
|
base clock-accuracy; |
|
description |
|
"The time is accurate to within 1 ps (1000 fs). |
|
Numeric value is 17 hex."; |
|
} |
|
identity ca-time-accurate-to-2500-fs { |
|
base clock-accuracy; |
|
description |
|
"The time is accurate to within 2.5 ps (2500 fs). |
|
Numeric value is 18 hex."; |
|
} |
|
identity ca-time-accurate-to-10-ps { |
|
base clock-accuracy; |
|
description |
|
"The time is accurate to within 10 ps. |
|
Numeric value is 19 hex."; |
|
} |
|
identity ca-time-accurate-to-25ps { |
|
base clock-accuracy; |
|
description |
|
"The time is accurate to within 25 ps. |
|
Numeric value is 1A hex."; |
|
} |
|
identity ca-time-accurate-to-100-ps { |
|
base clock-accuracy; |
|
description |
|
"The time is accurate to within 100 ps. |
|
Numeric value is 1B hex."; |
|
} |
|
identity ca-time-accurate-to-250-ps { |
|
base clock-accuracy; |
|
description |
|
"The time is accurate to within 250 ps. |
|
Numeric value is 1C hex."; |
|
} |
|
identity ca-time-accurate-to-1000-ps { |
|
base clock-accuracy; |
|
description |
|
"The time is accurate to within 1ns (1000 ps). |
|
Numeric value is 1D hex."; |
|
} |
|
identity ca-time-accurate-to-2500-ps { |
|
base clock-accuracy; |
|
description |
|
"The time is accurate to within 2.5 ns (2500 ps). |
|
Numeric value is 1E hex."; |
|
} |
|
identity ca-time-accurate-to-10-ns { |
|
base clock-accuracy; |
|
description |
|
"The time is accurate to within 10 ns. |
|
Numeric value is 1F hex."; |
|
} |
|
identity ca-time-accurate-to-25-ns { |
|
base clock-accuracy; |
|
description |
|
"The time is accurate to within 25 ns. |
|
Numeric value is 20 hex."; |
|
} |
|
identity ca-time-accurate-to-100-ns { |
|
base clock-accuracy; |
|
description |
|
"The time is accurate to within 100 ns. |
|
Numeric value is 21 hex."; |
|
} |
|
identity ca-time-accurate-to-250-ns { |
|
base clock-accuracy; |
|
description |
|
"The time is accurate to within 250 ns. |
|
Numeric value is 22 hex."; |
|
} |
|
identity ca-time-accurate-to-1000-ns { |
|
base clock-accuracy; |
|
description |
|
"The time is accurate to within 1 us (1000 ns). |
|
Numeric value is 23 hex."; |
|
} |
|
identity ca-time-accurate-to-2500-ns { |
|
base clock-accuracy; |
|
description |
|
"The time is accurate to within 2.5 us (2500 ns). |
|
Numeric value is 24 hex."; |
|
} |
|
identity ca-time-accurate-to-10-us { |
|
base clock-accuracy; |
|
description |
|
"The time is accurate to within 10 us. |
|
Numeric value is 25 hex."; |
|
} |
|
identity ca-time-accurate-to-25-us { |
|
base clock-accuracy; |
|
description |
|
"The time is accurate to within 25 us. |
|
Numeric value is 26 hex."; |
|
} |
|
identity ca-time-accurate-to-100-us { |
|
base clock-accuracy; |
|
description |
|
"The time is accurate to within 100 us. |
|
Numeric value is 27 hex."; |
|
} |
|
identity ca-time-accurate-to-250-us { |
|
base clock-accuracy; |
|
description |
|
"The time is accurate to within 250 us. |
|
Numeric value is 28 hex."; |
|
} |
|
identity ca-time-accurate-to-1000-us { |
|
base clock-accuracy; |
|
description |
|
"The time is accurate to within 1 ms (1000 us). |
|
Numeric value is 29 hex."; |
|
} |
|
identity ca-time-accurate-to-2500-us { |
|
base clock-accuracy; |
|
description |
|
"The time is accurate to within 2.5 ms (2500 us). |
|
Numeric value is 2A hex."; |
|
} |
|
identity ca-time-accurate-to-10-ms { |
|
base clock-accuracy; |
|
description |
|
"The time is accurate to within 10 ms. |
|
Numeric value is 2B hex."; |
|
} |
|
identity ca-time-accurate-to-25-ms { |
|
base clock-accuracy; |
|
description |
|
"The time is accurate to within 25 ms. |
|
Numeric value is 2Chex."; |
|
} |
|
identity ca-time-accurate-to-100-ms { |
|
base clock-accuracy; |
|
description |
|
"The time is accurate to within 100 ms. |
|
Numeric value is 2D hex."; |
|
} |
|
identity ca-time-accurate-to-250-ms { |
|
base clock-accuracy; |
|
description |
|
"The time is accurate to within 250 ms. |
|
Numeric value is 2E hex."; |
|
} |
|
identity ca-time-accurate-to-1-s { |
|
base clock-accuracy; |
|
description |
|
"The time is accurate to within 1 s. |
|
Numeric value is 2F hex."; |
|
} |
|
identity ca-time-accurate-to-10-s { |
|
base clock-accuracy; |
|
description |
|
"The time is accurate to within 10 s. |
|
Numeric value is 30 hex."; |
|
} |
|
identity ca-time-accurate-to-gt-10-s { |
|
base clock-accuracy; |
|
description |
|
"The time accuracy exceeds 10 s. |
|
Numeric value is 31 hex."; |
|
} |
|
|
|
identity time-source { |
|
description |
|
"Enumeration for the source of time used by the Grandmaster |
|
PTP Instance. |
|
YANG identity is used so that a PTP Profile's YANG augment |
|
can assign values, using numeric range F0 to FE hex."; |
|
reference |
|
"7.6.2.8 of IEEE Std 1588-2019"; |
|
} |
|
identity atomic-clock { |
|
base time-source; |
|
description |
|
"Any PTP Instance that is based on an atomic resonance |
|
for frequency, or a PTP Instance directly connected |
|
to a device that is based on an atomic resonance for |
|
frequency. Numeric value is 10 hex."; |
|
} |
|
identity gnss { |
|
base time-source; |
|
description |
|
"Any PTP Instance synchronized to a satellite system that |
|
distributes time and frequency. Numeric value is 20 hex."; |
|
} |
|
identity terrestrial-radio { |
|
base time-source; |
|
description |
|
"Any PTP Instance synchronized via any of the radio |
|
distribution systems that distribute time and frequency. |
|
Numeric value is 30 hex."; |
|
} |
|
identity serial-time-code { |
|
base time-source; |
|
description |
|
"Any PTP Instance synchronized via any of the serial |
|
time code distribution systems that distribute time |
|
and frequency, for example, IRIG-B. |
|
Numeric value is 39 hex."; |
|
} |
|
identity ptp { |
|
base time-source; |
|
description |
|
"Any PTP Instance synchronized to a PTP-based source |
|
of time external to the domain. Numeric value is 40 hex."; |
|
} |
|
identity ntp { |
|
base time-source; |
|
description |
|
"Any PTP Instance synchronized via NTP or Simple Network |
|
Time Protocol (SNTP) servers that distribute time and |
|
frequency. Numeric value is 50 hex."; |
|
} |
|
identity hand-set { |
|
base time-source; |
|
description |
|
"Used for any PTP Instance whose time has been set by |
|
means of a human interface based on observation of a |
|
source of time to within the claimed clock accuracy. |
|
Numeric value is 60 hex."; |
|
} |
|
identity other { |
|
base time-source; |
|
description |
|
"Other source of time and/or frequency not covered by |
|
other values. Numeric value is 90 hex."; |
|
} |
|
identity internal-oscillator { |
|
base time-source; |
|
description |
|
"Any PTP Instance whose frequency is not based on atomic |
|
resonance, and whose time is based on a free-running |
|
oscillator with epoch determined in an arbitrary or |
|
unknown manner. Numeric value is A0 hex."; |
|
} |
|
|
|
typedef time-interval { |
|
type int64; |
|
description |
|
"Time interval, expressed in nanoseconds, multiplied by 2^16. |
|
Positive or negative time intervals outside the maximum range |
|
of this data type shall be encoded as the largest positive and |
|
negative values of the data type, respectively."; |
|
reference |
|
"5.3.2 of IEEE Std 1588-2019"; |
|
} |
|
|
|
typedef clock-identity { |
|
type string { |
|
pattern "[0-9A-F]{2}(-[0-9A-F]{2}){7}"; |
|
} |
|
description |
|
"Identifies unique entities within a PTP Network, |
|
e.g. a PTP Instance or an entity of a common service. |
|
The identity is an 8-octet array, constructed according |
|
to specifications in IEEE Std 1588, using an |
|
organization identifier from the IEEE Registration |
|
Authority. |
|
Each octet is represented in YANG as a pair of |
|
hexadecimal characters, using uppercase for a letter. |
|
Each octet in the array is separated by the dash |
|
character."; |
|
reference |
|
"5.3.4 of IEEE Std 1588-2019 |
|
7.5.2.2 of IEEE Std 1588-2019"; |
|
} |
|
|
|
typedef relative-difference { |
|
type int64; |
|
description |
|
"Relative difference expressed as a dimensionless |
|
fraction and multiplied by 2^62, with any |
|
remaining fractional part truncated."; |
|
reference |
|
"5.3.11 of IEEE Std 1588-2019"; |
|
} |
|
|
|
typedef instance-type { |
|
type enumeration { |
|
enum oc { |
|
value 0; |
|
description |
|
"Ordinary Clock"; |
|
} |
|
enum bc { |
|
value 1; |
|
description |
|
"Boundary Clock"; |
|
} |
|
enum p2p-tc { |
|
value 2; |
|
description |
|
"Peer-to-peer Transparent Clock"; |
|
} |
|
enum e2e-tc { |
|
value 3; |
|
description |
|
"End-to-end Transparent Clock"; |
|
} |
|
} |
|
description |
|
"Enumeration for the type of PTP Instance. |
|
Values for this enumeration are specified by the IEEE 1588 |
|
standard exclusively."; |
|
reference |
|
"8.2.1.5.5 of IEEE Std 1588-2019"; |
|
} |
|
|
|
typedef fault-severity { |
|
type enumeration { |
|
enum emergency { |
|
value 0; |
|
description |
|
"Emergency: system is unusable"; |
|
} |
|
enum alert { |
|
value 1; |
|
description |
|
"Alert: immediate action needed"; |
|
} |
|
enum critical { |
|
value 2; |
|
description |
|
"Critical: critical conditions"; |
|
} |
|
enum error { |
|
value 3; |
|
description |
|
"Error: error conditions"; |
|
} |
|
enum warning { |
|
value 4; |
|
description |
|
"Warning: warning conditions"; |
|
} |
|
enum notice { |
|
value 5; |
|
description |
|
"Notice: normal but significant condition"; |
|
} |
|
enum informational { |
|
value 6; |
|
description |
|
"Informational: informational messages"; |
|
} |
|
enum debug { |
|
value 7; |
|
description |
|
"Debug: debug-level messages"; |
|
} |
|
} |
|
description |
|
"Enumeration for the severity of a fault record. |
|
Values for this enumeration are specified by the IEEE 1588 |
|
standard exclusively."; |
|
reference |
|
"8.2.6.3 of IEEE Std 1588-2019"; |
|
} |
|
|
|
typedef port-state { |
|
type enumeration { |
|
enum initializing { |
|
value 1; |
|
description |
|
"The PTP Port is initializing its data sets, hardware, and |
|
communication facilities. The PTP Port shall not place any |
|
PTP messages on its communication path."; |
|
} |
|
enum faulty { |
|
value 2; |
|
description |
|
"The fault state of the protocol. Except for PTP management |
|
messages that are a required response to a PTP message |
|
received from the applicable management mechanism, |
|
a PTP Port in this state shall not transmit any PTP related |
|
messages. In a Boundary Clock, no activity on a faulty |
|
PTP Port shall affect the other PTP Ports of the |
|
PTP Instance. If fault activity on a PTP Port in this state |
|
cannot be confined to the faulty PTP Port, then all |
|
PTP Ports shall be in the faulty state."; |
|
} |
|
enum disabled { |
|
value 3; |
|
description |
|
"The PTP Port is disabled. Except for PTP management |
|
messages that are a required response to a PTP message |
|
received from the applicable management mechanism, |
|
a PTP Port in this state shall not transmit any PTP related |
|
messages. In a Boundary Clock, no activity at the PTP Port |
|
shall be allowed to affect the activity at any other |
|
PTP Port of the Boundary Clock. A PTP Port in this state |
|
shall discard all received PTP messages except for PTP |
|
management messages."; |
|
} |
|
enum listening { |
|
value 4; |
|
description |
|
"The PTP Port is waiting for the announce-receipt-timeout |
|
to expire or to receive an Announce message from a |
|
Master PTP Instance. The purpose of this state is to allow |
|
orderly addition of PTP Instances to a domain |
|
(i.e. to know if this PTP Port is truly a port of the |
|
Grandmaster PTP Instance prior to taking that role)."; |
|
} |
|
enum pre-master { |
|
value 5; |
|
description |
|
"This port state provides an additional mechanism to |
|
support more orderly reconfiguration of PTP Networks when |
|
PTP Instances are added or deleted, PTP Instance |
|
characteristics change, or connection topology changes. |
|
In this state, a PTP Port behaves as it would if it were in |
|
the master state except that it does not place certain |
|
classes of PTP messages on the PTP Communication Path |
|
associated with the PTP Port."; |
|
} |
|
enum master { |
|
value 6; |
|
description |
|
"The PTP Port is the source of time on the |
|
PTP Communication Path."; |
|
} |
|
enum passive { |
|
value 7; |
|
description |
|
"The PTP Port is not the source of time on the |
|
PTP Communication Path nor does it synchronize to a |
|
Master Clock (receive time). The PTP Port can potentially |
|
change to slave when PTP Instances are added or deleted, |
|
PTP Instance characteristics change, or connection |
|
topology changes."; |
|
} |
|
enum uncalibrated { |
|
value 8; |
|
description |
|
"The PTP Port is anticipating a change to the slave state, |
|
but it has not yet satisfied all requirements |
|
(implementation or PTP Profile) necessary to ensure |
|
complete synchronization. For example, an implementation |
|
might require a minimum number of PTP Sync messages |
|
in order to completely synchronize its servo algorithm."; |
|
} |
|
enum slave { |
|
value 9; |
|
description |
|
"The PTP Port synchronizes to the PTP Port on the |
|
PTP Communication Path that is in the master state |
|
(i.e. receives time)."; |
|
} |
|
} |
|
description |
|
"Enumeration for the state of the protocol engine associated |
|
with the PTP Port. Values for this enumeration are specified |
|
by the IEEE 1588 standard exclusively."; |
|
reference |
|
"8.2.15.3.1 of IEEE Std 1588-2019 |
|
9.2.5 of IEEE Std 1588-2019"; |
|
} |
|
|
|
typedef delay-mechanism { |
|
type enumeration { |
|
enum e2e { |
|
value 1; |
|
description |
|
"The PTP Port is configured to use the delay |
|
request-response mechanism."; |
|
} |
|
enum p2p { |
|
value 2; |
|
description |
|
"The PTP Port is configured to use the peer-to-peer |
|
delay mechanism."; |
|
} |
|
enum no-mechanism { |
|
value 254; |
|
description |
|
"The PTP Port does not implement the delay mechanism. |
|
This value shall not be used except when the applicable |
|
PTP Profile specifies either: |
|
1) that the PTP Instance only supports frequency |
|
transfer (syntonization) and that neither path delay |
|
mechanism is to be used or |
|
2) that the PTP Instance participates in time transfer, |
|
but the system accuracy requirements are such that, |
|
for a segment of the system path, delays can be neglected |
|
allowing PTP Instances in that portion of the PTP Network |
|
to use the no-mechanism value."; |
|
} |
|
enum common-p2p { |
|
value 3; |
|
description |
|
"The PTP Port is configured to use the Common Mean Link |
|
Delay Service option."; |
|
} |
|
enum special { |
|
value 4; |
|
description |
|
"Special Ports do not use either delay mechanism."; |
|
} |
|
} |
|
description |
|
"Enumeration for the path delay measuring mechanism. |
|
Values for this enumeration are specified by the IEEE 1588 |
|
standard exclusively."; |
|
reference |
|
"8.2.15.4.4 of IEEE Std 1588-2019"; |
|
} |
|
|
|
typedef l1sync-state { |
|
type enumeration { |
|
enum disabled { |
|
value 1; |
|
description |
|
"L1Sync is not enabled on this PTP Port, |
|
or the event L1SYNC_RESET has occurred."; |
|
} |
|
enum idle { |
|
value 2; |
|
description |
|
"L1Sync is enabled on this PTP Port. The PTP Port |
|
sends messages with the L1_SYNC TLV. Initialization |
|
occurs in this state."; |
|
} |
|
enum link-alive { |
|
value 3; |
|
description |
|
"The PTP Port sends messages with the L1_SYNC TLV. |
|
The PTP Port is receiving valid L1_SYNC TLV |
|
from a peer PTP Port."; |
|
} |
|
enum config-match { |
|
value 4; |
|
description |
|
"The PTP Port sends messages with the L1_SYNC TLV. |
|
The PTP Port has a compatible configuration profile |
|
when compared with its peer PTP Port configuration |
|
profile received in the L1_SYNC TLV."; |
|
} |
|
enum l1-sync-up { |
|
value 5; |
|
description |
|
"The PTP Port sends messages with the L1_SYNC TLV. |
|
The relationship required by configuration is currently |
|
in place. Synchronization enhancements are performed."; |
|
} |
|
} |
|
description |
|
"Enumeration for states of an L1Sync state machine associated |
|
with an L1Sync port. |
|
Values for this enumeration are specified by the IEEE 1588 |
|
standard exclusively."; |
|
reference |
|
"L.5.3.5 of IEEE Std 1588-2019 |
|
L.7.2 of IEEE Std 1588-2019"; |
|
} |
|
|
|
grouping timestamp { |
|
description |
|
"The IEEE Std 1588 Timestamp type represents a |
|
positive time with respect to the epoch |
|
of PTP Instance Time. |
|
This type is represented in YANG as a grouping, |
|
with leafs seconds-field and nanoseconds-field."; |
|
reference |
|
"5.3.3 of IEEE Std 1588-2019 |
|
8.2.6.3 of IEEE Std 1588-2019"; |
|
|
|
leaf seconds-field { |
|
type uint64 { |
|
range "0..281474976710655"; |
|
} |
|
description |
|
"The seconds-field member is the integer portion |
|
of the timestamp in units of seconds. Since the |
|
IEEE 1588 type is UInteger48, only 48 bits |
|
are represented in YANG."; |
|
} |
|
|
|
leaf nanoseconds-field { |
|
type uint32; |
|
description |
|
"The nanoseconds-field member is the fractional |
|
portion of the timestamp in units of nanoseconds."; |
|
} |
|
} |
|
grouping port-identity { |
|
description |
|
"The IEEE Std 1588 PortIdentity type identifies a |
|
PTP Port or Link Port."; |
|
reference |
|
"5.3.5 of IEEE Std 1588-2019"; |
|
|
|
leaf clock-identity { |
|
type clock-identity; |
|
description |
|
"IEEE Std 1588 clockIdentity."; |
|
} |
|
|
|
leaf port-number { |
|
type uint16; |
|
description |
|
"IEEE Std 1588 portNumber. |
|
If portNumber is unavailable, the value 0 can |
|
be used, or this leaf can be omitted from the |
|
operational datastore."; |
|
reference |
|
"7.5.2.3 of IEEE Std 1588-2019"; |
|
} |
|
} |
|
|
|
grouping port-address { |
|
description |
|
"The IEEE Std 1588 PortAddress type represents the |
|
protocol address of a PTP Port."; |
|
reference |
|
"5.3.6 of IEEE Std 1588-2019"; |
|
|
|
leaf network-protocol { |
|
type identityref { |
|
base network-protocol; |
|
} |
|
description |
|
"Protocol used by a PTP Instance to transport |
|
PTP messages."; |
|
} |
|
|
|
leaf address-length { |
|
type uint16; |
|
description |
|
"Number of octets in address-field."; |
|
} |
|
|
|
leaf address-field { |
|
type string { |
|
pattern "[0-9A-F]{2}(-[0-9A-F]{2})*"; |
|
} |
|
description |
|
"The protocol address of a PTP Port in the format |
|
defined by the mapping annex of the protocol as |
|
identified by the network-protocol leaf. |
|
The most significant octet of the address-field |
|
is mapped into the octet of the address-field |
|
member with index 0. |
|
Each octet is represented in YANG as a pair of |
|
hexadecimal characters, using uppercase for a letter. |
|
Each octet in the array is separated by the dash |
|
character."; |
|
} |
|
} |
|
|
|
grouping clock-quality { |
|
description |
|
"Quality of a PTP Instance, which contains IEEE Std 1588 |
|
clockClass, clockAccuracy and offsetScaledLogVariance. |
|
PTP Instances with better quality are more likely to |
|
become the Grandmaster PTP Instance."; |
|
reference |
|
"5.3.7 of IEEE Std 1588-2019 |
|
8.2.1.3.1 of IEEE Std 1588-2019"; |
|
|
|
leaf clock-class { |
|
type identityref { |
|
base clock-class; |
|
} |
|
description |
|
"The clockClass denotes the traceability of the time |
|
or frequency distributed by the clock."; |
|
reference |
|
"7.6.2.5 of IEEE Std 1588-2019 |
|
8.2.1.3.1.2 of IEEE Std 1588-2019"; |
|
} |
|
|
|
leaf clock-accuracy { |
|
type identityref { |
|
base clock-accuracy; |
|
} |
|
description |
|
"The clockAccuracy indicates the accuracy of the clock |
|
(Local Clock of the PTP Instance)."; |
|
reference |
|
"7.6.2.6 of IEEE Std 1588-2019 |
|
8.2.1.3.1.3 of IEEE Std 1588-2019"; |
|
} |
|
|
|
leaf offset-scaled-log-variance { |
|
type uint16; |
|
description |
|
"The offsetScaledLogVariance indicates the stability of the |
|
clock (Local Clock of the PTP Instance). It provides an |
|
estimate of the variations of the clock from a linear timescale |
|
when it is not synchronized to another clock using the protocol."; |
|
reference |
|
"7.6.2.7 of IEEE Std 1588-2019"; |
|
} |
|
} |
|
|
|
grouping fault-record { |
|
description |
|
"Record of a fault in the PTP Instance. |
|
|
|
NOTE - IEEE Std 1588 specifies a member |
|
faultRecordLength for this type, which is needed |
|
for PTP Management Messages, but is not needed for |
|
YANG management."; |
|
reference |
|
"5.3.10 of IEEE Std 1588-2019"; |
|
|
|
container time { |
|
description |
|
"Time the fault occurred as indicated by the Timestamping |
|
Clock of the PTP Instance. A value of all 1's for the |
|
fields in the timestamp shall indicate that the occurrence |
|
time is not available."; |
|
uses timestamp; |
|
} |
|
|
|
leaf severity { |
|
type fault-severity; |
|
description |
|
"Severity of the fault."; |
|
} |
|
|
|
leaf name { |
|
type string; |
|
description |
|
"Name for the fault, unique within the implementation."; |
|
} |
|
|
|
leaf value { |
|
type string; |
|
description |
|
"Any value that may be associated with the fault that is |
|
necessary for fault diagnosis."; |
|
} |
|
|
|
leaf description { |
|
type string; |
|
description |
|
"Any supplementary description of the fault."; |
|
} |
|
} |
|
|
|
grouping communication-capabilities { |
|
description |
|
"Multicast/unicast capabilities for a port |
|
and message type. |
|
These attributes report the values that are transmitted |
|
by this PTP Instance to other PTP Instance(s) in the |
|
network to indicate the multicast/unicast capabilities |
|
for a port and message type. Therefore, the context is |
|
protocol communication, and not YANG configuration."; |
|
reference |
|
"5.3.12 of IEEE Std 1588-2019 |
|
8.2.25 of IEEE Std 1588-2019 |
|
16.9.2 of IEEE Std 1588-2019"; |
|
|
|
leaf multicast-capable { |
|
type boolean; |
|
description |
|
"True if the PTP Port is capable of transmitting |
|
PTP messages using multicast communication, |
|
otherwise it shall be false."; |
|
} |
|
|
|
leaf unicast-capable { |
|
type boolean; |
|
description |
|
"True if the PTP Port is capable of transmitting |
|
PTP messages using unicast communication, |
|
otherwise it shall be false."; |
|
} |
|
|
|
leaf unicast-negotiation-capable { |
|
type boolean; |
|
description |
|
"True if the PTP Port is capable negotiating unicast |
|
communication using the unicast negotiation feature, |
|
and unicast-negotiation-port-ds/enable is true, |
|
otherwise the value of shall be false."; |
|
} |
|
|
|
leaf unicast-negotiation-required { |
|
type boolean; |
|
description |
|
"True if the value of unicast-negotiation-capable is true |
|
and the use of the unicast negotiation feature is |
|
required by the implementation, otherwise the value |
|
shall be false."; |
|
} |
|
} |
|
|
|
grouping ptp-instance-performance-parameters { |
|
description |
|
"PTP Instance Performance Monitoring Parameters, |
|
related to the PTP Port or Link Port in the |
|
slave state."; |
|
reference |
|
"Table J.1 of IEEE Std 1588-2019"; |
|
|
|
leaf average-master-slave-delay { |
|
type time-interval; |
|
description |
|
"Average of the MasterSlaveDelay for this interval."; |
|
} |
|
leaf minimum-master-slave-delay { |
|
type time-interval; |
|
description |
|
"Minimum of the MasterSlaveDelay for this interval."; |
|
} |
|
leaf maximum-master-slave-delay { |
|
type time-interval; |
|
description |
|
"Maximum of the MasterSlaveDelay for this interval."; |
|
} |
|
leaf stddev-master-slave-delay { |
|
type time-interval; |
|
description |
|
"StdDev of the MasterSlaveDelay for this interval."; |
|
} |
|
leaf average-slave-master-delay { |
|
type time-interval; |
|
description |
|
"Average of the SlaveMasterDelay for this interval."; |
|
} |
|
leaf minimum-slave-master-delay { |
|
type time-interval; |
|
description |
|
"Minimum of the SlaveMasterDelay for this interval."; |
|
} |
|
leaf maximum-slave-master-delay { |
|
type time-interval; |
|
description |
|
"Maximum of the SlaveMasterDelay for this interval."; |
|
} |
|
leaf stddev-slave-master-delay { |
|
type time-interval; |
|
description |
|
"StdDev of the SlaveMasterDelay for this interval."; |
|
} |
|
leaf average-mean-path-delay { |
|
type time-interval; |
|
description |
|
"Average of the <meanPathDelay> this interval."; |
|
} |
|
leaf minimum-mean-path-delay { |
|
type time-interval; |
|
description |
|
"Minimum of the <meanPathDelay> for this interval."; |
|
} |
|
leaf maximum-mean-path-delay { |
|
type time-interval; |
|
description |
|
"Maximum of the <meanPathDelay> for this interval."; |
|
} |
|
leaf stddev-mean-path-delay { |
|
type time-interval; |
|
description |
|
"StdDev of the <meanPathDelay> for this interval."; |
|
} |
|
leaf average-offset-from-master { |
|
type time-interval; |
|
description |
|
"Average of the <offsetFromMaster> for this interval."; |
|
} |
|
leaf minimum-offset-from-master { |
|
type time-interval; |
|
description |
|
"Minimum of the <offsetFromMaster> for this interval."; |
|
} |
|
leaf maximum-offset-from-master { |
|
type time-interval; |
|
description |
|
"Maximum of the <offsetFromMaster> for this interval."; |
|
} |
|
leaf stddev-offset-from-master { |
|
type time-interval; |
|
description |
|
"StdDev of the <offsetFromMaster> for this interval."; |
|
} |
|
} |
|
|
|
grouping ptp-port-performance-parameters-peer-delay { |
|
description |
|
"PTP Port Performance Monitoring Parameters, |
|
related to the PTP Port or Link Port using the |
|
peer-to-peer delay mechanism."; |
|
reference |
|
"Table J.2 of IEEE Std 1588-2019"; |
|
|
|
leaf average-mean-link-delay { |
|
type time-interval; |
|
description |
|
"Average of the <meanLinkDelay> for this interval."; |
|
} |
|
leaf min-mean-link-delay { |
|
type time-interval; |
|
description |
|
"Minimum of the <meanLinkDelay> for this interval."; |
|
} |
|
leaf max-mean-link-delay { |
|
type time-interval; |
|
description |
|
"Maximum of the <meanLinkDelay> for this interval."; |
|
} |
|
leaf stddev-mean-link-delay { |
|
type time-interval; |
|
description |
|
"StdDev of the <meanLinkDelay> for this interval."; |
|
} |
|
} |
|
|
|
grouping additional-performance-parameters { |
|
description |
|
"Additional Performance Monitoring Parameters, |
|
intended to complement ptp-instance-performance-parameters."; |
|
reference |
|
"Table J.3 of IEEE Std 1588-2019"; |
|
|
|
leaf announce-tx { |
|
type yang:zero-based-counter32; |
|
description |
|
"Counter indicating the number of Announce |
|
messages that have been transmitted for this |
|
interval."; |
|
} |
|
leaf announce-rx { |
|
type yang:zero-based-counter32; |
|
description |
|
"Counter indicating the number of Announce |
|
messages from the current GM that have been |
|
received for this interval."; |
|
} |
|
leaf announce-foreign-rx { |
|
type yang:zero-based-counter32; |
|
description |
|
"Counter indicating the total number of Announce |
|
messages from the foreign Masters that have been |
|
received for this interval."; |
|
} |
|
leaf sync-tx { |
|
type yang:zero-based-counter32; |
|
description |
|
"Counter indicating the number of Sync |
|
messages that have been transmitted for this |
|
interval."; |
|
} |
|
leaf sync-rx { |
|
type yang:zero-based-counter32; |
|
description |
|
"Counter indicating the number of Sync |
|
messages that have been received for this |
|
interval."; |
|
} |
|
leaf follow-up-tx { |
|
type yang:zero-based-counter32; |
|
description |
|
"Counter indicating the number of Follow_Up |
|
messages that have been transmitted for this |
|
interval."; |
|
} |
|
leaf follow-up-rx { |
|
type yang:zero-based-counter32; |
|
description |
|
"Counter indicating the number of Follow_Up |
|
messages that have been received for this |
|
interval."; |
|
} |
|
leaf delay-req-tx { |
|
type yang:zero-based-counter32; |
|
description |
|
"Counter indicating the number of Delay_Req |
|
messages that have been transmitted for this |
|
interval."; |
|
} |
|
leaf delay-req-rx { |
|
type yang:zero-based-counter32; |
|
description |
|
"Counter indicating the number of Delay_Req |
|
messages that have been received for this |
|
interval."; |
|
} |
|
leaf delay-resp-tx { |
|
type yang:zero-based-counter32; |
|
description |
|
"Counter indicating the number of Delay_Resp |
|
messages that have been transmitted for this |
|
interval."; |
|
} |
|
leaf delay-resp-rx { |
|
type yang:zero-based-counter32; |
|
description |
|
"Counter indicating the number of Delay_Resp |
|
messages that have been received for this |
|
interval."; |
|
} |
|
leaf pdelay-req-tx { |
|
type yang:zero-based-counter32; |
|
description |
|
"Counter indicating the number of Pdelay_Req |
|
messages that have been transmitted for this |
|
interval."; |
|
} |
|
leaf pdelay-req-rx { |
|
type yang:zero-based-counter32; |
|
description |
|
"Counter indicating the number of Pdelay_Req |
|
messages that have been received for this |
|
interval."; |
|
} |
|
leaf pdelay-resp-tx { |
|
type yang:zero-based-counter32; |
|
description |
|
"Counter indicating the number of Pdelay_Resp |
|
messages that have been transmitted for this |
|
interval."; |
|
} |
|
leaf pdelay-resp-rx { |
|
type yang:zero-based-counter32; |
|
description |
|
"Counter indicating the number of Pdelay_Resp |
|
messages that have been received for this |
|
interval."; |
|
} |
|
leaf pdelay-resp-follow-up-tx { |
|
type yang:zero-based-counter32; |
|
description |
|
"Counter indicating the number of |
|
Pdelay_Resp_Follow_Up messages that have |
|
been transmitted for this interval."; |
|
} |
|
leaf pdelay-resp-follow-up-rx { |
|
type yang:zero-based-counter32; |
|
description |
|
"Counter indicating the number of |
|
Pdelay_Resp_Follow_Up messages that have |
|
been transmitted for this interval."; |
|
} |
|
} |
|
|
|
grouping clock-performance-monitoring-data-record { |
|
description |
|
"The IEEE Std 1588 ClockPerformanceMonitoringDataRecord |
|
type is used for PTP Instance performance monitoring |
|
statistics."; |
|
reference |
|
"Table J.4.1 of IEEE Std 1588-2019"; |
|
|
|
leaf index { |
|
type uint16; |
|
description |
|
"Index to each record in the list (0-99)."; |
|
} |
|
|
|
leaf measurement-valid { |
|
type boolean; |
|
description |
|
"The measurement-valid flag shall indicate the data |
|
can be correctly interpreted. Validity is |
|
implementation specific and may be defined in |
|
a PTP Profile. If for some periods the data is not |
|
valid for part of the data collection interval |
|
(e.g. the clock is not locked), a specific |
|
implementation can report the statistics only for |
|
valid data and with measurement-valid true. |
|
|
|
This flag applies to all parameters for a |
|
given measurement period, including PTP Port |
|
and Link Port related."; |
|
} |
|
|
|
leaf period-complete { |
|
type boolean; |
|
description |
|
"The period-complete flag shall indicate that |
|
measurements were performed during the entire |
|
period (15-minute or 24-hour). For example, |
|
if the PTP Instance is disabled for five minutes |
|
of a 15-minute period, period-complete is false. |
|
The period-complete flag is not related to the |
|
validity of measurements that were performed. |
|
|
|
This flag applies to all parameters for a |
|
given measurement period, including PTP Port |
|
and Link Port related."; |
|
} |
|
|
|
leaf pm-time { |
|
type yang:timestamp; |
|
description |
|
"Time of the beginning of the measurement record. |
|
This leaf's type is YANG timestamp, which is based |
|
on system time (also known as local time). System |
|
time is an unsigned integer in units of |
|
10 milliseconds, using an epoch defined by the |
|
implementation (typically time of boot-up)."; |
|
reference |
|
"IETF RFC 6991"; |
|
} |
|
|
|
uses ptp-instance-performance-parameters; |
|
} |
|
|
|
grouping port-performance-monitoring-peer-delay-data-record { |
|
description |
|
"The IEEE Std 1588 PortPerformanceMonitoringPeerDelayDataRecord |
|
type is used for the PTP Port related performance monitoring |
|
statistics for the peer-to-peer delay measurement mechanism."; |
|
reference |
|
"Table J.4.1 of IEEE Std 1588-2019"; |
|
|
|
leaf index { |
|
type uint16; |
|
description |
|
"Index to each record in the list (0-99)."; |
|
} |
|
|
|
leaf pm-time { |
|
type yang:timestamp; |
|
description |
|
"Time of the beginning of the measurement record. |
|
This leaf's type is YANG timestamp, which is based |
|
on system time (also known as local time). System |
|
time is an unsigned integer in units of |
|
10 milliseconds, using an epoch defined by the |
|
implementation (typically time of boot-up)."; |
|
reference |
|
"RFC 6991"; |
|
} |
|
|
|
uses ptp-port-performance-parameters-peer-delay; |
|
} |
|
|
|
grouping port-performance-monitoring-data-record { |
|
description |
|
"The IEEE Std 1588 PortPerformanceMonitoringDataRecord |
|
type is used for additional PTP Port related performance |
|
monitoring statistics."; |
|
reference |
|
"Table J.4.1 of IEEE Std 1588-2019"; |
|
|
|
leaf index { |
|
type uint16; |
|
description |
|
"Index to each record in the list (0-99)."; |
|
} |
|
|
|
leaf pm-time { |
|
type yang:timestamp; |
|
description |
|
"Time of the beginning of the measurement record. |
|
This leaf's type is YANG timestamp, which is based |
|
on system time (also known as local time). System |
|
time is an unsigned integer in units of |
|
10 milliseconds, using an epoch defined by the |
|
implementation (typically time of boot-up)."; |
|
reference |
|
"RFC 6991"; |
|
} |
|
|
|
uses additional-performance-parameters; |
|
} |
|
|
|
container ptp { |
|
description |
|
"Contains all YANG nodes for the PTP data sets. |
|
This hierarchy can be augmented with YANG nodes |
|
for a specific vendor or PTP Profile."; |
|
|
|
container instances { |
|
description |
|
"YANG container that is used to get all PTP Instances. |
|
YANG does not allow get of all elements in a YANG list, |
|
so a YANG container wrapping the YANG list is provided for |
|
that purpose. The naming convention uses plural for the |
|
wrapping YANG container, and singular for the YANG list."; |
|
|
|
list instance { |
|
|
|
key "instance-index"; |
|
|
|
description |
|
"List of one or more PTP Instances in the product (PTP Node). |
|
Each PTP Instance represents a distinct instance of PTP |
|
implementation (i.e. distinct Ordinary Clock, Boundary Clock, |
|
or Transparent Clock), maintaining a distinct time. |
|
PTP Instances may be created or deleted dynamically in |
|
implementations that support dynamic create/delete."; |
|
reference |
|
"8.1.4.2 of IEEE Std 1588-2019"; |
|
|
|
leaf instance-index { |
|
type uint32; |
|
description |
|
"The instance list is indexed using a number that is |
|
unique per PTP Instance within the PTP Node, applicable |
|
to the management context only (i.e. not used in PTP |
|
messages). The domain-number of the PTP Instance is not |
|
used as the key to instance-list, since it is possible |
|
for a PTP Node to contain multiple PTP Instances using |
|
the same domain-number."; |
|
reference |
|
"8.1.4.2 of IEEE Std 1588-2019"; |
|
} |
|
|
|
container default-ds { |
|
description |
|
"The default data set of the PTP Instance."; |
|
reference |
|
"8.2.1 of IEEE Std 1588-2019"; |
|
|
|
leaf two-step-flag { |
|
type boolean; |
|
config false; |
|
status deprecated; |
|
description |
|
"When set to true, the PTP Instance is two-step, |
|
otherwise the PTP Instance is one-step. |
|
This data set member is no longer used. However, |
|
the twoStepFlag of the PTP common header is used. |
|
One step or two step egress behavior is allowed to |
|
be specified per PTP Port, or per PTP Instance. |
|
Management of the one/two step egress behavior of |
|
a PTP Port is not provided by this standard, but |
|
can be specified as extensions to the data sets by a |
|
PTP Profile or a product specification."; |
|
reference |
|
"8.2.1.2.1 of IEEE Std 1588-2019"; |
|
} |
|
|
|
leaf clock-identity { |
|
type clock-identity; |
|
config false; |
|
description |
|
"The IEEE Std 1588 clockIdentity of the PTP Instance."; |
|
reference |
|
"8.2.1.2.2 of IEEE Std 1588-2019"; |
|
} |
|
|
|
leaf number-ports { |
|
type uint16; |
|
config false; |
|
description |
|
"The number of PTP Ports on the PTP Instance. |
|
For an Ordinary Clock, the value shall be one."; |
|
reference |
|
"8.2.1.2.3 of IEEE Std 1588-2019"; |
|
} |
|
|
|
container clock-quality { |
|
description |
|
"The IEEE Std 1588 clockQuality of the PTP Instance. |
|
PTP Instances with better quality are more likely to |
|
become the Grandmaster PTP Instance."; |
|
reference |
|
"8.2.1.3.1 of IEEE Std 1588-2019"; |
|
uses clock-quality; |
|
} |
|
|
|
leaf priority1 { |
|
type uint8; |
|
description |
|
"The IEEE Std 1588 priority1 of the PTP Instance. |
|
Since priority1 is one of the first comparisons |
|
performed by the Best Master Clock Algorithm (BMCA), |
|
this leaf's configuration can be used to explicitly |
|
select a Grandmaster PTP Instance. |
|
Lower values take precedence. |
|
The value of priority1 shall be configurable to any |
|
value in the range 0 to 255, unless restricted by |
|
limits established by the applicable PTP Profile."; |
|
reference |
|
"7.6.2.3 of IEEE Std 1588-2019 |
|
8.2.1.4.1 of IEEE Std 1588-2019"; |
|
} |
|
|
|
leaf priority2 { |
|
type uint8; |
|
description |
|
"The IEEE Std 1588 priority2 of the PTP Instance. |
|
The priority2 member is compared by the Best Master |
|
Clock Algorithm (BMCA) after priority1 and clockQuality. |
|
Lower values take precedence. |
|
The value of priority2 shall be configurable to any |
|
value in the range 0 to 255, unless restricted by |
|
limits established by the applicable PTP Profile."; |
|
reference |
|
"7.6.2.4 of IEEE Std 1588-2019 |
|
8.2.1.4.2 of IEEE Std 1588-2019"; |
|
} |
|
|
|
leaf domain-number { |
|
type uint8; |
|
description |
|
"The IEEE Std 1588 domainNumber of the PTP Instance. |
|
A domain consists of one or more PTP Instances |
|
communicating with each other as defined by the |
|
protocol. A domain shall define the scope of PTP message |
|
communication, state, operations, data sets, and |
|
timescale. Therefore, each domain represents a distinct |
|
time. |
|
Within a PTP Network, a domain is identified by two |
|
data set members: domainNumber and sdoId. |
|
The domainNumber is the primary mechanism for end users |
|
and system integrators to isolate the operation of a |
|
PTP Instance from PTP messages used in other domains. |
|
The value of the domainNumber shall be configurable |
|
to values permitted in IEEE Std 1588, unless the |
|
allowed values are further restricted by the applicable |
|
PTP Profile."; |
|
reference |
|
"7.1 of IEEE Std 1588-2019 |
|
8.2.1.4.3 of IEEE Std 1588-2019"; |
|
} |
|
|
|
leaf slave-only { |
|
type boolean; |
|
description |
|
"The value of slave-only shall be true if the |
|
PTP Instance is a slave-only PTP Instance |
|
(false for non-slave-only). |
|
The slave-only member can be true for Ordinary Clocks |
|
only. |
|
When slave-only is true, the PTP Instance implements |
|
special behavior in the context of the state machines |
|
that determine port-state."; |
|
reference |
|
"8.2.1.4.4 of IEEE Std 1588-2019 |
|
9.2.2.1 of IEEE Std 1588-2019"; |
|
} |
|
|
|
leaf sdo-id { |
|
type uint16 { |
|
range "0..4095"; |
|
} |
|
description |
|
"The IEEE Std 1588 sdoId of the PTP Instance. |
|
A domain consists of one or more PTP Instances |
|
communicating with each other as defined by the |
|
protocol. A domain shall define the scope of PTP message |
|
communication, state, operations, data sets, and |
|
timescale. Therefore, each domain represents a distinct |
|
time. |
|
Within a PTP Network, a domain is identified by two |
|
data set members: domainNumber and sdoId. |
|
The sdoId of a domain is a 12-bit integer in the |
|
closed range 0 to 4095. |
|
The sdoId member is the primary mechanism for providing |
|
isolation of PTP Instances operating a PTP Profile |
|
specified by a Standards Development Organization (SDO), |
|
from other PTP Instances operating a PTP Profile |
|
specified by a different SDO."; |
|
reference |
|
"7.1 of IEEE Std 1588-2019 |
|
8.2.1.4.5 of IEEE Std 1588-2019 |
|
16.5 of IEEE Std 1588-2019"; |
|
} |
|
|
|
container current-time { |
|
description |
|
"For management read, this member shall return the |
|
current value of the PTP Instance Time. |
|
When management write is supported, this member |
|
shall set the PTP Instance Time. |
|
Time originates in the Grandmaster PTP Instance and |
|
is distributed by PTP to other PTP Instances in |
|
the domain. |
|
NOTE 1 — The time in the Grandmaster PTP Instance |
|
is normally determined by interacting with a primary |
|
reference, e.g., GPS, by means outside the scope of |
|
this standard. |
|
NOTE 2 — When this member is used to set time in a |
|
PTP Instance other than the Grandmaster PTP Instance, |
|
the PTP Node can return a management error. |
|
NOTE 3 — If the time is set in a PTP Instance other |
|
than the Grandmaster PTP Instance, it will be |
|
overwritten by the operation of the protocol and will |
|
therefore exist only as a transient."; |
|
reference |
|
"8.2.1.5.1 of IEEE Std 1588-2019"; |
|
uses timestamp; |
|
} |
|
|
|
leaf instance-enable { |
|
type boolean; |
|
description |
|
"Indicates if the PTP Instance is enabled for |
|
PTP operation. |
|
When management write is supported: |
|
- Write of the value true shall cause the PTP Instance |
|
to initialize, only if the value was previously false. |
|
- Write of the value false shall immediately disable |
|
operation of the PTP Instance (i.e. analogous to power |
|
off). |
|
If this leaf is not supported, the PTP Instance shall be |
|
specified-by-design to be enabled (true)."; |
|
reference |
|
"8.2.1.5.2 of IEEE Std 1588-2019"; |
|
} |
|
|
|
leaf external-port-config-enable { |
|
if-feature external-port-config; |
|
type boolean; |
|
description |
|
"This value determines whether the external port |
|
configuration option is in the disabled state (false) |
|
or enabled state (true). |
|
When this value is false, each PTP Port's state |
|
is determined by PTP state machines, including |
|
the Best Master Clock Algorithm (BMCA). |
|
When this value is true, each PTP Port's state |
|
is configured externally, and PTP state machines |
|
are effectively disabled. External configuration |
|
of PTP Port state can be accomplished using the |
|
desiredState member of the port (i.e., |
|
../ports/port[]/external-port-config-port-ds/ |
|
desired-state)."; |
|
reference |
|
"8.2.1.5.3 of IEEE Std 1588-2019 |
|
17.6 of IEEE Std 1588-2019"; |
|
} |
|
|
|
leaf max-steps-removed { |
|
type uint8 { |
|
range "2..255"; |
|
} |
|
description |
|
"If the value of stepsRemoved of an Announce message |
|
is greater than or equal to the value of this |
|
max-steps-removed leaf, the Announce message is not |
|
considered in the operation of the |
|
Best Master Clock Algorithm (BMCA). |
|
The value shall be in the closed range 2 to 255. |
|
If the leaf is not supported, the value used shall |
|
be 255."; |
|
reference |
|
"8.2.1.5.4 of IEEE Std 1588-2019 |
|
9.3.2.5 of IEEE Std 1588-2019"; |
|
} |
|
|
|
leaf instance-type { |
|
type instance-type; |
|
description |
|
"The type of PTP Instance. |
|
This leaf is read-only unless support for write is |
|
explicitly specified by the applicable PTP Profile or |
|
product specification."; |
|
reference |
|
"8.2.1.5.5 of IEEE Std 1588-2019"; |
|
} |
|
} |
|
|
|
container current-ds { |
|
description |
|
"Provides current data from operation |
|
of the protocol."; |
|
reference |
|
"8.2.2 of IEEE Std 1588-2019"; |
|
|
|
leaf steps-removed { |
|
type uint16; |
|
config false; |
|
description |
|
"The number of PTP Communication Paths traversed |
|
between this PTP Instance and the Grandmaster |
|
PTP Instance."; |
|
reference |
|
"8.2.2.2 of IEEE Std 1588-2019"; |
|
} |
|
|
|
leaf offset-from-master { |
|
type time-interval; |
|
config false; |
|
description |
|
"The current value of the time difference between |
|
a Master PTP Instance and a Slave PTP Instance as |
|
computed by the Slave PTP Instance. |
|
NOTE - When a PTP Profile requires a Boundary |
|
Clock to transfer offset information internally |
|
from Slave PTP Port to Master PTP Port(s), this value |
|
effectively returns the offset from the Grandmaster |
|
PTP Instance."; |
|
reference |
|
"8.2.2.3 of IEEE Std 1588-2019"; |
|
} |
|
|
|
leaf mean-delay { |
|
type time-interval; |
|
config false; |
|
description |
|
"The current value of the mean propagation time between |
|
a Master PTP Instance and a Slave PTP Instance as |
|
computed by the Slave PTP Instance. |
|
If the PTP Instance has no PTP Port in slave or |
|
uncalibrated state, this returns zero. |
|
Otherwise, the Slave PTP Port returns this value |
|
depending on its delay-mechanism: |
|
e2e: mean propagation time over the |
|
PTP Communication Path, i.e. <meanPathDelay> |
|
p2p or common-p2p: mean propagation time over the |
|
PTP Link, i.e. <meanLinkDelay> |
|
disabled or special: zero"; |
|
reference |
|
"7.4.2 of IEEE Std 1588-2019 |
|
8.2.2.4 of IEEE Std 1588-2019"; |
|
} |
|
|
|
leaf mean-path-delay { |
|
type time-interval; |
|
config false; |
|
status deprecated; |
|
description |
|
"In IEEE Std 1588-2008, currentDS.meanDelay was called |
|
currentDS.meanPathDelay. While the specification of |
|
this member is retained in the current standard, the |
|
member is renamed to currentDS.meanDelay. This change |
|
is consistent with other changes that ensure clarity |
|
and consistency of naming, where |
|
- “path” is associated with the |
|
request-response mechanism |
|
- “link” is associated with the |
|
peer-to-peer delay mechanism"; |
|
reference |
|
"8.2.2.4 of IEEE Std 1588-2008"; |
|
} |
|
|
|
leaf synchronization-uncertain { |
|
type boolean; |
|
config false; |
|
description |
|
"This boolean is true when synchronization is |
|
uncertain (e.g., not within specification) |
|
in either the Parent PTP Port or this |
|
PTP Instance. The value is copied from a |
|
received Announce message to transmitted Announce |
|
message, such that it reflects uncertain |
|
synchronization from this PTP Instance to the |
|
Grandmaster. Performance metrics for determining |
|
uncertainty are specified by the applicable |
|
PTP Profile."; |
|
reference |
|
"8.2.2.5 of IEEE Std 1588-2019"; |
|
} |
|
} |
|
|
|
container parent-ds { |
|
description |
|
"Provides data learned from the parent of this |
|
PTP Instance (i.e. master port on the other side |
|
of the path/link)."; |
|
reference |
|
"8.2.3 of IEEE Std 1588-2019"; |
|
|
|
container parent-port-identity { |
|
config false; |
|
description |
|
"The IEEE Std 1588 portIdentity of the PTP Port on the |
|
Master PTP Instance that issues the Sync messages |
|
used in synchronizing this PTP Instance."; |
|
reference |
|
"8.2.3.2 of IEEE Std 1588-2019"; |
|
uses port-identity; |
|
} |
|
|
|
leaf parent-stats { |
|
type boolean; |
|
config false; |
|
description |
|
"When set to true, the values of |
|
parent-ds/observed-parent-offset-scaled-log-variance |
|
and |
|
parent-ds/observed-parent-clock-phase-change-rate |
|
have been measured and are valid."; |
|
reference |
|
"8.2.3.3 of IEEE Std 1588-2019"; |
|
} |
|
|
|
leaf observed-parent-offset-scaled-log-variance { |
|
type uint16; |
|
config false; |
|
description |
|
"Estimate of the variance of the phase offset of the |
|
Local PTP Clock of the Parent PTP Instance as measured |
|
with respect to the Local PTP Clock in the Slave PTP |
|
Instance. This measurement is optional, but if not made, |
|
the value of parent-ds/parent-stats shall be false."; |
|
reference |
|
"7.6.3.3 of IEEE Std 1588-2019 |
|
7.6.3.5 of IEEE Std 1588-2019 |
|
8.2.3.4 of IEEE Std 1588-2019"; |
|
} |
|
|
|
leaf observed-parent-clock-phase-change-rate { |
|
type int32; |
|
config false; |
|
description |
|
"Estimate of the phase change rate of the |
|
Local PTP Clock of the Parent PTP Instance as measured |
|
by the Slave PTP Instance using its Local PTP Clock. |
|
If the estimate exceeds the capacity of its data type, |
|
this value shall be set to 7FFF FFFF (base 16) or |
|
8000 0000 (base 16), as appropriate. A positive sign |
|
indicates that the phase change rate in the |
|
Parent PTP Instance is greater than that in the |
|
Slave PTP Instance. The measurement of this value is |
|
optional, but if not measured, the value of |
|
parent-ds/parent-stats shall be false."; |
|
reference |
|
"7.6.4.4 of IEEE Std 1588-2019 |
|
8.2.3.5 of IEEE Std 1588-2019"; |
|
} |
|
|
|
leaf grandmaster-identity { |
|
type clock-identity; |
|
config false; |
|
description |
|
"The IEEE Std 1588 clockIdentity of the Grandmaster PTP |
|
Instance."; |
|
reference |
|
"8.2.3.6 of IEEE Std 1588-2019"; |
|
} |
|
|
|
container grandmaster-clock-quality { |
|
config false; |
|
description |
|
"The IEEE Std 1588 clockQuality of the Grandmaster PTP |
|
Instance."; |
|
reference |
|
"8.2.3.7 of IEEE Std 1588-2019"; |
|
uses clock-quality; |
|
} |
|
|
|
leaf grandmaster-priority1 { |
|
type uint8; |
|
config false; |
|
description |
|
"The IEEE Std 1588 priority1 of the Grandmaster PTP |
|
Instance."; |
|
reference |
|
"8.2.3.8 of IEEE Std 1588-2019"; |
|
} |
|
|
|
leaf grandmaster-priority2 { |
|
type uint8; |
|
config false; |
|
description |
|
"The IEEE Std 1588 priority2 of the Grandmaster PTP |
|
Instance."; |
|
reference |
|
"8.2.3.9 of IEEE Std 1588-2019"; |
|
} |
|
|
|
container protocol-address { |
|
description |
|
"The protocol address of the PTP Port |
|
that issues the Sync messages used in synchronizing |
|
this PTP Instance."; |
|
reference |
|
"8.2.3.10 of IEEE Std 1588-2019"; |
|
uses port-address; |
|
} |
|
|
|
leaf synchronization-uncertain { |
|
type boolean; |
|
config false; |
|
description |
|
"This boolean is true when synchronization is |
|
uncertain in the Parent PTP Port."; |
|
reference |
|
"8.2.3.11 of IEEE Std 1588-2019"; |
|
} |
|
} |
|
|
|
container time-properties-ds { |
|
description |
|
"Provides data learned from the current |
|
Grandmaster PTP Instance."; |
|
reference |
|
"8.2.4 of IEEE Std 1588-2019"; |
|
|
|
leaf current-utc-offset { |
|
when "../current-utc-offset-valid='true'"; |
|
type int16; |
|
description |
|
"Specified as <dLS> in IERS Bulletin C, this provides |
|
the offset from UTC (TAI - UTC). The offset is in |
|
units of seconds."; |
|
reference |
|
"7.2.4 of IEEE Std 1588-2019 |
|
8.2.4.2 of IEEE Std 1588-2019"; |
|
} |
|
|
|
leaf current-utc-offset-valid { |
|
type boolean; |
|
description |
|
"The value of current-utc-offset-valid shall be true |
|
if the values of current-utc-offset, leap59, and leap61 |
|
are known to be correct, otherwise it shall be false. |
|
NOTE - The constraint for leap59 and leap61 did not |
|
exist in IEEE Std 1588-2008, and for compatibility, |
|
corresponding when statements were not included below."; |
|
reference |
|
"8.2.4.3 of IEEE Std 1588-2019"; |
|
} |
|
|
|
leaf leap59 { |
|
type boolean; |
|
description |
|
"If the timescale is PTP, a true value for leap59 |
|
shall indicate that the last minute of the |
|
current UTC day contains 59 seconds. |
|
If the timescale is not PTP, the value shall be |
|
false."; |
|
reference |
|
"8.2.4.4 of IEEE Std 1588-2019"; |
|
} |
|
|
|
leaf leap61 { |
|
type boolean; |
|
description |
|
"If the timescale is PTP, a true value for leap61 |
|
shall indicate that the last minute of the |
|
current UTC day contains 61 seconds. |
|
If the timescale is not PTP, the value shall be |
|
false."; |
|
reference |
|
"8.2.4.5 of IEEE Std 1588-2019"; |
|
} |
|
|
|
leaf time-traceable { |
|
type boolean; |
|
description |
|
"The value of time-traceable shall be true if the |
|
timescale is traceable to a primary reference; |
|
otherwise, the value shall be false. |
|
The uncertainty specifications appropriate to the |
|
evaluation of whether traceability to a primary |
|
reference is achieved should be defined in the |
|
applicable PTP Profile. In the absence of such a |
|
definition the value of time-traceable is |
|
implementation specific."; |
|
reference |
|
"8.2.4.6 of IEEE Std 1588-2019"; |
|
} |
|
|
|
leaf frequency-traceable { |
|
type boolean; |
|
description |
|
"The value of time-traceable shall be true if the |
|
frequency determining the timescale is traceable |
|
to a primary reference; otherwise, the value shall |
|
be false. |
|
The uncertainty specifications appropriate to the |
|
evaluation of whether traceability to a primary |
|
reference is achieved should be defined in the |
|
applicable PTP Profile. In the absence of such a |
|
definition the value of frequency-traceable is |
|
implementation specific."; |
|
reference |
|
"8.2.4.7 of IEEE Std 1588-2019"; |
|
} |
|
|
|
leaf ptp-timescale { |
|
type boolean; |
|
description |
|
"If ptp-timescale is true, the timescale of |
|
the Grandmaster PTP Instance is PTP, which is |
|
the elapsed time since the PTP epoch measured |
|
using the second defined by International Atomic |
|
Time (TAI). |
|
If ptp-timescale is false, the timescale of |
|
the Grandmaster PTP Instance is ARB, which is |
|
the elapsed time since an arbitrary epoch."; |
|
reference |
|
"7.2.1 of IEEE Std 1588-2019 |
|
8.2.4.8 of IEEE Std 1588-2019"; |
|
} |
|
|
|
leaf time-source { |
|
type identityref { |
|
base time-source; |
|
} |
|
description |
|
"The source of time used by the Grandmaster |
|
PTP Instance."; |
|
reference |
|
"7.6.2.8 of IEEE Std 1588-2019 |
|
8.2.4.9 of IEEE Std 1588-2019"; |
|
} |
|
} |
|
|
|
container description-ds { |
|
description |
|
"Provides descriptive information for the PTP Instance."; |
|
reference |
|
"8.2.5 of IEEE Std 1588-2019"; |
|
|
|
leaf manufacturer-identity { |
|
type string { |
|
pattern "[0-9A-F]{2}(-[0-9A-F]{2}){2}"; |
|
} |
|
config false; |
|
description |
|
"3-octet OUI or CID owned by the manufacturer of the |
|
PTP Instance, assigned by the IEEE Registration |
|
Authority. |
|
Each octet is represented in YANG as a pair of |
|
hexadecimal characters, using uppercase for a letter. |
|
Each octet in the array is separated by the dash |
|
character."; |
|
reference |
|
"8.2.5.2 of IEEE Std 1588-2019"; |
|
} |
|
|
|
leaf product-description { |
|
type string { |
|
length "2..64"; |
|
} |
|
config false; |
|
description |
|
"The product-description string shall indicate, in order: |
|
- The name of the manufacturer of the PTP Instance, |
|
manufacturerName, followed by a semicolon (;) |
|
- The model number of the PTP Instance, modelNumber, |
|
followed by a semicolon (;) |
|
- A unique identifier of this PTP Instance, |
|
instanceIdentifier, such as the MAC address or |
|
the serial number. |
|
The content and meaning of the manufacturerName, |
|
modelNumber, and the instanceIdentifier strings are |
|
determined by the manufacturer of the PTP Instance."; |
|
reference |
|
"8.2.5.3 of IEEE Std 1588-2019"; |
|
} |
|
|
|
leaf product-revision { |
|
type string { |
|
length "2..32"; |
|
} |
|
config false; |
|
description |
|
"Indicate the revisions for PTP Instance's |
|
hardware (HW), firmware (FW), and software (SW). |
|
This information shall be semicolon (;) separated |
|
text fields in the order HW;FW;SW. Non-applicable |
|
revisions shall be indicated by a text fields of |
|
zero length."; |
|
reference |
|
"8.2.5.4 of IEEE Std 1588-2019"; |
|
} |
|
|
|
leaf user-description { |
|
type string { |
|
length "0..128"; |
|
} |
|
description |
|
"Configurable description of the product's PTP Instance. |
|
The user-description string should indicate, in order: |
|
- A user-defined name of the PTP Instance, |
|
e.g., Sensor-1, followed by a semicolon (;) |
|
- A user-defined physical location of the PTP Instance, |
|
e.g., Rack-2 Shelf-3."; |
|
reference |
|
"8.2.5.5 of IEEE Std 1588-2019"; |
|
} |
|
} |
|
|
|
container fault-log-ds { |
|
if-feature fault-log; |
|
config false; |
|
description |
|
"Represents an optional mechanism for logging of faults |
|
that occur in the PTP Instance. If one member of |
|
fault-log-ds is supported, all members shall be |
|
supported."; |
|
reference |
|
"8.2.6 of IEEE Std 1588-2019"; |
|
|
|
leaf number-of-fault-records { |
|
type uint16; |
|
config false; |
|
description |
|
"The number of fault records available in |
|
fault-record-list."; |
|
reference |
|
"8.2.6.2 of IEEE Std 1588-2019"; |
|
} |
|
|
|
list fault-record-list { |
|
config false; |
|
description |
|
"List of fault records, number-of-fault-records |
|
in length. |
|
The maximum length of fault-record-list is |
|
implementation-specific. The fault-record-list |
|
is maintained by the PTP Instance until |
|
fault-log-ds.reset is used."; |
|
reference |
|
"8.2.6.3 of IEEE Std 1588-2019"; |
|
|
|
uses fault-record; |
|
} |
|
|
|
action reset { |
|
description |
|
"This action causes the contents of fault-record-list |
|
to be cleared, and number-of-fault-records to be set |
|
to zero."; |
|
reference |
|
"8.2.6.4 of IEEE Std 1588-2019"; |
|
} |
|
} |
|
|
|
// The nonvolatileStorageDS in 8.2.7 of IEEE Std 1588-2019 |
|
// is not applicable for YANG, since protocols like NETCONF |
|
// and RESTCONF specify analogous features for configuration |
|
// storage. |
|
|
|
container path-trace-ds { |
|
if-feature path-trace; |
|
description |
|
"Provides data for the optional path |
|
trace mechanism."; |
|
reference |
|
"16.2 of IEEE Std 1588-2019"; |
|
|
|
leaf-list list { |
|
type clock-identity; |
|
config false; |
|
description |
|
"List of IEEE Std 1588 clock identity values |
|
(type ClockIdentity), in the order provided in the |
|
PATH_TRACE TLV."; |
|
reference |
|
"16.2.2.2.1 of IEEE Std 1588-2019"; |
|
} |
|
|
|
leaf enable { |
|
type boolean; |
|
description |
|
"Allows for enable/disable of the path trace mechanism |
|
using management. If path-trace-ds.enable is true, |
|
the path trace mechanism shall be operational. |
|
If path-trace-ds.enable is false, the path trace |
|
mechanism shall be inactive."; |
|
reference |
|
"16.2.2.3.1 of IEEE Std 1588-2019"; |
|
} |
|
} |
|
|
|
container alternate-timescale-ds { |
|
if-feature alternate-timescale; |
|
description |
|
"Provides data for the optional alternate |
|
timescale offsets mechanism."; |
|
reference |
|
"16.3 of IEEE Std 1588-2019"; |
|
|
|
leaf max-key { |
|
type uint8; |
|
config false; |
|
description |
|
"The value of max-key shall indicate the value of |
|
the largest key-field in the list."; |
|
reference |
|
"16.3.4.3.1 of IEEE Std 1588-2019"; |
|
} |
|
|
|
list list { |
|
key "key-field"; |
|
description |
|
"List of alternate timescales in the PTP Instance. |
|
Elements in the list can be created or deleted, if |
|
those operations are supported by management. |
|
|
|
If management write is supported for items |
|
current-offset, jump-seconds, and time-of-next-jump, |
|
the value for all three items shall be provided |
|
within a single write operation, and the update of |
|
all three items shall be atomic. If any of the three |
|
values fails to update, a management error shall be |
|
returned."; |
|
reference |
|
"16.3.4.4.1 of IEEE Std 1588-2019"; |
|
|
|
leaf key-field { |
|
type uint8; |
|
description |
|
"Unique identifier of each element in the list."; |
|
} |
|
|
|
leaf enable { |
|
type boolean; |
|
description |
|
"If enable is true, the |
|
ALTERNATE_TIME_OFFSET_INDICATOR TLV |
|
for this alternate timescale shall be attached |
|
to Announce messages. If enable is false, the TLV |
|
shall not be attached."; |
|
} |
|
|
|
leaf current-offset { |
|
type int32; |
|
description |
|
"Offset of the alternate time, in seconds, from |
|
PTP Instance Time in the Grandmaster PTP Instance."; |
|
} |
|
|
|
leaf jump-seconds { |
|
type int32; |
|
description |
|
"Size of the next discontinuity, in seconds, in the |
|
alternate timescale. A value of zero indicates that |
|
no discontinuity is expected. A positive value |
|
indicates that the discontinuity will cause the |
|
current-offset of the alternate timescale to |
|
increase."; |
|
} |
|
|
|
leaf time-of-next-jump { |
|
type uint64; |
|
description |
|
"Value of the seconds-field of the transmitting PTP |
|
Instance Time at the time that the next discontinuity |
|
will occur. The discontinuity occurs at the start of |
|
the second indicated by the value of time-of-next-jump. |
|
Only 48-bits are valid (the upper 16-bits are always |
|
zero)."; |
|
} |
|
|
|
leaf display-name { |
|
type string { |
|
length "0..10"; |
|
} |
|
description |
|
"Textual description of the alternate timescale."; |
|
} |
|
} |
|
} |
|
|
|
container holdover-upgrade-ds { |
|
if-feature holdover-upgrade; |
|
description |
|
"Provides data for the optional holdover |
|
upgrade mechanism."; |
|
reference |
|
"16.4 of IEEE Std 1588-2019"; |
|
|
|
leaf enable { |
|
type boolean; |
|
description |
|
"Used to enable (true) or disable (false) the |
|
holdover upgrade mechanism."; |
|
} |
|
} |
|
|
|
container grandmaster-cluster-ds { |
|
if-feature grandmaster-cluster; |
|
description |
|
"Provides data for the optional grandmaster |
|
cluster mechanism."; |
|
reference |
|
"17.2.3 of IEEE Std 1588-2019"; |
|
|
|
leaf max-table-size { |
|
type uint8; |
|
config false; |
|
description |
|
"Maximum number of elements permitted |
|
in the port-address list. |
|
|
|
NOTE - The actualTableSize of IEEE Std 1588 is not |
|
applicable for YANG, since YANG mechanisms can be used |
|
to control the number of elements in port-address."; |
|
} |
|
|
|
leaf log-query-interval { |
|
type int8; |
|
description |
|
"Logarithm to the base 2 of the mean interval in |
|
seconds between unicast Announce messages from |
|
cluster members."; |
|
} |
|
|
|
list port-address { |
|
key "index"; |
|
description |
|
"List of port addresses, one for each member of the |
|
grandmaster cluster."; |
|
|
|
leaf index { |
|
type uint16; |
|
description |
|
"Index to a port address in the list, typically |
|
sequential from 0 to N-1, where N is the number of |
|
port addresses."; |
|
} |
|
|
|
uses port-address; |
|
} |
|
} |
|
|
|
container acceptable-master-ds { |
|
if-feature acceptable-master; |
|
description |
|
"Provides data for the optional acceptable |
|
master table mechanism."; |
|
reference |
|
"17.5.3 of IEEE Std 1588-2019"; |
|
|
|
leaf max-table-size { |
|
type uint16; |
|
config false; |
|
description |
|
"Maximum number of elements permitted |
|
in the list. |
|
|
|
NOTE - The actualTableSize of IEEE Std 1588 is not |
|
applicable for YANG, since YANG mechanisms can be used |
|
to control the number of elements in list."; |
|
reference |
|
"17.5.3.3.1 of IEEE Std 1588-2019"; |
|
} |
|
|
|
list list { |
|
key "index"; |
|
description |
|
"List of acceptable masters in the PTP Instance. |
|
Elements in the list can be created or deleted, if |
|
those operations are supported by management. |
|
|
|
If management write is supported for items |
|
acceptable-clock-identity, acceptable-port-number, |
|
and alternate-priority1, the value for all three items |
|
shall be provided within a single write operation, |
|
and the update of all three items shall be atomic. |
|
If any of the three values fails to update, a management |
|
error shall be returned."; |
|
reference |
|
"17.5.3.4.2 of IEEE Std 1588-2019"; |
|
|
|
leaf index { |
|
type uint8; |
|
description |
|
"Unique index to each element in the list, typically |
|
sequential from 0 to N-1, where N is the number of |
|
elements."; |
|
} |
|
|
|
container acceptable-port-identity { |
|
description |
|
"The IEEE Std 1588 portIdentity of the |
|
acceptable master."; |
|
uses port-identity; |
|
} |
|
|
|
leaf alternate-priority1 { |
|
type uint8; |
|
description |
|
"The IEEE Std 1588 priority1 used as an alternate |
|
for the acceptable master."; |
|
} |
|
} |
|
} |
|
|
|
container performance-monitoring-ds { |
|
if-feature performance-monitoring; |
|
description |
|
"Provides data for the optional performance |
|
monitoring mechanism, scoped to the PTP Instance."; |
|
reference |
|
"8.2.13 of IEEE Std 1588-2019 |
|
J.5.1 of IEEE Std 1588-2019"; |
|
|
|
leaf enable { |
|
type boolean; |
|
description |
|
"Permits management control over the collection of |
|
performance monitoring data, including |
|
performance-monitoring-ds (PTP Instance), |
|
ports/port[]/performance-monitoring-port-ds |
|
(PTP Port of PTP Instance), and |
|
common-services/cmlds/ports/port[]/ |
|
performance-monitoring-port-ds (CMLDS Link Port |
|
associated with enabled PTP Port)."; |
|
reference |
|
"J.5.1.1 of IEEE Std 1588-2019"; |
|
} |
|
|
|
list record-list { |
|
key "index"; |
|
max-elements 99; |
|
config false; |
|
description |
|
"List of performance monitoring records for the |
|
PTP Instance. The list is organized as follows: |
|
- 97 15-minute measurement records, the current record |
|
at index 0, followed by the most recent 96 records. |
|
- 2 24-hour measurement records, the current record |
|
at index 97, and the previous record at index 98. |
|
|
|
If a record is not implemented for a specific index, |
|
management does not return the record. For example, |
|
if only four 15-minute periods are implemented, |
|
a management request for performance-monitoring-ds/ |
|
record-list[6] returns an error. |
|
|
|
If only some of the data is reported, the same index |
|
values are used. As an example, if only the 24-hour |
|
statistics are accessed, the indexes are still 97 and 98. |
|
|
|
If a specific parameter (e.g. max-master-slave-delay) |
|
is not implemented, management does not return the |
|
parameter (i.e., error). Parameters that are invalid |
|
(not measured correctly) shall be indicated with |
|
one in all bits, except the most significant. This |
|
represents the largest positive value of |
|
time-interval, indicating a value outside the |
|
maximum range."; |
|
reference |
|
"J.5.1.2 of IEEE Std 1588-2019"; |
|
|
|
uses clock-performance-monitoring-data-record; |
|
} |
|
} |
|
|
|
container enhanced-metrics-ds { |
|
if-feature enhanced-metrics; |
|
description |
|
"Provides data for the optional enhanced |
|
synchronization accuracy metrics mechanism."; |
|
reference |
|
"16.12 of IEEE Std 1588-2019"; |
|
|
|
leaf enable { |
|
type boolean; |
|
description |
|
"If the Enhanced Synchronization Accuracy Metrics feature |
|
is implemented, the value true shall indicate that |
|
the feature is enabled on the PTP Instance, and the |
|
value false shall indicate that the option is disabled |
|
on the PTP Instance."; |
|
reference |
|
"8.2.14.2 of IEEE Std 1588-2019"; |
|
} |
|
} |
|
|
|
container ports { |
|
description |
|
"YANG container that is used to get all PTP Ports |
|
in the PTP Instance. |
|
YANG does not allow get of all elements in a YANG list, |
|
so a YANG container wrapping the YANG list is provided for |
|
that purpose. The naming convention uses plural for the |
|
wrapping YANG container, and singular for the YANG list."; |
|
|
|
list port { |
|
key "port-index"; |
|
description |
|
"List of data for each PTP Port in the PTP Instance. |
|
While the PTP Instance is disabled, it is possible to |
|
have zero PTP Ports (i.e., ports not yet created). |
|
While the PTP Instance is enabled, an Ordinary Clock |
|
will have one PTP Port, and a Boundary Clock or |
|
Transparent Clock will have more than one PTP Port."; |
|
reference |
|
"8.1.4.2 of IEEE Std 1588-2019"; |
|
|
|
leaf port-index { |
|
type uint16; |
|
description |
|
"The port list is indexed using a number that is |
|
unique per PTP Port within the PTP Instance, |
|
applicable to the management context only |
|
(i.e., not used in PTP messages)."; |
|
} |
|
|
|
leaf underlying-interface { |
|
type if:interface-ref; |
|
description |
|
"Reference to the configured underlying IETF YANG |
|
interface that is used by this PTP Port for |
|
transport of PTP messages. Among other data, |
|
physical identifiers for the interface |
|
(e.g., MAC address) can be obtained using this |
|
reference."; |
|
reference |
|
"RFC 8343"; |
|
} |
|
|
|
container port-ds { |
|
description |
|
"Primary data set for the PTP Port."; |
|
reference |
|
"8.2.15 of IEEE Std 1588-2019"; |
|
|
|
container port-identity { |
|
config false; |
|
description |
|
"The IEEE Std 1588 portIdentity of this PTP Port."; |
|
reference |
|
"8.2.15.2.1 of IEEE Std 1588-2019"; |
|
uses port-identity; |
|
} |
|
|
|
leaf port-state { |
|
type port-state; |
|
config false; |
|
description |
|
"Current state of the protocol engine associated |
|
with this PTP Port."; |
|
reference |
|
"8.2.15.3.1 of IEEE Std 1588-2019"; |
|
} |
|
|
|
leaf log-min-delay-req-interval { |
|
type int8; |
|
description |
|
"Logarithm to the base 2 of the IEEE Std 1588 |
|
minDelayReqInterval, the minimum permitted |
|
mean time interval between successive Delay_Req |
|
messages sent by a Slave PTP Instance."; |
|
reference |
|
"7.7.2.4 of IEEE Std 1588-2019 |
|
8.2.15.3.2 of IEEE Std 1588-2019"; |
|
} |
|
|
|
leaf mean-link-delay { |
|
type time-interval; |
|
config false; |
|
description |
|
"If the value of the delay-mechanism leaf is p2p |
|
this value shall be an estimate of the current |
|
one-way propagation delay on the PTP Link attached |
|
to this PTP Port, computed using the peer-to-peer |
|
delay mechanism. |
|
If the value of the delay-mechanism leaf is |
|
common-p2p, this value shall be equal to the value of |
|
ptp/common-services/cmlds/ports/port[]/port-ds/ |
|
mean-link-delay. |
|
If the value of the delay-mechanism leaf is e2e, |
|
disabled, or special, this value shall be zero."; |
|
reference |
|
"8.2.15.3.3 of IEEE Std 1588-2019"; |
|
} |
|
|
|
leaf peer-mean-path-delay { |
|
type time-interval; |
|
config false; |
|
status deprecated; |
|
description |
|
"In IEEE Std 1588-2008, this data set member was |
|
called portDS.peerMeanPathDelay. While the |
|
specification of this member is retained in the |
|
current standard, the member is renamed to |
|
portDS.meanLinkDelay (i.e., ../mean-link-delay). |
|
This change is consistent with other changes that |
|
ensure clarity and consistency of naming, where |
|
- “path” is associated with the |
|
request-response mechanism |
|
- “link” is associated with the |
|
peer-to-peer delay mechanism"; |
|
reference |
|
"8.2.5.3.3 of IEEE Std 1588-2008"; |
|
} |
|
|
|
leaf log-announce-interval { |
|
type int8; |
|
description |
|
"Logarithm to the base 2 of the mean IEEE Std 1588 |
|
announceInterval, the time interval between |
|
successive Announce messages sent by a PTP Port."; |
|
reference |
|
"7.7.2.2 of IEEE Std 1588-2019 |
|
8.2.15.4.1 of IEEE Std 1588-2019"; |
|
} |
|
|
|
leaf announce-receipt-timeout { |
|
type uint8; |
|
description |
|
"The integral multiple of IEEE Std 1588 |
|
announceInterval that must pass without receipt of |
|
an Announce message before the occurrence of the |
|
event ANNOUNCE_RECEIPT_TIMEOUT_EXPIRES. The range |
|
shall be 2 to 255 subject to further restrictions of |
|
the applicable PTP Profile. While 2 is permissible, |
|
normally the value should be at least 3."; |
|
reference |
|
"7.7.3.1 of IEEE Std 1588-2019 |
|
8.2.15.4.2 of IEEE Std 1588-2019"; |
|
} |
|
|
|
leaf log-sync-interval { |
|
type int8; |
|
description |
|
"Logarithm to the base 2 of the mean IEEE Std 1588 |
|
syncInterval, the time interval between successive |
|
Sync messages, when transmitted as multicast |
|
messages. The rates for unicast transmissions are |
|
negotiated separately on a per PTP Port basis and |
|
are not constrained by this leaf."; |
|
reference |
|
"7.7.2.3 of IEEE Std 1588-2019 |
|
8.2.15.4.3 of IEEE Std 1588-2019"; |
|
} |
|
|
|
leaf delay-mechanism { |
|
type delay-mechanism; |
|
description |
|
"The path delay measuring mechanism used by the PTP |
|
Port in computing <meanDelay> (propagation delay)."; |
|
reference |
|
"8.2.15.4.4 of IEEE Std 1588-2019"; |
|
} |
|
|
|
leaf log-min-pdelay-req-interval { |
|
type int8; |
|
description |
|
"Logarithm to the base 2 of the IEEE Std 1588 |
|
minPdelayReqInterval, the minimum permitted |
|
mean time interval between successive Pdelay_Req |
|
messages sent over a PTP Link."; |
|
reference |
|
"7.7.2.5 of IEEE Std 1588-2019 |
|
8.2.15.4.5 of IEEE Std 1588-2019"; |
|
} |
|
|
|
leaf version-number { |
|
type uint8; |
|
description |
|
"The PTP major version in use on the PTP Port. |
|
NOTE - This indicates the version of the |
|
IEEE 1588 standard, and not the version of an |
|
applicable PTP Profile."; |
|
reference |
|
"8.2.15.4.6 of IEEE Std 1588-2019"; |
|
} |
|
|
|
leaf minor-version-number { |
|
type uint8; |
|
description |
|
"The PTP minor version in use on the PTP Port. |
|
NOTE - This indicates the version of the |
|
IEEE 1588 standard, and not the version of an |
|
applicable PTP Profile."; |
|
reference |
|
"8.2.15.4.7 of IEEE Std 1588-2019"; |
|
} |
|
|
|
leaf delay-asymmetry { |
|
type time-interval; |
|
description |
|
"The value of IEEE Std 1588 <delayAsymmetry> |
|
applicable to the PTP Port, which is the |
|
difference in transmission time in one direction |
|
as compared to the opposite direction."; |
|
reference |
|
"7.4.2 of IEEE Std 1588-2019 |
|
8.2.15.4.8 of IEEE Std 1588-2019"; |
|
} |
|
|
|
leaf port-enable { |
|
type boolean; |
|
description |
|
"Indicates if the PTP Port is enabled for |
|
PTP operation. |
|
When management write is supported: |
|
- Write of the value true causes the |
|
DESIGNATED_ENABLED event to occur, even if the |
|
value was previously true. |
|
- Write of the value false causes the |
|
DESIGNATED_DISABLED event to occur, even if the |
|
value was previously false. |
|
If this leaf is not supported, the PTP Port shall be |
|
specified-by-design to be enabled (true)."; |
|
reference |
|
"8.2.15.5.1 of IEEE Std 1588-2019"; |
|
} |
|
|
|
leaf master-only { |
|
type boolean; |
|
description |
|
"If the value of master-only is true, the PTP Port |
|
shall be in the IEEE Std 1588 masterOnly mode. |
|
If the value is false, the PTP Port shall not be |
|
in the masterOnly mode. |
|
When master-only is true, the PTP Port can never |
|
enter the slave port-state."; |
|
reference |
|
"8.2.15.5.2 of IEEE Std 1588-2019 |
|
9.2.2.2 of IEEE Std 1588-2019"; |
|
} |
|
} |
|
|
|
container timestamp-correction-port-ds { |
|
if-feature timestamp-correction; |
|
description |
|
"Provides access to the configurable correction of |
|
timestamps provided to the PTP protocol."; |
|
reference |
|
"8.2.16 of IEEE Std 1588-2019 |
|
16.7 of IEEE Std 1588-2019"; |
|
|
|
leaf egress-latency { |
|
type time-interval; |
|
description |
|
"Interval between the <egressProvidedTimestamp> |
|
provided for a PTP message and the time at which |
|
the message timestamp point of the PTP message |
|
crosses the reference plane."; |
|
reference |
|
"7.3.4.2 of IEEE Std 1588-2019 |
|
8.2.16.2 of IEEE Std 1588-2019"; |
|
} |
|
|
|
leaf ingress-latency { |
|
type time-interval; |
|
description |
|
"Interval between the time the message timestamp |
|
point of an ingress PTP message crosses the |
|
reference plane and the <ingressProvidedTimestamp> |
|
provided for the PTP message."; |
|
reference |
|
"7.3.4.2 of IEEE Std 1588-2019 |
|
8.2.16.3 of IEEE Std 1588-2019"; |
|
} |
|
} |
|
|
|
container asymmetry-correction-port-ds { |
|
if-feature asymmetry-correction; |
|
description |
|
"Provides access to asymmetry correction parameters |
|
that are used to compute the value of |
|
delayAsymmetry>."; |
|
reference |
|
"8.2.17 of IEEE Std 1588-2019 |
|
16.8 of IEEE Std 1588-2019"; |
|
|
|
leaf constant-asymmetry { |
|
type time-interval; |
|
description |
|
"Constant asymmetry used to fine adjust the |
|
dynamically calculated value of <delayAsymmetry>, |
|
when the mechanism to calculate <delayAsymmetry> |
|
or certain media is enabled."; |
|
reference |
|
"8.2.17.2 of IEEE Std 1588-2019"; |
|
} |
|
|
|
leaf scaled-delay-coefficient { |
|
type relative-difference; |
|
description |
|
"This is the <delayCoefficient>."; |
|
reference |
|
"8.2.17.3 of IEEE Std 1588-2019"; |
|
} |
|
|
|
leaf enable { |
|
type boolean; |
|
description |
|
"When this value is true, the mechanism to calculate |
|
<delayAsymmetry> for certain media is enabled on |
|
this PTP Port. When this value is false, this |
|
mechanism is disabled on this PTP Port."; |
|
reference |
|
"8.2.17.4 of IEEE Std 1588-2019"; |
|
} |
|
} |
|
|
|
container description-port-ds { |
|
description |
|
"Provides descriptive information for the PTP Port."; |
|
reference |
|
"8.2.18 of IEEE Std 1588-2019"; |
|
|
|
leaf profile-identifier { |
|
type string { |
|
pattern "[0-9A-F]{2}(-[0-9A-F]{2}){5}"; |
|
} |
|
config false; |
|
description |
|
"When profile-identifier is supported, its value |
|
shall identify the PTP Profile implemented by the |
|
PTP Port, using the value assigned by the |
|
organization that created the PTP Profile. |
|
The profile identifier is six octets that identify |
|
the PTP Profile's organization, profile within the |
|
organization, and version. |
|
Each octet is represented in YANG as a pair of |
|
hexadecimal characters, using uppercase for a letter. |
|
Each octet in the array is separated by the dash |
|
character."; |
|
reference |
|
"8.2.18.2 of IEEE Std 1588-2019 |
|
20.3.3 of IEEE Std 1588-2019"; |
|
} |
|
|
|
container protocol-address { |
|
config false; |
|
description |
|
"Protocol address which is used as the source address |
|
by the network transport protocol for this |
|
PTP Port."; |
|
reference |
|
"8.2.18.3 of IEEE Std 1588-2019"; |
|
uses port-address; |
|
} |
|
} |
|
|
|
container unicast-negotiation-port-ds { |
|
if-feature unicast-negotiation; |
|
description |
|
"Provides management access to the optional unicast |
|
negotiation mechanism."; |
|
reference |
|
"16.1 of IEEE Std 1588-2019"; |
|
|
|
leaf enable { |
|
type boolean; |
|
description |
|
"When enable is false, the unicast negotiation |
|
mechanism is disabled on this PTP Port. |
|
When enable is true, the unicast negotiation |
|
mechanism is enabled on this PTP Port."; |
|
reference |
|
"8.2.19.2 of IEEE Std 1588-2019"; |
|
} |
|
} |
|
|
|
container alternate-master-port-ds { |
|
if-feature alternate-master; |
|
description |
|
"Provides management access to the optional alternate |
|
master mechanism."; |
|
reference |
|
"17.3.3 of IEEE Std 1588-2019"; |
|
|
|
leaf number-of-alt-masters { |
|
type uint8; |
|
description |
|
"Limits the number of PTP Ports that can |
|
simultaneously transmit messages with the |
|
alternate master flag set to TRUE."; |
|
reference |
|
"17.3.3.2.1 of IEEE Std 1588-2019"; |
|
} |
|
|
|
leaf tx-alt-multicast-sync { |
|
type boolean; |
|
description |
|
"Controls Sync transmission. If true and the |
|
PTP Port is currently transmitting multicast |
|
Announce messages with alternateMasterFlag |
|
TRUE, the PTP Port shall also transmit multicast |
|
Sync and, if a two-step PTP Instance, |
|
Follow_Up messages. Otherwise do not transmit |
|
these messages."; |
|
reference |
|
"17.3.3.2.2 of IEEE Std 1588-2019"; |
|
} |
|
|
|
leaf log-alt-multicast-sync-interval { |
|
type int8; |
|
description |
|
"Logarithm to the base 2 of the mean interval |
|
in seconds between Sync messages transmitted |
|
under the terms of this alternate masters |
|
mechanism."; |
|
reference |
|
"17.3.3.2.3 of IEEE Std 1588-2019"; |
|
} |
|
} |
|
|
|
container unicast-discovery-port-ds { |
|
if-feature unicast-discovery; |
|
description |
|
"Provides management access to the optional unicast |
|
discovery mechanism."; |
|
reference |
|
"17.4.3 of IEEE Std 1588-2019"; |
|
|
|
leaf max-table-size { |
|
type uint16; |
|
config false; |
|
description |
|
"Maximum number of elements permitted |
|
in the port-address list. |
|
|
|
NOTE - The actualTableSize of IEEE Std 1588 is not |
|
applicable for YANG, since YANG mechanisms can be |
|
used to control the number of elements in |
|
port-address."; |
|
} |
|
|
|
leaf log-query-interval { |
|
type int8; |
|
description |
|
"Logarithm to the base 2 of the mean interval in |
|
seconds between requests from a PTP Instance for |
|
a unicast Announce message."; |
|
} |
|
|
|
list port-address { |
|
key "index"; |
|
description |
|
"List of port addresses for unicast discovery."; |
|
|
|
leaf index { |
|
type uint16; |
|
description |
|
"Index to a port address in the list, typically |
|
sequential from 0 to N-1, where N is the number of |
|
port addresses."; |
|
} |
|
|
|
uses port-address; |
|
} |
|
} |
|
|
|
container acceptable-master-port-ds { |
|
if-feature acceptable-master; |
|
description |
|
"Provides management access to the optional acceptable |
|
master mechanism."; |
|
reference |
|
"17.5.4 of IEEE Std 1588-2019"; |
|
|
|
leaf enable { |
|
type boolean; |
|
description |
|
"When enable is false, the acceptable master table |
|
option is not used on this PTP Port, and the normal |
|
operation of the protocol is in effect. |
|
When enable is true, the acceptable master table |
|
option is used on this PTP Port as specified |
|
in the standard."; |
|
reference |
|
"17.5.4.2.1 of IEEE Std 1588-2019"; |
|
} |
|
} |
|
|
|
container l1-sync-basic-port-ds { |
|
if-feature l1-sync; |
|
description |
|
"Provides data for operation of the optional layer-1 |
|
based synchronization performance enhancement feature. |
|
This data is required when the feature is supported."; |
|
reference |
|
"8.2.23 of IEEE Std 1588-2019 |
|
L.5 of IEEE Std 1588-2019"; |
|
|
|
leaf enabled { |
|
type boolean; |
|
description |
|
"Specifies whether the L1Sync option is enabled |
|
on the PTP Port. If enabled is true, then the |
|
L1Sync message exchange is supported and enabled."; |
|
reference |
|
"L.4.1 of IEEE Std 1588-2019"; |
|
} |
|
|
|
leaf tx-coherent-is-required { |
|
type boolean; |
|
description |
|
"Specifies whether the L1Sync port is required |
|
to be a transmit coherent port."; |
|
reference |
|
"L.4.2 of IEEE Std 1588-2019"; |
|
} |
|
|
|
leaf rx-coherent-is-required { |
|
type boolean; |
|
description |
|
"Specifies whether the L1Sync port is required |
|
to be a receive coherent port."; |
|
reference |
|
"L.4.3 of IEEE Std 1588-2019"; |
|
} |
|
|
|
leaf congruent-is-required { |
|
type boolean; |
|
description |
|
"Specifies whether the L1Sync port is required |
|
to be a congruent port."; |
|
reference |
|
"L.4.4 of IEEE Std 1588-2019"; |
|
} |
|
|
|
leaf opt-params-enabled { |
|
type boolean; |
|
description |
|
"Specifies whether the L1Sync port transmitting |
|
the L1_SYNC TLV extends this TLV with optional |
|
parameters."; |
|
reference |
|
"L.4.5 of IEEE Std 1588-2019"; |
|
} |
|
|
|
leaf log-l1sync-interval { |
|
type int8; |
|
description |
|
"Logarithm to the base 2 of the mean IEEE Std 1588 |
|
L1SyncInterval, the time interval between successive |
|
periodic messages sent by the L1Sync port and |
|
carrying the L1_SYNC TLV."; |
|
reference |
|
"L.4.6 of IEEE Std 1588-2019"; |
|
} |
|
|
|
leaf l1sync-receipt-timeout { |
|
type uint8; |
|
description |
|
"The intergral number of elapsed IEEE Std 1588 |
|
L1SyncIntervals that must pass without receipt |
|
of the L1_SYNC TLV before the L1_SYNC TLV |
|
reception timeout occurs."; |
|
reference |
|
"L.4.7 of IEEE Std 1588-2019"; |
|
} |
|
|
|
leaf link-alive { |
|
type boolean; |
|
config false; |
|
description |
|
"True when a L1_SYNC TLV is received at the PTP Port |
|
and L1Sync is enaled on the PTP Port. False when the |
|
L1_SYNC TLV reception timeout occurs."; |
|
reference |
|
"L.5.3.1 of IEEE Std 1588-2019"; |
|
} |
|
|
|
leaf is-tx-coherent { |
|
type boolean; |
|
config false; |
|
description |
|
"True when the L1Sync port is a transmit coherent |
|
port."; |
|
reference |
|
"L.5.3.2 of IEEE Std 1588-2019"; |
|
} |
|
|
|
leaf is-rx-coherent { |
|
type boolean; |
|
config false; |
|
description |
|
"True when the L1Sync port is a receive coherent |
|
port."; |
|
reference |
|
"L.5.3.3 of IEEE Std 1588-2019"; |
|
} |
|
|
|
leaf is-congruent { |
|
type boolean; |
|
config false; |
|
description |
|
"True when the L1Sync port is a congruent port."; |
|
reference |
|
"L.5.3.4 of IEEE Std 1588-2019"; |
|
} |
|
|
|
leaf l1sync-state { |
|
type l1sync-state; |
|
config false; |
|
description |
|
"Current state of the L1Sync state machine associated |
|
with this L1Sync port."; |
|
reference |
|
"L.5.3.5 of IEEE Std 1588-2019"; |
|
} |
|
|
|
leaf peer-tx-coherent-is-required { |
|
type boolean; |
|
config false; |
|
description |
|
"Specifies whether this L1Sync port is required |
|
to be a transmit coherent port by a peer, |
|
as indicated in the value of the TCR field of the |
|
most recently received L1_SYNC TLV."; |
|
reference |
|
"L.5.3.6 of IEEE Std 1588-2019"; |
|
} |
|
|
|
leaf peer-rx-coherent-is-required { |
|
type boolean; |
|
config false; |
|
description |
|
"Specifies whether this L1Sync port is required |
|
to be a receive coherent port by a peer, |
|
as indicated in the value of the RCR field of the |
|
most recently received L1_SYNC TLV."; |
|
reference |
|
"L.5.3.7 of IEEE Std 1588-2019"; |
|
} |
|
|
|
leaf peer-congruent-is-required { |
|
type boolean; |
|
config false; |
|
description |
|
"Specifies whether this L1Sync port is required |
|
is required to be a congruent port by a peer, |
|
as indicated in the value of the CR field of the |
|
most recently received L1_SYNC TLV."; |
|
reference |
|
"L.5.3.8 of IEEE Std 1588-2019"; |
|
} |
|
|
|
leaf peer-is-tx-coherent { |
|
type boolean; |
|
config false; |
|
description |
|
"True when the peer L1Sync port is a |
|
transmit coherent port |
|
(as received in the L1_SYNC TLV)."; |
|
reference |
|
"L.5.3.9 of IEEE Std 1588-2019"; |
|
} |
|
|
|
leaf peer-is-rx-coherent { |
|
type boolean; |
|
config false; |
|
description |
|
"True when the peer L1Sync port is a |
|
receive coherent port |
|
(as received in the L1_SYNC TLV)."; |
|
reference |
|
"L.5.3.10 of IEEE Std 1588-2019"; |
|
} |
|
|
|
leaf peer-is-congruent { |
|
type boolean; |
|
config false; |
|
description |
|
"True when the peer L1Sync port is a |
|
congruent port |
|
(as received in the L1_SYNC TLV)."; |
|
reference |
|
"L.5.3.11 of IEEE Std 1588-2019"; |
|
} |
|
} |
|
|
|
container l1-sync-opt-params-port-ds { |
|
if-feature l1-sync; |
|
description |
|
"Provides data for operation of the optional layer-1 |
|
based synchronization performance enhancement feature. |
|
This data is optional when the feature is supported."; |
|
reference |
|
"8.2.24 of IEEE Std 1588-2019 |
|
L.8.4 of IEEE Std 1588-2019"; |
|
|
|
leaf timestamps-corrected-tx { |
|
type boolean; |
|
description |
|
"When true, the L1Sync port shall correct the |
|
transmitted egress timestamps with the known value |
|
of the phase offset, as indicated in the Link |
|
Reference Model."; |
|
reference |
|
"L.8.4.2.1 of IEEE Std 1588-2019"; |
|
} |
|
|
|
leaf phase-offset-tx-valid { |
|
type boolean; |
|
config false; |
|
description |
|
"True if and only if the values of the transmission |
|
phase offset parameters (phase-offset-tx |
|
and phase-offset-tx-timestamp) are valid."; |
|
reference |
|
"L.8.4.3.1 of IEEE Std 1588-2019"; |
|
} |
|
|
|
leaf phase-offset-tx { |
|
type time-interval; |
|
config false; |
|
description |
|
"Transmission phase offset, which is the |
|
time difference between the significant instant |
|
with which the passage of the message timestamp |
|
point through the reference plane is aligned, |
|
and the time represented by the captured |
|
timestamp of this passage of the message."; |
|
reference |
|
"L.8.4.3.3 of IEEE Std 1588-2019"; |
|
} |
|
|
|
container phase-offset-tx-timestamp { |
|
config false; |
|
description |
|
"Transmission phase offset timestamp |
|
for the associated transmission phase offset."; |
|
reference |
|
"L.8.4.3.4 of IEEE Std 1588-2019"; |
|
|
|
uses timestamp; |
|
} |
|
|
|
leaf frequency-offset-tx-valid { |
|
type boolean; |
|
config false; |
|
description |
|
"True if and only if the values of the transmission |
|
frequency offset parameters (frequency-offset-tx |
|
and frequency-offset-tx-timestamp) are valid."; |
|
reference |
|
"L.8.4.3.2 of IEEE Std 1588-2019"; |
|
} |
|
|
|
leaf frequency-offset-tx { |
|
type time-interval; |
|
config false; |
|
description |
|
"Transmission frequency offset, multiplied |
|
by one second. Transmission frequency offset |
|
is the known rate of change of the transmission |
|
phase offset."; |
|
reference |
|
"L.8.4.3.5 of IEEE Std 1588-2019"; |
|
} |
|
|
|
container frequency-offset-tx-timestamp { |
|
config false; |
|
description |
|
"Transmission frequency offset timestamp |
|
for the associated transmission frequency |
|
offset."; |
|
reference |
|
"L.8.4.3.6 of IEEE Std 1588-2019"; |
|
|
|
uses timestamp; |
|
} |
|
} |
|
|
|
container communication-cap-port-ds { |
|
config false; |
|
description |
|
"Provides data for multicast/unicast communication |
|
capabilities."; |
|
reference |
|
"8.2.25 of IEEE Std 1588-2019"; |
|
|
|
container sync { |
|
description |
|
"Communication capabilities of the PTP Port with |
|
respect to sending Sync messages."; |
|
|
|
uses communication-capabilities; |
|
} |
|
|
|
container delay-resp { |
|
description |
|
"Communication capabilities of the PTP Port with |
|
respect to sending Delay_Resp messages."; |
|
|
|
uses communication-capabilities; |
|
} |
|
} |
|
|
|
container performance-monitoring-port-ds { |
|
if-feature performance-monitoring; |
|
description |
|
"Provides data for the optional performance |
|
monitoring mechanism, scoped to each PTP Port."; |
|
reference |
|
"8.2.26 of IEEE Std 1588-2019 |
|
J.5.2 of IEEE Std 1588-2019"; |
|
|
|
list record-list-peer-delay { |
|
key "index"; |
|
max-elements 99; |
|
config false; |
|
description |
|
"List of performance monitoring records for the |
|
PTP Port that is using the peer-to-peer delay |
|
measurement mehanism. The list is organized |
|
as follows: |
|
- 97 15-minute measurement records, the current |
|
record at index 0, followed by the most recent |
|
96 records. |
|
- 2 24-hour measurement records, the current record |
|
at index 97, and the previous record at index 98. |
|
|
|
If a record is not implemented for a specific index, |
|
management does not return the record. For example, |
|
if only four 15-minute periods are implemented, |
|
a management request for |
|
performance-monitoring-port-ds/ |
|
record-list-peer-delay[6] returns an error. |
|
|
|
If only some of the data is reported, the same index |
|
values are used. As an example, if only the 24-hour |
|
statistics are accessed, the indexes are still |
|
97 and 98. |
|
|
|
If a specific parameter (e.g. min-mean-link-delay) |
|
is not implemented, management does not return the |
|
parameter (i.e., error). Parameters that are invalid |
|
(not measured correctly) shall be indicated with |
|
one in all bits, except the most significant. This |
|
represents the largest positive value of |
|
time-interval, indicating a value outside the |
|
maximum range."; |
|
reference |
|
"J.5.2.1 of IEEE Std 1588-2019"; |
|
|
|
uses port-performance-monitoring-peer-delay-data-record; |
|
} |
|
|
|
list record-list { |
|
key "index"; |
|
max-elements 99; |
|
config false; |
|
description |
|
"List of performance monitoring records for the |
|
PTP Port, not specific to the peer-to-peer delay |
|
measurement mehanism. The list is organized |
|
as follows: |
|
- 97 15-minute measurement records, the current |
|
record at index 0, followed by the most recent |
|
96 records. |
|
- 2 24-hour measurement records, the current record |
|
at index 97, and the previous record at index 98. |
|
|
|
If a record is not implemented for a specific index, |
|
management does not return the record. For example, |
|
if only four 15-minute periods are implemented, |
|
a management request for |
|
performance-monitoring-port-ds/record-list[6] |
|
returns an error. |
|
|
|
If only some of the data is reported, the same index |
|
values are used. As an example, if only the 24-hour |
|
statistics are accessed, the indexes are still |
|
97 and 98. |
|
|
|
If a specific parameter (e.g. sync-tx) |
|
is not implemented, management does not return the |
|
parameter (i.e., error). Parameters that are invalid |
|
(not measured correctly) shall be indicated with |
|
with the value zero, indicating that nothing was |
|
counted. |
|
|
|
Each counter in the record shall be initialized to |
|
zero at the start of a new 15-minute and |
|
24-hour interval."; |
|
reference |
|
"J.5.2.2 of IEEE Std 1588-2019"; |
|
|
|
uses port-performance-monitoring-data-record; |
|
} |
|
} |
|
|
|
container common-services-port-ds { |
|
description |
|
"Provides management access to the common services, |
|
scoped to each PTP Port."; |
|
reference |
|
"16.6.5 of IEEE Std 1588-2019"; |
|
|
|
leaf cmlds-link-port-port-number { |
|
if-feature cmlds; |
|
type uint16; |
|
config false; |
|
description |
|
"Common services operate on all PTP Instances |
|
of the PTP Node. When a common service has |
|
port-specific behavior, it specifies a Link Port, |
|
which represents the physical port that the service |
|
uses to transport PTP messages. In the context of |
|
such a common service, the PTP Port represents a |
|
logical port. |
|
The Common Mean Link Delay Service (CMLDS) is |
|
port-specific, and this leaf provides the |
|
mapping of the PTP Port of this PTP Instance |
|
to the corresponding Link Port in CMLDS. The |
|
Link Port is identified using an IEEE Std 1588 |
|
portNumber. The corresponding Link Port's |
|
portNumber is located in the hierarchy at |
|
/ptp/common-services/cmlds/ports/port[]/port-ds/ |
|
port-identity/port-number."; |
|
reference |
|
"16.6.5.1.1.1 of IEEE Std 1588-2019"; |
|
} |
|
} |
|
|
|
container external-port-config-port-ds { |
|
if-feature external-port-config; |
|
description |
|
"Provides management access to the external |
|
configuration option, scoped to each PTP Port."; |
|
reference |
|
"17.6.3 of IEEE Std 1588-2019"; |
|
|
|
leaf desired-state { |
|
type port-state; |
|
description |
|
"When the value of |
|
default-ds/external-port-config-enable is true, |
|
this desired-state is used to externally configure |
|
the PTP Port's state (i.e., ../../port-ds/port-state) |
|
to a desired value."; |
|
reference |
|
"17.6.3.2 of IEEE Std 1588-2019"; |
|
} |
|
} |
|
|
|
container slave-monitoring-port-ds { |
|
if-feature slave-monitoring; |
|
description |
|
"Provides management access to the optional |
|
Slave Event Monitor service, scoped to each PTP Port."; |
|
reference |
|
"16.11.6 of IEEE Std 1588-2019"; |
|
|
|
leaf enable { |
|
type bits { |
|
bit slave-rx-sync-timing-data { |
|
position 0; |
|
description |
|
"True activates generation of the |
|
SLAVE_RX_SYNC_TIMING_DATA TLV."; |
|
} |
|
bit slave-rx-sync-computed-data { |
|
position 1; |
|
description |
|
"True activates generation of the |
|
SLAVE_RX_SYNC_COMPUTED_DATA TLV."; |
|
} |
|
bit slave-tx-event-timestamps { |
|
position 2; |
|
description |
|
"True activates generation of the |
|
SLAVE_TX_EVENT_TIMESTAMPS_DATA TLV."; |
|
} |
|
} |
|
description |
|
"Each bit (boolean flag) indicates whether |
|
the data for a corresponding slave event monitoring |
|
TLV is computed, and whether the data is transmitted |
|
by the slave."; |
|
reference |
|
"16.11.6.2 of IEEE Std 1588-2019"; |
|
} |
|
|
|
leaf events-per-rx-sync-timing-tlv { |
|
type uint8; |
|
description |
|
"Indicates the number of events to report per |
|
SLAVE_RX_SYNC_TIMING_DATA TLV."; |
|
reference |
|
"16.11.6.3 of IEEE Std 1588-2019"; |
|
} |
|
|
|
leaf events-per-rx-sync-computed-tlv { |
|
type uint8; |
|
description |
|
"Indicates the number of events to report per |
|
SLAVE_RX_SYNC_COMPUTED_DATA TLV."; |
|
reference |
|
"16.11.6.4 of IEEE Std 1588-2019"; |
|
} |
|
|
|
leaf events-per-tx-timestamps-tlv { |
|
type uint8; |
|
description |
|
"Indicates the number of events to report per |
|
SLAVE_TX_EVENT_TIMESTAMPS_DATA TLV."; |
|
reference |
|
"16.11.6.5 of IEEE Std 1588-2019"; |
|
} |
|
|
|
leaf tx-event-type { |
|
type uint8; |
|
description |
|
"Indicates the event message type selected for |
|
the egress event monitoring. The four low-order |
|
bits are defined to correspond to the |
|
IEEE Std 1588 messageType field."; |
|
reference |
|
"16.11.6.6 of IEEE Std 1588-2019"; |
|
} |
|
|
|
leaf rx-sync-timing-tlv-message-m { |
|
type uint8; |
|
description |
|
"The value M, where M indicates that every Mth |
|
event message is selected for monitoring in the |
|
SLAVE_RX_SYNC_TIMING_DATA TLV. For example, if |
|
the value of M is 4, every fourth event message |
|
is selected for monitoring in the TLV."; |
|
reference |
|
"16.11.6.7 of IEEE Std 1588-2019"; |
|
} |
|
|
|
leaf rx-sync-computed-tlv-message-m { |
|
type uint8; |
|
description |
|
"The value M, where M indicates that every Mth |
|
event message is selected for monitoring in the |
|
SLAVE_RX_SYNC_COMPUTED_DATA TLV. For example, if |
|
the value of M is 4, every fourth event message |
|
is selected for monitoring in the TLV."; |
|
reference |
|
"16.11.6.8 of IEEE Std 1588-2019"; |
|
} |
|
|
|
leaf tx-timestamps-tlv-message-m { |
|
type uint8; |
|
description |
|
"The value M, where M indicates that every Mth |
|
event message is selected for monitoring in the |
|
SLAVE_TX_EVENT_TIMESTAMPS_DATA TLV. For example, if |
|
the value of M is 4, every fourth event message |
|
is selected for monitoring in the TLV."; |
|
reference |
|
"16.11.6.9 of IEEE Std 1588-2019"; |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
|
|
container transparent-clock-default-ds { |
|
status deprecated; |
|
description |
|
"This default data set was specified in |
|
IEEE Std 1588-2008, and under some interpretations, |
|
it applied to all domains, which in turn means that it |
|
represents multiple Transparent Clocks. |
|
In IEEE Std 1588-2019, this data set is specified as |
|
applying to the PTP Node (all domains), but the data set is |
|
deprecated. For new designs, the standard recommends that |
|
Transparent Clocks use the PTP Instance data sets |
|
(i.e., /ptp/instances/instance[]), such that each |
|
Transparent Clock supports a single PTP Instance and |
|
domain."; |
|
reference |
|
"8.3.1 of IEEE Std 1588-2019"; |
|
|
|
leaf clock-identity { |
|
type clock-identity; |
|
config false; |
|
status deprecated; |
|
description |
|
"The clockIdentity of the local clock."; |
|
reference |
|
"8.3.2.2.1 of IEEE Std 1588-2019"; |
|
} |
|
|
|
leaf number-ports { |
|
type uint16; |
|
config false; |
|
status deprecated; |
|
description |
|
"The number of PTP Ports of the device."; |
|
reference |
|
"8.3.2.2.2 of IEEE Std 1588-2019"; |
|
} |
|
|
|
leaf delay-mechanism { |
|
type delay-mechanism; |
|
status deprecated; |
|
description |
|
"The propagation delay measuring mechanism (e2e or p2p)."; |
|
reference |
|
"8.3.2.3.1 of IEEE Std 1588-2019"; |
|
} |
|
|
|
leaf primary-domain { |
|
type uint8; |
|
status deprecated; |
|
description |
|
"The domainNumber of the primary syntonization domain."; |
|
reference |
|
"8.3.2.3.2 of IEEE Std 1588-2019"; |
|
} |
|
} |
|
|
|
container transparent-clock-ports { |
|
status deprecated; |
|
description |
|
"YANG container that is used to get all ports of the |
|
IEEE Std 1588 transparentClockPortDS. |
|
YANG does not allow get of all elements in a YANG list, |
|
so a YANG container wrapping the YANG list is provided for |
|
that purpose. The naming convention uses plural for the |
|
wrapping YANG container, and singular for the YANG list."; |
|
|
|
list port { |
|
key "port-index"; |
|
status deprecated; |
|
description |
|
"This list of Transparent Clock port data sets was specified |
|
in IEEE Std 1588-2008, and under some interpretations, |
|
it applied to all domains, which in turn means that it |
|
represents multiple Transparent Clocks. |
|
In IEEE Std 1588-2019, this list is specified as |
|
applying to the PTP Node (all domains), but the list is |
|
deprecated. For new designs, the standard recommends that |
|
Transparent Clocks use the PTP Instance data sets |
|
(i.e., /ptp/instances/instance[]), such that each |
|
Transparent Clock supports a single PTP Instance |
|
and domain."; |
|
reference |
|
"8.3.1 of IEEE Std 1588-2019"; |
|
|
|
leaf port-index { |
|
type uint16; |
|
description |
|
"The port list is indexed using a number that is |
|
unique per port within the Transparent Clock, |
|
applicable to the management context only |
|
(i.e., not used in PTP messages)."; |
|
} |
|
|
|
leaf underlying-interface { |
|
type if:interface-ref; |
|
description |
|
"Reference to the configured underlying IETF YANG |
|
interface that is used by this port for |
|
transport of PTP messages. Among other data, |
|
physical identifiers for the interface |
|
(e.g. MAC address) can be obtained using this |
|
reference."; |
|
reference |
|
"RFC 8343"; |
|
} |
|
|
|
container port-ds { |
|
description |
|
"IEEE Std 1588 transparentClockPortDS."; |
|
reference |
|
"8.3.3 of IEEE Std 1588-2019"; |
|
|
|
container port-identity { |
|
config false; |
|
status deprecated; |
|
description |
|
"The IEEE Std 1588 portIdentity of this port."; |
|
reference |
|
"8.3.3.2.1 of IEEE Std 1588-2019"; |
|
uses port-identity; |
|
} |
|
|
|
leaf log-min-pdelay-req-interval { |
|
type int8; |
|
status deprecated; |
|
description |
|
"The logarithm to the base 2 of the |
|
minPdelayReqInterval (minimum permitted mean time |
|
interval between successive Pdelay_Req messages)."; |
|
reference |
|
"8.3.3.3.1 of IEEE Std 1588-2019"; |
|
} |
|
|
|
leaf faulty-flag { |
|
type boolean; |
|
status deprecated; |
|
description |
|
"Shall be true if the port is faulty and false |
|
if the port is operating normally."; |
|
reference |
|
"8.3.3.3.2 of IEEE Std 1588-2019"; |
|
} |
|
|
|
leaf peer-mean-path-delay { |
|
type time-interval; |
|
config false; |
|
status deprecated; |
|
description |
|
"An estimate of the current one-way propagation delay |
|
on the link when the delayMechanism is P2P; otherwise, |
|
it is zero."; |
|
reference |
|
"8.3.3.3.3 of IEEE Std 1588-2019"; |
|
} |
|
} |
|
} |
|
} |
|
|
|
container common-services { |
|
description |
|
"Provides management access to the common services. |
|
Common services operate on all PTP Instances |
|
of the PTP Node."; |
|
|
|
container cmlds { |
|
if-feature cmlds; |
|
description |
|
"The Common Mean Link Delay Service (CMLDS) is an |
|
optional service that enables any PTP Port that would |
|
normally obtain the value of a link's <meanLinkDelay> |
|
and <neighborRateRatio> using the peer-to-peer method |
|
to instead obtain these values from this optional service. |
|
The CMLDS service is available to all PTP Instances |
|
communicating with a specific transport mechanism, |
|
e.g. using Annex F, over the physical link between two PTP |
|
Nodes. |
|
|
|
In this option, the term Link Port refers to the mechanism |
|
enabling communication with a specific transport mechanism, |
|
e.g. using Annex F, over the physical link between two PTP |
|
Nodes. |
|
|
|
The Common Mean Link Delay Service is designed to run |
|
independently from any PTP Instances communicating |
|
over a Link Port. The service provides information on the |
|
<meanLinkDelay> as well as the as the <neighborRateRatio> |
|
measured in the timescale used by the service. The service |
|
runs on every Link Port where the CMLDS is present. |
|
Information required by a PTP Port is requested from and |
|
delivered by the service running on the associated |
|
Link Port."; |
|
reference |
|
"16.6.4 of IEEE Std 1588-2019"; |
|
|
|
container default-ds { |
|
description |
|
"The default data set of CMLDS."; |
|
reference |
|
"16.6.4.1 of IEEE Std 1588-2019"; |
|
|
|
leaf clock-identity { |
|
type clock-identity; |
|
config false; |
|
description |
|
"The IEEE Std 1588 clockIdentity used by CMLDS."; |
|
reference |
|
"16.6.4.1.2.1 of IEEE Std 1588-2019"; |
|
} |
|
|
|
leaf number-link-ports { |
|
type uint16; |
|
config false; |
|
description |
|
"The number of Link Ports of CMLDS."; |
|
reference |
|
"16.6.4.1.2.2 of IEEE Std 1588-2019"; |
|
} |
|
} |
|
|
|
container ports { |
|
description |
|
"YANG container that is used to get all Link Ports |
|
of CMLDS. |
|
YANG does not allow get of all elements in a YANG list, |
|
so a YANG container wrapping the YANG list is provided for |
|
that purpose. The naming convention uses plural for the |
|
wrapping YANG container, and singular for the YANG list."; |
|
|
|
list port { |
|
key "port-index"; |
|
description |
|
"List of data for each Link Port of CMLDS. |
|
The list is structured as leafs for each member |
|
of the IEEE Std 1588 cmldsLinkPortDS (primary |
|
Link Port data set), followed by containers for |
|
each optional Link Port data set. Members of data set |
|
cmldsLinkPortDS.commonMeanLinkDelayInformation |
|
are listed directly under the list, in order |
|
to keep the YANG naming hierarchy as short as |
|
possible."; |
|
reference |
|
"16.6.4.2 of IEEE Std 1588-2019"; |
|
|
|
leaf port-index { |
|
type uint16; |
|
description |
|
"The port list is indexed using a number that is |
|
unique per Link Port within the CMLDS, applicable |
|
to the management context only (i.e. not used in PTP |
|
messages)."; |
|
} |
|
|
|
leaf underlying-interface { |
|
type if:interface-ref; |
|
description |
|
"Reference to the configured underlying IETF YANG |
|
interface that is used by this Link Port for |
|
transport of PTP messages. Among other data, |
|
physical identifiers for the interface |
|
(e.g. MAC address) can be obtained using this |
|
reference."; |
|
reference |
|
"RFC 8343"; |
|
} |
|
|
|
container link-port-ds { |
|
description |
|
"The IEEE Std 1588 cmldsLinkPortDS of this Link Port."; |
|
reference |
|
"16.6.4.2 of IEEE Std 1588-2019"; |
|
|
|
container port-identity { |
|
config false; |
|
description |
|
"The IEEE Std 1588 portIdentity of this Link Port."; |
|
reference |
|
"16.6.4.2.2.1 of IEEE Std 1588-2019"; |
|
uses port-identity; |
|
} |
|
|
|
leaf domain-number { |
|
type uint8; |
|
config false; |
|
description |
|
"The IEEE Std 1588 domainNumber used by this |
|
Link Port. This domain number is not configurable, |
|
since its value is determined by the transport |
|
mechanism of the Link Port."; |
|
reference |
|
"16.6.4.2.2.2 of IEEE Std 1588-2019"; |
|
} |
|
|
|
leaf service-measurement-valid { |
|
type boolean; |
|
config false; |
|
description |
|
"This boolean is initialized to false, and will |
|
be false whenever the required PTP messages for |
|
CMLDS are not received on the Link Port. When |
|
the required PTP messages for CMLDS are received, |
|
this boolean is true. |
|
This value is obtained from the |
|
CommonMeanLinkDelayInformation structure returned |
|
by CMLDS."; |
|
reference |
|
"16.6.3.2 of IEEE Std 1588-2019"; |
|
} |
|
|
|
leaf mean-link-delay { |
|
type time-interval; |
|
config false; |
|
description |
|
"Estimate of the current one-way propagation delay |
|
on the PTP Link, i.e., <meanLinkDelay>, attached |
|
to this Link Port, computed using the peer-to-peer |
|
delay mechanism. |
|
This value is obtained from the |
|
CommonMeanLinkDelayInformation structure returned |
|
by CMLDS."; |
|
reference |
|
"16.6.3.2 of IEEE Std 1588-2019"; |
|
} |
|
|
|
leaf scaled-neighbor-rate-ratio { |
|
type int32; |
|
config false; |
|
description |
|
"Ratio of the rate of this PTP Node's clock to |
|
the clock of its neighbor attached |
|
to this Link Port, i.e., <neighborRateRatio>, |
|
scaled as specified in the standard. |
|
This value is obtained from the |
|
CommonMeanLinkDelayInformation structure returned |
|
by CMLDS."; |
|
reference |
|
"16.6.3.2 of IEEE Std 1588-2019"; |
|
} |
|
|
|
leaf log-min-pdelay-req-interval { |
|
type int8; |
|
description |
|
"Logarithm to the base 2 of the IEEE Std 1588 |
|
minPdelayReqInterval, the minimum permitted |
|
mean time interval between successive Pdelay_Req |
|
messages sent by CMLDS."; |
|
reference |
|
"16.6.4.2.4.1 of IEEE Std 1588-2019"; |
|
} |
|
|
|
leaf version-number { |
|
type uint8; |
|
description |
|
"The PTP major version in use on the Link Port. |
|
NOTE - This indicates the version of the |
|
IEEE 1588 standard, and not the version of an |
|
applicable PTP Profile."; |
|
reference |
|
"16.6.4.2.4.2 of IEEE Std 1588-2019"; |
|
} |
|
|
|
leaf minor-version-number { |
|
type uint8; |
|
description |
|
"The PTP minor version in use on the Link Port. |
|
NOTE - This indicates the version of the |
|
IEEE 1588 standard, and not the version of an |
|
applicable PTP Profile."; |
|
reference |
|
"16.6.4.2.4.3 of IEEE Std 1588-2019"; |
|
} |
|
|
|
leaf delay-asymmetry { |
|
type time-interval; |
|
description |
|
"The value of IEEE Std 1588 <delayAsymmetry> |
|
applicable to the Link Port, which is the |
|
difference in transmission time in one direction |
|
as compared to the opposite direction."; |
|
reference |
|
"7.4.2 of IEEE Std 1588-2019 |
|
16.6.4.2.4.4 of IEEE Std 1588-2019"; |
|
} |
|
} |
|
|
|
container timestamp-correction-port-ds { |
|
if-feature timestamp-correction; |
|
description |
|
"Provides access to the configurable correction of |
|
timestamps provided to the PTP protocol."; |
|
reference |
|
"16.6.4.3 of IEEE Std 1588-2019"; |
|
|
|
leaf egress-latency { |
|
type time-interval; |
|
description |
|
"Interval between the <egressProvidedTimestamp> |
|
provided for a PTP message and the time at which |
|
the message timestamp point of the PTP message |
|
crosses the reference plane."; |
|
reference |
|
"7.3.4.2 of IEEE Std 1588-2019 |
|
8.2.16.2 of IEEE Std 1588-2019"; |
|
} |
|
|
|
leaf ingress-latency { |
|
type time-interval; |
|
description |
|
"Interval between the time the message timestamp |
|
point of an ingress PTP message crosses the |
|
reference plane and the <ingressProvidedTimestamp> |
|
provided for the PTP message."; |
|
reference |
|
"7.3.4.2 of IEEE Std 1588-2019 |
|
8.2.16.3 of IEEE Std 1588-2019"; |
|
} |
|
} |
|
|
|
container asymmetry-correction-port-ds { |
|
if-feature asymmetry-correction; |
|
description |
|
"Provides access to asymmetry correction parameters |
|
that are used to compute the value of <delayAsymmetry>."; |
|
reference |
|
"16.6.4.4 of IEEE Std 1588-2019"; |
|
|
|
leaf enable { |
|
type boolean; |
|
description |
|
"When this value is true, the mechanism to calculate |
|
<delayAsymmetry> for certain media is enabled on |
|
this PTP Port. When this value is false, this |
|
mechanism is disabled on this PTP Port."; |
|
reference |
|
"8.2.17.4 of IEEE Std 1588-2019"; |
|
} |
|
|
|
leaf constant-asymmetry { |
|
type time-interval; |
|
description |
|
"Constant asymmetry used to fine adjust the |
|
dynamically calculated value of <delayAsymmetry>, |
|
when the mechanism to calculate <delayAsymmetry> |
|
or certain media is enabled."; |
|
reference |
|
"8.2.17.2 of IEEE Std 1588-2019"; |
|
} |
|
|
|
leaf scaled-delay-coefficient { |
|
type relative-difference; |
|
description |
|
"This is the <delayCoefficient>."; |
|
reference |
|
"8.2.17.3 of IEEE Std 1588-2019"; |
|
} |
|
} |
|
|
|
container performance-monitoring-port-ds { |
|
if-feature performance-monitoring; |
|
description |
|
"Provides data for the optional performance |
|
monitoring mechanism, scoped to each Link Port."; |
|
reference |
|
"16.6.4.5 of IEEE Std 1588-2019"; |
|
|
|
list record-list-peer-delay { |
|
key "index"; |
|
max-elements 99; |
|
config false; |
|
description |
|
"List of performance monitoring records for the |
|
Link Port that is using the peer-to-peer delay |
|
measurement mehanism. The list is organized |
|
as follows: |
|
- 97 15-minute measurement records, the current |
|
record at index 0, followed by the most recent |
|
96 records. |
|
- 2 24-hour measurement records, the current record |
|
at index 97, and the previous record at index 98. |
|
|
|
If a record is not implemented for a specific index, |
|
management does not return the record. For example, |
|
if only four 15-minute periods are implemented, |
|
a management request for |
|
performance-monitoring-port-ds/ |
|
record-list-peer-delay[6] returns an error. |
|
|
|
If only some of the data is reported, the same index |
|
values are used. As an example, if only the 24-hour |
|
statistics are accessed, the indexes are still |
|
97 and 98. |
|
|
|
If a specific parameter (e.g. min-mean-link-delay) |
|
is not implemented, management does not return the |
|
parameter (i.e., error). Parameters that are invalid |
|
(not measured correctly) shall be indicated with |
|
one in all bits, except the most significant. This |
|
represents the largest positive value of |
|
time-interval, indicating a value outside the |
|
maximum range."; |
|
reference |
|
"J.5.2.1 of IEEE Std 1588-2019"; |
|
|
|
uses port-performance-monitoring-peer-delay-data-record; |
|
} |
|
|
|
list record-list { |
|
key "index"; |
|
max-elements 99; |
|
config false; |
|
description |
|
"List of performance monitoring records for the |
|
Link Port, not specific to the peer-to-peer delay |
|
measurement mehanism. The list is organized |
|
as follows: |
|
- 97 15-minute measurement records, the current |
|
record at index 0, followed by the most recent |
|
96 records. |
|
- 2 24-hour measurement records, the current record |
|
at index 97, and the previous record at index 98. |
|
|
|
If a record is not implemented for a specific index, |
|
management does not return the record. For example, |
|
if only four 15-minute periods are implemented, |
|
a management request for |
|
performance-monitoring-port-ds/record-list[6] |
|
returns an error. |
|
|
|
If only some of the data is reported, the same index |
|
values are used. As an example, if only the 24-hour |
|
statistics are accessed, the indexes are still |
|
97 and 98. |
|
|
|
If a specific parameter (e.g. sync-tx) |
|
is not implemented, management does not return the |
|
parameter (i.e., error). Parameters that are invalid |
|
(not measured correctly) shall be indicated with |
|
with the value zero, indicating that nothing was |
|
counted. |
|
|
|
Each counter in the record shall be initialized to |
|
zero at the start of a new 15-minute and |
|
24-hour interval."; |
|
reference |
|
"J.5.2.2 of IEEE Std 1588-2019"; |
|
|
|
uses port-performance-monitoring-data-record; |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
}
|
|
|