--- 1/draft-ietf-tictoc-1588v2-yang-05.txt 2017-10-26 19:13:08.997367424 -0700 +++ 2/draft-ietf-tictoc-1588v2-yang-06.txt 2017-10-26 19:13:09.049368661 -0700 @@ -1,20 +1,22 @@ Internet Working Group Y. Jiang, Ed. - X. Liu -Internet-Draft J. Xu Huawei -Intended status: Standards Track R. Cummings, Ed. +Internet-Draft X. Liu + Independent +Intended status: Standards Track J. Xu + Huawei + R. Cummings, Ed. National Instruments -Expires: October 2017 April 20, 2017 +Expires: April 2018 October 26, 2017 - YANG Data Model for IEEE 1588v2 - draft-ietf-tictoc-1588v2-yang-05 + YANG Data Model for IEEE 1588-2008 + draft-ietf-tictoc-1588v2-yang-06 Abstract This document defines a YANG data model for the configuration of IEEE 1588-2008 devices and clocks, and also retrieval of the configuration information, data set and running states of IEEE 1588-2008 clocks. Status of this Memo @@ -31,21 +33,21 @@ documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." The list of current Internet-Drafts can be accessed at http://www.ietf.org/ietf/1id-abstracts.txt The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html - This Internet-Draft will expire on October 20, 2017. + This Internet-Draft will expire on April 26, 2018. Copyright Notice Copyright (c) 2017 IETF Trust and the persons identified as the document authors. All rights reserved. This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents @@ -56,55 +58,55 @@ warranty as described in the Simplified BSD License. Table of Contents 1. Introduction .............................................. 2 1.1. Conventions used in this document ...................... 4 1.2. Terminology ............................................ 4 2. IEEE 1588-2008 YANG Model hierarchy ....................... 5 2.1. Interpretations from IEEE 1588 Working Group ........... 8 2.2. Configuration and state ................................ 8 - 3. IEEE 1588-2008 YANG Module ............................... 10 - 4. Security Considerations .................................. 23 + 3. IEEE 1588-2008 YANG Module ................................ 9 + 4. Security Considerations .................................. 22 5. IANA Considerations ...................................... 23 6. References ............................................... 23 6.1. Normative References .................................. 23 - 6.2. Informative References ................................ 24 - 7. Acknowledgments .......................................... 25 + 6.2. Informative References ................................ 23 + 7. Acknowledgments .......................................... 24 Appendix A Transferring YANG Work to IEEE 1588 WG (Informational) - .............................................................. 26 - A.1. Assumptions for the Transfer .......................... 26 - A.2. Intellectual Property Considerations .................. 27 - A.3. Namespace and Module Name ............................. 28 - A.4. IEEE 1588 YANG Modules in ASCII Format ................ 29 + ................................................................. 25 + A.1. Assumptions for the Transfer .......................... 25 + A.2. Intellectual Property Considerations .................. 26 + A.3. Namespace and Module Name ............................. 27 + A.4. IEEE 1588 YANG Modules in ASCII Format ................ 28 1. Introduction - As a synchronization protocol, IEEE 1588-2008 (also known as IEEE - 1588v2) [IEEE1588] is widely supported in the carrier networks, - industrial networks, automotive networks, and many other - applications. It can provide high precision time synchronization as - fine as nano-seconds. The protocol depends on a Precision Time - Protocol (PTP) engine to decide its own state automatically, and a - PTP transportation layer to carry the PTP timing and various - quality messages. The configuration parameters and state data sets - of IEEE 1588-2008 are numerous. + As a synchronization protocol, IEEE 1588-2008 [IEEE1588] is widely + supported in the carrier networks, industrial networks, automotive + networks, and many other applications. It can provide high + precision time synchronization as fine as nano-seconds. The + protocol depends on a Precision Time Protocol (PTP) engine to + decide its own state automatically, and a PTP transportation layer + to carry the PTP timing and various quality messages. The + configuration parameters and state data sets of IEEE 1588-2008 are + numerous. According to the concepts described in [RFC3444], IEEE 1588-2008 itself provides an information model in its normative specifications for the data sets (in IEEE 1588-2008 clause 8). Some standardization organizations including the IETF have specified data models in MIBs (Management Information Bases) for IEEE 1588- - 2008 data sets (e.g. [PTP-MIB], [IEEE8021AS]). These MIBs are + 2008 data sets (e.g. [RFC8173], [IEEE8021AS]). These MIBs are typically focused on retrieval of state data using the Simple Network Management Protocol (SNMP), furthermore, configuration of - PTP data sets is not considered in [PTP-MIB]. + PTP data sets is not considered in [RFC8173]. Some service providers and applications require that the management of the IEEE 1588-2008 synchronization network be flexible and more Internet-based (typically overlaid on their transport networks). Software Defined Network (SDN) is another driving factor, which demands an improved configuration capability of synchronization networks. YANG [RFC6020] is a data modeling language used to model configuration and state data manipulated by network management @@ -190,20 +192,27 @@ P2P Peer-to-Peer PTP Precision Time Protocol TAI International Atomic Time TC Transparent Clock UTC Coordinated Universal Time + PTP dataset Structured attributes of clocks (an OC, BC or TC) used + for PTP protocol decisions and for providing values for PTP message + fields, see Section 8 of [IEEE1588]. + + PTP instance A PTP implementation in the device (i.e., an OC or BC) + represented by a specific PTP dataset. + 2. IEEE 1588-2008 YANG Model hierarchy This section describes the hierarchy of an IEEE 1588-2008 YANG module. Query and configuration of device wide or port specific configuration information and clock data set is described for this version. Query and configuration of clock information include: - Clock data set attributes in a clock node, including: current-ds, @@ -219,35 +228,37 @@ each of them in the YANG module. A simplified graphical representation of the data model is typically used by YANG modules as described in [RFC8040]. This document uses the same representation and the meaning of the symbols in these diagrams is as follows: o Brackets "[" and "]" enclose list keys. o Abbreviations before data node names: "rw" means configuration - data (read-write) and "ro" state data (read-only). + data (read-write) and "ro" state data (read-only). For IEEE 1588- + 2008, all data nodes are marked "rw" (see 2.2). o Symbols after data node names: "?" means an optional node, "!" means a presence container, and "*" denotes a list and leaf-list. o Parentheses enclose choice and case nodes, and case nodes are also marked with a colon (":"). o Ellipsis ("...") stands for contents of subtrees that are not shown. o Arrow ("->") stands for a reference to a particular leaf instance in the tree. - module: ietf-ptp-dataset + module: ietf-ptp + +--rw ptp +--rw instance-list* [instance-number] | +--rw instance-number uint16 | +--rw default-ds | | +--rw two-step-flag? boolean | | +--rw clock-identity? clock-identity-type | | +--rw number-ports? uint16 | | +--rw clock-quality | | | +--rw clock-class? uint8 | | | +--rw clock-accuracy? uint8 | | | +--rw offset-scaled-log-variance? uint16 @@ -276,44 +287,39 @@ | +--rw time-properties-ds | | +--rw current-utc-offset-valid? boolean | | +--rw current-utc-offset? int16 | | +--rw leap59? boolean | | +--rw leap61? boolean | | +--rw time-traceable? boolean | | +--rw frequency-traceable? boolean | | +--rw ptp-timescale? boolean | | +--rw time-source? uint8 | +--rw port-ds-list* [port-number] - | +--rw port-number -> ../port-identity/port-number - | +--rw port-identity - | | +--rw clock-identity? clock-identity-type - | | +--rw port-number? uint16 + | +--rw port-number uint16 | +--rw port-state? port-state-enumeration | +--rw underlying-interface? if:interface-ref | +--rw log-min-delay-req-interval? int8 | +--rw peer-mean-path-delay? time-interval-type | +--rw log-announce-interval? int8 | +--rw announce-receipt-timeout? uint8 | +--rw log-sync-interval? int8 | +--rw delay-mechanism? delay-mechanism-enumeration | +--rw log-min-pdelay-req-interval? int8 | +--rw version-number? uint8 +--rw transparent-clock-default-ds | +--rw clock-identity? clock-identity-type | +--rw number-ports? uint16 | +--rw delay-mechanism? delay-mechanism-enumeration | +--rw primary-domain? uint8 +--rw transparent-clock-port-ds-list* [port-number] - +--rw port-number -> ../port-identity/port-number - +--rw port-identity - | +--rw clock-identity? clock-identity-type - | +--rw port-number? uint16 + +--rw port-number uint16 + +--rw clock-identity? clock-identity-type +--rw log-min-pdelay-req-interval? int8 +--rw faulty-flag? boolean +--rw peer-mean-path-delay? time-interval-type 2.1. Interpretations from IEEE 1588 Working Group The preceding model and the associated YANG module have some subtle differences from the data set specifications of IEEE Std 1588-2008. These differences are based on interpretation from the IEEE 1588 Working Group, and are intended to provide compatibility with @@ -322,68 +328,50 @@ In IEEE Std 1588-2008, a physical product can implement multiple PTP clocks (i.e. ordinary, boundary, or transparent clock). As specified in 1588-2008 subclause 7.1, each of the multiple clocks operates in an independent domain. However, the organization of multiple PTP domains was not clear in the data sets of IEEE Std 1588-2008. This document introduces the concept of PTP instance as described in the new revision of IEEE 1588. The instance concept is used exclusively to allow for optional support of multiple domains. The instance number has no usage within PTP messages. - Based on statements in IEEE 1588-2008 subclauses 8.3.1. and 10.1, + Based on statements in IEEE 1588-2008 subclauses 8.3.1 and 10.1, most transparent clock products have interpreted the transparent clock data sets to reside as a singleton at the root level of the - managed product. Since 1588-2008 transparent clocks are domain - independent, the instance concept is not applicable for domains. + managed product, and this YANG model reflects that location. 2.2. Configuration and state The information model of IEEE Std 1588-2008 classifies each member in PTP data sets as one of the following: - Configurable: Writable by management. - Dynamic: Read-only to management, and the value is changed by 1588 protocol operation. - Static: Read-only to management, and the value typically does not change. Under certain circumstances, the classification of an IEEE 1588 - data set member can change. For example, each PTP port's port-state - is normally Dynamic, i.e., it is read-only to management and only - IEEE 1588 protocol determines its value. Nevertheless, some IEEE - 1588-2008 products support a proprietary boolean attribute (e.g., - leaf in a product-specific 1588 YANG augment) that allows the port- - state to be configured externally. When the proprietary boolean is - false, the port-state is Dynamic, representing YANG state data. - When the proprietary boolean is true, the port-state is - Configurable, representing YANG configuration data. - - Future revisions of the IEEE 1588 standard are considering formal - standardization of this sort of proprietary feature, this will be - reflected in future 1588 YANG module revisions but out scope of - this document. - - Due to the fact that the classification of 1588 members can change, - this model uses a single-tree of YANG hierarch rather than - separates it into a configuration data tree and a state data tree. - For details on the classification of each PTP data set member, - refer to the IEEE Std 1588-2008 specification for that member. + data set member can change. For details on the classification of + each PTP data set member, refer to the IEEE Std 1588-2008 + specification for that member. 3. IEEE 1588-2008 YANG Module - file "ietf-ptp-dataset@2017-04-20.yang" + file "ietf-ptp@2017-10-20.yang" - module ietf-ptp-dataset{ - namespace "urn:ietf:params:xml:ns:yang:ietf-ptp-dataset"; - prefix "ptp-dataset"; + module ietf-ptp { + namespace "urn:ietf:params:xml:ns:yang:ietf-ptp"; + prefix "ptp"; import ietf-interfaces { prefix if; } organization "IETF TICTOC Working Group"; contact "WG Web: http://tools.ietf.org/wg/tictoc/ WG List: WG Chair: Karen O'Donoghue @@ -392,106 +380,105 @@ Editor: Yuanlong Jiang Editor: Rodney Cummings "; description "This YANG module defines a data model for the configuration of IEEE 1588-2008 clocks, and also for retrieval of the state data of IEEE 1588-2008 clocks."; - revision "2017-04-20" { - description "Version 5.0"; + revision "2017-10-20" { + description "Version 6.0"; reference "draft-ietf-tictoc-1588v2-yang"; } typedef delay-mechanism-enumeration { type enumeration { - enum E2E { + enum e2e { value 1; description - "The port uses the delay request-response - mechanism."; + "The port uses the delay request-response mechanism."; } - enum P2P { + enum p2p { value 2; description "The port uses the peer delay mechanism."; } - enum DISABLED { + enum disabled { value 254; description - "The port does not implement any delay - mechanism."; + "The port does not implement any delay mechanism."; } } description "The propagation delay measuring option used by the port. Values for this enumeration are specified by the IEEE 1588 standard exclusively."; reference "IEEE Std 1588-2008: 8.2.5.4.4"; } typedef port-state-enumeration { type enumeration { - enum INITIALIZING { + enum initializing { value 1; description "The port is initializing its data sets, hardware, and communication facilities."; } - enum FAULTY { + enum faulty { value 2; description "The port is in the fault state."; } - enum DISABLED { + enum disabled { value 3; description "The port is disabled, and is not communicating PTP messages (other than possibly PTP management messages)."; } - enum LISTENING { + enum listening { value 4; description "The port is listening for an Announce message."; } - enum PRE_MASTER { + enum pre-master { value 5; description "The port is in the pre-master state."; } - enum MASTER { + enum master { value 6; description "The port is behaving as a master port."; + } - enum PASSIVE { + enum passive { value 7; description "The port is in the passive state."; } - enum UNCALIBRATED { + enum uncalibrated { value 8; description "A master port has been selected, but the port is still in the uncalibrated state."; } - enum SLAVE { + enum slave { value 9; description - "The port is synchronizing to the selected - master port."; + "The port is synchronizing to the selected master port."; } } + description "The current state of the protocol engine associated with the port. Values for this enumeration are specified by the IEEE 1588 standard exclusively."; reference "IEEE Std 1588-2008: 8.2.5.3.1, 9.2.5"; } typedef time-interval-type { type int64; @@ -489,56 +476,34 @@ "The current state of the protocol engine associated with the port. Values for this enumeration are specified by the IEEE 1588 standard exclusively."; reference "IEEE Std 1588-2008: 8.2.5.3.1, 9.2.5"; } typedef time-interval-type { type int64; description - "Derived data type for time interval, - represented in units of nanoseconds and - multipled by 2^16"; + "Derived data type for time interval, represented in units of + nanoseconds and multiplied by 2^16"; reference "IEEE Std 1588-2008: 5.3.2"; } typedef clock-identity-type { type binary { length "8"; } description "Derived data type to identify a clock"; reference "IEEE Std 1588-2008: 5.3.4"; - - } - - grouping port-identity-grouping { - description - "Derived data type to identify a port, which contains - two members: clockIdentity and portNumber."; - reference - "IEEE Std 1588-2008: 5.3.5"; - - leaf clock-identity { - type clock-identity-type; - description - "Identity of the clock"; - } - - leaf port-number { - type uint16; - description - "Port number"; - } } grouping clock-quality-grouping { description "Derived data type for quality of a clock, which contains clockClass, clockAccuracy and offsetScaledLogVariance."; reference "IEEE Std 1588-2008: 5.3.7"; leaf clock-class { @@ -552,48 +517,74 @@ leaf clock-accuracy { type uint8; description "The clockAccuracy indicates the expected accuracy of the clock."; } leaf offset-scaled-log-variance { type uint16; description - "The offsetScaledLogVariance provides an - estimate of the variations of the clock - from a linear timescale when it is not synchronized - to another clock using the protocol."; + "The offsetScaledLogVariance provides an estimate of + the variations of the clock from a linear timescale + when it is not synchronized to another clock + using the protocol."; } } - grouping default-ds-entry { + container ptp { description - "Collection of members of the default data set."; + "The PTP struct containing all attributes of PTP Dataset, + other optional PTP attributes can be augmented as well."; + + list instance-list { + + key "instance-number"; + + description + "List of one or more PTP datasets in the device (see IEEE + Std 1588-2008 subclause 6.3). + Each PTP dataset represents a distinct instance of + PTP implementation in the device (i.e. distinct + Ordinary Clock or Boundary Clock)."; + + leaf instance-number { + type uint16; + description + "The instance number of the current PTP instance. + This instance number is used for management purposes + only. This instance number does not represent the PTP + domain number, and is not used in PTP messages."; + } + + container default-ds { + description + "The default data set of the clock (see IEEE Std + 1588-2008 subclause 8.2.1)."; leaf two-step-flag { type boolean; description "When set, the clock is a two-step clock; otherwise, the clock is a one-step clock."; } leaf clock-identity { type clock-identity-type; description "The clockIdentity of the local clock"; } leaf number-ports { type uint16; description - "The number of PTP ports on the device."; + "The number of PTP ports on the instance."; } container clock-quality { description "The clockQuality of the local clock."; uses clock-quality-grouping; } leaf priority1 { @@ -614,33 +603,36 @@ description "The domain number of the current syntonization domain."; } leaf slave-only { type boolean; description "When set, the clock is a slave-only clock."; } + } - grouping current-ds-entry { + container current-ds { description - "Collection of members of current data set."; + "The current data set of the clock (see IEEE Std + 1588-2008 subclause 8.2.2)."; leaf steps-removed { type uint16; default 0; description "The number of communication paths traversed between the local clock and the grandmaster clock."; } + leaf offset-from-master { type time-interval-type; description "The current value of the time difference between a master and a slave clock as computed by the slave."; } leaf mean-path-delay { type time-interval-type; description @@ -641,43 +633,61 @@ a master and a slave clock as computed by the slave."; } leaf mean-path-delay { type time-interval-type; description "The current value of the mean propagation time between a master and a slave clock as computed by the slave."; } + } - grouping parent-ds-entry { + container parent-ds { description - "Collection of members of the parent data set."; + "The parent data set of the clock (see IEEE Std 1588-2008 + subclause 8.2.3)."; container parent-port-identity { description - "The portIdentity of the port on the master"; - uses port-identity-grouping; + "The portIdentity of the port on the master, it + contains two members: clockIdentity and portNumber."; + reference + "IEEE Std 1588-2008: 5.3.5"; + + leaf clock-identity { + type clock-identity-type; + description + "Identity of the clock"; + } + + leaf port-number { + type uint16; + description + "Port number"; } + } + leaf parent-stats { type boolean; default false; description "When set, the values of observedParentOffsetScaledLogVariance and observedParentClockPhaseChangeRate of parentDS have been measured and are valid."; } + leaf observed-parent-offset-scaled-log-variance { type uint16; - default 0xFFFF; + default 65535; description "An estimate of the parent clock's PTP variance as observed by the slave clock."; } leaf observed-parent-clock-phase-change-rate { type int32; description "An estimate of the parent clock's phase change rate as observed by the slave clock."; } @@ -674,123 +684,149 @@ description "An estimate of the parent clock's PTP variance as observed by the slave clock."; } leaf observed-parent-clock-phase-change-rate { type int32; description "An estimate of the parent clock's phase change rate as observed by the slave clock."; } + leaf grandmaster-identity { type binary{ length "8"; } - description "The clockIdentity attribute of the grandmaster clock."; - } + container grandmaster-clock-quality { description "The clockQuality of the grandmaster clock."; uses clock-quality-grouping; } + leaf grandmaster-priority1 { type uint8; description "The priority1 attribute of the grandmaster clock."; } + leaf grandmaster-priority2 { type uint8; description "The priority2 attribute of the grandmaster clock."; } } - grouping time-properties-ds-entry { + container time-properties-ds { description - "Collection of members of the timeProperties data set."; + "The timeProperties data set of the clock (see + IEEE Std 1588-2008 subclause 8.2.4)."; + leaf current-utc-offset-valid { type boolean; description "When set, the current UTC offset is valid."; } + leaf current-utc-offset { type int16; description "The offset between TAI and UTC when the epoch of the PTP system is the PTP epoch, i.e., when ptp-timescale is TRUE; otherwise, the value has no meaning."; } + leaf leap59 { type boolean; description "When set, the last minute of the current UTC day contains 59 seconds."; } + leaf leap61 { type boolean; description "When set, the last minute of the current UTC day contains 61 seconds."; } + leaf time-traceable { type boolean; description "When set, the timescale and the currentUtcOffset are traceable to a primary reference."; } + leaf frequency-traceable { type boolean; description "When set, the frequency determining the timescale is traceable to a primary reference."; } + leaf ptp-timescale { type boolean; description "When set, the clock timescale of the grandmaster clock is PTP; otherwise, the timescale is ARB (arbitrary)."; } + leaf time-source { type uint8; description "The source of time used by the grandmaster clock."; } } - grouping port-ds-entry { + list port-ds-list { + key "port-number"; description - "Collection of members of the port data set."; + "List of port data sets of the clock (see IEEE Std + 1588-2008 subclause 8.2.5)."; - container port-identity { + leaf port-number{ + type uint16; description - "The portIdentity attribute of the local port."; - uses port-identity-grouping; + "Port number. + The data sets (i.e. information model) of IEEE Std + 1588-2008 specify a member portDS.portIdentity, which + uses a typed struct with members clockIdentity and + portNumber. + + In this YANG data model, portIdentity is not modeled + in the port-ds-list, however, its members are provided + as follows: + portIdentity.portNumber is provided as this port- + number leaf in port-ds-list; and + portIdentity.clockIdentity is provided as the clock- + identity leaf in default-ds of the instance + (i.e. ../../default-ds /clock-identity)."; } leaf port-state { type port-state-enumeration; - default "INITIALIZING"; + default "initializing"; description "Current state associated with the port."; } leaf underlying-interface { type if:interface-ref; description - "Reference to the configured underlying interface that is - used by this PTP Port (see RFC 7223)."; + "Reference to the configured underlying interface that + is used by this PTP Port (see RFC 7223)."; } leaf log-min-delay-req-interval { type int8; description "The base-two logarithm of the minDelayReqInterval (the minimum permitted mean time interval between successive Delay_Req messages)."; } @@ -843,36 +879,38 @@ minPdelayReqInterval (minimum permitted mean time interval between successive Pdelay_Req messages)."; } leaf version-number { type uint8; description "The PTP version in use on the port."; } + + } } - grouping transparent-clock-default-ds-entry { + container transparent-clock-default-ds { description - "Collection of members of the transparentClockDefault data - set (default data set for a transparent clock)."; + "The members of the transparentClockDefault Data Set (see + IEEE Std 1588-2008 subclause 8.3.2)."; leaf clock-identity { type clock-identity-type; description "The clockIdentity of the transparent clock."; } leaf number-ports { type uint16; description - "The number of PTP ports on the device."; + "The number of PTP ports on the Transparent Clock."; } leaf delay-mechanism { type delay-mechanism-enumeration; description "The propagation delay measuring option used by the transparent clock."; } leaf primary-domain { type uint8; default 0; @@ -871,35 +909,61 @@ type delay-mechanism-enumeration; description "The propagation delay measuring option used by the transparent clock."; } leaf primary-domain { type uint8; default 0; description "The domainNumber of the primary syntonization domain."; - } + } - grouping transparent-clock-port-ds-entry { + list transparent-clock-port-ds-list { + key "port-number"; description - "Collection of members of the transparentClockPort data - set (port data set for a transparent clock)."; + "List of transparentClockPort data sets of the transparent + clock (see IEEE Std 1588-2008 subclause 8.3.3)."; - container port-identity { + leaf port-number { + type uint16; description - "The portIdentity of the local port."; + "Port number. + The data sets (i.e. information model) of IEEE Std + 1588-2008 specify a member + transparentClockPortDS.portIdentity, which uses a typed + struct with members clockIdentity and portNumber. - uses port-identity-grouping; + In this YANG data model, portIdentity is not modeled in + the transparent-clock-port-ds-list, however, + portIdentity.portNumber is provided as this leaf member + in transparent-clock-port-ds-list."; + + } + + leaf clock-identity { + type clock-identity-type; + description + "clock-identity. + The data sets (i.e. information model) of IEEE Std + 1588-2008 specify a member + transparentClockPortDS.portIdentity, which uses a typed + struct with members clockIdentity and portNumber. + + In this YANG data model, portIdentity is not modeled in + the transparent-clock-port-ds-list, however, + portIdentity.clockIdentity is provided as this leaf + member in transparent-clock-port-ds-list."; } + leaf log-min-pdelay-req-interval { type int8; description "The logarithm to the base 2 of the minPdelayReqInterval (minimum permitted mean time interval between successive Pdelay_Req messages)."; } leaf faulty-flag { type boolean; default false; @@ -907,116 +971,42 @@ "When set, the port is faulty."; } leaf peer-mean-path-delay { type time-interval-type; default 0; description "An estimate of the current one-way propagation delay on the link when the delayMechanism is P2P; otherwise, it is zero."; } - } - - list instance-list { - - key "instance-number"; - - description - "List of one or more PTP datasets in the device, one for - each domain (see IEEE 1588-2008 subclause 6.3). - Each PTP dataset represents a distinct instance of - PTP implementation in the device (i.e. distinct - Ordinary Clock or Boundary Clock)."; - - leaf instance-number { - type uint16; - description - "The instance number of the current PTP instance"; - } - container default-ds { - description - "The default data set of the clock."; - uses default-ds-entry; - - } - - container current-ds { - description - "The current data set of the clock."; - uses current-ds-entry; - } - - container parent-ds { - description - "The parent data set of the clock."; - uses parent-ds-entry; - } - - container time-properties-ds { - description - "The timeProperties data set of the clock."; - uses time-properties-ds-entry; - } - - list port-ds-list { - key "port-number"; - description - "List of port data sets of the clock."; - leaf port-number{ - type leafref{ - path "../port-identity/port-number"; - } - description - "Refers to the portNumber memer of - portDS.portIdentity."; - } - uses port-ds-entry; - } - } - container transparent-clock-default-ds { - description - "The members of the transparentClockDefault Data Set"; - uses transparent-clock-default-ds-entry; - } - - list transparent-clock-port-ds-list { - key "port-number"; - description - "List of transparentClockPort data sets - of the transparent clock."; - - leaf port-number { - type leafref { - path "../port-identity/port-number"; } - description - "Refers to the portNumber memer - of transparentClockPortDS.portIdentity."; - } - uses transparent-clock-port-ds-entry; } } 4. Security Considerations YANG modules are designed to be accessed via the NETCONF protocol [RFC6241], thus security considerations in [RFC6241] apply here. Security measures such as using the NETCONF over SSH [RFC6242] and restricting its use with access control [RFC6536] can further improve its security, avoid injection attacks and misuse of the - protocol. + protocol. Furthermore, general security considerations of time + protocols are discussed in [RFC7384]. - Some data nodes defined in this YANG module are writable, and any - changes to them may adversely impact a synchronization network. + Some data nodes defined in this YANG module are writable, and an + inappropriate use of them may adversely impact a synchronization + network. For example, loss of synchronization on a clock, accuracy + degradation on a set of clocks, or even break down of a whole + synchronization network. 5. IANA Considerations This document registers a URI in the IETF XML registry, and the following registration is requested to be made: URI: urn:ietf:params:xml:ns:yang:ietf-ptp-dataset This document registers a YANG module in the YANG Module Names: name: ietf-ptp-dataset namespace: urn:ietf:params:xml:ns:yang:ietf- ptp-dataset @@ -1041,52 +1031,54 @@ [IEEE1588] IEEE, "IEEE Standard for a Precision Clock Synchronization Protocol for Networked Measurement and Control Systems", IEEE Std 1588-2008, July 2008 6.2. Informative References [IEEE8021AS] IEEE, "Timing and Synchronizations for Time-Sensitive Applications in Bridged Local Area Networks", IEEE 802.1AS-2001, 2011 - [PTP-MIB] Shankarkumar, V., Montini, L., Frost, T., and Dowd, G., - "Precision Time Protocol Version 2 (PTPv2) Management - Information Base", draft-ietf-tictoc-ptp-mib-12, Work in - progress - - [RFC8040] Bierman, A., Bjorklund, M., and Watsen, K., "RESTCONF - protocol", RFC 8040, January 2017 - [RFC3444] Pras, A. and J. Schoenwaelder, "On the Difference between Information Models and Data Models", RFC 3444, January 2003 [RFC4663] Harrington, D., "Transferring MIB Work from IETF Bridge MIB WG to IEEE 802.1 WG", RFC 4663, September 2006 [RFC6241] Enns, R., Bjorklund, M., Schoenwaelder, J., and A. Bierman, "Network Configuration Protocol (NETCONF)", RFC 6241, June 2011 [RFC6242] Wasserman, M., "Using the NETCONF Protocol over Secure Shell (SSH)", RFC 6242, June 2011 [RFC6536] Bierman, A. and M. Bjorklund, "Network Configuration Protocol (NETCONF) Access Control Model", RFC 6536, March 2012 + [RFC7384] Mizrahi, T., "Security Requirements of Time Protocols in + Packet Switched Networks", RFC 7384, October 2014 + + [RFC8040] Bierman, A., Bjorklund, M., and Watsen, K., "RESTCONF + protocol", RFC 8040, January 2017 + + [RFC8173] Shankarkumar, V., Montini, L., Frost, T., and Dowd, G., + "Precision Time Protocol Version 2 (PTPv2) Management + Information Base", RFC 8173, June 2017 + 7. Acknowledgments The authors would like to thank Joe Gwinn, Mahesh Jethanandani, Tal - Mizrahi, Opher Ronen and Liang Geng for their valuable reviews and - suggestions, and thank Benoit Claise and Radek Krejci for their - validation of the YANG module. + Mizrahi, Opher Ronen, Liang Geng, Alex Campbell, and John Fletcher + for their valuable reviews and suggestions, and thank Benoit Claise + and Radek Krejci for their validation of the YANG module. Appendix A Transferring YANG Work to IEEE 1588 WG (Informational) This appendix describes a future plan to transition responsibility for IEEE 1588 YANG modules from the IETF TICTOC Working Group (WG) to the IEEE 1588 WG, which develops the time synchronization technology that the YANG modules are designed to manage. This appendix is forward-looking with regard to future standardization roadmaps in IETF and IEEE. Since those roadmaps @@ -1271,24 +1263,23 @@ Authors' Addresses Yuanlong Jiang (Editor) Huawei Technologies Co., Ltd. Bantian, Longgang district Shenzhen 518129, China Email: jiangyuanlong@huawei.com Xian Liu - Huawei Technologies Co., Ltd. - Bantian, Longgang district + Independent Shenzhen 518129, China - lene.liuxian@huawei.com + lene.liuxian@foxmail.com Jinchun Xu Huawei Technologies Co., Ltd. Bantian, Longgang district Shenzhen 518129, China xujinchun@huawei.com Rodney Cummings (Editor) National Instruments 11500 N. Mopac Expwy