roll P. van der Stok, Ed. Internet-Draft consultant Intended status: Standards Track March 30, 2018 Expires: October 1, 2018 A YANG model for Multicast Protocol for Low power and lossy Networks (MPL) draft-ietf-roll-mpl-yang-01 Abstract This document defines a YANG data model for management of Multicast Protocol for Low power and lossy Networks (MPL) implementations. The data model includes configuration data and state data. Note Discussion and suggestions for improvement are requested, and should be sent to roll@ietf.org. Status of This Memo This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet- Drafts is at https://datatracker.ietf.org/drafts/current/. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." This Internet-Draft will expire on October 1, 2018. Copyright Notice Copyright (c) 2018 IETF Trust and the persons identified as the document authors. All rights reserved. This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect van der Stok Expires October 1, 2018 [Page 1] Internet-Draft MPL-YANG March 2018 to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License. Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 2 1.1.1. Tree Diagrams . . . . . . . . . . . . . . . . . . . . 3 2. MPL model . . . . . . . . . . . . . . . . . . . . . . . . . . 3 3. SID file generation . . . . . . . . . . . . . . . . . . . . . 5 4. yang-mpl modules . . . . . . . . . . . . . . . . . . . . . . 8 4.1. yang-mpl-domain module . . . . . . . . . . . . . . . . . 8 4.2. yang-mpl-ops module . . . . . . . . . . . . . . . . . . . 11 4.3. yang-mpl-seeds module . . . . . . . . . . . . . . . . . . 15 4.4. yang-mpl-statistics module . . . . . . . . . . . . . . . 19 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 23 6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 23 7. Changelog . . . . . . . . . . . . . . . . . . . . . . . . . . 23 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 23 8.1. Normative References . . . . . . . . . . . . . . . . . . 23 8.2. Informative References . . . . . . . . . . . . . . . . . 24 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 24 1. Introduction This document defines a YANG [RFC6020] data model for management of Multicast Protocol for Low power and lossy Networks (MPL) [RFC7731] implementations. The data model covers configuration of MPL parameters per interface. It also provides information about which Multicast addresses are operationally used, and the seeds of the forwarded packets. 1.1. Terminology The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC2119]. The following terms are defined in [RFC6241] and are not redefined here: o client o configuration data o server van der Stok Expires October 1, 2018 [Page 2] Internet-Draft MPL-YANG March 2018 o state data The following terms are defined in [RFC6020] and are not redefined here: o data model o data node The terminology for describing YANG data models is found in [RFC6020]. Terms like message, domain, seed, I, k, c are defined in [RFC7731]. Mutiple copies of a message can be received or sent by a node. 1.1.1. Tree Diagrams A simplified graphical representation of the data model is used in the YANG modules specified in this document. The meaning of the symbols in these diagrams is as follows: Brackets "[" and "]" enclose list keys. Abbreviations before data node names: "rw" means configuration data (read-write) and "ro" state data (read-only). Symbols after data node names: "?" means an optional node, "!" means a presence container, and "*" denotes a list and leaf-list. Parentheses enclose choice and case nodes, and case nodes are also marked with a colon (":"). Ellipsis ("...") stands for contents of subtrees that are not shown. 2. MPL model This document defines the YANG module "ietf-yang-mpl", which specifies a data model for MPL servers. The model is separated into four modules which can be loaded independently to accommodate the storage space to the wanted functionality. 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 van der Stok Expires October 1, 2018 [Page 3] Internet-Draft MPL-YANG March 2018 correctly forwarded messages. The data model, divided in four modules, has the following structure for MPL configuration per node: module: ietf-yang-mpl-domain +--rw domain +--rw (single)? +--:(mpl-domain) | +--rw mpl-domain | +--rw domains* [domainID] | | +--rw domainID uint16 | | +--rw MClist* inet:ipv6-address | +--rw addresses* [MCaddress] | +--rw MCaddress inet:ipv6-address | +--rw interfaces* string +--:(mpl-single) +--rw mpl-single +--rw MCaddresses* inet:ipv6-address module: ietf-yang-mpl-ops +--rw mpl-ops +--rw SE_LIFETIME? uint16 +--rw PROACTIVE_FORWARDING? boolean +--rw SEED_SET_ENTRY_LIFETIME? uint64 +--rw mpl-parameter* [domainID] +--rw domainID uint16 +--rw DATA_MESSAGE_IMIN? uint16 +--rw DATA_MESSAGE_IMAX? uint16 +--rw DATA_MESSAGE_K? uint16 +--rw DATA_MESSAGE_TIMER_EXPIRATIONS? uint16 +--rw CONTROL_MESSAGE_IMIN? uint16 +--rw CONTROL_MESSAGE_IMAX? uint16 +--rw CONTROL_MESSAGE_K? uint16 +--rw CONTROL_MESSAGE_TIMER_EXPIRATIONS? uint16 module: ietf-yang-mpl-seeds +--ro mpl-seeds* [seedID domainID] +--ro seedID uint64 +--ro domainID uint16 +--ro local? boolean +--ro generate-seqno? uint8 +--ro life-time? uint64 +--ro min-seqno? uint8 +--ro data-number? uint8 +--ro control-number? uint8 +--ro buffered-messages* [seqno] +--ro seqno uint8 +--ro I? uint8 van der Stok Expires October 1, 2018 [Page 4] Internet-Draft MPL-YANG March 2018 +--ro c? uint8 +--ro e? uint8 +--ro t? uint8 module: ietf-yang-mpl-statistics +--ro mpl-statistics* [seedID domainID] +--ro seedID uint64 +--ro domainID uint16 +--ro c-too-high? uint64 +--ro nr-forwarded? uint64 +--ro nr-of-messages-received? uint64 +--ro nr-of-copies-received? uint64 +--ro nr-of-messages-forwarded? uint64 +--ro nr-of-copies-forwarded? uint64 +--ro nr-of-refused? uint64 +--ro nr-of-missed? uint64 +--ro nr-of-notreceived? uint64 +--ro nr-of-inconsistent-data? uint64 +--ro nr-of-consistent-data? uint64 +--ro nr-of-consistent-control? uint64 +--ro nr-of-inconsistent-control? uint64 +--ro statistics-interval? uint64 +---x reset-statistics 3. SID file generation SID are allocated to the identifiers specified in the four modules. Their values are: SID Assigned to --------- -------------------------------------------------- 1004050 module ietf-yang-mpl-domain 1004051 data /ietf-yang-mpl-domain:domain 1004052 data /ietf-yang-mpl-domain:domain/mpl-domain 1004053 data /ietf-yang-mpl-domain:domain/mpl-domain/addresses 1004054 data /ietf-yang-mpl-domain:domain/mpl-domain /addresses/MCaddress 1004055 data /ietf-yang-mpl-domain:domain/mpl-domain /addresses/interfaces 1004056 data /ietf-yang-mpl-domain:domain/mpl-domain/domains 1004057 data /ietf-yang-mpl-domain:domain/mpl-domain /domains/MClist 1004058 data /ietf-yang-mpl-domain:domain/mpl-domain /domains/domainID 1004059 data /ietf-yang-mpl-domain:domain/mpl-single 1004060 data /ietf-yang-mpl-domain:domain/mpl-single van der Stok Expires October 1, 2018 [Page 5] Internet-Draft MPL-YANG March 2018 /MCaddresses File ietf-yang-mpl-domain@2018-03-29.sid created Number of SIDs available : 50 Number of SIDs used : 11 SID Assigned to --------- -------------------------------------------------- 1004100 module ietf-yang-mpl-ops 1004101 data /ietf-yang-mpl-ops:mpl-ops 1004102 data /ietf-yang-mpl-ops:mpl-ops/PROACTIVE_FORWARDING 1004103 data /ietf-yang-mpl-ops:mpl-ops /SEED_SET_ENTRY_LIFETIME 1004104 data /ietf-yang-mpl-ops:mpl-ops/SE_LIFETIME 1004105 data /ietf-yang-mpl-ops:mpl-ops/mpl-parameter 1004106 data /ietf-yang-mpl-ops:mpl-ops/mpl-parameter /CONTROL_MESSAGE_IMAX 1004107 data /ietf-yang-mpl-ops:mpl-ops/mpl-parameter /CONTROL_MESSAGE_IMIN 1004108 data /ietf-yang-mpl-ops:mpl-ops/mpl-parameter /CONTROL_MESSAGE_K 1004109 data /ietf-yang-mpl-ops:mpl-ops/mpl-parameter /CONTROL_MESSAGE_TIMER_EXPIRATIONS 1004110 data /ietf-yang-mpl-ops:mpl-ops/mpl-parameter /DATA_MESSAGE_IMAX 1004111 data /ietf-yang-mpl-ops:mpl-ops/mpl-parameter /DATA_MESSAGE_IMIN 1004112 data /ietf-yang-mpl-ops:mpl-ops/mpl-parameter /DATA_MESSAGE_K 1004113 data /ietf-yang-mpl-ops:mpl-ops/mpl-parameter /DATA_MESSAGE_TIMER_EXPIRATIONS 1004114 data /ietf-yang-mpl-ops:mpl-ops/mpl-parameter/domainID File ietf-yang-mpl-ops@2018-03-29.sid created Number of SIDs available : 50 Number of SIDs used : 15 SID Assigned to --------- -------------------------------------------------- 1004150 module ietf-yang-mpl-seeds 1004151 data /ietf-yang-mpl-seeds:mpl-seeds 1004152 data /ietf-yang-mpl-seeds:mpl-seeds/buffered-messages 1004153 data /ietf-yang-mpl-seeds:mpl-seeds /buffered-messages/I 1004154 data /ietf-yang-mpl-seeds:mpl-seeds /buffered-messages/c 1004155 data /ietf-yang-mpl-seeds:mpl-seeds /buffered-messages/e van der Stok Expires October 1, 2018 [Page 6] Internet-Draft MPL-YANG March 2018 1004156 data /ietf-yang-mpl-seeds:mpl-seeds /buffered-messages/seqno 1004157 data /ietf-yang-mpl-seeds:mpl-seeds /buffered-messages/t 1004158 data /ietf-yang-mpl-seeds:mpl-seeds/control-number 1004159 data /ietf-yang-mpl-seeds:mpl-seeds/data-number 1004160 data /ietf-yang-mpl-seeds:mpl-seeds/domainID 1004161 data /ietf-yang-mpl-seeds:mpl-seeds/generate-seqno 1004162 data /ietf-yang-mpl-seeds:mpl-seeds/life-time 1004163 data /ietf-yang-mpl-seeds:mpl-seeds/local 1004164 data /ietf-yang-mpl-seeds:mpl-seeds/min-seqno 1004165 data /ietf-yang-mpl-seeds:mpl-seeds/seedID File ietf-yang-mpl-seeds@2018-03-29.sid created Number of SIDs available : 50 Number of SIDs used : 16 SID Assigned to --------- -------------------------------------------------- 1004200 module ietf-yang-mpl-statistics 1004201 data /ietf-yang-mpl-statistics:mpl-statistics 1004202 data /ietf-yang-mpl-statistics:mpl-statistics /c-too-high 1004203 data /ietf-yang-mpl-statistics:mpl-statistics /domainID 1004204 data /ietf-yang-mpl-statistics:mpl-statistics /nr-forwarded 1004205 data /ietf-yang-mpl-statistics:mpl-statistics /nr-of-consistent-control 1004206 data /ietf-yang-mpl-statistics:mpl-statistics /nr-of-consistent-data 1004207 data /ietf-yang-mpl-statistics:mpl-statistics /nr-of-copies-forwarded 1004208 data /ietf-yang-mpl-statistics:mpl-statistics /nr-of-copies-received 1004209 data /ietf-yang-mpl-statistics:mpl-statistics /nr-of-inconsistent-control 1004210 data /ietf-yang-mpl-statistics:mpl-statistics /nr-of-inconsistent-data 1004211 data /ietf-yang-mpl-statistics:mpl-statistics /nr-of-messages-forwarded 1004212 data /ietf-yang-mpl-statistics:mpl-statistics /nr-of-messages-received 1004213 data /ietf-yang-mpl-statistics:mpl-statistics /nr-of-missed 1004214 data /ietf-yang-mpl-statistics:mpl-statistics /nr-of-notreceived 1004215 data /ietf-yang-mpl-statistics:mpl-statistics van der Stok Expires October 1, 2018 [Page 7] Internet-Draft MPL-YANG March 2018 /nr-of-refused 1004216 data /ietf-yang-mpl-statistics:mpl-statistics /reset-statistics 1004217 data /ietf-yang-mpl-statistics:mpl-statistics/seedID 1004218 data /ietf-yang-mpl-statistics:mpl-statistics /statistics-interval File ietf-yang-mpl-statistics@2018-03-29.sid created Number of SIDs available : 50 Number of SIDs used : 19 4. yang-mpl modules This section describes four yang modules. The model is based on the MPL specification published in [RFC7731] and the specification of [RFC6206]. The identification of the interfaces follows the specification of ietf-interfaces of [RFC7223]. The data model allows to set values to the parameters of the MPL algorithm. This approach requires an active manager process to set the values without use of DHCP as described in: [RFC7774]. The names of the four modules are: yang-mpl-domain, yang-mpl-ops, yang-mpl-seeds, and yang-mpl-statistics, described in subsections with the same name. 4.1. yang-mpl-domain module This module describes (1) the MPL domains and the associated multicast addresses, and (2) the interfaces and the multicast addresses for which they are enabled. The model features a choice such that for constrained devices with only one "single" interface and only one "single" domain, the model specifies a list of MC addresses for which the single interface is enabled. file "ietf-yang-mpl-domain@2018-03-29.yang" module ietf-yang-mpl-domain { yang-version 1.1; namespace "urn:ietf:params:xml:ns:yang:ietf-yang-mpl-domain"; van der Stok Expires October 1, 2018 [Page 8] Internet-Draft MPL-YANG March 2018 prefix mpl; import ietf-inet-types{ prefix inet; } organization "IETF ROLL (Routing Over Low power and lossy networks) Working Group"; contact "WG Web: http://tools.ietf.org/wg/roll/ WG List: mailto:roll@ietf.org WG Chair: Peter van der Stok mailto:consultancy@vanderstok.org WG Chair: Ines Robles mailto:maria.ines.robles@ericsson.com Editor: Peter van der Stok mailto:consultancy@vanderstok.org"; description "This module contains information about the state of the MPL domain. Copyright (c) 2016 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). This version of this YANG module is part of RFC XXXX; see the RFC itself for full legal notices."; revision "2018-03-29" { description "Initial revision."; reference "I-D:draft-ietf-roll-mpl-yang: A YANG model for Multicast Protocol for Low power and lossy Networks (MPL)"; } container domain { description "High level container containing the choice statement."; van der Stok Expires October 1, 2018 [Page 9] Internet-Draft MPL-YANG March 2018 choice single { description "A choice between single domain/interface and multiple domains and interfaces."; container mpl-domain { description "The entries describe the MPL domains, the associated Multicast addresses and interfaces."; list domains { key domainID; description "The entries describe a given domain identified with domainID and the associated Multicast addresses."; leaf domainID { type uint16; description "Entry uniquely identifies the domain in the forwarder."; } leaf-list MClist{ type inet:ipv6-address; description "List of associated IPv6 Addresses."; } } // domains list list addresses { key MCaddress; description "The entries describe the interfaces enabled with the specified MC address."; leaf MCaddress { type inet:ipv6-address; description "MC address belonging to a MPL domain."; } leaf-list interfaces { type string; description "List of names of interfaces enabled for this Multicast address. Interface name is defined in [RFC6206]."; } } // addresses list van der Stok Expires October 1, 2018 [Page 10] Internet-Draft MPL-YANG March 2018 } // container mpl-domain container mpl-single { description "For small devices list of MC addresses for single interface and domain."; leaf-list MCaddresses{ type inet:ipv6-address; description "list of MC addresses belonging to one single domain and interface."; } } // container mpl-simple } // choice simple } // container module } //module ietf-yang-mpl-domain 4.2. yang-mpl-ops module This module models the operational aspects of MPL. Per domain MPL specifies four parameters I_MAX, I_MIN, K, and TIMER_EXPIRATIONs for data and control messages. The value of the MPL intervals are expressed in TUNIT. The entry SE_LIFETIME taken over from [RFC7774] fixes TUNIT to milliseconds. For very constrained devices with only one domain there can be only one instance of mpl-parameter list. file "ietf-yang-mpl-ops@2018-03-29.yang" module ietf-yang-mpl-ops { yang-version 1.1; namespace "urn:ietf:params:xml:ns:yang:ietf-yang-mpl-ops"; prefix mpl; organization "IETF ROLL (Routing over Low power and lossy networks) Working Group"; contact "WG Web: http://tools.ietf.org/wg/roll/ WG List: mailto:roll@ietf.org van der Stok Expires October 1, 2018 [Page 11] Internet-Draft MPL-YANG March 2018 WG Chair: Peter van der Stok mailto:consultancy@vanderstok.org WG Chair: Ines Robles mailto:maria.ines.robles@ericsson.com Editor: Peter van der Stok mailto:consultancy@vanderstok.org"; description "This module contains information about the operation of the MPL protocol. Copyright (c) 2016 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). This version of this YANG module is part of RFC XXXX; see the RFC itself for full legal notices."; revision "2018-03-29" { description "Initial revision."; reference "I-D:draft-ietf-roll-mpl-yang: A YANG model for Multicast Protocol for Low power and lossy Networks (MPL)"; } container mpl-ops { description "Parameter settings for each MPL server and for each individual domain of the server."; leaf SE_LIFETIME { type uint16; description "lifetime in milliseconds/(mpl timer units), equivalent to SEED_SET_ENTRY_LIFETIME/TUNIT as specified in RFC7774."; } van der Stok Expires October 1, 2018 [Page 12] Internet-Draft MPL-YANG March 2018 leaf PROACTIVE_FORWARDING { type boolean; description "The boolean value indicates whether the MPL forwarder schedules MPL data message transmission after receiving them for the first time."; } leaf SEED_SET_ENTRY_LIFETIME { type uint64; description "The value indicates the minimum lifetime for an entry in the Seed set expressed in seconds. Default value is 30 minutes."; } list mpl-parameter{ key domainID; description "Each domain has a set of MPL forwarding parameters which regulate the forwarding operation."; leaf domainID{ type uint16; description "Each domainID must be present in mpl-parameter list."; } leaf DATA_MESSAGE_IMIN{ type uint16; description "The minimum Trickle timer interval, as defined in [RFC6206], for MPL Data Message transmissions."; } leaf DATA_MESSAGE_IMAX{ type uint16; description "The maximum Trickle timer interval, as defined in [RFC6206], for MPL Data Message transmissions."; } leaf DATA_MESSAGE_K{ type uint16; default 1; description "The redundancy constant, as defined in [RFC6206], for van der Stok Expires October 1, 2018 [Page 13] Internet-Draft MPL-YANG March 2018 MPL Data Message transmissions."; } leaf DATA_MESSAGE_TIMER_EXPIRATIONS{ type uint16; default 3; description "The number of Trickle timer expirations, as defined in [RFC7731], that occur before terminating the Trickle algorithm's retransmission of a given MPL Data Message."; } leaf CONTROL_MESSAGE_IMIN{ type uint16; description "The minimum Trickle timer interval, as defined in [RFC6206], for MPL Control Message transmissions."; } leaf CONTROL_MESSAGE_IMAX{ type uint16; description "The maximum Trickle timer interval, as defined in [RFC6206], for MPL Control Message transmissions."; } leaf CONTROL_MESSAGE_K{ type uint16; default 1; description "The redundancy constant, as defined in [RFC6206], for MPL Control Message transmissions."; } leaf CONTROL_MESSAGE_TIMER_EXPIRATIONS{ type uint16; default 10; description "The number of Trickle time expirations, as defined in [RFC7731], that occur before terminating the Trickle algorithm for MPL Control Message transmissions."; } } // list MPL-parameter van der Stok Expires October 1, 2018 [Page 14] Internet-Draft MPL-YANG March 2018 } // container MPL-ops } // module ietf-yang-mpl-ops 4.3. yang-mpl-seeds module This module specifies the current values of the operation of the MPL forwarder. The values are acquired by the client and set by the server. The module specifies a set of message buffers, with a buffer per seed and domain. In constrained devices there will be only one domain, but probably multiple seeds. The message buffer contains a set of messages where each message is uniquely identified by its sequence number and seed. The associated I, c, e, and t values indicate the progress of MPL with respect to this message, as specified in [RFC7731]. A forwarder sends and receives multiple copies of a message. When a forwarder has sent (received) a copy of a message, the forwarder has sent (received) that message. For forwarders which are seeds, local has value true and seqno is the sequence number of the next message to send. file "ietf-yang-mpl-seeds@2018-03-29.yang" module ietf-yang-mpl-seeds { yang-version 1.1; namespace "urn:ietf:params:xml:ns:yang:ietf-yang-mpl-seeds"; prefix mpl; organization "IETF ROLL (Routing over Low power and lossy networks) Working Group"; contact "WG Web: http://tools.ietf.org/wg/roll/ WG List: mailto:roll@ietf.org WG Chair: Peter van der Stok mailto:consultancy@vanderstok.org van der Stok Expires October 1, 2018 [Page 15] Internet-Draft MPL-YANG March 2018 WG Chair: Ines Robles mailto:maria.ines.robles@ericsson.com Editor: Peter van der Stok mailto:consultancy@vanderstok.org"; description "This module contains information about the operation of the MPL protocol. Copyright (c) 2016 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). This version of this YANG module is part of RFC XXXX; see the RFC itself for full legal notices."; revision "2018-03-29" { description "Initial revision."; reference "I-D:draft-ietf-roll-mpl-yang: A YANG model for Multicast Protocol for Low power and lossy Networks (MPL)"; } list mpl-seeds{ key "seedID domainID"; config false; description "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."; leaf seedID{ type uint64; description "value uniquely identifies the MPL Seed within a MPL domain."; } van der Stok Expires October 1, 2018 [Page 16] Internet-Draft MPL-YANG March 2018 leaf domainID{ type uint16; description "together with seedID uniquely identifies buffer set."; } leaf local { type boolean; description "When local == TRUE, seed originated in this forwarder. WHEN local == false, seed originated in different forwarder."; } leaf generate-seqno { type uint8; description "Sequence number of next message to be generated by this local seed."; } leaf life-time { type uint64; description " Minimum remaining lifetime of the seed entry in SE_LIFETIME units."; } leaf min-seqno{ type uint8; description "Lower bound sequence number in the buffer of the seed."; } leaf data-number{ type uint8; description "Number of currently buffered data messages."; } leaf control-number{ type uint8; description "Number of currently buffered control messages."; } list buffered-messages{ key seqno; van der Stok Expires October 1, 2018 [Page 17] Internet-Draft MPL-YANG March 2018 description " status of trickle intervals of the buffered message identified by seqno. and seed/domain"; leaf seqno{ type uint8; description "Sequence number of message."; } leaf I{ type uint8; description "Current Trickle timer interval size in SE-LIFETIME units."; } leaf c{ type uint8; description "number of times that a copy of this message has been received in this interval."; } leaf e{ type uint8; description "number of Trickle time expirations since last Trickle timer reset."; } leaf t{ type uint8; description " Time expressed in SE-LIFETIME units that message will be (is) forwarded"; } } // list seed-timers } // list MPL-seeds } // module ietf-yang-mpl-seeds van der Stok Expires October 1, 2018 [Page 18] Internet-Draft MPL-YANG March 2018 4.4. yang-mpl-statistics module This module specifies the operation of the MPL forwarder expressed in number of messages and copies. The values are acquired by the client and set by the server. Statistics are specified per seed and domain. In constrained devices there will be only one domain, but probably multiple seeds. The parameter k determines how many copies of a message can be forwarded. The counters c-too-high, nr-forwarded, and nr-not- forwarded give insight in the consequences of the current value of k. The other counters give insight in the loss of messages caused by the medium or forwarding delays. The inconsistent/consistent counters indicate when consistent or inconsistent messages were received according to the definition of consistent in [RFC7731]. file "ietf-yang-mpl-statistics@2018-03-29.yang" module ietf-yang-mpl-statistics { yang-version 1.1; namespace "urn:ietf:params:xml:ns:yang:ietf-yang-mpl-statistics"; prefix mpl; organization "IETF ROLL (Routing over Low power and lossy networks) Working Group"; contact "WG Web: http://tools.ietf.org/wg/roll/ WG List: mailto:roll@ietf.org WG Chair: Peter van der Stok mailto:consultancy@vanderstok.org WG Chair: Ines Robles mailto:maria.ines.robles@ericsson.com Editor: Peter van der Stok mailto:consultancy@vanderstok.org"; van der Stok Expires October 1, 2018 [Page 19] Internet-Draft MPL-YANG March 2018 description "This module contains information about the operation of the MPL protocol. Copyright (c) 2016 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). This version of this YANG module is part of RFC XXXX; see the RFC itself for full legal notices."; revision "2018-03-29" { description "Initial revision."; reference "I-D:draft-ietf-roll-mpl-yang: A YANG model for Multicast Protocol for Low power and lossy Networks (MPL)"; } list mpl-statistics{ key "seedID domainID"; config false; description "List describes performance statistics integrated over the messages identified by seed and domain identifiers. A forwarder can receive and forward multiple copies of a message uniquely identified by seqno, domain, and seed."; leaf seedID{ type uint64; description "value uniquely identifies the MPL Seed within a MPL domain."; } leaf domainID{ type uint16; description van der Stok Expires October 1, 2018 [Page 20] Internet-Draft MPL-YANG March 2018 "together with seed-ID uniquely identifies buffer set."; } leaf c-too-high { type uint64; description "Number of times that a copy was not forwarded because c > k."; } leaf nr-forwarded { type uint64; description "number of times copies are forwarded, while c <= k."; } leaf nr-of-messages-received{ type uint64; description "number of messages received, must be smaller than or equal to seqno."; } leaf nr-of-copies-received{ type uint64; description "total number of message copies received."; } leaf nr-of-messages-forwarded{ type uint64; description "number of forwarded messages, must be smaller than or equal to nr-of-messages-received."; } leaf nr-of-copies-forwarded{ type uint64; description "number of forwarded copies, can be larger than number-of-copies-received."; } leaf nr-of-refused{ type uint64; description "number of refused copies because seqno too small."; } van der Stok Expires October 1, 2018 [Page 21] Internet-Draft MPL-YANG March 2018 leaf nr-of-missed{ type uint64; description "number of messages that were not received is equal to the number of empty message buffers seqno < min-seqno."; } leaf nr-of-notreceived{ type uint64; description "number of messages that were not received according to control message."; } leaf nr-of-inconsistent-data{ type uint64; description "number of inconsistent data messages."; } leaf nr-of-consistent-data{ type uint64; description "number of consistent data messages."; } leaf nr-of-consistent-control{ type uint64; description "number of consistent control messages."; } leaf nr-of-inconsistent-control{ type uint64; description "number of inconsistent control messages."; } leaf statistics-interval{ type uint64; description "Interval, expressed in seconds, during which the statistics are collected."; } action reset-statistics{ description van der Stok Expires October 1, 2018 [Page 22] Internet-Draft MPL-YANG March 2018 "set all statistics counters and statistics-interval to zero."; } } // list mpl statistics } // module ietf-yang-mpl-statistics 5. IANA Considerations This specification has no consequences for IANA. 6. Acknowledgements Andy Bierman has commented on the use of YANG for mpl. YANG doctors pointed out a wrong use of config. 7. Changelog Changes from version 00 to version 01 o config false in "statistics" and "seeds" modules o separated into 4 modules o inserted choice in domain modules o more explanatory text o renamed some parameters o Introduced section per module o reset of statistics is added 8. References 8.1. Normative References [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, March 1997, . van der Stok Expires October 1, 2018 [Page 23] Internet-Draft MPL-YANG March 2018 [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)", RFC 6020, DOI 10.17487/RFC6020, October 2010, . [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., and A. Bierman, Ed., "Network Configuration Protocol (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, . [RFC7223] Bjorklund, M., "A YANG Data Model for Interface Management", RFC 7223, DOI 10.17487/RFC7223, May 2014, . [RFC7731] Hui, J. and R. Kelsey, "Multicast Protocol for Low-Power and Lossy Networks (MPL)", RFC 7731, DOI 10.17487/RFC7731, February 2016, . 8.2. Informative References [RFC6206] Levis, P., Clausen, T., Hui, J., Gnawali, O., and J. Ko, "The Trickle Algorithm", RFC 6206, DOI 10.17487/RFC6206, March 2011, . [RFC7774] Doi, Y. and M. Gillmore, "Multicast Protocol for Low-Power and Lossy Networks (MPL) Parameter Configuration Option for DHCPv6", RFC 7774, DOI 10.17487/RFC7774, March 2016, . Author's Address Peter van der Stok (editor) consultant Phone: +31-492474673 (Netherlands), +33-966015248 (France) Email: consultancy@vanderstok.org URI: www.vanderstok.org van der Stok Expires October 1, 2018 [Page 24]