idnits 2.17.1 draft-ietf-roll-mpl-yang-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 : ---------------------------------------------------------------------------- ** The document seems to lack a Security Considerations section. ** There is 1 instance of too long lines in the document, the longest one being 4 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 235 has weird spacing: '...o seqno uin...' == Line 282 has weird spacing: '... module ietf-...' == Line 306 has weird spacing: '... module ietf-...' == Line 339 has weird spacing: '... module ietf-...' == Line 378 has weird spacing: '... module ietf-...' == (4 more instances...) -- The document date (July 15, 2018) is 2084 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 184, but not defined == Outdated reference: A later version (-24) exists of draft-ietf-core-sid-04 Summary: 2 errors (**), 0 flaws (~~), 9 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 July 15, 2018 5 Expires: January 16, 2019 7 A YANG model for Multicast Protocol for Low power and lossy Networks 8 (MPL) 9 draft-ietf-roll-mpl-yang-02 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 January 16, 2019. 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 2.1. NMDA considerations . . . . . . . . . . . . . . . . . . . 4 61 2.2. MPL-domain tree . . . . . . . . . . . . . . . . . . . . . 4 62 2.3. MPL-ops tree . . . . . . . . . . . . . . . . . . . . . . 5 63 2.4. MPL-seeds tree . . . . . . . . . . . . . . . . . . . . . 5 64 2.5. MPL-statistics tree . . . . . . . . . . . . . . . . . . . 6 65 3. SID file generation . . . . . . . . . . . . . . . . . . . . . 7 66 3.1. mpl-domain . . . . . . . . . . . . . . . . . . . . . . . 7 67 3.2. mpl-ops . . . . . . . . . . . . . . . . . . . . . . . . . 7 68 3.3. mpl-seeds . . . . . . . . . . . . . . . . . . . . . . . . 8 69 3.4. mpl-statistics . . . . . . . . . . . . . . . . . . . . . 9 70 4. yang-mpl modules . . . . . . . . . . . . . . . . . . . . . . 11 71 4.1. yang-mpl-domain module . . . . . . . . . . . . . . . . . 11 72 4.2. yang-mpl-ops module . . . . . . . . . . . . . . . . . . . 14 73 4.3. yang-mpl-seeds module . . . . . . . . . . . . . . . . . . 18 74 4.4. yang-mpl-statistics module . . . . . . . . . . . . . . . 22 75 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 27 76 6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 28 77 7. Changelog . . . . . . . . . . . . . . . . . . . . . . . . . . 28 78 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 29 79 8.1. Normative References . . . . . . . . . . . . . . . . . . 29 80 8.2. Informative References . . . . . . . . . . . . . . . . . 29 81 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 30 83 1. Introduction 85 This document defines a YANG [RFC7950] data model for management of 86 Multicast Protocol for Low power and lossy Networks (MPL) [RFC7731] 87 implementations. The data model covers configuration of MPL 88 parameters per interface. It also provides information about which 89 Multicast addresses are operationally used, and the seeds of the 90 forwarded packets. 92 1.1. Terminology 94 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 95 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 96 document are to be interpreted as described in [RFC2119]. 98 The following terms are defined in [RFC6241] and are not redefined 99 here: 101 o client 103 o configuration data 105 o server 107 o state data 109 The following terms are defined in [RFC7950] and are not redefined 110 here: 112 o data model 114 o data node 116 The terminology for describing YANG data models is found in 117 [RFC7950]. 119 Terms like message, domain, seed, I, k, c are defined in [RFC7731]. 121 Terms like YANG Schema Item iDentifier (SID) and delta are defined in 122 [I-D.ietf-core-sid]. 124 Multiple copies of a message can be received or sent by a node. 126 1.1.1. Tree Diagrams 128 YANG tree diagrams provide a concise representation of a YANG module, 129 and SHOULD be included to help readers understand YANG module 130 structure. Guidelines on tree diagrams can be found in Section 3 of 131 [I-D.ietf-netmod-yang-tree-diagrams]. Tree diagrams used in this 132 document follow the notation defined in [RFC8340]. 134 2. MPL model 136 This document defines the YANG modules "ietf-yang-mpl-xxx", which 137 specify a data model for MPL servers. The model is separated into 138 four modules which can be loaded independently to accommodate the 139 storage space to the wanted functionality. The model consists of the 140 following parts: (1) "mpl-domain", (2) "mpl-op", (3) "mpl-seeds", and 141 (4) "mpl-statistics". The four models are discussed below 142 accompanied by their trees. 144 2.1. NMDA considerations 146 The Network Management Data Architecture (NMDA) is specified in 147 [RFC8342]. The MPL protocol is designed for low-resource nodes, 148 where the hardware is fixed once and for all. The configuration of 149 the node in the MPL context is limited to enabling the interface(s) 150 with Multicast addresses. The interface configuration of the YANG 151 module replaces the multicast address assignment of section 2.6.2 of 152 [RFC7390]. 154 Consequently, The contents of the "candidate", "startup", "running", 155 and "intended" datastores are identical. The conceptual datastore 156 consists of an "operational" and an "intended" datastore. The 157 "intended" store contains the nodes of the modules: ietf-yang-mpl- 158 domain, and ietf-yang-mpl-ops. The "running" store contains the 159 nodes of the modules: ietf-yang-mpl-seeds, and ietf-yang-mpl- 160 statistics. The ietf-yang-mpl-domain is necessary when any MPL 161 management is wanted. The two modules of the "running" store need 162 the two modules of the "intended" store, and can be loaded dependent 163 on the management wishes and resource constraints. 165 The modules ietf-yang-mpl-ops, ietf-yang-mpl-seeds, and ietf-yang- 166 mpl-statistics "augment" ietf-yang-mpl-domain. 168 2.2. MPL-domain tree 170 The "mpl-domain" module describes the MPL-domains and associated 171 Multicast addresses and the interfaces on which the Multicast 172 addresses are enabled. The model allow for a short single MPL-domain 173 configuration or a multi-domain configuration that needs more storage 174 space. 176 module: ietf-yang-mpl-domain 177 +--rw domain 178 +--rw (multiple)? 179 +--:(mpl-domain) 180 | +--rw mpl-domain 181 | +--rw domains* [domainID] 182 | | +--rw domainID uint16 183 | | +--rw MClist* inet:ipv6-address 184 | +--rw addresses* [MCaddress] 185 | +--rw MCaddress inet:ipv6-address 186 | +--rw interfaces* string 187 +--:(mpl-single) 188 +--rw mpl-single 189 +--rw MCaddresses* inet:ipv6-address 191 2.3. MPL-ops tree 193 The generator node of a MPL message is called a seed that emits on a 194 multicast address of a domain. The "mpl-ops" module describes the 195 operational parameters settings per domain. The parameters determine 196 the dynamics of the message reception intervals per domain [RFC7731]. 198 module: ietf-yang-mpl-ops 199 augment /mpl:domain: 200 +--rw mpl-ops 201 +--rw PROACTIVE_FORWARDING? boolean 202 +--rw SEED_SET_ENTRY_LIFETIME? uint64 203 +--rw mpl-parameter* [domainID] 204 +--rw domainID uint16 205 +--rw DATA_MESSAGE_IMIN? uint16 206 +--rw DATA_MESSAGE_IMAX? uint16 207 +--rw DATA_MESSAGE_K? uint16 208 +--rw DATA_MESSAGE_TIMER_EXPIRATIONS? uint16 209 +--rw CONTROL_MESSAGE_IMIN? uint16 210 +--rw CONTROL_MESSAGE_IMAX? uint16 211 +--rw CONTROL_MESSAGE_K? uint16 212 +--rw CONTROL_MESSAGE_TIMER_EXPIRATIONS? uint16 214 2.4. MPL-seeds tree 216 The "mpl-seeds" part describes the MPL buffer contents and the 217 Trickle timer values associated with each seed and domain. Multiple 218 seeds per domain may exist. The module exposes the state of the MPL 219 buffer and key information about the messages in the MPL buffers at a 220 given acquisition moment. 222 module: ietf-yang-mpl-seeds 223 augment /mpl:domain: 224 +--rw SE_LIFETIME? uint16 225 +--ro mpl-seeds* [seedID domainID] 226 +--ro seedID uint64 227 +--ro domainID uint16 228 +--ro local? boolean 229 +--ro generate-seqno? uint8 230 +--ro life-time? uint64 231 +--ro min-seqno? uint8 232 +--ro data-number? uint8 233 +--ro control-number? uint8 234 +--ro buffered-messages* [seqno] 235 +--ro seqno uint8 236 +--ro I? uint8 237 +--ro c? uint8 238 +--ro e? uint8 239 +--ro t? uint8 241 2.5. MPL-statistics tree 243 The "mpl-statistics" module describes the number of lost and 244 correctly forwarded messages and its copies. 246 module: ietf-yang-mpl-statistics 247 augment /mpl:domain: 248 +--ro mpl-statistics* [seedID domainID] 249 | +--ro seedID uint64 250 | +--ro domainID uint16 251 | +--ro c-too-high? uint64 252 | +--ro nr-forwarded? uint64 253 | +--ro nr-of-messages-received? uint64 254 | +--ro nr-of-messages-forwarded? uint64 255 | +--ro nr-of-copies-received? uint64 256 | +--ro nr-of-copies-forwarded? uint64 257 | +--ro nr-of-refused-copies? uint64 258 | +--ro nr-of-missed-messages? uint64 259 | +--ro nr-of-notreceived-messages? uint64 260 | +--ro nr-of-inconsistent-data? uint64 261 | +--ro nr-of-consistent-data? uint64 262 | +--ro nr-of-consistent-control? uint64 263 | +--ro nr-of-inconsistent-control? uint64 264 | +--ro statistics-interval? uint64 265 | +---x reset-buffer-statistics 266 +---x reset-all-statistics 268 3. SID file generation 270 YANG Schema Item iDentifiers (SID) are allocated to replace the 271 relatively long YANG identifiers by the much shorter SIDs. 272 Consequently, the payload size is considerably reduced. The 273 assignment tool is https://comi.space/. SIDs are allocated to the 274 identifiers specified in the four modules. Their values are: 276 3.1. mpl-domain 278 Module : ietf-yang-mpl-domain 279 Revision : 2018-07-06 281 SID Namespace YANG identifier 282 1004000 module ietf-yang-mpl-domain 283 1004001 data /ietf-yang-mpl-domain:domain 284 1004002 data /ietf-yang-mpl-domain:domain/mpl-domain 285 1004003 data /ietf-yang-mpl-domain:domain/mpl-domain 286 /addresses 287 1004004 data /ietf-yang-mpl-domain:domain/mpl-domain 288 /addresses/MCaddress 289 1004005 data /ietf-yang-mpl-domain:domain/mpl-domain 290 /addresses/interfaces 291 1004006 data /ietf-yang-mpl-domain:domain/mpl-domain 292 /domains 293 1004007 data /ietf-yang-mpl-domain:domain/mpl-domain 294 /domains/MClist 295 1004008 data /ietf-yang-mpl-domain:domain/mpl-domain 296 /domains/domainID 297 1004009 data /ietf-yang-mpl-domain:domain/mpl-single 298 1004010 data /ietf-yang-mpl-domain:domain/mpl-single 299 /MCaddresses 301 3.2. mpl-ops 302 Module : ietf-yang-mpl-ops 303 Revision : 2018-07-06 305 SID Namespace YANG identifier 306 1004050 module ietf-yang-mpl-ops 307 1004051 data /ietf-yang-mpl-domain:domain 308 /ietf-yang-mpl-ops:mpl-ops 309 1004052 data /ietf-yang-mpl-domain:domain/ietf-yang-mpl-ops: 310 mpl-ops/PROACTIVE_FORWARDING 311 1004053 data /ietf-yang-mpl-domain:domain/ietf-yang-mpl-ops: 312 mpl-ops/SEED_SET_ENTRY_LIFETIME 313 1004054 data /ietf-yang-mpl-domain:domain/ietf-yang-mpl-ops: 314 mpl-ops/mpl-parameter 315 1004055 data /ietf-yang-mpl-domain:domain/ietf-yang-mpl-ops: 316 mpl-ops/mpl-parameter/CONTROL_MESSAGE_IMAX 317 1004056 data /ietf-yang-mpl-domain:domain/ietf-yang-mpl-ops: 318 mpl-ops/mpl-parameter/CONTROL_MESSAGE_IMIN 319 1004057 data /ietf-yang-mpl-domain:domain/ietf-yang-mpl-ops: 320 mpl-ops/mpl-parameter/CONTROL_MESSAGE_K 321 1004058 data /ietf-yang-mpl-domain:domain/ietf-yang-mpl-ops: 322 mpl-ops/mpl-parameter/CONTROL_MESSAGE_TIMER_EXPIRATIONS 323 1004059 data /ietf-yang-mpl-domain:domain/ietf-yang-mpl-ops: 324 mpl-ops/mpl-parameter/DATA_MESSAGE_IMAX 325 1004060 data /ietf-yang-mpl-domain:domain/ietf-yang-mpl-ops: 326 mpl-ops/mpl-parameter/DATA_MESSAGE_IMIN 327 1004061 data /ietf-yang-mpl-domain:domain/ietf-yang-mpl-ops: 328 mpl-ops/mpl-parameter/DATA_MESSAGE_K 329 1004062 data /ietf-yang-mpl-domain:domain/ietf-yang-mpl-ops: 330 mpl-ops/mpl-parameter/DATA_MESSAGE_TIMER_EXPIRATIONS 331 1004063 data /ietf-yang-mpl-domain:domain/ietf-yang-mpl-ops: 332 mpl-ops/mpl-parameter/domainID 334 3.3. mpl-seeds 335 Module : ietf-yang-mpl-seeds 336 Revision : 2018-07-06 338 SID Namespace YANG identifier 339 1004100 module ietf-yang-mpl-seeds 340 1004101 data /ietf-yang-mpl-domain:domain/ietf-yang-mpl-seeds:SE_LIFETIME 341 1004102 data /ietf-yang-mpl-domain:domain 342 /ietf-yang-mpl-seeds:mpl-seeds 343 1004103 data /ietf-yang-mpl-domain:domain/ietf-yang-mpl-seeds: 344 mpl-seeds/buffered-messages 345 1004104 data /ietf-yang-mpl-domain:domain/ietf-yang-mpl-seeds: 346 mpl-seeds/buffered-messages/I 347 1004105 data /ietf-yang-mpl-domain:domain/ietf-yang-mpl-seeds: 348 mpl-seeds/buffered-messages/c 349 1004106 data /ietf-yang-mpl-domain:domain/ietf-yang-mpl-seeds: 350 mpl-seeds/buffered-messages/e 351 1004107 data /ietf-yang-mpl-domain:domain/ietf-yang-mpl-seeds: 352 mpl-seeds/buffered-messages/seqno 353 1004108 data /ietf-yang-mpl-domain:domain/ietf-yang-mpl-seeds: 354 mpl-seeds/buffered-messages/t 355 1004109 data /ietf-yang-mpl-domain:domain/ietf-yang-mpl-seeds: 356 mpl-seeds/control-number 357 1004110 data /ietf-yang-mpl-domain:domain/ietf-yang-mpl-seeds: 358 mpl-seeds/data-number 359 1004111 data /ietf-yang-mpl-domain:domain/ietf-yang-mpl-seeds: 360 mpl-seeds/domainID 361 1004112 data /ietf-yang-mpl-domain:domain/ietf-yang-mpl-seeds: 362 mpl-seeds/generate-seqno 363 1004113 data /ietf-yang-mpl-domain:domain/ietf-yang-mpl-seeds: 364 mpl-seeds/life-time 365 1004114 data /ietf-yang-mpl-domain:domain/ietf-yang-mpl-seeds: 366 mpl-seeds/local 367 1004115 data /ietf-yang-mpl-domain:domain/ietf-yang-mpl-seeds: 368 mpl-seeds/min-seqno 369 1004116 data /ietf-yang-mpl-domain:domain/ietf-yang-mpl-seeds: 370 mpl-seeds/seedID 372 3.4. mpl-statistics 374 Module : ietf-yang-mpl-statistics 375 Revision : 2018-07-06 377 SID Namespace YANG identifier 378 1004150 module ietf-yang-mpl-statistics 379 1004151 data /ietf-yang-mpl-domain:domain/ 380 ietf-yang-mpl-statistics:mpl-statistics 381 1004152 data /ietf-yang-mpl-domain:domain/ 382 ietf-yang-mpl-statistics:mpl-statistics/c-too-high 383 1004153 data /ietf-yang-mpl-domain:domain/ 384 ietf-yang-mpl-statistics:mpl-statistics/domainID 385 1004154 data /ietf-yang-mpl-domain:domain/ 386 ietf-yang-mpl-statistics:mpl-statistics/nr-forwarded 387 1004155 data /ietf-yang-mpl-domain:domain/ 388 ietf-yang-mpl-statistics:mpl-statistics 389 /nr-of-consistent-control 390 1004156 data /ietf-yang-mpl-domain:domain/ 391 ietf-yang-mpl-statistics:mpl-statistics 392 /nr-of-consistent-data 393 1004157 data /ietf-yang-mpl-domain:domain/ 394 ietf-yang-mpl-statistics:mpl-statistics 395 /nr-of-copies-forwarded 396 1004158 data /ietf-yang-mpl-domain:domain/ 397 ietf-yang-mpl-statistics:mpl-statistics 398 /nr-of-copies-received 399 1004159 data /ietf-yang-mpl-domain:domain/ 400 ietf-yang-mpl-statistics:mpl-statistics 401 /nr-of-inconsistent-control 402 1004160 data /ietf-yang-mpl-domain:domain/ 403 ietf-yang-mpl-statistics:mpl-statistics 404 /nr-of-inconsistent-data 405 1004161 data /ietf-yang-mpl-domain:domain/ 406 ietf-yang-mpl-statistics:mpl-statistics 407 /nr-of-messages-forwarded 408 1004162 data /ietf-yang-mpl-domain:domain/ 409 ietf-yang-mpl-statistics:mpl-statistics 410 /nr-of-messages-received 411 1004163 data /ietf-yang-mpl-domain:domain/ 412 ietf-yang-mpl-statistics:mpl-statistics 413 /nr-of-missed-messages 414 1004164 data /ietf-yang-mpl-domain:domain/ 415 ietf-yang-mpl-statistics:mpl-statistics 416 /nr-of-notreceived-messages 417 1004165 data /ietf-yang-mpl-domain:domain/ 418 ietf-yang-mpl-statistics:mpl-statistics 419 /nr-of-refused-copies 420 1004166 data /ietf-yang-mpl-domain:domain/ 421 ietf-yang-mpl-statistics:mpl-statistics 422 /seedID 423 1004167 data /ietf-yang-mpl-domain:domain/ 424 ietf-yang-mpl-statistics:mpl-statistics 425 /statistics-interval 427 4. yang-mpl modules 429 This section describes the four yang modules. The modules are based 430 on the MPL specification published in [RFC7731] and the specification 431 of [RFC6206]. The identification of the interfaces follows the 432 specification of ietf-interfaces of [RFC8343]. 434 The data model allows to set values to the parameters of the MPL 435 algorithm. This approach requires an active manager process to set 436 the values without use of DHCP as described in: [RFC7774]. 438 The names of the four modules are: yang-mpl-domain, yang-mpl-ops, 439 yang-mpl-seeds, and yang-mpl-statistics, described in subsections 440 with the same name. 442 4.1. yang-mpl-domain module 444 This module describes (1) the MPL domains and the associated 445 multicast addresses, and (2) the interfaces and the multicast 446 addresses for which they are enabled. 448 The model features a choice such that: 450 the model specifies for constrained devices with only one "single" 451 interface and only one "single" domain, a list of MC addresses for 452 which the single interface is enabled. 454 the model specifies for larger devices "multiple" interface and 455 "multiple" domains, a list of MC addresses for which one or more 456 interfaces are enabled. 458 file "ietf-yang-mpl-domain@2018-07-06.yang" 460 module ietf-yang-mpl-domain { 462 yang-version 1.1; 464 namespace 465 "urn:ietf:params:xml:ns:yang:ietf-yang-mpl-domain"; 467 prefix mpl; 469 import ietf-inet-types{ 470 prefix inet; 471 } 472 organization 473 "IETF ROLL (Routing Over Low power and lossy networks) 474 Working Group"; 476 contact 477 "WG Web: http://tools.ietf.org/wg/roll/ 478 WG List: mailto:roll@ietf.org 480 WG Chair: Peter van der Stok 481 mailto:consultancy@vanderstok.org 483 WG Chair: Ines Robles 484 mailto:maria.ines.robles@ericsson.com 486 Editor: Peter van der Stok 487 mailto:consultancy@vanderstok.org"; 489 description 490 "This module contains information about the state of the MPL domain. 492 Copyright (c) 2018 IETF Trust and the persons identified as 493 authors of the code. All rights reserved. 495 Redistribution and use in source and binary forms, with or 496 without modification, is permitted pursuant to, and subject 497 to the license terms contained in, the Simplified BSD License 498 set forth in Section 4.c of the IETF Trust's Legal Provisions 499 Relating to IETF Documents 500 (http://trustee.ietf.org/license-info). 502 This version of this YANG module is part of RFC XXXX; see 503 the RFC itself for full legal notices."; 505 revision "2018-07-06" { 506 description "revision 3"; 507 reference 508 "I-D:draft-ietf-roll-mpl-yang: A YANG model for Multicast 509 Protocol for Low power and lossy Networks (MPL)"; 510 } 511 container domain { 512 description 513 "High level container containing the choice statement 514 between single domain/interface and multiple 515 domains and interfaces."; 517 choice multiple { 518 description 519 "A choice for large devices with multiple domains 520 and interfaces."; 521 container mpl-domain { 522 description 523 "The entries describe the MPL domains, the associated 524 Multicast addresses and interfaces."; 526 list domains { 527 key domainID; 528 description 529 "The entries describe a given domain identified with 530 domainID and the associated Multicast addresses."; 532 leaf domainID { 533 type uint16; 534 description 535 "Entry uniquely identifies the domain in the 536 forwarder."; 537 } 539 leaf-list MClist{ 540 type inet:ipv6-address; 541 description 542 "List of associated IPv6 Addresses."; 543 } 544 } // domains list 546 list addresses { 547 key MCaddress; 548 description 549 "The entries describe the interfaces enabled 550 with the specified MC address."; 552 leaf MCaddress { 553 type inet:ipv6-address; 554 description 555 "MC address belonging to a MPL domain."; 556 } 558 leaf-list interfaces { 559 type string; 560 description 561 "List of names of interfaces enabled for this 562 Multicast address. Interface name is defined 563 in Appendix A of [RFC8343]."; 564 } 565 } // addresses list 566 } // container mpl-domain 567 container mpl-single { 568 description 569 "A choice for constrained devices with a list of 570 MC addresses for single interface and domain."; 571 leaf-list MCaddresses{ 572 type inet:ipv6-address; 573 description 574 "list of MC addresses belonging to one single 575 domain and interface."; 576 } 577 } // container mpl-simple 578 } // choice simple 579 } // container module 580 } //module ietf-yang-mpl-domain 582 584 4.2. yang-mpl-ops module 586 This module models the operational aspects of MPL. Per domain MPL 587 specifies four parameters I_MAX, I_MIN, K, and TIMER_EXPIRATIONs for 588 data and control messages. The value of the MPL intervals are 589 expressed in TUNIT. The entry SE_LIFETIME taken over from [RFC7774] 590 fixes TUNIT to milliseconds. For very constrained devices with only 591 one domain there can be only one instance of mpl-parameter list. The 592 module augments the ietf-yang-mpl-domain module. 594 file "ietf-yang-mpl-ops@2018-07-06.yang" 596 module ietf-yang-mpl-ops { 598 yang-version 1.1; 600 namespace 601 "urn:ietf:params:xml:ns:yang:ietf-yang-mpl-ops"; 602 prefix "mplo"; 604 import ietf-yang-mpl-domain{ 605 prefix "mpl"; 606 } 608 organization 609 "IETF ROLL (Routing over Low power and lossy networks) 610 Working Group"; 612 contact 613 "WG Web: http://tools.ietf.org/wg/roll/ 614 WG List: mailto:roll@ietf.org 616 WG Chair: Peter van der Stok 617 mailto:consultancy@vanderstok.org 619 WG Chair: Ines Robles 620 mailto:maria.ines.robles@ericsson.com 622 Editor: Peter van der Stok 623 mailto:consultancy@vanderstok.org"; 625 description 626 "This module contains information about the operation of 627 the MPL protocol. 629 Copyright (c) 2018 IETF Trust and the persons identified as 630 authors of the code. All rights reserved. 632 Redistribution and use in source and binary forms, with or 634 without modification, is permitted pursuant to, and subject 635 to the license terms contained in, the Simplified BSD License 636 set forth in Section 4.c of the IETF Trust's Legal Provisions 637 Relating to IETF Documents 638 (http://trustee.ietf.org/license-info). 640 This version of this YANG module is part of RFC XXXX; see 641 the RFC itself for full legal notices."; 643 revision "2018-07-06" { 644 description "revision 3"; 645 reference 646 "I-D:draft-ietf-roll-mpl-yang: A YANG model for Multicast 647 Protocol for Low power and lossy Networks (MPL)"; 648 } 650 augment "/mpl:domain" { 651 description 652 "additional MPL server settings to MPL domains"; 654 container mpl-ops { 655 description 656 "Parameter settings for each MPL server and for each 657 individual domain of the server."; 659 leaf PROACTIVE_FORWARDING { 660 type boolean; 661 description 662 "The boolean value indicates whether the MPL forwarder 663 schedules MPL data message transmission after 664 receiving them for the first time. 665 Specified in section 5.4 of [RFC7731]"; 666 } 668 leaf SEED_SET_ENTRY_LIFETIME { 669 type uint64; 670 units "seconds"; 671 default 1800; 672 description 673 "The value indicates the minimum lifetime for 674 an entry in the Seed set expressed in seconds. 675 Default value is 30 minutes. 676 Specified in section 5.4 of [RFC7731]"; 677 } 679 list mpl-parameter{ 680 key domainID; 681 description 682 "Each domain has a set of MPL forwarding parameters 683 which regulate the forwarding operation."; 685 leaf domainID{ 686 type uint16; 687 description 688 "Each domainID must be present in 689 mpl-parameter list."; 690 } 692 leaf DATA_MESSAGE_IMIN{ 693 type uint16; 694 description 695 "The minimum Trickle timer interval 696 for MPL Data Message transmissions. 697 mpl-ops/mpl-parameter/DATA_MESSAGE_IMIN <= 698 mpl-seeds/buffered-messages/I <= 699 mpl-ops/mpl-parameter/DATA_MESSAGE_IMAX 700 Specified in section 5.4 of [RFC7731]"; 701 } 703 leaf DATA_MESSAGE_IMAX{ 704 type uint16; 705 description 706 "The maximum Trickle timer interval 707 for MPL Data Message transmissions. 708 mpl-ops/mpl-parameter/DATA_MESSAGE_IMIN <= 709 mpl-seeds/buffered-messages/I <= 710 mpl-ops/mpl-parameter/DATA_MESSAGE_IMAX 711 Specified in section 5.4 of [RFC7731]"; 712 } 714 leaf DATA_MESSAGE_K{ 715 type uint16; 716 default 1; 717 description 718 "The redundancy constant 719 for MPL Data Message transmissions. 720 Specified in section 5.4 of [RFC7731]"; 721 } 723 leaf DATA_MESSAGE_TIMER_EXPIRATIONS{ 724 type uint16; 725 default 3; 726 description 727 "The number of Trickle timer expirations, as 728 that occur before terminating the Trickle 729 algorithm's retransmission of a given 730 MPL Data Message. 731 Specified in section 5.4 of [RFC7731]"; 732 } 734 leaf CONTROL_MESSAGE_IMIN{ 735 type uint16; 736 description 737 "The minimum Trickle timer interval 738 for MPL Control Message transmissions. 739 Specified in section 5.4 of [RFC7731]"; 740 } 742 leaf CONTROL_MESSAGE_IMAX{ 743 type uint16; 744 description 745 "The maximum Trickle timer interval 746 for MPL Control Message transmissions. 747 Specified in section 5.4 of [RFC7731]"; 748 } 750 leaf CONTROL_MESSAGE_K{ 751 type uint16; 752 default 1; 753 description 754 "The redundancy constant 755 for MPL Control Message transmissions. 756 Specified in section 5.4 of [RFC7731]"; 758 } 760 leaf CONTROL_MESSAGE_TIMER_EXPIRATIONS{ 761 type uint16; 762 default 10; 763 description 764 "The number of Trickle time expirations, 765 that occur before terminating the Trickle 766 algorithm for MPL Control Message 767 transmissions. 768 Specified in section 5.4 of [RFC7731]"; 769 } 771 } // list MPL-parameter 772 } // container MPL-ops 773 } // augment ietf-yang-mpl-domain 774 } // module ietf-yang-mpl-ops 776 778 4.3. yang-mpl-seeds module 780 This module specifies the current values of the operation of the MPL 781 forwarder. The values are acquired by the client and set by the 782 server. The module specifies a set of message buffers, with a buffer 783 per seed and domain. In constrained devices there will be only one 784 domain, but probably multiple seeds. 786 The message buffer contains a set of messages where each message is 787 uniquely identified by its sequence number and seed. The associated 788 I, c, e, and t values indicate the progress of MPL with respect to 789 this message, as specified in [RFC7731]. A forwarder sends and 790 receives multiple copies of a message. When a forwarder has sent 791 (received) a copy of a message, the forwarder has sent (received) 792 that message. 794 For forwarders which are seeds, local has value true and seqno is the 795 sequence number of the next message to send. 797 The module augments the ietf-yang-mpl-domain module. 799 file "ietf-yang-mpl-seeds@2018-07-06.yang" 801 module ietf-yang-mpl-seeds { 803 yang-version 1.1; 804 namespace 805 "urn:ietf:params:xml:ns:yang:ietf-yang-mpl-seeds"; 807 prefix "mplse"; 809 import ietf-yang-mpl-domain{ 810 prefix "mpl"; 811 } 813 organization 814 "IETF ROLL (Routing over Low power and lossy networks) 815 Working Group"; 817 contact 818 "WG Web: http://tools.ietf.org/wg/roll/ 819 WG List: mailto:roll@ietf.org 821 WG Chair: Peter van der Stok 822 mailto:consultancy@vanderstok.org 824 WG Chair: Ines Robles 825 mailto:maria.ines.robles@ericsson.com 827 Editor: Peter van der Stok 828 mailto:consultancy@vanderstok.org"; 830 description 831 "This module contains information about the operation 832 of the MPL protocol. 834 Copyright (c) 2018 IETF Trust and the persons identified as 835 authors of the code. All rights reserved. 837 Redistribution and use in source and binary forms, with or 839 without modification, is permitted pursuant to, and subject 840 to the license terms contained in, the Simplified BSD License 841 set forth in Section 4.c of the IETF Trust's Legal Provisions 842 Relating to IETF Documents 843 (http://trustee.ietf.org/license-info). 845 This version of this YANG module is part of RFC XXXX; see 846 the RFC itself for full legal notices."; 848 revision "2018-07-06" { 849 description "revision 3"; 850 reference 851 "I-D:draft-ietf-roll-mpl-yang: A YANG model for Multicast 853 Protocol for Low power and lossy Networks (MPL)"; 854 } 856 augment "/mpl:domain" { 857 description "additional message buffer status to MPL 858 domains"; 860 leaf SE_LIFETIME { 861 type uint16; 862 units "milliseconds/timer units"; 863 description 864 "Conversion from clock ticks to milliseconds, 865 equivalent to SEED_SET_ENTRY_LIFETIME/TUNIT as 866 specified in [RFC7774]."; 867 } 869 list mpl-seeds{ 870 key "seedID domainID"; 871 config false; 872 description 873 "List describes all seeds that are active in the 874 server. Seed information contains the message buffer 875 contents and the operational values of I, c, sequence 876 number and the life-times per message."; 878 leaf seedID{ 879 type uint64; 880 description 881 "value uniquely identifies the MPL Seed within a MPL 882 domain."; 883 } 885 leaf domainID{ 886 type uint16; 887 description 888 "together with seedID uniquely identifies buffer 889 set."; 890 } 892 leaf local { 893 type boolean; 894 description 895 "When local == true, seed originated in this 896 forwarder. 897 When local == false, seed originated in different 898 forwarder."; 899 } 900 leaf generate-seqno { 901 type uint8; 902 description 903 "Sequence number of next message to be generated by 904 this local seed."; 905 } 907 leaf life-time { 908 type uint64; 909 units "milliseconds"; 910 description 911 "Minimum remaining lifetime of the seed entry in 912 milliseconds."; 913 } 915 leaf min-seqno{ 916 type uint8; 917 description 918 "Lower bound sequence number in the buffer of the 919 seed."; 920 } 922 leaf data-number{ 923 type uint8; 924 description 925 "Number of currently buffered data messages."; 926 } 928 leaf control-number{ 929 type uint8; 930 description 931 "Number of currently buffered control messages."; 932 } 934 list buffered-messages{ 935 key seqno; 936 description 937 "status of trickle intervals of the buffered message 938 identified by seqno. and seed/domain"; 940 leaf seqno{ 941 type uint8; 942 description 943 "Sequence number of message."; 944 } 946 leaf I{ 947 type uint8; 948 units "milliseconds"; 949 description 950 "Current Trickle timer interval size in 951 milliseconds. 952 mpl-ops/mpl-parameter/DATA_MESSAGE_IMIN <= 953 mpl-seeds/buffered-messages/I <= 954 mpl-ops/mpl-parameter/DATA_MESSAGE_IMAX"; 955 } 957 leaf c{ 958 type uint8; 959 description 960 "number of times that a copy of this message has 961 been received in this interval."; 962 } 964 leaf e{ 965 type uint8; 966 description 967 "number of Trickle time expirations since last 968 Trickle timer reset."; 969 } 971 leaf t{ 972 type uint8; 973 units "milliseconds"; 974 description 975 "Time expressed in milliseconds 976 that message will be (is) forwarded. 977 mpl-seeds/buffered-messages/t < 978 mpl-seeds/buffered-messages/I"; 979 } 981 } // list seed-timers 982 } // list MPL-seeds 983 } // augment 984 } // module ietf-yang-mpl-seeds 986 988 4.4. yang-mpl-statistics module 990 This module specifies the operation of the MPL forwarder expressed in 991 number of messages and copies. The values are acquired by the client 992 and set by the server. Statistics are specified per seed and domain. 994 In constrained devices there will be only one domain, but probably 995 multiple seeds. 997 The parameter k determines how many copies of a message can be 998 forwarded. The counters c-too-high, nr-forwarded, and nr-not- 999 forwarded give insight in the consequences of the current value of k. 1001 The other counters give insight in the loss of messages caused by the 1002 medium or forwarding delays. The inconsistent/consistent counters 1003 indicate when consistent or inconsistent messages were received 1004 according to the definition of consistent in [RFC7731]. 1006 The module augments the ietf-yang-mpl-domain module. 1008 file "ietf-yang-mpl-statistics@2018-07-06.yang" 1010 module ietf-yang-mpl-statistics { 1012 yang-version 1.1; 1014 namespace 1015 "urn:ietf:params:xml:ns:yang:ietf-yang-mpl-statistics"; 1017 prefix "mplst"; 1019 import ietf-yang-mpl-domain{ 1020 prefix "mpl"; 1021 } 1023 organization 1024 "IETF ROLL (Routing over Low power and lossy networks) 1025 Working Group"; 1027 contact 1028 "WG Web: http://tools.ietf.org/wg/roll/ 1029 WG List: mailto:roll@ietf.org 1031 WG Chair: Peter van der Stok 1032 mailto:consultancy@vanderstok.org 1034 WG Chair: Ines Robles 1035 mailto:maria.ines.robles@ericsson.com 1037 Editor: Peter van der Stok 1038 mailto:consultancy@vanderstok.org"; 1040 description 1041 "This module contains information about the operation 1042 of the MPL protocol. 1044 Copyright (c) 2018 IETF Trust and the persons identified as 1045 authors of the code. All rights reserved. 1047 Redistribution and use in source and binary forms, with or 1049 without modification, is permitted pursuant to, and subject 1050 to the license terms contained in, the Simplified BSD License 1051 set forth in Section 4.c of the IETF Trust's Legal Provisions 1052 Relating to IETF Documents 1053 (http://trustee.ietf.org/license-info). 1055 This version of this YANG module is part of RFC XXXX; see 1056 the RFC itself for full legal notices."; 1058 revision "2018-07-06" { 1059 description "revision 3"; 1060 reference 1061 "I-D:draft-ietf-roll-mpl-yang: A YANG model for Multicast 1062 Protocol for Low power and lossy Networks (MPL)"; 1063 } 1065 augment "/mpl:domain" { 1066 description "additional MPL message statistics to MPL 1067 domains"; 1069 list mpl-statistics{ 1070 key "seedID domainID"; 1072 config false; 1074 description 1075 "List describes performance statistics integrated over 1076 the messages identified by seed and domain identifiers. 1077 A forwarder can receive and forward multiple copies of 1078 a message uniquely identified by seqno, domain, and 1079 seed."; 1081 leaf seedID{ 1082 type uint64; 1083 description 1084 "value uniquely identifies the MPL Seed within a MPL 1085 domain."; 1086 } 1087 leaf domainID{ 1088 type uint16; 1089 description 1090 "together with seed-ID uniquely identifies buffer 1091 set."; 1092 } 1094 leaf c-too-high { 1095 type uint64; 1096 description 1097 "Number of times that a copy was not forwarded 1098 because c > k."; 1099 } 1101 leaf nr-forwarded { 1102 type uint64; 1103 description 1104 "number of times copies are forwarded, 1105 while c <= k."; 1106 } 1108 leaf nr-of-messages-received{ 1109 type uint64; 1110 description 1111 "number of messages received, 1112 must be smaller than or equal to seqno."; 1113 } 1115 leaf nr-of-messages-forwarded{ 1116 type uint64; 1117 description 1118 "number of forwarded messages, must be smaller 1119 than or equal to nr-of-messages-received."; 1120 } 1122 leaf nr-of-copies-received{ 1123 type uint64; 1124 description 1125 "total number of message copies received."; 1126 } 1128 leaf nr-of-copies-forwarded{ 1129 type uint64; 1130 description 1131 "number of forwarded copies, can be larger than 1132 number-of-copies-received."; 1133 } 1134 leaf nr-of-refused-copies{ 1135 type uint64; 1136 description 1137 "number of refused copies because seqno too small."; 1138 } 1140 leaf nr-of-missed-messages{ 1141 type uint64; 1142 description 1143 "number of messages that were not received 1144 because seqno < min-seqno."; 1145 } 1147 leaf nr-of-notreceived-messages{ 1148 type uint64; 1149 description 1150 "number of messages that were not received 1151 according to control message."; 1152 } 1154 leaf nr-of-inconsistent-data{ 1155 type uint64; 1156 description 1157 "number of inconsistent data messages."; 1158 } 1160 leaf nr-of-consistent-data{ 1161 type uint64; 1162 description 1163 "number of consistent data messages."; 1164 } 1166 leaf nr-of-consistent-control{ 1167 type uint64; 1168 description 1169 "number of consistent control messages."; 1170 } 1172 leaf nr-of-inconsistent-control{ 1173 type uint64; 1174 description 1175 "number of inconsistent control messages."; 1176 } 1178 leaf statistics-interval{ 1179 type uint64; 1180 description 1181 "Interval, expressed in seconds, during which 1182 the statistics are collected."; 1183 } 1185 action reset-buffer-statistics{ 1186 description 1187 "set all statistics counters and 1188 statistics-interval of buffer[seedID domainID} 1189 to zero."; 1190 } 1192 } // list mpl statistics 1194 action reset-all-statistics{ 1195 description 1196 "set all statistics counters and 1197 statistics-interval of all buffers to zero."; 1198 } 1200 } // augment 1201 } // module ietf-yang-mpl-statistics 1203 1205 5. IANA Considerations 1207 Registration of four YANG modules and corresponding SID files in the 1208 "YANG module assignment" registry is required. 1210 module: ietf-yang-mpl-domain 1212 .yang file: ietf-yang-mpl-domain@2018-07-06.yang 1214 .sid file: ietf-yang-mpl-domain@2018-07-06.sid 1216 module: ietf-yang-mpl-ops 1218 .yang file: ietf-yang-mpl-ops@2018-07-06.yang 1220 .sid file: ietf-yang-mpl-ops@2018-07-06.sid 1222 module: ietf-yang-mpl-seeds 1223 .yang file: ietf-yang-mpl-seeds@2018-07-06.yang 1225 .sid file: ietf-yang-mpl-seeds@2018-07-06.sid 1227 module: ietf-yang-mpl-statistics 1229 .yang file: ietf-yang-mpl-statistics@2018-07-06.yang 1231 .sid file: ietf-yang-mpl-statistics@2018-07-06.sid 1233 6. Acknowledgements 1235 Andy Bierman has commented on the use of YANG for mpl. Many thanks 1236 to Radi Krejci for yang review. 1238 7. Changelog 1240 Changes from version 01 to version 02 1242 o Added NMDA section. 1244 o added module explanation in model section 1246 o IANA considerations added 1248 Changes from version 00 to version 01 1250 o config false in "statistics" and "seeds" modules 1252 o separated into 4 modules 1254 o inserted choice in domain modules 1256 o more explanatory text 1258 o renamed some parameters 1260 o Introduced section per module 1262 o reset of statistics is added 1264 Version ietf-00 copied from version vanderstok-02 1266 8. References 1268 8.1. Normative References 1270 [I-D.ietf-core-sid] 1271 Veillette, M. and A. Pelov, "YANG Schema Item iDentifier 1272 (SID)", draft-ietf-core-sid-04 (work in progress), June 1273 2018. 1275 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 1276 Requirement Levels", BCP 14, RFC 2119, 1277 DOI 10.17487/RFC2119, March 1997, 1278 . 1280 [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., 1281 and A. Bierman, Ed., "Network Configuration Protocol 1282 (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, 1283 . 1285 [RFC7731] Hui, J. and R. Kelsey, "Multicast Protocol for Low-Power 1286 and Lossy Networks (MPL)", RFC 7731, DOI 10.17487/RFC7731, 1287 February 2016, . 1289 [RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language", 1290 RFC 7950, DOI 10.17487/RFC7950, August 2016, 1291 . 1293 [RFC8343] Bjorklund, M., "A YANG Data Model for Interface 1294 Management", RFC 8343, DOI 10.17487/RFC8343, March 2018, 1295 . 1297 8.2. Informative References 1299 [I-D.ietf-netmod-yang-tree-diagrams] 1300 Bjorklund, M. and L. Berger, "YANG Tree Diagrams", draft- 1301 ietf-netmod-yang-tree-diagrams-06 (work in progress), 1302 February 2018. 1304 [RFC6206] Levis, P., Clausen, T., Hui, J., Gnawali, O., and J. Ko, 1305 "The Trickle Algorithm", RFC 6206, DOI 10.17487/RFC6206, 1306 March 2011, . 1308 [RFC7390] Rahman, A., Ed. and E. Dijk, Ed., "Group Communication for 1309 the Constrained Application Protocol (CoAP)", RFC 7390, 1310 DOI 10.17487/RFC7390, October 2014, 1311 . 1313 [RFC7774] Doi, Y. and M. Gillmore, "Multicast Protocol for Low-Power 1314 and Lossy Networks (MPL) Parameter Configuration Option 1315 for DHCPv6", RFC 7774, DOI 10.17487/RFC7774, March 2016, 1316 . 1318 [RFC8340] Bjorklund, M. and L. Berger, Ed., "YANG Tree Diagrams", 1319 BCP 215, RFC 8340, DOI 10.17487/RFC8340, March 2018, 1320 . 1322 [RFC8342] Bjorklund, M., Schoenwaelder, J., Shafer, P., Watsen, K., 1323 and R. Wilton, "Network Management Datastore Architecture 1324 (NMDA)", RFC 8342, DOI 10.17487/RFC8342, March 2018, 1325 . 1327 Author's Address 1329 Peter van der Stok (editor) 1330 consultant 1332 Phone: +31-492474673 (Netherlands), +33-966015248 (France) 1333 Email: consultancy@vanderstok.org 1334 URI: www.vanderstok.org