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