Support of WG4 OpenFronthaul Management-Plane VES
[scp/oam/modeling.git] / data-model / yang / published / o-ran / ru-fh / o-ran-sync@2022-08-15.yang
1 module o-ran-sync {
2   yang-version 1.1;
3   namespace "urn:o-ran:sync:1.0";
4   prefix "o-ran-sync";
5
6   import ietf-interfaces {
7     prefix "if";
8   }
9
10   import o-ran-interfaces {
11     prefix "o-ran-int";
12   }
13
14   organization "O-RAN Alliance";
15
16   contact
17     "www.o-ran.org";
18
19   description
20     "This module defines synchronization mechanism for the O-RAN Equipment.
21
22     Copyright 2021 the O-RAN Alliance.
23
24     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 'AS IS'
25     AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
26     IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
27     ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
28     LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
29     CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
30     SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
31     INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
32     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
33     ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
34     POSSIBILITY OF SUCH DAMAGE.
35
36     Redistribution and use in source and binary forms, with or without
37     modification, are permitted provided that the following conditions are met:
38
39     * Redistributions of source code must retain the above copyright notice,
40     this list of conditions and the above disclaimer.
41     * Redistributions in binary form must reproduce the above copyright notice,
42     this list of conditions and the above disclaimer in the documentation
43     and/or other materials provided with the distribution.
44     * Neither the Members of the O-RAN Alliance nor the names of its
45     contributors may be used to endorse or promote products derived from
46     this software without specific prior written permission.";
47
48   revision "2022-08-15" {
49     description
50       "version 8.1.0
51
52       1) clarifiy description of quality-level";
53
54     reference "ORAN-WG4.M.0-v08.00";
55   }
56
57   revision "2021-12-01" {
58     description
59       "version 8.0.0
60
61       1) typographical corrections in descriptions.
62       2) add support for boundary clock indication";
63
64     reference "ORAN-WG4.M.0-v08.00";
65   }
66
67   revision "2021-03-22" {
68     description
69       "version 1.4.0
70
71       1) typographical corrections in descriptions.
72       2) Description alignment with specification.";
73
74     reference "ORAN-WG4.M.0-v04.00";
75   }
76
77   revision "2020-08-10" {
78     description
79       "version 1.3.0
80
81       1) Update description of ENCHANCED (sic) under container sync-capability leaf sync-t-tsc with
82          correct reference to IEEE 802.1CM sections.
83       2) Add description that CLASS_B and ENHANCED are as per IEEE802.1CM.
84       3) Add freq-error and time-error leafs under container sync-status. This allows an O-DU to
85          query the O-RU using NETCONF <get> procedure about the phase and frequency errors at
86          any time.
87       4) Move delay-asymmetry outside of container g-8275-1-config as the delay asymmetry
88          is applicable to G.8275.2 as well
89       5) Add gnss-rx-error in gnss-data for LLS-C4 configuration
90       6) Correct the description of state enumerations under synce-status. The earlier
91          descriptions were copy paste from ptp-status";
92
93     reference "ORAN-WG4.M.0-v04.00";
94   }
95
96   revision "2020-04-17" {
97     description
98       "version 1.2.0
99
100       1) enable O-RU to only support GNSS and not 802.1CM.";
101
102     reference "ORAN-WG4.M.0-v03.00";
103   }
104
105   revision "2019-07-03" {
106     description
107       "version 1.1.0
108
109       1) backward compatible changes to introduce groupings.";
110
111     reference "ORAN-WG4.M.0-v01.00";
112   }
113
114   revision "2019-02-04" {
115     description
116       "version 1.0.0
117
118       1) imported model from xRAN
119       2) changed namespace and reference from xran to o-ran";
120
121     reference "ORAN-WG4.M.0-v01.00";
122   }
123
124   feature GNSS {
125     description
126       "This feature indicates that the equipment supports integrated GNSS functionality.";
127   }
128
129   feature ANTI-JAM {
130     description
131       "This feature indicates that the equipment supports Anti-jam functionality";
132   }
133
134   typedef geographic-coordinate-degree {
135            type decimal64 {
136              fraction-digits 8;
137            }
138            description
139              "Decimal degree (DD) used to express latitude and longitude
140               geographic coordinates.";
141        }
142
143   grouping sync-group {
144     description "This group represents the state and status of timing and synchronization of the O-RU";
145     container sync-status {
146       config false;
147
148       description
149         "Object of this class provides synchronization state of the module.";
150
151       leaf sync-state {
152         type enumeration {
153           enum LOCKED {
154             description
155               "equipment is in the locked mode, as defined in ITU-T G.810";
156           }
157           enum HOLDOVER {
158             description
159               "equipment clock is in holdover mode";
160           }
161           enum FREERUN {
162             description
163               "equipment clock isn't locked to an input reference, and is not in the holdover mode";
164           }
165         }
166         mandatory true;
167         description
168           "State of DU synchronization";
169       }
170       leaf time-error {
171         type decimal64 {
172           fraction-digits 3;
173         }
174         units nanoseconds;
175         description
176           "An optional leaf indicating an estimate of the current time error in the O-RU,
177           e.g., derived from a low pass filtering of the residual error of the PLL.
178           The definition of the filtering and updating is left to O-RU implementation.";
179       }
180       leaf frequency-error {
181         type decimal64 {
182           fraction-digits 3;
183         }
184         units parts-per-billion;
185         description
186           "An optional leaf indicating an estimate of the current frequency error in the O-RU,
187           e.g., derived from a low pass filtering of the residual error of the PLL.
188           The definition of the filtering and updating is left to O-RU implementation.";
189       }
190
191       list supported-reference-types {
192         key item;
193         min-elements 1;
194         description
195           "Type of a synchronization supported source.";
196         leaf item {
197           type enumeration {
198             enum GNSS {
199               description
200                 "GPS can be taken as a synchronization source";
201             }
202             enum PTP {
203               description
204                 "Precision Time Protocol can be taken as a synchronization source";
205             }
206             enum SYNCE {
207               description
208                 "Synchronous Ethernet can be taken as a synchronization source";
209             }
210           }
211           mandatory true;
212
213           description
214             "supported reference-type";
215         }
216       }
217     }
218
219     container sync-capability {
220       config false;
221
222       description
223         "Object of this class provides synchronization capabilities of the module.";
224
225       leaf sync-t-tsc {
226         type enumeration {
227           enum CLASS_B {
228             description
229               "Regular accuracy (previously referred to class B) for synchronization
230               is supported by the device as per IEEE802.1CM clause 6.4.1, Case 1.1";
231           }
232           enum ENCHANCED {
233             description
234               "Enhanced accuracy for synchronization is supported by the device as per
235               IEEE802.1CM clause 6.4.1, Case 1.2.
236
237               The typo in the name of the enumeration (ENCHANCED instead of ENHANCED)
238               is kept as is for backwards compatibility";
239           }
240         }
241         description
242           "When the O-RU supports 802.1CM, this leaf provides information about
243           T-TSC capability";
244
245         reference "IEEE 802.1CM";
246       }
247
248       leaf boundary-clock-supported {
249         type boolean;
250         description
251           "This parameter indicates whether O-RU supports the T-BC profiles in ITU-T G.8275.1.";
252       }
253     }
254
255     container ptp-config {
256       description
257         "This MO defines configuration of Precise Time Protocol.";
258       leaf domain-number {
259         type uint8;
260         default 24;
261         description
262           "This parameter indicates Domain Number for PTP announce messages.";
263       }
264
265       list accepted-clock-classes {
266         key clock-classes;
267         leaf clock-classes {
268           type uint8;
269           description
270             "PTP Clock Class accepted by the O-RU";
271         }
272         description
273           "Contains list of PTP acceptable Clock Classes, sorted in the descending order.";
274       }
275
276       leaf ptp-profile {
277         type enumeration {
278           enum G_8275_1 {
279             description
280               "Usage of multicast over Ethernet";
281           }
282
283           enum G_8275_2 {
284             description
285               "Usage of unicast over IP";
286           }
287         }
288         default "G_8275_1";
289         description
290           "Type of profile to be used in PTP setting";
291       }
292       leaf delay-asymmetry {
293         type int16 {
294           range "-10000..10000";
295         }
296         default 0;
297         description
298           "Defines static phase error in the recovered PTP timing signal to be compensated at the O-RU.
299           The error is defined in units of nanoseconds in the range +/-10 000 ns.
300
301           If the deprecated delay-asymmetry schema node in the g-8275-1-config container is configured
302           together with this schema node, then the O-RU shall use this schema node and ignore the
303           value in the g-8275-1-config container.";
304       }
305
306       container g-8275-1-config {
307         when "../ptp-profile='G_8275_1'";
308
309         description
310           "Container allowing for configuration of G8275.1";
311
312         leaf multicast-mac-address {
313           type enumeration {
314             enum FORWARDABLE {
315               description
316                 "means, that PTP shall use 01-1B-19-00-00-00 destination MAC address";
317             }
318             enum NONFORWARDABLE {
319               description
320                 "means, that PTP shall use 01-80-C2-00-00-0E destination MAC address";
321             }
322           }
323           default FORWARDABLE;
324           description
325             "The parameter defines destination MAC address, used by the DU in the egress PTP messages.";
326         }
327
328         leaf delay-asymmetry {
329           type int16 {
330             range -10000..10000;
331           }
332           default 0;
333           status deprecated;
334           description
335             "Defines static phase error in the recovered PTP timing signal to be compensated at the O-RU.
336             The error is defined in units of nanoseconds in the range +/-10 000 ns.";
337         }
338       }
339
340       container g-8275-2-config {
341         when "../ptp-profile='G_8275_2'";
342
343         description
344           "Container used for configuration of G8275.2 profile";
345
346         leaf local-ip-port {
347           type leafref {
348             path "/if:interfaces/if:interface/if:name";
349           }
350           description
351             "Reference to interface name corresponding to IP interface
352             used for G.8275.2";
353         }
354
355         list master-ip-configuration {
356           key local-priority;
357           description
358             "The parameter defines list of IP configuration of devices acting as PTP signal source.";
359           leaf local-priority {
360             type uint8;
361             description
362               "The parameter defines local priority or underlying master IP address.";
363           }
364
365           leaf ip-address {
366             type string;
367             description
368               "the parameter defines master IP address.";
369           }
370         }
371
372         leaf log-inter-sync-period {
373           type int8 {
374             range "-7..0";
375           }
376
377           description
378             "The parameter defines number of sync message during 1 second";
379         }
380
381         leaf log-inter-announce-period {
382           type int8 {
383             range "-3..0";
384           }
385
386           description
387             "The parameter defines number of announce message during 1 second";
388         }
389       }
390     }
391
392     container ptp-status {
393       description
394         "PTP status container";
395       leaf reporting-period {
396         type uint8;
397         default 10;
398         description
399           "This parameter defines minimum period in seconds between reports,
400           sent by the O-RU, for parameters in this container.";
401       }
402       leaf lock-state {
403         type enumeration {
404           enum LOCKED {
405             description
406               "The integrated ordinary clock is synchronizing to the reference, recovered from PTP flow";
407           }
408           enum UNLOCKED {
409             description
410               "The integrated ordinary clock is not synchronizing to the reference, recovered from PTP flow";
411           }
412         }
413         config false;
414         description
415           "This parameter indicates, whether the integrated ordinary clock is
416           synchronizing to the reference, recovered from PTP signal.
417           The exact definition when to indicate locked or unlocked is up to specific
418           implementation.";
419       }
420
421       leaf clock-class {
422         type uint8;
423         config false;
424         description
425           "This parameter contains the clock class of the clock, controlled by the O-RU";
426       }
427
428       leaf clock-identity {
429         type string {
430           length 18;
431           pattern "0[xX][0-9a-fA-F]{16}";
432         }
433         config false;
434         description
435           "This parameter contains identity of the clock,
436             according to IEEE 1588-2008 definition, controlled by the O-RU.
437           The string shall be formatted as an 8-octet hex value with the '0x' prefix.";
438       }
439
440       leaf partial-timing-supported {
441         type boolean;
442         config false;
443         description
444           "Provides information wheter G.8275.2 (partial timing support from network) is supported.";
445       }
446
447       list sources {
448         key local-port-number;
449         config false;
450
451         description
452           "Synchronization sources";
453
454         leaf local-port-number {
455           type leafref {
456             path "/if:interfaces/if:interface/o-ran-int:port-reference/o-ran-int:port-number";
457           }
458           description
459             "This is reference to portNumber of ExternalEthernetPort to identify the port,
460             where the PTP signal is located.";
461         }
462
463         leaf state {
464           type enumeration {
465             enum PARENT {
466               description
467                 "Indicates that this source is the current master clock, i.e. the clock,
468                 which the clock, controlled by the NETCONF Server, is synchronized to";
469             }
470             enum OK {
471               description
472                 "Indicates that this source is an alternate master, which the clock,
473                 controlled by the NETCONF Server, can potentially synchronize to,
474                 i.e. clock class and priority, announced by the master clock is lower,
475                 compared to those of the clock, controlled by the NETCONF Server,
476                 and and the clock class is accepted";
477             }
478             enum NOK {
479               description
480                 "Indicates that this source is an alternate master, which the clock,
481                 controlled by the NETCONF Server, has an operational connection to,
482                 but the class or priority of the master clock is higher or equal
483                 to those of the clock, controlled by the NETCONF Server,
484                 or the clock class is not accepted";
485             }
486             enum DISABLED {
487               description
488                 "Indicates that this source is an alternate master, which the clock,
489                 controlled by the NETCONF Server, has no operational connection to";
490             }
491           }
492           description
493             "This parameter indicates status of the PTP source";
494         }
495
496         leaf two-step-flag {
497           type boolean;
498           description
499             "This parameter reflects status of the twoStepFlag attribute in Sync messages,
500             received from the PTP source.";
501         }
502
503         leaf leap61 {
504           type boolean;
505           description
506             "This parameter reflects status of the leap61 flag in Announce messages,
507             received from the PTP source.
508             When true, the last minute of the current UTC day contains 61 seconds.";
509         }
510
511         leaf leap59 {
512           type boolean;
513           description
514             "This parameter reflects status of the leap59 flag in Announce messages,
515             received from the PTP source.
516             When true, the last minute of the current UTC day contains 59 seconds.";
517         }
518
519         leaf current-utc-offset-valid {
520           type boolean;
521           description
522             "This parameter reflects status of the currentUtcOffsetValid flag in
523             Announce messages, received from the PTP source.
524             When true, the current UTC offset is valid.";
525         }
526
527         leaf ptp-timescale {
528           type boolean;
529           description
530             "This parameter reflects status of the ptpTimescale flag in Announce
531             messages, received from the PTP source.
532
533             When set, the clock timescale of the grandmaster clock is PTP;
534             otherwise, the timescale is ARB (arbitrary)";
535         }
536
537         leaf time-traceable {
538           type boolean;
539           description
540             "This parameter reflects status of the timeTraceable flag in Announce
541             messages, received from the PTP source.
542
543             When true, the timescale and the currentUtcOffset are traceable to a
544             primary reference";
545         }
546
547         leaf frequency-traceable {
548           type boolean;
549           description
550             "This parameter reflects status of the frequencyTraceable flag in
551             Announce messages, received from the PTP source.
552
553             When true, the frequency determining the timescale is traceable to a
554             primary reference";
555         }
556
557         leaf source-clock-identity {
558           type string {
559             length 18;
560             pattern "0[xX][0-9a-fA-F]{16}";
561           }
562           description
563             "This parameter reflects value of the sourceClockIdentity attribute in
564             Announce messages, received from the PTP source.
565
566             The string shall be formatted as an 8-octet hex value with the '0x'
567             prefix.";
568         }
569
570         leaf source-port-number {
571           type uint16;
572           description
573             "This parameter reflects value of the sourcePortNumber attribute in
574             Announce messages, received from the PTP source.";
575         }
576
577         leaf current-utc-offset {
578           type int16;
579           description
580             "The offset between TAI and UTC when the epoch of the PTP system is
581             the PTP epoch, i.e., when ptp-timescale is TRUE; otherwise, the value
582             has no meaning";
583         }
584
585         leaf priority1 {
586           type uint8;
587           description
588             "This parameter reflects value of the priority1 attribute in Announce
589             messages, received from the PTP source.";
590         }
591
592         leaf clock-class {
593           type uint8;
594           description
595             "This parameter reflects value of the clockClass attribute in
596             Announce messages, received from the PTP source.";
597         }
598
599         leaf clock-accuracy {
600           type uint8;
601           description
602             "This parameter reflects value of the clockAccuracy attribute in
603             Announce messages, received from the PTP source.";
604         }
605
606         leaf offset-scaled-log-variance {
607           type uint16;
608           description
609             "This parameter reflects value of the offsetScaledLogVariance
610             attribute in Announce messages, received from the PTP source.";
611         }
612
613         leaf priority2 {
614           type uint8;
615           description
616             "This parameter reflects value of the priority2 attribute in Announce
617             messages, received from the PTP source.";
618         }
619
620         leaf grandmaster-clock-identity {
621           type string {
622             length 18;
623             pattern "0[xX][0-9a-fA-F]{16}";
624           }
625           description
626             "This parameter reflects value of the grandmasterClockIdentity
627             attribute in Announce messages, received from the PTP source.
628
629             The string shall be formatted as an 8-octet hex value with the '0x'
630             prefix.";
631         }
632
633         leaf steps-removed {
634           type uint16;
635           description
636             "This parameter reflects value of the stepsRemoved attribute in
637             Announce messages, received from the PTP source.
638
639             It indicates the number of communication paths traversed
640             between the local clock and the grandmaster clock.";
641         }
642
643         leaf time-source {
644           type uint8;
645           description
646             "This parameter reflects value of the timeSource attribute in
647             Announce messages, received from the PTP source.";
648         }
649       }
650     }
651
652     container synce-config {
653       description
654         "This container defines the configuration of SyncE";
655
656       leaf-list acceptance-list-of-ssm {
657         type enumeration {
658           enum PRC {
659             description
660               "PRC";
661           }
662           enum PRS {
663             description
664               "PRS";
665           }
666           enum SSU_A {
667             description
668               "SSU_A";
669           }
670           enum SSU_B {
671             description
672               "SSU_B";
673           }
674           enum ST2 {
675             description
676               "ST2";
677           }
678           enum ST3 {
679             description
680               "ST3";
681           }
682           enum ST3E {
683             description
684               "ST3E";
685           }
686           enum EEC1 {
687             description
688               "EEC1";
689           }
690           enum EEC2 {
691             description
692               "EEC2";
693           }
694           enum DNU {
695             description
696               "DNU";
697           }
698           enum NONE {
699             description
700               "NONE";
701           }
702         }
703
704         default "PRC";
705
706         description
707           "The parameter contains the list of SyncE acceptable SSMs.";
708       }
709
710       leaf ssm-timeout {
711         type uint16;
712
713         description
714           "The parameter contains the value of maximum duration in seconds for which the actual SSM value may be different than configured values.";
715       }
716     }
717
718     container synce-status {
719       description
720         "SyncE status container";
721
722       leaf reporting-period {
723           type uint8;
724           default 10;
725           description
726             "This parameter defines minimum period in seconds between reports,
727              sent by the O-RU, for parameters in this container.";
728       }
729
730       leaf lock-state {
731         type enumeration {
732           enum LOCKED {
733             description
734               "The integrated ordinary clock is synchronizing to the reference, recovered from SyncE signal";
735           }
736           enum UNLOCKED {
737             description
738               "The integrated ordinary clock is not synchronizing to the reference, recovered from SyncE signal";
739           }
740         }
741         config false;
742         description
743           "This parameter indicates, whether the integrated ordinary clock is
744           synchronizing to the reference, recovered from SyncE signal.
745
746           The exact definition when to indicate locked or unlocked is up to
747           specific implementation.";
748       }
749
750       list sources {
751         key local-port-number;
752         config false;
753         leaf local-port-number {
754           type leafref {
755             path "/if:interfaces/if:interface/o-ran-int:port-reference/o-ran-int:port-number";
756           }
757           description
758             "This is reference to portNumber of ExternalEthernetPort to identify
759             the port, where the SyncE signal is located.";
760         }
761
762         leaf state {
763           type enumeration {
764             enum PARENT {
765               description
766                 "Indicates this is the primary SyncE source recovering SyncE signal";
767             }
768             enum OK {
769               description
770                 "Indicates that this source is an alternate SyncE source, which the clock,
771                 controlled by the NETCONF Server, can potentially synchronize to, when the
772                 clock quality of the primary SyncE signal advertised in ESMC packets is
773                 lower than the expected or configured clock quality; or when this source
774                 clock's quality is better than the primary SyncE source clock quality";
775             }
776             enum NOK {
777               description
778                 "Indicates that this source is an alternate SyncE source, and the O-RU
779                  has an operational connection to this alternate SyncE source, but the
780                  clock's quality is not in the configured acceptable range";
781             }
782             enum DISABLED {
783               description
784                 "Indicates that this source is an alternate SyncE clock, and the O-RU has an
785                  operational connection to this alternate SyncE source";
786             }
787           }
788           description
789             "This parameter indicates status of the SyncE source";
790         }
791
792         leaf quality-level {
793           type uint8 {
794             range 0..15;
795           }
796           description
797             "This parameter contains value of the SSM clock quality level,
798             received in SSM messages from the SyncE source.
799             If multiple clock sources are available, the O-RU can select the
800             reference clock source based on the SSM quality level";
801         }
802         min-elements 1;
803         description
804           "This parameter contains characteristics of SyncE sources of the clock, controlled by the O-RU.";
805       }
806     }
807
808     container gnss-config {
809       if-feature GNSS;
810       description
811         "This container defines the configuration of Global Navigation Satellite System (GNSS).";
812
813       leaf enable {
814         type boolean;
815
816         description
817           "This parameter defines if GNSS receiver shall be enabled or not.";
818       }
819
820       leaf-list satellite-constelation-list {
821         type enumeration {
822           enum GPS {
823             description
824               "GPS";
825           }
826           enum GLONASS {
827             description
828               "GLONASS should not be used alone but always along with GPS or BEIDOU because of missing leap second information";
829           }
830           enum GALILEO {
831             description
832               "GALILEO";
833           }
834           enum BEIDOU {
835             description
836               "BEIDOU";
837           }
838         }
839
840         description
841           "This parameter defines list of constellations to be used to acquire synchronization.";
842       }
843
844       leaf polarity {
845         type enumeration {
846           enum POSITIVE {
847             description
848               "POSITIVE";
849           }
850           enum NEGATIVE {
851             description
852               "NEGATIVE";
853           }
854         }
855         default POSITIVE;
856
857         description
858           "This parameter defines pulse polarity";
859       }
860
861       leaf cable-delay {
862         type uint16 {
863           range "0..1000";
864         }
865         default 5;
866
867         description
868           "This parameter is used to compensate cable delay.";
869       }
870
871       leaf anti-jam-enable {
872         if-feature ANTI-JAM;
873         type boolean;
874         default false;
875         description
876           "This parameter is used to enable or disable anti-jamming.";
877       }
878     }
879
880     container gnss-status {
881       if-feature GNSS;
882       description
883         "Provides information about state of gps receiver";
884       leaf reporting-period {
885         type uint8;
886         default 10;
887         description
888           "This parameter defines minimum period in seconds between reports,
889           sent by the O-RU, for parameters in this container.";
890       }
891       leaf name {
892         type string {
893           length "1..255";
894         }
895         config false;
896         description
897         "A name that is unique that identifies a GNSS instance.
898         This name may be used in fault management to refer to a
899         fault source or affected object";
900       }
901       leaf gnss-sync-status {
902         type enumeration {
903           enum SYNCHRONIZED {
904             description "GNSS functionality is synchronized";
905           }
906           enum ACQUIRING-SYNC {
907             description "GNSS functionality is acquiring sync";
908           }
909           enum ANTENNA-DISCONNECTED {
910             description "GNSS functionality has its antenna disconnected";
911           }
912           enum BOOTING {
913             description "GNSS functionality is booting";
914           }
915           enum ANTENNA-SHORT-CIRCUIT {
916             description "GNSS functionality has an antenna short circuit";
917           }
918         }
919         config false;
920         description "when available, indicates the status of the gnss receiver.";
921       }
922       container gnss-data {
923         when "../gnss-sync-status='SYNCHRONIZED'";
924         config false;
925         description
926           "GPS data contained";
927         leaf satellites-tracked {
928           type uint8;
929           description "Number of satellites tracked";
930         }
931         container location {
932           description
933             "Containes information about geo location";
934           leaf altitude {
935             type int64;
936             units millimeter;
937             description
938               "Distance above the sea level.";
939           }
940           leaf latitude {
941             type geographic-coordinate-degree {
942               range "-90..90";
943             }
944             description
945               "Relative position north or south on the Earth's surface.";
946           }
947           leaf longitude {
948             type geographic-coordinate-degree {
949               range "-180..180";
950             }
951             description
952               "Angular distance east or west on the Earth's surface.";
953           }
954         }
955         leaf gnss-rx-time-error {
956           type decimal64 {
957             fraction-digits 3;
958           }
959           units nanoseconds;
960           description
961             "An optional leaf, representing the estimate of current GNSS receiver time error ";
962         }
963       }
964     }
965   }
966   container sync {
967     description
968       "Main containter for sync related parameters";
969
970     uses sync-group;
971   }
972
973   //notification statement
974   notification synchronization-state-change {
975     description
976       "Notification used to inform about synchronization state change";
977
978     leaf sync-state {
979       type leafref {
980         path "/sync/sync-status/sync-state";
981       }
982       description
983         "State of equipment synchronization is notified at state change";
984     }
985   }
986
987   notification ptp-state-change {
988     description
989       "Notification used to inform about PTP synchronization state change";
990
991     leaf ptp-state{
992       type leafref{
993         path "/sync/ptp-status/lock-state";
994       }
995       description
996         "ptp-state-change notification is signalled from equipment at state change";
997     }
998   }
999   notification synce-state-change {
1000     description
1001       "Notification used to inform about syncE synchronization state change";
1002
1003     leaf synce-state{
1004       type leafref{
1005         path "/sync/synce-status/lock-state";
1006       }
1007       description
1008         "synce-state change notification is signalled from equipment at state change";
1009     }
1010   }
1011   notification gnss-state-change {
1012     if-feature GNSS;
1013     description
1014       "Notification used to inform about GNSS synchronization state change";
1015
1016     leaf gnss-state{
1017       type leafref{
1018         path "/sync/gnss-status/gnss-sync-status";
1019       }
1020       description
1021         "gnss-state-change notification is signalled from equipment at state change";
1022     }
1023   }
1024
1025 }