idnits 2.17.1 draft-vanderstok-core-mpl-yang-00.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: ---------------------------------------------------------------------------- == It seems as if not all pages are separated by form feeds - found 0 form feeds but 15 pages Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- ** The document seems to lack a Security Considerations section. ** There are 14 instances of too long lines in the document, the longest one being 444 characters in excess of 72. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year == Line 193 has weird spacing: '...nt-data uint6...' == Line 194 has weird spacing: '...nt-data uin...' == Line 352 has weird spacing: '... leaf domai...' == Line 355 has weird spacing: '...sent in mpl-p...' == Line 575 has weird spacing: '... copies recei...' == (1 more instance...) == The document doesn't use any RFC 2119 keywords, yet seems to have RFC 2119 boilerplate text. -- The document date (March 7, 2016) is 2972 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) == Missing Reference: 'MCaddress' is mentioned on line 147, but not defined ** Obsolete normative reference: RFC 7223 (Obsoleted by RFC 8343) Summary: 3 errors (**), 0 flaws (~~), 10 warnings (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 roll P. van der Stok, Ed. 3 Internet-Draft consultant 4 Intended status: Standards Track P. Thubert 5 Expires: September 8, 2016 cisco 6 March 7, 2016 8 A YANG model for Multicast Protocol for Low power and lossy Networks 9 (MPL) 10 draft-vanderstok-core-mpl-yang-00 12 Abstract 14 This document defines a YANG data model for management of Multicast 15 Protocol for Low power and lossy Networks (MPL) implementations. The 16 data model includes configuration data and state data. 18 Note 20 Discussion and suggestions for improvement are requested, and should 21 be sent to roll@ietf.org. 23 Status of This Memo 25 This Internet-Draft is submitted in full conformance with the 26 provisions of BCP 78 and BCP 79. 28 Internet-Drafts are working documents of the Internet Engineering 29 Task Force (IETF). Note that other groups may also distribute 30 working documents as Internet-Drafts. The list of current Internet- 31 Drafts is at http://datatracker.ietf.org/drafts/current/. 33 Internet-Drafts are draft documents valid for a maximum of six months 34 and may be updated, replaced, or obsoleted by other documents at any 35 time. It is inappropriate to use Internet-Drafts as reference 36 material or to cite them other than as "work in progress." 38 This Internet-Draft will expire on September 8, 2016. 40 Copyright Notice 42 Copyright (c) 2016 IETF Trust and the persons identified as the 43 document authors. All rights reserved. 45 This document is subject to BCP 78 and the IETF Trust's Legal 46 Provisions Relating to IETF Documents 47 (http://trustee.ietf.org/license-info) in effect on the date of 48 publication of this document. Please review these documents 49 carefully, as they describe your rights and restrictions with respect 50 to this document. Code Components extracted from this document must 51 include Simplified BSD License text as described in Section 4.e of 52 the Trust Legal Provisions and are provided without warranty as 53 described in the Simplified BSD License. 55 Table of Contents 57 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 58 1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 2 59 1.1.1. Tree Diagrams . . . . . . . . . . . . . . . . . . . . 3 60 2. MPL model . . . . . . . . . . . . . . . . . . . . . . . . . . 3 61 3. ietf-yang-mpl module . . . . . . . . . . . . . . . . . . . . 5 62 4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 14 63 5. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 14 64 6. Changelog . . . . . . . . . . . . . . . . . . . . . . . . . . 14 65 7. References . . . . . . . . . . . . . . . . . . . . . . . . . 14 66 7.1. Normative References . . . . . . . . . . . . . . . . . . 14 67 7.2. Informative References . . . . . . . . . . . . . . . . . 15 68 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 15 70 1. Introduction 72 This document defines a YANG [RFC6020] data model for management of 73 Multicast Protocol for Low power and lossy Networks (MPL) [RFC7731] 74 implementations. The data model covers configuration of per- 75 interface MPL parameters. It also provides information about which 76 Multicast addresses are operationally used, and the seeds for which 77 packets are forwarded 79 1.1. Terminology 81 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 82 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 83 document are to be interpreted as described in [RFC2119]. 85 The following terms are defined in [RFC6241] and are not redefined 86 here: 88 o client 90 o configuration data 92 o server 94 o state data 95 The following terms are defined in [RFC6020] and are not redefined 96 here: 98 o augment 100 o data model 102 o data node 104 The terminology for describing YANG data models is found in 105 [RFC6020]. 107 Terms like domain, seed, I, k, c are defines in [RFC7731]. 109 1.1.1. Tree Diagrams 111 A simplified graphical representation of the data model is used in 112 the YANG modules specified in this document. The meaning of the 113 symbols in these diagrams is as follows: 115 Brackets "[" and "]" enclose list keys. 117 Abbreviations before data node names: "rw" means configuration 118 data (read-write) and "ro" state data (read-only). 120 Symbols after data node names: "?" means an optional node, "!" 121 means a presence container, and "*" denotes a list and leaf-list. 123 Parentheses enclose choice and case nodes, and case nodes are also 124 marked with a colon (":"). 126 Ellipsis ("...") stands for contents of subtrees that are not 127 shown. 129 2. MPL model 131 This document defines the YANG module "ietf-yang-mpl", which 132 specifies a data model for MPL servers. The model consists of the 133 following parts: (1) a "mpl-domain" part that describes the MPL- 134 domains and associated Multicast addresses and the interfaces on 135 which the Multicast addresses are enabled, (2) a "mpl-op" part that 136 describes the parameters settings per seed, (3) a "mpl-seeds" part 137 that describes the MPL buffer contents and the Trickle timer values, 138 and (4) a "mpl-statistics" part that describes the number of lost and 139 correctly forwarded messages. The data model has the following 140 structure for MPL configuration per node: 142 +--ro yang-mpl 143 +--rw mpl-domain 144 +--rw domains* [domainID] 145 +--rw domainID uint16 146 +--rw MClist* yang:ipv6-address 147 +--rw addresses* [MCaddress] 148 +--rw MCaddress yang:ipv6-adddress 149 +--rw interfaces* string 150 +--rw mpl-op 151 +--rw SE_LIFETIME uint16 152 +--rw PROACTIVE_FORWARDING boolean 153 +--rw SEED_SET_ENTRY_LIFETIME uint64 154 +--rw mpl-parameter* [domainID] 155 +--rw domainID uint16 156 +--rw DATA_MESSAGE_IMIN uint16 157 +--rw DATA_MESSAGE_IMAX uint16 158 +--rw DATA_MESSAGE_K uint16 159 +--rw DATA_MESSAGE_TIMER_EXPIRATIONS uint16 160 +--rw CONTROL_MESSAGE_IMIN uint16 161 +--rw CONTROL_MESSAGE_IMAX uint16 162 +--rw CONTROL_MESSAGE_K uint16 163 +--rw CONTROL_MESSAGE_TIMER_EXPIRATIONS uint16 164 +--rw MC_adddress* yang:ipv6-adddress 165 +--ro mpl-seeds* [seedID, domainID] 166 +--ro seedID uint64 167 +--ro domainID uint16 168 +--ro local boolean 169 +--ro life-time uint64 170 +--ro min-seqno uint8 171 +--ro data-number uint8 172 +--ro control-number uint8 173 +--ro nr-of-timers uint8 174 +--ro seed_timers* [seqno] 175 +--ro seqno uint8 176 +--ro I uint8 177 +--ro c uint8 178 +--ro e uint8 179 +--ro t uint8 180 +--ro mpl-statistics* [seedID, domainID] 181 +--ro seedID uint64 182 +--ro domainID uint16 183 +--ro c-too-high uint64 184 +--ro nr-forwarded uint64 185 +--ro nr-not-forwarded uint64 186 +--ro nr-of-messages-received uint64 187 +--ro nr-of-copies-received uint64 188 +--ro nr-of-messages-forwarded uint64 189 +--ro nr-of-copies-forwarded uint64 190 +--ro nr-of-refused uint64 191 +--ro nr-of-notreceived uint64 192 +--ro nr-of-missing uint64 193 +--ro nr-of-inconsistent-data uint64 194 +--ro nr-of-consistent-data uint64 195 +--ro nr-of-inconsistent-control uint64 196 +--ro nr-of-consistent-control uint64 198 3. ietf-yang-mpl module 200 This section contains the ietf-yang-mpl module. The model is based 201 on the MPL specification published in [RFC7731] and the specification 202 of [RFC6206]. The identification of the interfaces follows the 203 specification of ietf-interfaces of [RFC7223]. 205 The data model allows to set values of parameters of the MPL 206 algorithm. This approach requires an active manager process to set 207 the values without use of DHCP as described in: 208 [I-D.ietf-roll-mpl-parameter-configuration]. 210 211 module ietf-yang-mpl { 213 yang-version 1; 215 namespace 216 "urn:ietf:params:xml:ns:yang:ietf-yang-mpl"; 218 prefix mpl; 220 import ietf-inet-types{ 221 prefix inet; 222 } 224 organization 225 "IETF ROLL (Routing over Low power and lossy networks) Working Group"; 227 contact 228 "WG Web: http://tools.ietf.org/wg/roll/ 229 WG List: mailto:roll@ietf.org 231 WG Chair: Michael Richardson 232 mailto:mcr+ietf@sandelman.ca 234 WG Chair: Ines Robles 235 mailto:maria.ines.robles@ericsson.com 237 Editor: Peter van der Stok 238 mailto:consultancy@vanderstok.org 240 Editor: Pascal Thubert 241 mailto:pthubert@cisco.com"; 243 description 244 "This module contains information about the operation of the MPL protocol. 246 Copyright (c) 2016 IETF Trust and the persons identified as 247 authors of the code. All rights reserved. 249 Redistribution and use in source and binary forms, with or 251 without modification, is permitted pursuant to, and subject 252 to the license terms contained in, the Simplified BSD License 253 set forth in Section 4.c of the IETF Trust's Legal Provisions 254 Relating to IETF Documents 255 (http://trustee.ietf.org/license-info). 257 This version of this YANG module is part of RFC XXXX; see 258 the RFC itself for full legal notices."; 260 revision "2016-01-20" { 261 description "Initial revision."; 262 reference 263 "I-D:draft-vanderstok-roll-mpl-yang: A YANG model for Multicast Protocol for Low power and lossy Networks (MPL)"; 264 } 266 container yang-mpl { 267 description 268 "This container describes the data model for MPL servers. The model consists of the following parts: (1) a mpl-domain part that describes the MPL-domains and associated Multicast addresses and the interfaces on which the Multicast addresses are enabled, (2) a mpl-op part that describes the parameters settings per seed, (3) a mpl-seeds part that describes the MPL buffer contents and the Trickle timer values, and (4) a mpl-statistics part that describes the number of lost and correctly forwarded messages."; 270 container mpl-domain { 271 config true; 272 description 273 "The entries describe the MPL domains, the associated 274 Multicast addresses and interfaces."; 276 list domains { 277 key "domainID"; 278 description 279 "The entries describe a given domain identified with domainID and the associated 280 Multicast addresses."; 282 leaf domainID { 283 type uint16; 284 description 285 "Entry uniquely identifies the domain in the 286 forwarder."; 287 } 289 leaf-list MClist{ 290 type inet:ipv6-address; 291 description 292 "List of associated IPv6 Addresses."; 293 } 294 } // domains list 296 list addresses { 297 key "MCaddress"; 298 description 299 "The entries describe the interfaces enabled with a given 300 MC address."; 302 leaf MCaddress { 303 type inet:ipv6-address; 304 description 305 "MC address belonging to a MPL domain."; 306 } 308 leaf-list interfaces { 309 type string; 310 description 311 "List of names of interfaces enabled for this Multicast address. Interface name is defined in [RFC6206]."; 312 } 313 } // addresses list 314 } // container mpl-domain 316 container mpl-op { 317 config true; 318 description 319 "Parameter settings for each MPL server and for each individual domain of the server."; 321 leaf SE_LIFETIME { 322 type uint16; 323 description 324 "lifetime in milliseconds/(mpl timer units), 325 equivalent to SEED_SET_ENTRY_LIFETIME/TUNIT as 326 specified in ietf-roll-mpl-parameter- 327 configuration."; 328 } 330 leaf PROACTIVE_FORWARDING { 331 type boolean; 332 description 333 "The boolean value indicates whether the MPL forwarder 334 schedules MPL data message transmission after 335 receiving them for the first time."; 336 } 338 leaf SEED_SET_ENTRY_LIFETIME { 339 type uint64; 340 description 341 "The value indicates the minimum lifetime for an entry 342 in the Seed set expressed in seconds. Default value 343 is 30 minutes."; 344 } 346 list mpl-parameter{ 347 key "domainID"; 348 description 349 "Each domain has a set of MPL forwarding parameters 350 which regulate the forwarding operation."; 352 leaf domainID{ 353 type uint16; 354 description 355 "Each domainID must be present in mpl-parameter list."; 356 } 358 leaf DATA_MESSAGE_IMIN{ 359 type uint16; 360 description 361 "The minimum Trickle timer interval, as defined in 362 [RFC6206], for MPL Data Message transmissions."; 363 } 365 leaf DATA_MESSAGE_IMAX{ 366 type uint16; 367 // default DATA_MESSAGE_IMIN; 368 description 369 "The maximum Trickle timer interval, as defined in 370 [RFC6206], for MPL Data Message transmissions."; 371 } 373 leaf DATA_MESSAGE_K{ 374 type uint16; 375 default 1; 376 description 377 "The redundancy constant, as defined in [RFC6206], for 378 MPL Data Message transmissions."; 379 } 380 leaf DATA_MESSAGE_TIMER_EXPIRATIONS{ 381 type uint16; 382 default 3; 383 description 384 "The number of Trickle timer expirations that occur 385 before terminating the Trickle algorithm's 386 retransmission of a given MPL Data Message."; 387 } 389 leaf CONTROL_MESSAGE_IMIN{ 390 type uint16; 391 description 392 "The minimum Trickle timer interval, as defined 393 in [RFC6206], for MPL Control Message 394 transmissions."; 395 } 397 leaf CONTROL_MESSAGE_IMAX{ 398 type uint16; 399 // default SE_LIFETIME * 300000; 400 description 401 "The maximum Trickle timer interval, as defined 402 in [RFC6206], for MPL Control Message 403 transmissions."; 404 } 406 leaf CONTROL_MESSAGE_K{ 407 type uint16; 408 default 1; 409 description 410 "The redundancy constant, as defined in [RFC6206], 411 for MPL Control Message transmissions."; 412 } 414 leaf CONTROL_MESSAGE_TIMER_EXPIRATIONS{ 415 type uint16; 416 default 10; 417 description 418 "The number of Trickle time expirations that occur 419 before terminating the Trickle algorithm 420 for MPL Control Message transmissions."; 421 } 423 leaf-list MC_addresses{ 424 type inet:ipv6-address; 425 description 426 "All the MPL multicast addresses which belong to this domain."; 427 } 429 } // MPL parameter list 430 } // MPL ops 432 list mpl-seeds{ 433 key "seedID domainID"; 434 description 435 "List describes all seeds that are active in the server. Seed information contains the message buffer contents and the operational values of I, c, sequence number and the life-times per message."; 437 leaf seedID{ 438 type uint64; 439 description 440 "value uniquely identifies the MPL Seed within a MPL 441 domain."; 442 } 444 leaf domainID{ 445 type uint16; 446 description 447 "together with seedID uniquely identifies buffer set."; 448 } 450 leaf local { 451 type boolean; 452 description 453 "When local == TRUE, seed is located in this forwarder. 454 WHEN local == false, seed is located in different 455 forwarder."; 456 } 458 leaf life-time { 459 type uint64; 460 description 461 " Minimum remaining lifetime of the seed entry in 462 SE_LIFETIME units."; 463 } 465 leaf min-seqno{ 466 type uint8; 467 description 468 "Lower bound sequence number for this seed."; 469 } 471 leaf data-number{ 472 type uint8; 473 description 474 "Number of currently buffered data messages."; 475 } 476 leaf control-number{ 477 type uint8; 478 description 479 "Number of currently buffered control messages."; 480 } 482 leaf nr-of-timers{ 483 type uint8; 484 description 485 "number of active trickle timers."; 486 } 488 list seed-timers{ 489 key "seqno"; 490 description 491 " status of timers of the active message identified by seqno."; 493 leaf seqno{ 494 type uint8; 495 description 496 "Sequence number of message of this seed."; 497 } 499 leaf I{ 500 type uint8; 501 description 502 "Current Trickle timer interval in SE-LIFETIME units."; 503 } 505 leaf c{ 506 type uint8; 507 description 508 "number of times that identical message has been 509 received in this interval."; 510 } 512 leaf e{ 513 type uint8; 514 description 515 "number of Trickle time expirations since last 516 Trickle timer reset."; 517 } 519 leaf t{ 520 type uint8; 521 description 522 " number of time units expressed in SE-LIFETIME units 523 since last Trickle time activation."; 525 } 526 } // seed-timers 527 } // MPL-seeds list 529 list mpl-statistics{ 530 key "seedID domainID"; 531 description 532 "List describes performance statistics integrated over the messages of a seed. A message identified with a seqno can receive and forward multiple copies"; 534 leaf seedID{ 535 type uint64; 536 description 537 "value uniquely identifies the MPL Seed within a MPL 538 domain."; 539 } 541 leaf domainID{ 542 type uint16; 543 description 544 "together with seed-ID uniquely identifies buffer set."; 545 } 547 leaf c-too-high { 548 type uint64; 549 description 550 "Number of times that a message copy was not forwarded 551 because c > k."; 552 } 554 leaf nr-forwarded { 555 type uint64; 556 description 557 "number of times message copies are forwarded."; 558 } 560 leaf nr-not-forwarded { 561 type uint64; 562 description 563 "number of times no copies of a message are forwarded at all."; 564 } 566 leaf nr-of-messages-received{ 567 type uint64; 568 description 569 "number of messages received, must be smaller than or equal to seqno."; 570 } 572 leaf nr-of-copies-received{ 573 type uint64; 574 description 575 "number of message copies received."; 576 } 578 leaf nr-of-messages-forwarded{ 579 type uint64; 580 description 581 "number of forwarded messages, must be smaller than or equal to nr-of-messages-received."; 582 } 584 leaf nr-of-copies-forwarded{ 585 type uint64; 586 description 587 "number of forwarded copies."; 588 } 590 leaf nr-of-refused{ 591 type uint64; 592 description 593 "number of refused messages because seqno too small."; 594 } 596 leaf nr-of-notreceived{ 597 type uint64; 598 description 599 "number of messages that are were not received 600 according to control message."; 601 } 603 leaf nr-of-missing{ 604 type uint64; 605 description 606 "number of messages that were not received by a 607 neighbour according to control message."; 608 } 610 leaf nr-of-inconsistent-data{ 611 type uint64; 612 description 613 "number of inconsistent data messages."; 614 } 616 leaf nr-of-consistent-data{ 617 type uint64; 618 description 619 "number of consistent data messages."; 620 } 621 leaf nr-of-consistent-control{ 622 type uint64; 623 description 624 "number of consistent control messages."; 625 } 627 leaf nr-of-inconsistent-control{ 628 type uint64; 629 description 630 "number of inconsistent control messages."; 631 } 632 } // mpl statistics 633 } // yang-mpl 634 } // module ietf-yang-mpl 636 638 4. IANA Considerations 640 5. Acknowledgements 642 Andy Bierman has commented on the use of YANG for mpl. 644 6. Changelog 646 Changes from version 00 to version 01 648 o first change 650 7. References 652 7.1. Normative References 654 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 655 Requirement Levels", BCP 14, RFC 2119, 656 DOI 10.17487/RFC2119, March 1997, 657 . 659 [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for 660 the Network Configuration Protocol (NETCONF)", RFC 6020, 661 DOI 10.17487/RFC6020, October 2010, 662 . 664 [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., 665 and A. Bierman, Ed., "Network Configuration Protocol 666 (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, 667 . 669 [RFC7223] Bjorklund, M., "A YANG Data Model for Interface 670 Management", RFC 7223, DOI 10.17487/RFC7223, May 2014, 671 . 673 [RFC7731] Hui, J. and R. Kelsey, "Multicast Protocol for Low-Power 674 and Lossy Networks (MPL)", RFC 7731, DOI 10.17487/RFC7731, 675 February 2016, . 677 7.2. Informative References 679 [RFC6206] Levis, P., Clausen, T., Hui, J., Gnawali, O., and J. Ko, 680 "The Trickle Algorithm", RFC 6206, DOI 10.17487/RFC6206, 681 March 2011, . 683 [I-D.ietf-roll-mpl-parameter-configuration] 684 Doi, Y. and M. Gillmore, "MPL Parameter Configuration 685 Option for DHCPv6", draft-ietf-roll-mpl-parameter- 686 configuration-08 (work in progress), November 2015. 688 Authors' Addresses 690 Peter van der Stok (editor) 691 consultant 693 Phone: +31-492474673 (Netherlands), +33-966015248 (France) 694 Email: consultancy@vanderstok.org 695 URI: www.vanderstok.org 697 Pascal Thubert 698 Cisco Systems, Inc 699 Building D 700 45 Allee des Ormes - BP1200 701 MOUGINS - Sophia Antipolis 06254 702 FRANCE 704 Phone: +33 497 23 26 34 705 Email: pthubert@cisco.com