idnits 2.17.1 draft-ietf-ntp-yang-data-model-02.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- == There are 1 instance of lines with non-RFC6890-compliant IPv4 addresses in the document. If these are example addresses, they should be changed. == There are 4 instances of lines with multicast IPv4 addresses in the document. If these are generic example addresses, they should be changed to use the 233.252.0.x range defined in RFC 5771 Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year == Line 134 has weird spacing: '... key-id lea...' == Line 141 has weird spacing: '...ss-mode acc...' == Line 234 has weird spacing: '...address rt-...' == Line 236 has weird spacing: '...address rt-...' == The document doesn't use any RFC 2119 keywords, yet seems to have RFC 2119 boilerplate text. -- The document date (March 5, 2018) is 2243 days in the past. Is this intentional? Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) ** Obsolete normative reference: RFC 5246 (Obsoleted by RFC 8446) ** Obsolete normative reference: RFC 6536 (Obsoleted by RFC 8341) Summary: 2 errors (**), 0 flaws (~~), 8 warnings (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Network Working Group N. Wu 3 Internet-Draft Huawei 4 Intended status: Standards Track A. Kumar S N 5 Expires: September 6, 2018 RtBrick Inc. 6 Y. Zhao 7 Ericsson 8 D. Dhody 9 Huawei 10 A. Sinha 11 RtBrick Inc. 12 March 5, 2018 14 A YANG Data Model for NTP 15 draft-ietf-ntp-yang-data-model-02 17 Abstract 19 This document defines a YANG data model for Network Time Protocol 20 (NTP) implementations. The data model includes configuration data 21 and state data. 23 Requirements Language 25 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 26 "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and 27 "OPTIONAL" in this document are to be interpreted as described in BCP 28 14 [RFC2119] [RFC8174] when, and only when, they appear in all 29 capitals, as shown here. 31 Status of This Memo 33 This Internet-Draft is submitted in full conformance with the 34 provisions of BCP 78 and BCP 79. 36 Internet-Drafts are working documents of the Internet Engineering 37 Task Force (IETF). Note that other groups may also distribute 38 working documents as Internet-Drafts. The list of current Internet- 39 Drafts is at https://datatracker.ietf.org/drafts/current/. 41 Internet-Drafts are draft documents valid for a maximum of six months 42 and may be updated, replaced, or obsoleted by other documents at any 43 time. It is inappropriate to use Internet-Drafts as reference 44 material or to cite them other than as "work in progress." 46 This Internet-Draft will expire on September 6, 2018. 48 Copyright Notice 50 Copyright (c) 2018 IETF Trust and the persons identified as the 51 document authors. All rights reserved. 53 This document is subject to BCP 78 and the IETF Trust's Legal 54 Provisions Relating to IETF Documents 55 (https://trustee.ietf.org/license-info) in effect on the date of 56 publication of this document. Please review these documents 57 carefully, as they describe your rights and restrictions with respect 58 to this document. Code Components extracted from this document must 59 include Simplified BSD License text as described in Section 4.e of 60 the Trust Legal Provisions and are provided without warranty as 61 described in the Simplified BSD License. 63 Table of Contents 65 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 66 1.1. Operational State . . . . . . . . . . . . . . . . . . . . 3 67 1.2. Terminology . . . . . . . . . . . . . . . . . . . . . . . 3 68 1.3. Tree Diagrams . . . . . . . . . . . . . . . . . . . . . . 3 69 2. NTP data model . . . . . . . . . . . . . . . . . . . . . . . 3 70 3. Relationship with NTPv4-MIB . . . . . . . . . . . . . . . . . 6 71 4. Relationship with RFC 7317 . . . . . . . . . . . . . . . . . 7 72 5. NTP YANG Module . . . . . . . . . . . . . . . . . . . . . . . 8 73 6. Usage Example . . . . . . . . . . . . . . . . . . . . . . . . 28 74 6.1. Unicast association . . . . . . . . . . . . . . . . . . . 28 75 6.2. Refclock master . . . . . . . . . . . . . . . . . . . . . 29 76 6.3. Authentication configuration . . . . . . . . . . . . . . 30 77 6.4. Access configuration . . . . . . . . . . . . . . . . . . 32 78 6.5. Multicast configuration . . . . . . . . . . . . . . . . . 32 79 6.6. Manycast configuration . . . . . . . . . . . . . . . . . 36 80 6.7. Clock state . . . . . . . . . . . . . . . . . . . . . . . 39 81 6.8. Get all association . . . . . . . . . . . . . . . . . . . 39 82 6.9. Global statistic . . . . . . . . . . . . . . . . . . . . 41 83 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 41 84 8. Security Considerations . . . . . . . . . . . . . . . . . . . 42 85 9. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 43 86 10. References . . . . . . . . . . . . . . . . . . . . . . . . . 43 87 10.1. Normative References . . . . . . . . . . . . . . . . . . 43 88 10.2. Informative References . . . . . . . . . . . . . . . . . 44 89 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 44 91 1. Introduction 93 This document defines a YANG [RFC6020] data model for Network Time 94 Protocol [RFC5905] implementations. 96 The data model convers configuration of system parameters of NTP, 97 such as access rules, authentication and VPN Routing and Forwarding 98 (VRF) binding, and also associations of NTP in different modes and 99 parameters of per-interface. It also provides information about 100 running state of NTP implementations. 102 1.1. Operational State 104 NTP Operational State is included in the same tree as NTP 105 configuration, consistent with Network Management Datastore 106 Architecture [I-D.ietf-netmod-revised-datastores]. NTP current state 107 and statistics are also maintained in the operational state. 108 Additionally, the operational state also include the associations 109 state. 111 1.2. Terminology 113 The terminology used in this document is aligned to [RFC5905]. 115 1.3. Tree Diagrams 117 A simplified graphical representation of the data model is used in 118 this document. This document uses the graphical representation of 119 data models defined in [I-D.ietf-netmod-yang-tree-diagrams]. 121 2. NTP data model 123 This document defines the YANG module "ietf-ntp", which has the 124 following structure: 126 module: ietf-ntp 127 +--rw ntp! 128 +--rw port? uint16 {ntp-port}? 129 +--rw refclock-master! 130 | +--rw master-stratum? ntp-stratum 131 +--rw authentication 132 | +--rw auth-enabled? boolean 133 | +--rw trusted-keys* [key-id] 134 | | +--rw key-id leafref 135 | +--rw authentication-keys* [key-id] 136 | +--rw key-id uint32 137 | +--rw algorithm? identityref 138 | +--rw password? ianach:crypt-hash 139 +--rw access-rules 140 | +--rw access-rule* [access-mode] 141 | +--rw access-mode access-modes 142 | +--rw acl? -> /acl:access-lists/acl/name 143 +--ro clock-state 144 | +--ro system-status 145 | +--ro clock-state ntp-clock-status 146 | +--ro clock-stratum ntp-stratum 147 | +--ro clock-refid union 148 | +--ro associations-address? 149 | | -> /ntp/associations/address 150 | +--ro associations-local-mode? 151 | | -> /ntp/associations/local-mode 152 | +--ro associations-isConfigured? 153 | | -> /ntp/associations/isConfigured 154 | +--ro nominal-freq decimal64 155 | +--ro actual-freq decimal64 156 | +--ro clock-precision uint8 157 | +--ro clock-offset? decimal64 158 | +--ro root-delay? decimal64 159 | +--ro root-dispersion? decimal64 160 | +--ro reference-time? yang:date-and-time 161 | +--ro sync-state ntp-sync-state 162 +--rw unicast-configuration* [address type] 163 | +--rw address inet:host 164 | +--rw type unicast-configuration-type 165 | +--rw authentication 166 | | +--rw (authentication-type)? 167 | | +--:(symmetric-key) 168 | | +--rw key-id? leafref 169 | +--rw prefer? boolean 170 | +--rw burst? boolean 171 | +--rw iburst? boolean 172 | +--rw source? if:interface-ref 173 | +--rw minpoll? ntp-minpoll 174 | +--rw maxpoll? ntp-maxpoll 175 | +--rw port? uint16 {ntp-port}? 176 | +--rw version? ntp-version 177 +--ro associations* [address local-mode isConfigured] 178 | +--ro address inet:host 179 | +--ro local-mode association-modes 180 | +--ro isConfigured boolean 181 | +--ro stratum? ntp-stratum 182 | +--ro refid? union 183 | +--ro authentication? 184 | | -> /ntp/authentication/authentication-keys/key-id 185 | +--ro prefer? boolean 186 | +--ro peer-interface? if:interface-ref 187 | +--ro minpoll? ntp-minpoll 188 | +--ro maxpoll? ntp-maxpoll 189 | +--ro port? uint16 {ntp-port}? 190 | +--ro version? ntp-version 191 | +--ro reach? uint8 192 | +--ro unreach? uint8 193 | +--ro poll? uint8 194 | +--ro now? uint32 195 | +--ro offset? decimal64 196 | +--ro delay? decimal64 197 | +--ro dispersion? decimal64 198 | +--ro originate-time? yang:date-and-time 199 | +--ro receive-time? yang:date-and-time 200 | +--ro transmit-time? yang:date-and-time 201 | +--ro input-time? yang:date-and-time 202 | +--ro ntp-statistics 203 | +--ro packet-sent? yang:counter32 204 | +--ro packet-sent-fail? yang:counter32 205 | +--ro packet-received? yang:counter32 206 | +--ro packet-dropped? yang:counter32 207 +--rw interfaces 208 | +--rw interface* [name] 209 | +--rw name if:interface-ref 210 | +--rw broadcast-server! 211 | | +--rw ttl? uint8 212 | | +--rw authentication 213 | | | +--rw (authentication-type)? 214 | | | +--:(symmetric-key) 215 | | | +--rw key-id? leafref 216 | | +--rw minpoll? ntp-minpoll 217 | | +--rw maxpoll? ntp-maxpoll 218 | | +--rw port? uint16 {ntp-port}? 219 | | +--rw version? ntp-version 220 | +--rw broadcast-client! 221 | +--rw multicast-server* [address] 222 | | +--rw address 223 | | | rt-types:ip-multicast-group-address 224 | | +--rw ttl? uint8 225 | | +--rw authentication 226 | | | +--rw (authentication-type)? 227 | | | +--:(symmetric-key) 228 | | | +--rw key-id? leafref 229 | | +--rw minpoll? ntp-minpoll 230 | | +--rw maxpoll? ntp-maxpoll 231 | | +--rw port? uint16 {ntp-port}? 232 | | +--rw version? ntp-version 233 | +--rw multicast-client* [address] 234 | | +--rw address rt-types:ip-multicast-group-address 235 | +--rw manycast-server* [address] 236 | | +--rw address rt-types:ip-multicast-group-address 237 | +--rw manycast-client* [address] 238 | +--rw address 239 | | rt-types:ip-multicast-group-address 240 | +--rw authentication 241 | | +--rw (authentication-type)? 242 | | +--:(symmetric-key) 243 | | +--rw key-id? leafref 244 | +--rw ttl? uint8 245 | +--rw minclock? uint8 246 | +--rw maxclock? uint8 247 | +--rw beacon? uint8 248 | +--rw minpoll? ntp-minpoll 249 | +--rw maxpoll? ntp-maxpoll 250 | +--rw port? uint16 {ntp-port}? 251 | +--rw version? ntp-version 252 +--ro ntp-statistics 253 +--ro packet-sent? yang:counter32 254 +--ro packet-sent-fail? yang:counter32 255 +--ro packet-received? yang:counter32 256 +--ro packet-dropped? yang:counter32 258 This data model defines one top-level container which includes both 259 the NTP configuration and the NTP running state including access 260 rules, authentication, associations, unicast configurations, 261 interfaces, system status and associations. 263 3. Relationship with NTPv4-MIB 265 If the device implements the NTPv4-MIB [RFC5907], data nodes from 266 YANG module can be mapped to table entries in NTPv4-MIB. 268 The following tables list the YANG data nodes with corresponding 269 objects in the NTPv4-MIB. 271 +--------------------------+--------------------------+ 272 | YANG data nodes in /ntp/ | NTPv4-MIB objects | 273 +--------------------------+--------------------------+ 274 | ntp-enabled | ntpEntStatusCurrentMode | 275 +--------------------------+--------------------------+ 277 +--------------------------------------+---------------------+ 278 | YANG data nodes in /ntp/associations | NTPv4-MIB objects | 279 +--------------------------------------+---------------------+ 280 | address | ntpAssocAddressType | 281 | | ntpAssocAddress | 282 +--------------------------------------+---------------------+ 284 YANG NTP Configuration Data Nodes and Related NTPv4-MIB Objects 285 +---------------------------------+---------------------------------+ 286 | YANG data nodes in /ntp/clock- | NTPv4-MIB objects | 287 | state/system-status | | 288 +---------------------------------+---------------------------------+ 289 | clock-state | ntpEntStatusCurrentMode | 290 | clock-stratum | ntpEntStatusStratum | 291 | clock-refid | ntpEntStatusActiveRefSourceId | 292 | | ntpEntStatusActiveRefSourceName | 293 | clock-precision | ntpEntTimePrecision | 294 | clock-offset | ntpEntStatusActiveOffset | 295 | root-dispersion | ntpEntStatusDispersion | 296 +---------------------------------+---------------------------------+ 298 +---------------------------------------+---------------------------+ 299 | YANG data nodes in /ntp/associations/ | NTPv4-MIB objects | 300 +---------------------------------------+---------------------------+ 301 | address | ntpAssocAddressType | 302 | | ntpAssocAddress | 303 | stratum | ntpAssocStratum | 304 | refid | ntpAssocRefId | 305 | offset | ntpAssocOffset | 306 | delay | ntpAssocStatusDelay | 307 | dispersion | ntpAssocStatusDispersion | 308 | ntp-statistics/packet-sent | ntpAssocStatOutPkts | 309 | ntp-statistics/packet-received | ntpAssocStatInPkts | 310 | ntp-statistics/packet-dropped | ntpAssocStatProtocolError | 311 +---------------------------------------+---------------------------+ 313 YANG NTP State Data Nodes and Related NTPv4-MIB Objects 315 4. Relationship with RFC 7317 317 This section describes the relationship with NTP definition in 318 Section 3.2 System Time Management of [RFC7317] . YANG data nodes in 319 /ntp/ also supports per-interface configurations which is not 320 supported in /system/ntp 321 +-------------------------------+--------------------------------+ 322 | YANG data nodes in /ntp/ | YANG data nodes in /system/ntp | 323 +-------------------------------+--------------------------------+ 324 | ntp-enabled | enabled | 325 | unicast-configuration | server | 326 | | server/name | 327 | unicast-configuration/address | server/transport/udp/address | 328 | unicast-configuration/port | server/transport/udp/port | 329 | unicast-configuration/type | server/association-type | 330 | unicast-configuration/iburst | server/iburst | 331 | unicast-configuration/prefer | server/prefer | 332 +-------------------------------+--------------------------------+ 334 YANG NTP Configuration Data Nodes and counterparts in RFC 7317 335 Objects 337 5. NTP YANG Module 339 file "ietf-ntp@2018-03-05.yang" 340 module ietf-ntp { 342 namespace "urn:ietf:params:xml:ns:yang:ietf-ntp"; 344 prefix "ntp"; 346 import ietf-yang-types { 347 prefix "yang"; 348 } 350 import ietf-inet-types { 351 prefix "inet"; 352 } 354 import ietf-interfaces { 355 prefix "if"; 356 } 358 import iana-crypt-hash { 359 prefix "ianach"; 360 } 362 import ietf-key-chain { 363 prefix "key-chain"; 364 } 366 import ietf-access-control-list { 367 prefix "acl"; 368 } 369 import ietf-routing-types { 370 prefix "rt-types"; 371 } 373 organization 374 "IETF NTP (Network Time Protocol) Working Group"; 376 contact 377 "WG Web: 378 WG List: 381 Editor: Anil Kumar S N 382 383 Editor: Yi Zhao 384 385 Editor: Dhruv Dhody 386 387 Editor: Ankit Kumar Sinha 388 "; 389 description 390 "This YANG module defines essential components for the 391 management of a routing subsystem. 393 Copyright (c) 2018 IETF Trust and the persons identified 394 as authors of the code. All rights reserved. 396 Redistribution and use in source and binary forms, 397 with or without modification, is permitted pursuant to, 398 and subject to the license terms contained in, the 399 Simplified BSD License set forth in Section 4.c of the 400 IETF Trust's Legal Provisions Relating to IETF Documents 401 (http://trustee.ietf.org/license-info). 403 This version of this YANG module is part of RFC XXXX; 404 see the RFC itself for full legal notices."; 406 revision 2018-03-05 { 407 description 408 "Updated revision."; 409 reference 410 "RFC XXXX: A YANG Data Model for NTP Management"; 411 } 413 /* Typedef Definitions */ 415 typedef ntp-stratum { 416 type uint8 { 417 range "1..16"; 418 } 419 description 420 "The level of each server in the hierarchy is defined by 421 a stratum number. Primary servers are assigned stratum 422 one; secondary servers at each lower level are assigned 423 stratum numbers one greater than the preceding level"; 424 } 426 typedef ntp-version { 427 type uint8 { 428 range "1..4"; 429 } 430 default "3"; 431 description 432 "The current NTP version supported by corresponding 433 association."; 434 } 436 typedef ntp-minpoll { 437 type uint8 { 438 range "4..17"; 439 } 440 default "6"; 441 description 442 "The minimum poll exponent for this NTP association."; 443 } 445 typedef ntp-maxpoll { 446 type uint8 { 447 range "4..17"; 448 } 449 default "10"; 450 description 451 "The maximul poll exponent for this NTP association."; 452 } 454 typedef access-modes { 455 type enumeration { 456 enum peer { 457 value "0"; 458 description 459 "Sets the fully access authority. Both time 460 request and control query can be performed 461 on the local NTP service, and the local clock 462 can be synchronized to the remote server."; 463 } 464 enum server { 465 value "1"; 466 description 467 "Enables the server access and query. 468 Both time requests and control query can be 469 performed on the local NTP service, but the 470 local clock cannot be synchronized to the 471 remote server."; 472 } 473 enum synchronization { 474 value "2"; 475 description 476 "Enables the server to access. 477 Only time request can be performed on the 478 local NTP service."; 479 } 480 enum query { 481 value "3"; 482 description 483 "Sets the maximum access limitation. 484 Control query can be performed only on the 485 local NTP service."; 486 } 487 } 488 description 489 "This defines NTP acess modes."; 490 } 492 typedef unicast-configuration-type { 493 type enumeration { 494 enum server { 495 value "0"; 496 description 497 "Use client association mode. This device 498 will not provide synchronization to the 499 configured NTP server."; 500 } 501 enum peer { 502 value "1"; 503 description 504 "Use symmetric active association mode. 505 This device may provide synchronization 506 to the configured NTP server."; 507 } 508 } 509 description 510 "This defines NTP unicast mode of operation."; 511 } 512 typedef association-modes { 513 type enumeration { 514 enum client { 515 value "0"; 516 description 517 "Use client association mode(mode 3). 518 This device will not provide synchronization 519 to the configured NTP server."; 520 } 521 enum active { 522 value "1"; 523 description 524 "Use symmetric active association mode(mode 1). 525 This device may synchronize with its NTP peer, 526 or provide synchronization to configured NTP peer."; 527 } 528 enum passive { 529 value "2"; 530 description 531 "Use symmetric passive association mode(mode 2). 532 This device has learnt this asso dynamically. 533 This device may synchronize with its NTP peer."; 534 } 535 enum broadcast { 536 value "3"; 537 description 538 "Use broadcast mode(mode 5). 539 This mode defines that its eigther working 540 as broadcast-server or multicast-server."; 541 } 542 enum broadcast-client { 543 value "4"; 544 description 545 "This mode defines that its eigther working 546 as broadcast-client or multicast-client."; 547 } 548 } 549 description 550 "This defines NTP association modes."; 551 } 553 typedef ntp-clock-status { 554 type enumeration { 555 enum synchronized { 556 value "0"; 557 description 558 "Indicates that the local clock has been 559 synchronized with an NTP server or 560 the reference clock."; 561 } 562 enum unsynchronized { 563 value "1"; 564 description 565 "Indicates that the local clock has not been 566 synchronized with any NTP server."; 567 } 568 } 569 description 570 "This defines NTP clock status."; 571 } 573 typedef ntp-sync-state { 574 type enumeration { 575 enum clock-not-set { 576 value "0"; 577 description 578 "Indicates the clock is not updated."; 579 } 580 enum freq-set-by-cfg { 581 value "1"; 582 description 583 "Indicates the clock frequency is set by 584 NTP configuration."; 585 } 586 enum clock-set { 587 value "2"; 588 description 589 "Indicates the clock is set."; 590 } 591 enum freq-not-determined { 592 value "3"; 593 description 594 "Indicates the clock is set but the frequency 595 is not determined."; 596 } 597 enum clock-synchronized { 598 value "4"; 599 description 600 "Indicates that the clock is synchronized"; 601 } 602 enum spike { 603 value "5"; 604 description 605 "Indicates a time difference of more than 128 606 milliseconds is detected between NTP server 607 and client clock. The clock change will take 608 effect in XXX seconds."; 609 } 610 } 611 description 612 "This defines NTP clock sync states."; 613 } 615 /* feature */ 616 feature ntp-port { 617 description 618 "Indicates that the device supports the configuration of 619 the port for NTP. 621 This is a 'feature', since many implementations do not 622 support any port other than the default port."; 623 } 625 /* Groupings */ 626 grouping authentication-key { 627 description 628 "To define an authentication key for a Network Time 629 Protocol (NTP) time source."; 630 leaf key-id { 631 type uint32 { 632 range "1..max"; 633 } 634 description 635 "Authentication key identifier."; 636 } 637 leaf algorithm { 638 type identityref { 639 base key-chain:crypto-algorithm; 640 } 641 description 642 "Authentication algorithm."; 643 } 644 leaf password { 645 type ianach:crypt-hash; 646 description "Clear or encrypted mode for password text."; 647 } 648 } 650 grouping authentication-type-param { 651 description 652 "Authentication type."; 653 choice authentication-type { 654 description 655 "Type of authentication."; 657 case symmetric-key { 658 leaf key-id { 659 type leafref { 660 path "/ntp:ntp/ntp:authentication/" 661 + "ntp:authentication-keys/ntp:key-id"; 662 } 663 description 664 "Authentication key id referenced in this 665 association."; 666 } 667 } 668 } 669 } 671 grouping statistics { 672 description 673 "NTP packet statistic."; 674 leaf packet-sent { 675 type yang:counter32; 676 description 677 "Indicates the total number of packets sent."; 678 } 679 leaf packet-sent-fail { 680 type yang:counter32; 681 description 682 "Indicates the number of times packet 683 sending failed."; 684 } 685 leaf packet-received { 686 type yang:counter32; 687 description 688 "Indicates the total number of packets received."; 689 } 690 leaf packet-dropped { 691 type yang:counter32; 692 description 693 "Indicates the number of packets dropped."; 694 } 695 } 697 grouping comman-attributes { 698 description 699 "NTP common attributes for configuration."; 700 leaf minpoll { 701 type ntp-minpoll; 702 description 703 "The minimum poll interval used in this association."; 704 } 705 leaf maxpoll { 706 type ntp-maxpoll; 707 description 708 "The maximul poll interval used in this association."; 709 } 710 leaf port { 711 if-feature ntp-port; 712 type uint16 { 713 range "123 | 1025..max"; 714 } 715 default "123"; 716 description 717 "Specify the port used to send NTP packets."; 718 } 719 leaf version { 720 type ntp-version; 721 description 722 "NTP version."; 723 } 724 } 726 grouping association-ref { 727 description 728 "Reference to NTP association node"; 729 leaf associations-address { 730 type leafref { 731 path "/ntp:ntp/ntp:associations/ntp:address"; 732 } 733 description 734 "Indicates the association address 735 which result in clock synchronization."; 736 } 737 leaf associations-local-mode { 738 type leafref { 739 path "/ntp:ntp/ntp:associations/ntp:local-mode"; 740 } 741 description 742 "Indicates the association local-mode 743 which result in clock synchronization."; 744 } 745 leaf associations-isConfigured { 746 type leafref { 747 path "/ntp:ntp/ntp:associations/" 748 + "ntp:isConfigured"; 749 } 750 description 751 "Indicates the association was configured or 752 dynamic which result in clock synchronization."; 754 } 755 } 757 /* Configuration data nodes */ 758 container ntp { 759 presence 760 "NTP is enable"; 761 description 762 "Configuration parameters for NTP."; 763 leaf port { 764 if-feature ntp-port; 765 type uint16 { 766 range "123 | 1025..max"; 767 } 768 default "123"; 769 description 770 "Specify the port used to send NTP packets."; 771 } 772 container refclock-master { 773 presence 774 "NTP master clock is enable"; 775 description 776 "Configures the device as NTP server."; 777 leaf master-stratum { 778 type ntp-stratum; 779 default "16"; 780 description 781 "Stratum level from which NTP 782 clients get their time synchronized."; 783 } 784 } 785 container authentication { 786 description 787 "Configuration of authentication."; 788 leaf auth-enabled { 789 type boolean; 790 default false; 791 description 792 "Controls whether NTP authentication is enabled 793 or disabled on this device."; 794 } 795 list trusted-keys { 796 key "key-id"; 797 description 798 "List of keys trusted by NTP."; 799 leaf key-id { 800 type leafref { 801 path "/ntp:ntp/ntp:authentication/" 802 + "ntp:authentication-keys/ntp:key-id"; 803 } 804 description 805 "The key trusted by NTP."; 806 } 807 } 808 list authentication-keys { 809 key "key-id"; 810 uses authentication-key; 811 description 812 "List of authentication key."; 813 } 814 } 816 container access-rules { 817 description 818 "Configuration of access rules."; 819 list access-rule { 820 key "access-mode"; 821 description 822 "List of access rules."; 823 leaf access-mode { 824 type access-modes; 825 description 826 "NTP access mode."; 827 } 828 leaf acl { 829 type leafref { 830 path "/acl:access-lists/acl:acl/acl:name"; 831 } 832 description 833 "NTP ACL."; 834 } 835 } 836 } 838 container clock-state { 839 config "false"; 840 description 841 "Operational state of the NTP."; 843 container system-status { 844 description 845 "System status of NTP."; 846 leaf clock-state { 847 type ntp-clock-status; 848 mandatory true; 849 description "Indicates the state of system clock."; 851 } 852 leaf clock-stratum { 853 type ntp-stratum; 854 mandatory true; 855 description 856 "Indicates the stratum of the reference clock."; 857 } 858 leaf clock-refid { 859 type union { 860 type inet:ipv4-address; 861 type binary { 862 length "4"; 863 } 864 type string { 865 length "4"; 866 } 867 } 868 mandatory true; 869 description 870 "IPv4 address or first 32 bits of the MD5 hash of 871 the IPv6 address or reference clock of the peer to 872 which clock is synchronized."; 873 } 875 uses association-ref { 876 description 877 "Reference to Association node"; 878 } 879 leaf nominal-freq { 880 type decimal64 { 881 fraction-digits 4; 882 } 883 mandatory true; 884 description 885 "Indicates the nominal frequency of the 886 local clock, in Hz."; 887 } 888 leaf actual-freq { 889 type decimal64 { 890 fraction-digits 4; 891 } 892 mandatory true; 893 description 894 "Indicates the actual frequency of the 895 local clock, in Hz."; 896 } 897 leaf clock-precision { 898 type uint8; 899 mandatory true; 900 description 901 "Precision of the clock of this system 902 in Hz.(prec=2^(-n))"; 903 } 904 leaf clock-offset { 905 type decimal64 { 906 fraction-digits 4; 907 } 908 description 909 "Offset of clock to synchronized peer, 910 in milliseconds."; 911 } 912 leaf root-delay { 913 type decimal64 { 914 fraction-digits 2; 915 } 916 description 917 "Total delay along path to root clock, 918 in milliseconds."; 919 } 920 leaf root-dispersion { 921 type decimal64 { 922 fraction-digits 2; 923 } 924 description 925 "Indicates the dispersion between the local clock 926 and the master reference clock, in milliseconds."; 927 } 928 leaf reference-time { 929 type yang:date-and-time; 930 description 931 "Indicates reference timestamp."; 932 } 933 leaf sync-state { 934 type ntp-sync-state; 935 mandatory true; 936 description 937 "Indicates the synchronization status of 938 the local clock."; 939 } 940 } 941 } 942 list unicast-configuration { 943 key "address type"; 944 description 945 "list of unicast-configuration."; 946 leaf address { 947 type inet:host; 948 description 949 "The address of this association."; 950 } 951 leaf type { 952 type unicast-configuration-type; 953 description 954 "Type for this NTP configuration"; 955 } 956 container authentication{ 957 description 958 "Authentication type."; 959 uses authentication-type-param; 960 } 961 leaf prefer { 962 type boolean; 963 default "false"; 964 description 965 "Whether this association is preferred."; 966 } 967 leaf burst { 968 type boolean; 969 default "false"; 970 description 971 "Sends a series of packets instead of a single packet 972 within each synchronization interval to achieve faster 973 synchronization."; 974 } 975 leaf iburst { 976 type boolean; 977 default "false"; 978 description 979 "Sends a series of packets instead of a single packet 980 within the initial synchronization interval to achieve 981 faster initial synchronization."; 982 } 983 leaf source { 984 type if:interface-ref; 985 description 986 "The interface whose ip address this association used 987 as source address."; 988 } 989 uses comman-attributes { 990 description 991 "Common attribute like port, version, min and max 992 poll."; 993 } 994 } 995 list associations { 996 key "address local-mode isConfigured"; 997 config "false"; 998 description 999 "list of NTP association."; 1000 leaf address { 1001 type inet:host; 1002 description 1003 "The address of this association."; 1004 } 1005 leaf local-mode { 1006 type association-modes; 1007 description 1008 "Local mode for this NTP association."; 1009 } 1010 leaf isConfigured { 1011 type boolean; 1012 description 1013 "Whether this association is configured or 1014 dynamically learnt."; 1015 } 1016 leaf stratum { 1017 type ntp-stratum; 1018 description 1019 "Indicates the stratum of the reference clock."; 1020 } 1021 leaf refid { 1022 type union { 1023 type inet:ipv4-address; 1024 type binary { 1025 length "4"; 1026 } 1027 type string { 1028 length "4"; 1029 } 1030 } 1031 description 1032 "Reference clock type or address for the peer."; 1033 } 1034 leaf authentication{ 1035 type leafref { 1036 path "/ntp:ntp/ntp:authentication/" 1037 + "ntp:authentication-keys/ntp:key-id"; 1038 } 1039 description 1040 "Authentication Key used for this association."; 1041 } 1042 leaf prefer { 1043 type boolean; 1044 default "false"; 1045 description 1046 "Whether this association is preferred."; 1047 } 1048 leaf peer-interface { 1049 type if:interface-ref; 1050 description 1051 "The interface which is used for communication."; 1052 } 1053 uses comman-attributes { 1054 description 1055 "Common attribute like port, version, min and 1056 max poll."; 1057 } 1058 leaf reach { 1059 type uint8; 1060 description 1061 "Indicates the reachability of the configured 1062 server or peer."; 1063 } 1064 leaf unreach { 1065 type uint8; 1066 description 1067 "Indicates the unreachability of the configured 1068 server or peer."; 1069 } 1070 leaf poll { 1071 type uint8; 1072 description 1073 "Indicates the polling interval for current, 1074 in seconds."; 1075 } 1076 leaf now { 1077 type uint32; 1078 description 1079 "Indicates the time since the NTP packet was 1080 not received or last synchronized, in seconds."; 1081 } 1082 leaf offset { 1083 type decimal64 { 1084 fraction-digits 4; 1085 } 1086 description 1087 "Indicates the offset between the local clock 1088 and the superior reference clock."; 1089 } 1090 leaf delay { 1091 type decimal64 { 1092 fraction-digits 2; 1093 } 1094 description 1095 "Indicates the delay between the local clock 1096 and the superior reference clock."; 1097 } 1098 leaf dispersion { 1099 type decimal64 { 1100 fraction-digits 2; 1101 } 1102 description 1103 "Indicates the dispersion between the local 1104 clock and the superior reference clock."; 1105 } 1106 leaf originate-time { 1107 type yang:date-and-time; 1108 description 1109 "Indicates packet originate timestamp(T1)."; 1110 } 1111 leaf receive-time { 1112 type yang:date-and-time; 1113 description 1114 "Indicates packet receive timestamp(T2)."; 1115 } 1116 leaf transmit-time { 1117 type yang:date-and-time; 1118 description 1119 "Indicates packet transmit timestamp(T3)."; 1120 } 1121 leaf input-time { 1122 type yang:date-and-time; 1123 description 1124 "Indicates packet input timestamp(T4)."; 1125 } 1126 container ntp-statistics { 1127 description 1128 "Per Peer packet send and receive statistic."; 1129 uses statistics { 1130 description 1131 "NTP send and receive packet statistic."; 1132 } 1133 } 1134 } 1136 container interfaces { 1137 description 1138 "Configuration parameters for NTP interfaces."; 1139 list interface { 1140 key "name"; 1141 description 1142 "List of interfaces."; 1143 leaf name { 1144 type if:interface-ref; 1145 description 1146 "The interface name."; 1147 } 1149 container broadcast-server { 1150 presence 1151 "NTP broadcast-server is configured"; 1152 description 1153 "Configuration of broadcast server."; 1154 leaf ttl { 1155 type uint8; 1156 description 1157 "Specifies the time to live (TTL) of a 1158 broadcast packet."; 1159 } 1160 container authentication{ 1161 description 1162 "Authentication type."; 1163 uses authentication-type-param; 1164 } 1165 uses comman-attributes { 1166 description 1167 "Common attribute like port, version, min and 1168 max poll."; 1169 } 1170 } 1172 container broadcast-client { 1173 presence 1174 "NTP broadcast-client is configured"; 1175 description 1176 "Configuration of broadcast-client."; 1177 } 1179 list multicast-server { 1180 key "address"; 1181 description 1182 "Configuration of multicast server."; 1183 leaf address { 1184 type rt-types:ip-multicast-group-address; 1185 description 1186 "The IP address to send NTP multicast packets."; 1187 } 1188 leaf ttl { 1189 type uint8; 1190 description 1191 "Specifies the time to live (TTL) of a 1192 multicast packet."; 1193 } 1194 container authentication{ 1195 description 1196 "Authentication type."; 1197 uses authentication-type-param; 1198 } 1199 uses comman-attributes { 1200 description 1201 "Common attribute like port, version, min and 1202 max poll."; 1203 } 1204 } 1205 list multicast-client { 1206 key "address"; 1207 description 1208 "Configuration of multicast-client."; 1209 leaf address { 1210 type rt-types:ip-multicast-group-address; 1211 description 1212 "The IP address of the multicast group to 1213 join."; 1214 } 1215 } 1216 list manycast-server { 1217 key "address"; 1218 description 1219 "Configuration of manycast server."; 1220 leaf address { 1221 type rt-types:ip-multicast-group-address; 1222 description 1223 "The multicast group IP address to receive 1224 manycast client messages ."; 1225 } 1226 } 1227 list manycast-client { 1228 key "address"; 1229 description 1230 "Configuration of manycast-client."; 1231 leaf address { 1232 type rt-types:ip-multicast-group-address; 1233 description 1234 "The group IP address that the manycast client 1235 broadcasts the request message to."; 1236 } 1237 container authentication{ 1238 description 1239 "Authentication type."; 1240 uses authentication-type-param; 1241 } 1242 leaf ttl { 1243 type uint8; 1244 description 1245 "Specifies the maximum time to live (TTL) for 1246 the expanding ring search."; 1247 } 1248 leaf minclock { 1249 type uint8; 1250 description 1251 "The minimum manycast survivors in this 1252 association."; 1253 } 1254 leaf maxclock { 1255 type uint8; 1256 description 1257 "The maximum manycast candidates in this 1258 association."; 1259 } 1260 leaf beacon { 1261 type uint8; 1262 description 1263 "The maximum interval between beacons in this 1264 association."; 1265 } 1266 uses comman-attributes { 1267 description 1268 "Common attribute like port, version, min and 1269 max poll."; 1270 } 1271 } 1272 } 1273 } 1274 container ntp-statistics { 1275 config "false"; 1276 description 1277 "Total NTP packet statistic."; 1278 uses statistics { 1279 description 1280 "NTP send and receive packet statistic."; 1281 } 1283 } 1284 } 1285 } 1286 1288 6. Usage Example 1290 6.1. Unicast association 1292 Below is the example on how to configure a preferred unicast server 1293 present at 1.1.1.1 running at port 1025 with authentication-key 10 1294 and version 4 1296 1297 1298 1299 1300 1301 1302 1303
1.1.1.1
1304 server 1305 true 1306 4 1307 1025 1308 1309 1310 10 1311 1312 1313
1314
1315
1316
1318 Below is the example on how to get unicast configuration 1320 1321 1322 1323 1324 1325 1326 1327 1329 1330 1331 1332
1.1.1.1
1333 server 1334 1335 1336 10 1337 1338 1339 true 1340 false 1341 true 1342 1343 6 1344 10 1345 1025 1346 4 1347 9 1348 20.1.1.1 1349 255 1350 0 1351 128 1352 10 1353 0.025 1354 0.5 1355 0.6 1356 10-10-2017 07:33:55.253 Z+05:30 1357 1358 10-10-2017 07:33:55.258 Z+05:30 1359 1360 10-10-2017 07:33:55.300 Z+05:30 1361 1362 10-10-2017 07:33:55.305 Z+05:30 1363 1364 1365 20 1366 0 1367 20 1368 0 1369 1370
1371
1372
1374 6.2. Refclock master 1376 Below is the example on how to configure reference clock with stratum 1377 8 1378 1379 1380 1381 1382 1383 1384 1385 8 1386 1387 1388 1389 1391 Below is the example on how to get reference clock configuration 1393 1394 1395 1396 1397 1398 1399 1400 1402 1403 1404 1405 8 1406 1407 1408 1410 6.3. Authentication configuration 1412 Below is the example on how to enable authentication and configure 1413 authentication key 10 with mode as md5 and password as abcd 1414 1415 1416 1417 1418 1419 1420 1421 true 1422 1423 10 1424 md5 1425 abcd 1426 1427 1428 1429 1430 1432 Below is the example on how to get authentication related 1433 configuration 1435 1436 1437 1438 1439 1440 1441 1442 1444 1445 1446 1447 false 1448 1449 1450 10 1451 md5 1452 abcd 1453 1454 1455 1456 1458 6.4. Access configuration 1460 Below is the example on how to configure acess type peer associated 1461 with acl 2000 1463 1464 1465 1466 1467 1468 1469 1470 1471 peer 1472 2000 1473 1474 1475 1476 1477 1479 Below is the example on how to get access related configuration 1481 1482 1483 1484 1485 1486 1487 1488 1490 1491 1492 1493 1494 peer 1495 2000 1496 1497 1498 1499 1501 6.5. Multicast configuration 1503 Below is the example on how to configure multicast-server with 1504 address as 224.1.1.1, port as 1025 and authentication keyid as 10 1505 1506 1507 1508 1509 1510 1511 1512 1513 Ethernet3/0/0 1514 1515
224.1.1.1
1516 1517 1518 10 1519 1520 1521 1025 1522
1523
1524
1525
1526
1527
1529 Below is the example on how to get multicast-server related 1530 configuration 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1544 1545 1546 1547 1548 Ethernet3/0/0 1549 1550
224.1.1.1
1551 224.1.1.1 1552 1553 1554 10 1555 1556 1557 6 1558 10 1559 1025 1560 3 1561
1562
1563
1564
1565
1567 Below is the example on how to configure multicast-client with 1568 address as 224.1.1.1 1569 1570 1571 1572 1573 1574 1575 1576 1577 Ethernet3/0/0 1578 1579
224.1.1.1
1580
1581
1582
1583
1584
1585
1587 Below is the example on how to get multicast-client related 1588 configuration 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1603 1604 1605 1606 1607 Ethernet3/0/0 1608 1609
224.1.1.1
1610
1611
1612
1613
1614
1616 6.6. Manycast configuration 1618 Below is the example on how to configure manycast-client with address 1619 as 224.1.1.1, port as 1025 and authentication keyid as 10 1621 1622 1623 1624 1625 1626 1627 1628 1629 Ethernet3/0/0 1630 1631
224.1.1.1
1632 1633 1634 10 1635 1636 1637 1025 1638
1639
1640
1641
1642
1643
1645 Below is the example on how to get manycast-client related 1646 configuration 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1660 1661 1662 1663 1664 Ethernet3/0/0 1665 1666
224.1.1.1
1667 1668 1669 10 1670 1671 1672 255 1673 3 1674 10 1675 6 1676 6 1677 10 1678 1025 1679
1680
1681
1682
1683
1685 Below is the example on how to configure manycast-server with address 1686 as 224.1.1.1 1687 1688 1689 1690 1691 1692 1693 1694 1695 Ethernet3/0/0 1696 1697
224.1.1.1
1698
1699
1700
1701
1702
1703
1705 Below is the example on how to get manycast-server related 1706 configuration 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1721 1722 1723 1724 1725 Ethernet3/0/0 1726 1727
224.1.1.1
1728
1729
1730
1731
1732
1734 6.7. Clock state 1736 Below is the example on how to get clock current state 1738 1739 1740 1741 1742 1743 1744 1745 1747 1748 1749 1750 1751 synchronized 1752 7 1753 1.1.1.1 1754 1.1.1.1 1755 1756 client 1757 1758 yes 1759 1760 100.0 1761 100.0 1762 18 1763 0.025 1764 0.5 1765 0.8 1766 10-10-2017 07:33:55.258 Z+05:30 1767 1768 clock-synchronized 1769 1770 1771 1772 1774 6.8. Get all association 1776 Below is the example on how to get all association present 1777 1778 1779 1780 1781 1782 1783 1784 1786 1787 1788 1789
1.1.1.1
1790 9 1791 20.1.1.1 1792 client 1793 true 1794 10 1795 true 1796 Ethernet3/0/0 1797 6 1798 10 1799 1025 1800 4 1801 255 1802 0 1803 128 1804 10 1805 0.025 1806 0.5 1807 0.6 1808 10-10-2017 07:33:55.253 Z+05:30 1809 1810 10-10-2017 07:33:55.258 Z+05:30 1811 1812 10-10-2017 07:33:55.300 Z+05:30 1813 1814 10-10-2017 07:33:55.305 Z+05:30 1815 1816 1817 20 1818 0 1819 20 1820 0 1821 1822
1823
1824
1826 6.9. Global statistic 1828 Below is the example on how to get clock current state 1830 1831 1832 1833 1834 1835 1836 1837 1839 1840 1841 1842 30 1843 5 1844 20 1845 2 1846 1847 1848 1850 7. IANA Considerations 1852 This document registers a URI in the "IETF XML Registry" [RFC3688]. 1853 Following the format in RFC 3688, the following registration has been 1854 made. 1856 URI: urn:ietf:params:xml:ns:yang:ietf-ntp 1858 Registrant Contact: The NETMOD WG of the IETF. 1860 XML: N/A; the requested URI is an XML namespace. 1862 This document registers a YANG module in the "YANG Module Names" 1863 registry [RFC6020]. 1865 Name: ietf-ntp 1867 Namespace: urn:ietf:params:xml:ns:yang:ietf-ntp 1869 Prefix: ntp 1871 Reference: RFC XXXX 1873 8. Security Considerations 1875 The YANG module specified in this document defines a schema for data 1876 that is designed to be accessed via network management protocols such 1877 as NETCONF [RFC6241] or RESTCONF [RFC8040]. The lowest NETCONF layer 1878 is the secure transport layer, and the mandatory-to-implement secure 1879 transport is Secure Shell (SSH) [RFC6242]. The lowest RESTCONF layer 1880 is HTTPS, and the mandatory-to-implement secure transport is TLS 1881 [RFC5246]. 1883 The NETCONF access control model [RFC6536] provides the means to 1884 restrict access for particular NETCONF or RESTCONF users to a 1885 preconfigured subset of all available NETCONF or RESTCONF protocol 1886 operations and content. 1888 There are a number of data nodes defined in this YANG module that are 1889 writable/creatable/deletable (i.e., config true, which is the 1890 default). These data nodes may be considered sensitive or vulnerable 1891 in some network environments. Write operations (e.g., edit-config) 1892 to these data nodes without proper protection can have a negative 1893 effect on network operations. These are the subtrees and data nodes 1894 and their sensitivity/vulnerability: 1896 /ntp/port - This data node specify the port number to be used to 1897 send NTP packets. Unexpected changes could lead to disruption 1898 and/or network misbehavior. 1900 /ntp/authentication and /ntp/access-rules - The entries in the 1901 list include the authentication and access control configurations. 1902 Car should be taken while setting these parameters. 1904 /ntp/unicast-configuration - The entries in the list include all 1905 unicast configurations (server or peer mode), and indirectly 1906 creates or modify the NTP associations. Unexpected changes could 1907 lead to disruption and/or network misbehavior. 1909 /ntp/interfaces/interface - The entries in the list inclide all 1910 per-interface configurations related to broadcast, multicast and 1911 manycast mode, and indirectly creates or modify the NTP 1912 associations. Unexpected changes could lead to disruption and/or 1913 network misbehavior. 1915 Some of the readable data nodes in this YANG module may be considered 1916 sensitive or vulnerable in some network environments. It is thus 1917 important to control read access (e.g., via get, get-config, or 1918 notification) to these data nodes. These are the subtrees and data 1919 nodes and their sensitivity/vulnerability: 1921 /ntp/associations - The entries in the list includes all active 1922 NTP associations of all modes. Unauthorized access to this needs 1923 to be curtailed. 1925 9. Acknowledgments 1927 The authors would like to express their thanks to Sladjana Zoric, 1928 Danny Mayer, Harlan Stenn, Ulrich Windl, Miroslav Lichvar, and 1929 Maurice Angermann for their review and suggestions. 1931 10. References 1933 10.1. Normative References 1935 [I-D.ietf-netmod-yang-tree-diagrams] 1936 Bjorklund, M. and L. Berger, "YANG Tree Diagrams", draft- 1937 ietf-netmod-yang-tree-diagrams-06 (work in progress), 1938 February 2018. 1940 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 1941 Requirement Levels", BCP 14, RFC 2119, 1942 DOI 10.17487/RFC2119, March 1997, 1943 . 1945 [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, 1946 DOI 10.17487/RFC3688, January 2004, 1947 . 1949 [RFC5246] Dierks, T. and E. Rescorla, "The Transport Layer Security 1950 (TLS) Protocol Version 1.2", RFC 5246, 1951 DOI 10.17487/RFC5246, August 2008, 1952 . 1954 [RFC5905] Mills, D., Martin, J., Ed., Burbank, J., and W. Kasch, 1955 "Network Time Protocol Version 4: Protocol and Algorithms 1956 Specification", RFC 5905, DOI 10.17487/RFC5905, June 2010, 1957 . 1959 [RFC5907] Gerstung, H., Elliott, C., and B. Haberman, Ed., 1960 "Definitions of Managed Objects for Network Time Protocol 1961 Version 4 (NTPv4)", RFC 5907, DOI 10.17487/RFC5907, June 1962 2010, . 1964 [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for 1965 the Network Configuration Protocol (NETCONF)", RFC 6020, 1966 DOI 10.17487/RFC6020, October 2010, 1967 . 1969 [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., 1970 and A. Bierman, Ed., "Network Configuration Protocol 1971 (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, 1972 . 1974 [RFC6242] Wasserman, M., "Using the NETCONF Protocol over Secure 1975 Shell (SSH)", RFC 6242, DOI 10.17487/RFC6242, June 2011, 1976 . 1978 [RFC6536] Bierman, A. and M. Bjorklund, "Network Configuration 1979 Protocol (NETCONF) Access Control Model", RFC 6536, 1980 DOI 10.17487/RFC6536, March 2012, 1981 . 1983 [RFC8040] Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF 1984 Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017, 1985 . 1987 [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 1988 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 1989 May 2017, . 1991 10.2. Informative References 1993 [I-D.ietf-netmod-revised-datastores] 1994 Bjorklund, M., Schoenwaelder, J., Shafer, P., Watsen, K., 1995 and R. Wilton, "Network Management Datastore 1996 Architecture", draft-ietf-netmod-revised-datastores-10 1997 (work in progress), January 2018. 1999 [RFC7317] Bierman, A. and M. Bjorklund, "A YANG Data Model for 2000 System Management", RFC 7317, DOI 10.17487/RFC7317, August 2001 2014, . 2003 Authors' Addresses 2005 Nan Wu 2006 Huawei 2007 Huawei Bld., No.156 Beiqing Rd. 2008 Beijing 100095 2009 China 2011 Email: eric.wu@huawei.com 2012 Anil Kumar S N 2013 RtBrick Inc. 2014 Bangalore, Kanataka 2015 India 2017 Email: anil.ietf@gmail.com 2019 Yi Zhao 2020 Ericsson 2021 China Digital Kingdom Bld., No.1 WangJing North Rd. 2022 Beijing 100102 2023 China 2025 Email: yi.z.zhao@ericsson.com 2027 Dhruv Dhody 2028 Huawei 2029 Divyashree Techno Park, Whitefield 2030 Bangalore, Kanataka 560066 2031 India 2033 Email: dhruv.ietf@gmail.com 2035 Ankit kumar Sinha 2036 RtBrick Inc. 2037 Bangalore, Kanataka 2038 India 2040 Email: ankit.ietf@gmail.com