idnits 2.17.1 draft-ietf-roll-mpl-yang-01.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 : ---------------------------------------------------------------------------- ** The document seems to lack a Security Considerations section. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year == Line 190 has weird spacing: '...o seqno uin...' == Line 587 has weird spacing: '... key domai...' == Line 592 has weird spacing: '... leaf domai...' == Line 1042 has weird spacing: '... module ietf-...' == The document doesn't use any RFC 2119 keywords, yet seems to have RFC 2119 boilerplate text. -- The document date (March 30, 2018) is 2209 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 156, but not defined ** Obsolete normative reference: RFC 7223 (Obsoleted by RFC 8343) Summary: 2 errors (**), 0 flaws (~~), 7 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 March 30, 2018 5 Expires: October 1, 2018 7 A YANG model for Multicast Protocol for Low power and lossy Networks 8 (MPL) 9 draft-ietf-roll-mpl-yang-01 11 Abstract 13 This document defines a YANG data model for management of Multicast 14 Protocol for Low power and lossy Networks (MPL) implementations. The 15 data model includes configuration data and state data. 17 Note 19 Discussion and suggestions for improvement are requested, and should 20 be sent to roll@ietf.org. 22 Status of This Memo 24 This Internet-Draft is submitted in full conformance with the 25 provisions of BCP 78 and BCP 79. 27 Internet-Drafts are working documents of the Internet Engineering 28 Task Force (IETF). Note that other groups may also distribute 29 working documents as Internet-Drafts. The list of current Internet- 30 Drafts is at https://datatracker.ietf.org/drafts/current/. 32 Internet-Drafts are draft documents valid for a maximum of six months 33 and may be updated, replaced, or obsoleted by other documents at any 34 time. It is inappropriate to use Internet-Drafts as reference 35 material or to cite them other than as "work in progress." 37 This Internet-Draft will expire on October 1, 2018. 39 Copyright Notice 41 Copyright (c) 2018 IETF Trust and the persons identified as the 42 document authors. All rights reserved. 44 This document is subject to BCP 78 and the IETF Trust's Legal 45 Provisions Relating to IETF Documents 46 (https://trustee.ietf.org/license-info) in effect on the date of 47 publication of this document. Please review these documents 48 carefully, as they describe your rights and restrictions with respect 49 to this document. Code Components extracted from this document must 50 include Simplified BSD License text as described in Section 4.e of 51 the Trust Legal Provisions and are provided without warranty as 52 described in the Simplified BSD License. 54 Table of Contents 56 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 57 1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 2 58 1.1.1. Tree Diagrams . . . . . . . . . . . . . . . . . . . . 3 59 2. MPL model . . . . . . . . . . . . . . . . . . . . . . . . . . 3 60 3. SID file generation . . . . . . . . . . . . . . . . . . . . . 5 61 4. yang-mpl modules . . . . . . . . . . . . . . . . . . . . . . 8 62 4.1. yang-mpl-domain module . . . . . . . . . . . . . . . . . 8 63 4.2. yang-mpl-ops module . . . . . . . . . . . . . . . . . . . 11 64 4.3. yang-mpl-seeds module . . . . . . . . . . . . . . . . . . 15 65 4.4. yang-mpl-statistics module . . . . . . . . . . . . . . . 19 66 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 23 67 6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 23 68 7. Changelog . . . . . . . . . . . . . . . . . . . . . . . . . . 23 69 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 23 70 8.1. Normative References . . . . . . . . . . . . . . . . . . 23 71 8.2. Informative References . . . . . . . . . . . . . . . . . 24 72 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 24 74 1. Introduction 76 This document defines a YANG [RFC6020] data model for management of 77 Multicast Protocol for Low power and lossy Networks (MPL) [RFC7731] 78 implementations. The data model covers configuration of MPL 79 parameters per interface. It also provides information about which 80 Multicast addresses are operationally used, and the seeds of the 81 forwarded packets. 83 1.1. Terminology 85 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 86 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 87 document are to be interpreted as described in [RFC2119]. 89 The following terms are defined in [RFC6241] and are not redefined 90 here: 92 o client 94 o configuration data 96 o server 97 o state data 99 The following terms are defined in [RFC6020] and are not redefined 100 here: 102 o data model 104 o data node 106 The terminology for describing YANG data models is found in 107 [RFC6020]. 109 Terms like message, domain, seed, I, k, c are defined in [RFC7731]. 111 Mutiple copies of a message can be received or sent by a node. 113 1.1.1. Tree Diagrams 115 A simplified graphical representation of the data model is used in 116 the YANG modules specified in this document. The meaning of the 117 symbols in these diagrams is as follows: 119 Brackets "[" and "]" enclose list keys. 121 Abbreviations before data node names: "rw" means configuration 122 data (read-write) and "ro" state data (read-only). 124 Symbols after data node names: "?" means an optional node, "!" 125 means a presence container, and "*" denotes a list and leaf-list. 127 Parentheses enclose choice and case nodes, and case nodes are also 128 marked with a colon (":"). 130 Ellipsis ("...") stands for contents of subtrees that are not 131 shown. 133 2. MPL model 135 This document defines the YANG module "ietf-yang-mpl", which 136 specifies a data model for MPL servers. The model is separated into 137 four modules which can be loaded independently to accommodate the 138 storage space to the wanted functionality. The model consists of the 139 following parts: (1) a "mpl-domain" part that describes the MPL- 140 domains and associated Multicast addresses and the interfaces on 141 which the Multicast addresses are enabled, (2) a "mpl-op" part that 142 describes the parameters settings per seed, (3) a "mpl-seeds" part 143 that describes the MPL buffer contents and the Trickle timer values, 144 and (4) a "mpl-statistics" part that describes the number of lost and 145 correctly forwarded messages. The data model, divided in four 146 modules, has the following structure for MPL configuration per node: 148 module: ietf-yang-mpl-domain 149 +--rw domain 150 +--rw (single)? 151 +--:(mpl-domain) 152 | +--rw mpl-domain 153 | +--rw domains* [domainID] 154 | | +--rw domainID uint16 155 | | +--rw MClist* inet:ipv6-address 156 | +--rw addresses* [MCaddress] 157 | +--rw MCaddress inet:ipv6-address 158 | +--rw interfaces* string 159 +--:(mpl-single) 160 +--rw mpl-single 161 +--rw MCaddresses* inet:ipv6-address 163 module: ietf-yang-mpl-ops 164 +--rw mpl-ops 165 +--rw SE_LIFETIME? uint16 166 +--rw PROACTIVE_FORWARDING? boolean 167 +--rw SEED_SET_ENTRY_LIFETIME? uint64 168 +--rw mpl-parameter* [domainID] 169 +--rw domainID uint16 170 +--rw DATA_MESSAGE_IMIN? uint16 171 +--rw DATA_MESSAGE_IMAX? uint16 172 +--rw DATA_MESSAGE_K? uint16 173 +--rw DATA_MESSAGE_TIMER_EXPIRATIONS? uint16 174 +--rw CONTROL_MESSAGE_IMIN? uint16 175 +--rw CONTROL_MESSAGE_IMAX? uint16 176 +--rw CONTROL_MESSAGE_K? uint16 177 +--rw CONTROL_MESSAGE_TIMER_EXPIRATIONS? uint16 179 module: ietf-yang-mpl-seeds 180 +--ro mpl-seeds* [seedID domainID] 181 +--ro seedID uint64 182 +--ro domainID uint16 183 +--ro local? boolean 184 +--ro generate-seqno? uint8 185 +--ro life-time? uint64 186 +--ro min-seqno? uint8 187 +--ro data-number? uint8 188 +--ro control-number? uint8 189 +--ro buffered-messages* [seqno] 190 +--ro seqno uint8 191 +--ro I? uint8 192 +--ro c? uint8 193 +--ro e? uint8 194 +--ro t? uint8 196 module: ietf-yang-mpl-statistics 197 +--ro mpl-statistics* [seedID domainID] 198 +--ro seedID uint64 199 +--ro domainID uint16 200 +--ro c-too-high? uint64 201 +--ro nr-forwarded? uint64 202 +--ro nr-of-messages-received? uint64 203 +--ro nr-of-copies-received? uint64 204 +--ro nr-of-messages-forwarded? uint64 205 +--ro nr-of-copies-forwarded? uint64 206 +--ro nr-of-refused? uint64 207 +--ro nr-of-missed? uint64 208 +--ro nr-of-notreceived? uint64 209 +--ro nr-of-inconsistent-data? uint64 210 +--ro nr-of-consistent-data? uint64 211 +--ro nr-of-consistent-control? uint64 212 +--ro nr-of-inconsistent-control? uint64 213 +--ro statistics-interval? uint64 214 +---x reset-statistics 216 3. SID file generation 218 SID are allocated to the identifiers specified in the four modules. 219 Their values are: 221 SID Assigned to 222 --------- -------------------------------------------------- 223 1004050 module ietf-yang-mpl-domain 224 1004051 data /ietf-yang-mpl-domain:domain 225 1004052 data /ietf-yang-mpl-domain:domain/mpl-domain 226 1004053 data /ietf-yang-mpl-domain:domain/mpl-domain/addresses 227 1004054 data /ietf-yang-mpl-domain:domain/mpl-domain 228 /addresses/MCaddress 229 1004055 data /ietf-yang-mpl-domain:domain/mpl-domain 230 /addresses/interfaces 231 1004056 data /ietf-yang-mpl-domain:domain/mpl-domain/domains 232 1004057 data /ietf-yang-mpl-domain:domain/mpl-domain 233 /domains/MClist 234 1004058 data /ietf-yang-mpl-domain:domain/mpl-domain 235 /domains/domainID 236 1004059 data /ietf-yang-mpl-domain:domain/mpl-single 237 1004060 data /ietf-yang-mpl-domain:domain/mpl-single 238 /MCaddresses 240 File ietf-yang-mpl-domain@2018-03-29.sid created 241 Number of SIDs available : 50 242 Number of SIDs used : 11 244 SID Assigned to 245 --------- -------------------------------------------------- 246 1004100 module ietf-yang-mpl-ops 247 1004101 data /ietf-yang-mpl-ops:mpl-ops 248 1004102 data /ietf-yang-mpl-ops:mpl-ops/PROACTIVE_FORWARDING 249 1004103 data /ietf-yang-mpl-ops:mpl-ops 250 /SEED_SET_ENTRY_LIFETIME 251 1004104 data /ietf-yang-mpl-ops:mpl-ops/SE_LIFETIME 252 1004105 data /ietf-yang-mpl-ops:mpl-ops/mpl-parameter 253 1004106 data /ietf-yang-mpl-ops:mpl-ops/mpl-parameter 254 /CONTROL_MESSAGE_IMAX 255 1004107 data /ietf-yang-mpl-ops:mpl-ops/mpl-parameter 256 /CONTROL_MESSAGE_IMIN 257 1004108 data /ietf-yang-mpl-ops:mpl-ops/mpl-parameter 258 /CONTROL_MESSAGE_K 259 1004109 data /ietf-yang-mpl-ops:mpl-ops/mpl-parameter 260 /CONTROL_MESSAGE_TIMER_EXPIRATIONS 261 1004110 data /ietf-yang-mpl-ops:mpl-ops/mpl-parameter 262 /DATA_MESSAGE_IMAX 263 1004111 data /ietf-yang-mpl-ops:mpl-ops/mpl-parameter 264 /DATA_MESSAGE_IMIN 265 1004112 data /ietf-yang-mpl-ops:mpl-ops/mpl-parameter 266 /DATA_MESSAGE_K 267 1004113 data /ietf-yang-mpl-ops:mpl-ops/mpl-parameter 268 /DATA_MESSAGE_TIMER_EXPIRATIONS 269 1004114 data /ietf-yang-mpl-ops:mpl-ops/mpl-parameter/domainID 271 File ietf-yang-mpl-ops@2018-03-29.sid created 272 Number of SIDs available : 50 273 Number of SIDs used : 15 275 SID Assigned to 276 --------- -------------------------------------------------- 277 1004150 module ietf-yang-mpl-seeds 278 1004151 data /ietf-yang-mpl-seeds:mpl-seeds 279 1004152 data /ietf-yang-mpl-seeds:mpl-seeds/buffered-messages 280 1004153 data /ietf-yang-mpl-seeds:mpl-seeds 281 /buffered-messages/I 282 1004154 data /ietf-yang-mpl-seeds:mpl-seeds 283 /buffered-messages/c 284 1004155 data /ietf-yang-mpl-seeds:mpl-seeds 285 /buffered-messages/e 287 1004156 data /ietf-yang-mpl-seeds:mpl-seeds 288 /buffered-messages/seqno 289 1004157 data /ietf-yang-mpl-seeds:mpl-seeds 290 /buffered-messages/t 291 1004158 data /ietf-yang-mpl-seeds:mpl-seeds/control-number 292 1004159 data /ietf-yang-mpl-seeds:mpl-seeds/data-number 293 1004160 data /ietf-yang-mpl-seeds:mpl-seeds/domainID 294 1004161 data /ietf-yang-mpl-seeds:mpl-seeds/generate-seqno 295 1004162 data /ietf-yang-mpl-seeds:mpl-seeds/life-time 296 1004163 data /ietf-yang-mpl-seeds:mpl-seeds/local 297 1004164 data /ietf-yang-mpl-seeds:mpl-seeds/min-seqno 298 1004165 data /ietf-yang-mpl-seeds:mpl-seeds/seedID 300 File ietf-yang-mpl-seeds@2018-03-29.sid created 301 Number of SIDs available : 50 302 Number of SIDs used : 16 304 SID Assigned to 305 --------- -------------------------------------------------- 306 1004200 module ietf-yang-mpl-statistics 307 1004201 data /ietf-yang-mpl-statistics:mpl-statistics 308 1004202 data /ietf-yang-mpl-statistics:mpl-statistics 309 /c-too-high 310 1004203 data /ietf-yang-mpl-statistics:mpl-statistics 311 /domainID 312 1004204 data /ietf-yang-mpl-statistics:mpl-statistics 313 /nr-forwarded 314 1004205 data /ietf-yang-mpl-statistics:mpl-statistics 315 /nr-of-consistent-control 316 1004206 data /ietf-yang-mpl-statistics:mpl-statistics 317 /nr-of-consistent-data 318 1004207 data /ietf-yang-mpl-statistics:mpl-statistics 319 /nr-of-copies-forwarded 320 1004208 data /ietf-yang-mpl-statistics:mpl-statistics 321 /nr-of-copies-received 322 1004209 data /ietf-yang-mpl-statistics:mpl-statistics 323 /nr-of-inconsistent-control 324 1004210 data /ietf-yang-mpl-statistics:mpl-statistics 325 /nr-of-inconsistent-data 326 1004211 data /ietf-yang-mpl-statistics:mpl-statistics 327 /nr-of-messages-forwarded 328 1004212 data /ietf-yang-mpl-statistics:mpl-statistics 329 /nr-of-messages-received 330 1004213 data /ietf-yang-mpl-statistics:mpl-statistics 331 /nr-of-missed 332 1004214 data /ietf-yang-mpl-statistics:mpl-statistics 333 /nr-of-notreceived 334 1004215 data /ietf-yang-mpl-statistics:mpl-statistics 335 /nr-of-refused 336 1004216 data /ietf-yang-mpl-statistics:mpl-statistics 337 /reset-statistics 338 1004217 data /ietf-yang-mpl-statistics:mpl-statistics/seedID 339 1004218 data /ietf-yang-mpl-statistics:mpl-statistics 340 /statistics-interval 342 File ietf-yang-mpl-statistics@2018-03-29.sid created 343 Number of SIDs available : 50 344 Number of SIDs used : 19 346 4. yang-mpl modules 348 This section describes four yang modules. The model is based on the 349 MPL specification published in [RFC7731] and the specification of 350 [RFC6206]. The identification of the interfaces follows the 351 specification of ietf-interfaces of [RFC7223]. 353 The data model allows to set values to the parameters of the MPL 354 algorithm. This approach requires an active manager process to set 355 the values without use of DHCP as described in: [RFC7774]. 357 The names of the four modules are: yang-mpl-domain, yang-mpl-ops, 358 yang-mpl-seeds, and yang-mpl-statistics, described in subsections 359 with the same name. 361 4.1. yang-mpl-domain module 363 This module describes (1) the MPL domains and the associated 364 multicast addresses, and (2) the interfaces and the multicast 365 addresses for which they are enabled. 367 The model features a choice such that for constrained devices with 368 only one "single" interface and only one "single" domain, the model 369 specifies a list of MC addresses for which the single interface is 370 enabled. 372 file "ietf-yang-mpl-domain@2018-03-29.yang" 374 module ietf-yang-mpl-domain { 376 yang-version 1.1; 378 namespace 379 "urn:ietf:params:xml:ns:yang:ietf-yang-mpl-domain"; 381 prefix mpl; 383 import ietf-inet-types{ 384 prefix inet; 385 } 387 organization 388 "IETF ROLL (Routing Over Low power and lossy networks) 389 Working Group"; 391 contact 392 "WG Web: http://tools.ietf.org/wg/roll/ 393 WG List: mailto:roll@ietf.org 395 WG Chair: Peter van der Stok 396 mailto:consultancy@vanderstok.org 398 WG Chair: Ines Robles 399 mailto:maria.ines.robles@ericsson.com 401 Editor: Peter van der Stok 402 mailto:consultancy@vanderstok.org"; 404 description 405 "This module contains information about the state of the MPL domain. 407 Copyright (c) 2016 IETF Trust and the persons identified as 408 authors of the code. All rights reserved. 410 Redistribution and use in source and binary forms, with or 411 without modification, is permitted pursuant to, and subject 412 to the license terms contained in, the Simplified BSD License 413 set forth in Section 4.c of the IETF Trust's Legal Provisions 414 Relating to IETF Documents 415 (http://trustee.ietf.org/license-info). 417 This version of this YANG module is part of RFC XXXX; see 418 the RFC itself for full legal notices."; 420 revision "2018-03-29" { 421 description "Initial revision."; 422 reference 423 "I-D:draft-ietf-roll-mpl-yang: A YANG model for Multicast 424 Protocol for Low power and lossy Networks (MPL)"; 425 } 426 container domain { 427 description 428 "High level container containing the choice statement."; 430 choice single { 431 description 432 "A choice between single domain/interface and multiple 433 domains and interfaces."; 434 container mpl-domain { 435 description 436 "The entries describe the MPL domains, the associated 437 Multicast addresses and interfaces."; 439 list domains { 440 key domainID; 441 description 442 "The entries describe a given domain identified with 443 domainID and the associated Multicast addresses."; 445 leaf domainID { 446 type uint16; 447 description 448 "Entry uniquely identifies the domain in the 449 forwarder."; 450 } 452 leaf-list MClist{ 453 type inet:ipv6-address; 454 description 455 "List of associated IPv6 Addresses."; 456 } 457 } // domains list 459 list addresses { 460 key MCaddress; 461 description 462 "The entries describe the interfaces enabled 463 with the specified MC address."; 465 leaf MCaddress { 466 type inet:ipv6-address; 467 description 468 "MC address belonging to a MPL domain."; 469 } 471 leaf-list interfaces { 472 type string; 473 description 474 "List of names of interfaces enabled for this 475 Multicast address. Interface name is defined in [RFC6206]."; 476 } 477 } // addresses list 479 } // container mpl-domain 480 container mpl-single { 481 description 482 "For small devices list of MC addresses for single 483 interface and domain."; 484 leaf-list MCaddresses{ 485 type inet:ipv6-address; 486 description 487 "list of MC addresses belonging to one single 488 domain and interface."; 489 } 490 } // container mpl-simple 491 } // choice simple 492 } // container module 493 } //module ietf-yang-mpl-domain 495 497 4.2. yang-mpl-ops module 499 This module models the operational aspects of MPL. Per domain MPL 500 specifies four parameters I_MAX, I_MIN, K, and TIMER_EXPIRATIONs for 501 data and control messages. The value of the MPL intervals are 502 expressed in TUNIT. The entry SE_LIFETIME taken over from [RFC7774] 503 fixes TUNIT to milliseconds. For very constrained devices with only 504 one domain there can be only one instance of mpl-parameter list. 506 file "ietf-yang-mpl-ops@2018-03-29.yang" 508 module ietf-yang-mpl-ops { 510 yang-version 1.1; 512 namespace 513 "urn:ietf:params:xml:ns:yang:ietf-yang-mpl-ops"; 515 prefix mpl; 517 organization 518 "IETF ROLL (Routing over Low power and lossy networks) 519 Working Group"; 521 contact 522 "WG Web: http://tools.ietf.org/wg/roll/ 523 WG List: mailto:roll@ietf.org 524 WG Chair: Peter van der Stok 525 mailto:consultancy@vanderstok.org 527 WG Chair: Ines Robles 528 mailto:maria.ines.robles@ericsson.com 530 Editor: Peter van der Stok 531 mailto:consultancy@vanderstok.org"; 533 description 534 "This module contains information about the operation of 535 the MPL protocol. 537 Copyright (c) 2016 IETF Trust and the persons identified as 538 authors of the code. All rights reserved. 540 Redistribution and use in source and binary forms, with or 542 without modification, is permitted pursuant to, and subject 543 to the license terms contained in, the Simplified BSD License 544 set forth in Section 4.c of the IETF Trust's Legal Provisions 545 Relating to IETF Documents 546 (http://trustee.ietf.org/license-info). 548 This version of this YANG module is part of RFC XXXX; see 549 the RFC itself for full legal notices."; 551 revision "2018-03-29" { 552 description "Initial revision."; 553 reference 554 "I-D:draft-ietf-roll-mpl-yang: A YANG model for Multicast 555 Protocol for Low power and lossy Networks (MPL)"; 556 } 558 container mpl-ops { 559 description 560 "Parameter settings for each MPL server and for each 561 individual domain of the server."; 563 leaf SE_LIFETIME { 564 type uint16; 565 description 566 "lifetime in milliseconds/(mpl timer units), 567 equivalent to SEED_SET_ENTRY_LIFETIME/TUNIT as 568 specified in RFC7774."; 569 } 570 leaf PROACTIVE_FORWARDING { 571 type boolean; 572 description 573 "The boolean value indicates whether the MPL forwarder 574 schedules MPL data message transmission after 575 receiving them for the first time."; 576 } 578 leaf SEED_SET_ENTRY_LIFETIME { 579 type uint64; 580 description 581 "The value indicates the minimum lifetime for an entry 582 in the Seed set expressed in seconds. Default value 583 is 30 minutes."; 584 } 586 list mpl-parameter{ 587 key domainID; 588 description 589 "Each domain has a set of MPL forwarding parameters 590 which regulate the forwarding operation."; 592 leaf domainID{ 593 type uint16; 594 description 595 "Each domainID must be present in 596 mpl-parameter list."; 597 } 599 leaf DATA_MESSAGE_IMIN{ 600 type uint16; 601 description 602 "The minimum Trickle timer interval, as defined in 603 [RFC6206], for MPL Data Message transmissions."; 604 } 606 leaf DATA_MESSAGE_IMAX{ 607 type uint16; 608 description 609 "The maximum Trickle timer interval, as defined in 610 [RFC6206], for MPL Data Message transmissions."; 611 } 613 leaf DATA_MESSAGE_K{ 614 type uint16; 615 default 1; 616 description 617 "The redundancy constant, as defined in [RFC6206], for 618 MPL Data Message transmissions."; 619 } 621 leaf DATA_MESSAGE_TIMER_EXPIRATIONS{ 622 type uint16; 623 default 3; 624 description 625 "The number of Trickle timer expirations, as defined 626 in [RFC7731], that occur 627 before terminating the Trickle algorithm's 628 retransmission of a given MPL Data Message."; 629 } 631 leaf CONTROL_MESSAGE_IMIN{ 632 type uint16; 633 description 634 "The minimum Trickle timer interval, as defined 635 in [RFC6206], for MPL Control Message 636 transmissions."; 637 } 639 leaf CONTROL_MESSAGE_IMAX{ 640 type uint16; 641 description 642 "The maximum Trickle timer interval, as defined 643 in [RFC6206], for MPL Control Message 644 transmissions."; 645 } 647 leaf CONTROL_MESSAGE_K{ 648 type uint16; 649 default 1; 650 description 651 "The redundancy constant, as defined in [RFC6206], 652 for MPL Control Message transmissions."; 653 } 655 leaf CONTROL_MESSAGE_TIMER_EXPIRATIONS{ 656 type uint16; 657 default 10; 658 description 659 "The number of Trickle time expirations, 660 as defined in [RFC7731], that occur 661 before terminating the Trickle algorithm 662 for MPL Control Message transmissions."; 663 } 665 } // list MPL-parameter 667 } // container MPL-ops 668 } // module ietf-yang-mpl-ops 670 672 4.3. yang-mpl-seeds module 674 This module specifies the current values of the operation of the MPL 675 forwarder. The values are acquired by the client and set by the 676 server. The module specifies a set of message buffers, with a buffer 677 per seed and domain. In constrained devices there will be only one 678 domain, but probably multiple seeds. 680 The message buffer contains a set of messages where each message is 681 uniquely identified by its sequence number and seed. The associated 682 I, c, e, and t values indicate the progress of MPL with respect to 683 this message, as specified in [RFC7731]. A forwarder sends and 684 receives multiple copies of a message. When a forwarder has sent 685 (received) a copy of a message, the forwarder has sent (received) 686 that message. 688 For forwarders which are seeds, local has value true and seqno is the 689 sequence number of the next message to send. 691 file "ietf-yang-mpl-seeds@2018-03-29.yang" 693 module ietf-yang-mpl-seeds { 695 yang-version 1.1; 697 namespace 698 "urn:ietf:params:xml:ns:yang:ietf-yang-mpl-seeds"; 700 prefix mpl; 702 organization 703 "IETF ROLL (Routing over Low power and lossy networks) 704 Working Group"; 706 contact 707 "WG Web: http://tools.ietf.org/wg/roll/ 708 WG List: mailto:roll@ietf.org 710 WG Chair: Peter van der Stok 711 mailto:consultancy@vanderstok.org 713 WG Chair: Ines Robles 714 mailto:maria.ines.robles@ericsson.com 716 Editor: Peter van der Stok 717 mailto:consultancy@vanderstok.org"; 719 description 720 "This module contains information about the operation 721 of the MPL protocol. 723 Copyright (c) 2016 IETF Trust and the persons identified as 724 authors of the code. All rights reserved. 726 Redistribution and use in source and binary forms, with or 728 without modification, is permitted pursuant to, and subject 729 to the license terms contained in, the Simplified BSD License 730 set forth in Section 4.c of the IETF Trust's Legal Provisions 731 Relating to IETF Documents 732 (http://trustee.ietf.org/license-info). 734 This version of this YANG module is part of RFC XXXX; see 735 the RFC itself for full legal notices."; 737 revision "2018-03-29" { 738 description "Initial revision."; 739 reference 740 "I-D:draft-ietf-roll-mpl-yang: A YANG model for Multicast 741 Protocol for Low power and lossy Networks (MPL)"; 742 } 744 list mpl-seeds{ 745 key "seedID domainID"; 746 config false; 747 description 748 "List describes all seeds that are active in the server. 749 Seed information contains the message buffer contents and the 750 operational values of I, c, sequence number and the life-times 751 per message."; 753 leaf seedID{ 754 type uint64; 755 description 756 "value uniquely identifies the MPL Seed within a MPL 757 domain."; 758 } 759 leaf domainID{ 760 type uint16; 761 description 762 "together with seedID uniquely identifies buffer set."; 763 } 765 leaf local { 766 type boolean; 767 description 768 "When local == TRUE, seed originated in this forwarder. 769 WHEN local == false, seed originated in different 770 forwarder."; 771 } 773 leaf generate-seqno { 774 type uint8; 775 description 776 "Sequence number of next message to be generated by 777 this local seed."; 778 } 780 leaf life-time { 781 type uint64; 782 description 783 " Minimum remaining lifetime of the seed entry in 784 SE_LIFETIME units."; 785 } 787 leaf min-seqno{ 788 type uint8; 789 description 790 "Lower bound sequence number in the buffer of the seed."; 791 } 793 leaf data-number{ 794 type uint8; 795 description 796 "Number of currently buffered data messages."; 797 } 799 leaf control-number{ 800 type uint8; 801 description 802 "Number of currently buffered control messages."; 803 } 805 list buffered-messages{ 806 key seqno; 807 description 808 " status of trickle intervals of the buffered message 809 identified by seqno. and seed/domain"; 811 leaf seqno{ 812 type uint8; 813 description 814 "Sequence number of message."; 815 } 817 leaf I{ 818 type uint8; 819 description 820 "Current Trickle timer interval size in SE-LIFETIME 821 units."; 822 } 824 leaf c{ 825 type uint8; 826 description 827 "number of times that a copy of this message has been 828 received in this interval."; 829 } 831 leaf e{ 832 type uint8; 833 description 834 "number of Trickle time expirations since last 835 Trickle timer reset."; 836 } 838 leaf t{ 839 type uint8; 840 description 841 " Time expressed in SE-LIFETIME units 842 that message will be (is) forwarded"; 843 } 844 } // list seed-timers 845 } // list MPL-seeds 846 } // module ietf-yang-mpl-seeds 848 850 4.4. yang-mpl-statistics module 852 This module specifies the operation of the MPL forwarder expressed in 853 number of messages and copies. The values are acquired by the client 854 and set by the server. Statistics are specified per seed and domain. 855 In constrained devices there will be only one domain, but probably 856 multiple seeds. 858 The parameter k determines how many copies of a message can be 859 forwarded. The counters c-too-high, nr-forwarded, and nr-not- 860 forwarded give insight in the consequences of the current value of k. 862 The other counters give insight in the loss of messages caused by the 863 medium or forwarding delays. The inconsistent/consistent counters 864 indicate when consistent or inconsistent messages were received 865 according to the definition of consistent in [RFC7731]. 867 file "ietf-yang-mpl-statistics@2018-03-29.yang" 869 module ietf-yang-mpl-statistics { 871 yang-version 1.1; 873 namespace 874 "urn:ietf:params:xml:ns:yang:ietf-yang-mpl-statistics"; 876 prefix mpl; 878 organization 879 "IETF ROLL (Routing over Low power and lossy networks) 880 Working Group"; 882 contact 883 "WG Web: http://tools.ietf.org/wg/roll/ 884 WG List: mailto:roll@ietf.org 886 WG Chair: Peter van der Stok 887 mailto:consultancy@vanderstok.org 889 WG Chair: Ines Robles 890 mailto:maria.ines.robles@ericsson.com 892 Editor: Peter van der Stok 893 mailto:consultancy@vanderstok.org"; 895 description 896 "This module contains information about the operation 897 of the MPL protocol. 899 Copyright (c) 2016 IETF Trust and the persons identified as 900 authors of the code. All rights reserved. 902 Redistribution and use in source and binary forms, with or 904 without modification, is permitted pursuant to, and subject 905 to the license terms contained in, the Simplified BSD License 906 set forth in Section 4.c of the IETF Trust's Legal Provisions 907 Relating to IETF Documents 908 (http://trustee.ietf.org/license-info). 910 This version of this YANG module is part of RFC XXXX; see 911 the RFC itself for full legal notices."; 913 revision "2018-03-29" { 914 description "Initial revision."; 915 reference 916 "I-D:draft-ietf-roll-mpl-yang: A YANG model for Multicast 917 Protocol for Low power and lossy Networks (MPL)"; 918 } 920 list mpl-statistics{ 921 key "seedID domainID"; 923 config false; 925 description 926 "List describes performance statistics integrated over 927 the messages identified by seed and domain identifiers. A 928 forwarder can receive and forward multiple copies of a message 929 uniquely identified by seqno, domain, and seed."; 931 leaf seedID{ 932 type uint64; 933 description 934 "value uniquely identifies the MPL Seed within a MPL 935 domain."; 936 } 938 leaf domainID{ 939 type uint16; 940 description 941 "together with seed-ID uniquely identifies buffer set."; 942 } 944 leaf c-too-high { 945 type uint64; 946 description 947 "Number of times that a copy was not forwarded 948 because c > k."; 949 } 951 leaf nr-forwarded { 952 type uint64; 953 description 954 "number of times copies are forwarded, while c <= k."; 955 } 957 leaf nr-of-messages-received{ 958 type uint64; 959 description 960 "number of messages received, 961 must be smaller than or equal to seqno."; 962 } 964 leaf nr-of-copies-received{ 965 type uint64; 966 description 967 "total number of message copies received."; 968 } 970 leaf nr-of-messages-forwarded{ 971 type uint64; 972 description 973 "number of forwarded messages, must be smaller than or 974 equal to nr-of-messages-received."; 975 } 977 leaf nr-of-copies-forwarded{ 978 type uint64; 979 description 980 "number of forwarded copies, can be larger than 981 number-of-copies-received."; 982 } 984 leaf nr-of-refused{ 985 type uint64; 986 description 987 "number of refused copies because seqno too small."; 988 } 989 leaf nr-of-missed{ 990 type uint64; 991 description 992 "number of messages that were not received 993 is equal to the number of empty message buffers 994 seqno < min-seqno."; 995 } 997 leaf nr-of-notreceived{ 998 type uint64; 999 description 1000 "number of messages that were not received 1001 according to control message."; 1002 } 1004 leaf nr-of-inconsistent-data{ 1005 type uint64; 1006 description 1007 "number of inconsistent data messages."; 1008 } 1010 leaf nr-of-consistent-data{ 1011 type uint64; 1012 description 1013 "number of consistent data messages."; 1014 } 1016 leaf nr-of-consistent-control{ 1017 type uint64; 1018 description 1019 "number of consistent control messages."; 1020 } 1022 leaf nr-of-inconsistent-control{ 1023 type uint64; 1024 description 1025 "number of inconsistent control messages."; 1026 } 1028 leaf statistics-interval{ 1029 type uint64; 1030 description 1031 "Interval, expressed in seconds, during which 1032 the statistics are collected."; 1033 } 1035 action reset-statistics{ 1036 description 1037 "set all statistics counters and 1038 statistics-interval to zero."; 1039 } 1041 } // list mpl statistics 1042 } // module ietf-yang-mpl-statistics 1044 1046 5. IANA Considerations 1048 This specification has no consequences for IANA. 1050 6. Acknowledgements 1052 Andy Bierman has commented on the use of YANG for mpl. YANG doctors 1053 pointed out a wrong use of config. 1055 7. Changelog 1057 Changes from version 00 to version 01 1059 o config false in "statistics" and "seeds" modules 1061 o separated into 4 modules 1063 o inserted choice in domain modules 1065 o more explanatory text 1067 o renamed some parameters 1069 o Introduced section per module 1071 o reset of statistics is added 1073 8. References 1075 8.1. Normative References 1077 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 1078 Requirement Levels", BCP 14, RFC 2119, 1079 DOI 10.17487/RFC2119, March 1997, 1080 . 1082 [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for 1083 the Network Configuration Protocol (NETCONF)", RFC 6020, 1084 DOI 10.17487/RFC6020, October 2010, 1085 . 1087 [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., 1088 and A. Bierman, Ed., "Network Configuration Protocol 1089 (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, 1090 . 1092 [RFC7223] Bjorklund, M., "A YANG Data Model for Interface 1093 Management", RFC 7223, DOI 10.17487/RFC7223, May 2014, 1094 . 1096 [RFC7731] Hui, J. and R. Kelsey, "Multicast Protocol for Low-Power 1097 and Lossy Networks (MPL)", RFC 7731, DOI 10.17487/RFC7731, 1098 February 2016, . 1100 8.2. Informative References 1102 [RFC6206] Levis, P., Clausen, T., Hui, J., Gnawali, O., and J. Ko, 1103 "The Trickle Algorithm", RFC 6206, DOI 10.17487/RFC6206, 1104 March 2011, . 1106 [RFC7774] Doi, Y. and M. Gillmore, "Multicast Protocol for Low-Power 1107 and Lossy Networks (MPL) Parameter Configuration Option 1108 for DHCPv6", RFC 7774, DOI 10.17487/RFC7774, March 2016, 1109 . 1111 Author's Address 1113 Peter van der Stok (editor) 1114 consultant 1116 Phone: +31-492474673 (Netherlands), +33-966015248 (France) 1117 Email: consultancy@vanderstok.org 1118 URI: www.vanderstok.org