draft-ietf-roll-mpl-yang-01.txt   draft-ietf-roll-mpl-yang-02.txt 
roll P. van der Stok, Ed. roll P. van der Stok, Ed.
Internet-Draft consultant Internet-Draft consultant
Intended status: Standards Track March 30, 2018 Intended status: Standards Track July 15, 2018
Expires: October 1, 2018 Expires: January 16, 2019
A YANG model for Multicast Protocol for Low power and lossy Networks A YANG model for Multicast Protocol for Low power and lossy Networks
(MPL) (MPL)
draft-ietf-roll-mpl-yang-01 draft-ietf-roll-mpl-yang-02
Abstract Abstract
This document defines a YANG data model for management of Multicast This document defines a YANG data model for management of Multicast
Protocol for Low power and lossy Networks (MPL) implementations. The Protocol for Low power and lossy Networks (MPL) implementations. The
data model includes configuration data and state data. data model includes configuration data and state data.
Note Note
Discussion and suggestions for improvement are requested, and should Discussion and suggestions for improvement are requested, and should
skipping to change at page 1, line 38 skipping to change at page 1, line 38
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at https://datatracker.ietf.org/drafts/current/. Drafts is at https://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on October 1, 2018. This Internet-Draft will expire on January 16, 2019.
Copyright Notice Copyright Notice
Copyright (c) 2018 IETF Trust and the persons identified as the Copyright (c) 2018 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(https://trustee.ietf.org/license-info) in effect on the date of (https://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
skipping to change at page 2, line 15 skipping to change at page 2, line 15
include Simplified BSD License text as described in Section 4.e of include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License. described in the Simplified BSD License.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 2 1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 2
1.1.1. Tree Diagrams . . . . . . . . . . . . . . . . . . . . 3 1.1.1. Tree Diagrams . . . . . . . . . . . . . . . . . . . . 3
2. MPL model . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2. MPL model . . . . . . . . . . . . . . . . . . . . . . . . . . 3
3. SID file generation . . . . . . . . . . . . . . . . . . . . . 5 2.1. NMDA considerations . . . . . . . . . . . . . . . . . . . 4
4. yang-mpl modules . . . . . . . . . . . . . . . . . . . . . . 8 2.2. MPL-domain tree . . . . . . . . . . . . . . . . . . . . . 4
4.1. yang-mpl-domain module . . . . . . . . . . . . . . . . . 8 2.3. MPL-ops tree . . . . . . . . . . . . . . . . . . . . . . 5
4.2. yang-mpl-ops module . . . . . . . . . . . . . . . . . . . 11 2.4. MPL-seeds tree . . . . . . . . . . . . . . . . . . . . . 5
4.3. yang-mpl-seeds module . . . . . . . . . . . . . . . . . . 15 2.5. MPL-statistics tree . . . . . . . . . . . . . . . . . . . 6
4.4. yang-mpl-statistics module . . . . . . . . . . . . . . . 19 3. SID file generation . . . . . . . . . . . . . . . . . . . . . 7
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 23 3.1. mpl-domain . . . . . . . . . . . . . . . . . . . . . . . 7
6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 23 3.2. mpl-ops . . . . . . . . . . . . . . . . . . . . . . . . . 7
7. Changelog . . . . . . . . . . . . . . . . . . . . . . . . . . 23 3.3. mpl-seeds . . . . . . . . . . . . . . . . . . . . . . . . 8
8. References . . . . . . . . . . . . . . . . . . . . . . . . . 23 3.4. mpl-statistics . . . . . . . . . . . . . . . . . . . . . 9
8.1. Normative References . . . . . . . . . . . . . . . . . . 23 4. yang-mpl modules . . . . . . . . . . . . . . . . . . . . . . 11
8.2. Informative References . . . . . . . . . . . . . . . . . 24 4.1. yang-mpl-domain module . . . . . . . . . . . . . . . . . 11
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 24 4.2. yang-mpl-ops module . . . . . . . . . . . . . . . . . . . 14
4.3. yang-mpl-seeds module . . . . . . . . . . . . . . . . . . 18
4.4. yang-mpl-statistics module . . . . . . . . . . . . . . . 22
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 27
6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 28
7. Changelog . . . . . . . . . . . . . . . . . . . . . . . . . . 28
8. References . . . . . . . . . . . . . . . . . . . . . . . . . 29
8.1. Normative References . . . . . . . . . . . . . . . . . . 29
8.2. Informative References . . . . . . . . . . . . . . . . . 29
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 30
1. Introduction 1. Introduction
This document defines a YANG [RFC6020] data model for management of This document defines a YANG [RFC7950] data model for management of
Multicast Protocol for Low power and lossy Networks (MPL) [RFC7731] Multicast Protocol for Low power and lossy Networks (MPL) [RFC7731]
implementations. The data model covers configuration of MPL implementations. The data model covers configuration of MPL
parameters per interface. It also provides information about which parameters per interface. It also provides information about which
Multicast addresses are operationally used, and the seeds of the Multicast addresses are operationally used, and the seeds of the
forwarded packets. forwarded packets.
1.1. Terminology 1.1. Terminology
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
skipping to change at page 3, line 4 skipping to change at page 3, line 13
document are to be interpreted as described in [RFC2119]. document are to be interpreted as described in [RFC2119].
The following terms are defined in [RFC6241] and are not redefined The following terms are defined in [RFC6241] and are not redefined
here: here:
o client o client
o configuration data o configuration data
o server o server
o state data o state data
The following terms are defined in [RFC6020] and are not redefined The following terms are defined in [RFC7950] and are not redefined
here: here:
o data model o data model
o data node o data node
The terminology for describing YANG data models is found in The terminology for describing YANG data models is found in
[RFC6020]. [RFC7950].
Terms like message, domain, seed, I, k, c are defined in [RFC7731]. 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. Terms like YANG Schema Item iDentifier (SID) and delta are defined in
[I-D.ietf-core-sid].
Multiple copies of a message can be received or sent by a node.
1.1.1. Tree Diagrams 1.1.1. Tree Diagrams
A simplified graphical representation of the data model is used in YANG tree diagrams provide a concise representation of a YANG module,
the YANG modules specified in this document. The meaning of the and SHOULD be included to help readers understand YANG module
symbols in these diagrams is as follows: structure. Guidelines on tree diagrams can be found in Section 3 of
[I-D.ietf-netmod-yang-tree-diagrams]. Tree diagrams used in this
document follow the notation defined in [RFC8340].
Brackets "[" and "]" enclose list keys. 2. MPL model
Abbreviations before data node names: "rw" means configuration This document defines the YANG modules "ietf-yang-mpl-xxx", which
data (read-write) and "ro" state data (read-only). specify 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) "mpl-domain", (2) "mpl-op", (3) "mpl-seeds", and
(4) "mpl-statistics". The four models are discussed below
accompanied by their trees.
Symbols after data node names: "?" means an optional node, "!" 2.1. NMDA considerations
means a presence container, and "*" denotes a list and leaf-list.
Parentheses enclose choice and case nodes, and case nodes are also The Network Management Data Architecture (NMDA) is specified in
marked with a colon (":"). [RFC8342]. The MPL protocol is designed for low-resource nodes,
where the hardware is fixed once and for all. The configuration of
the node in the MPL context is limited to enabling the interface(s)
with Multicast addresses. The interface configuration of the YANG
module replaces the multicast address assignment of section 2.6.2 of
[RFC7390].
Ellipsis ("...") stands for contents of subtrees that are not Consequently, The contents of the "candidate", "startup", "running",
shown. and "intended" datastores are identical. The conceptual datastore
consists of an "operational" and an "intended" datastore. The
"intended" store contains the nodes of the modules: ietf-yang-mpl-
domain, and ietf-yang-mpl-ops. The "running" store contains the
nodes of the modules: ietf-yang-mpl-seeds, and ietf-yang-mpl-
statistics. The ietf-yang-mpl-domain is necessary when any MPL
management is wanted. The two modules of the "running" store need
the two modules of the "intended" store, and can be loaded dependent
on the management wishes and resource constraints.
2. MPL model The modules ietf-yang-mpl-ops, ietf-yang-mpl-seeds, and ietf-yang-
mpl-statistics "augment" ietf-yang-mpl-domain.
This document defines the YANG module "ietf-yang-mpl", which 2.2. MPL-domain tree
specifies a data model for MPL servers. The model is separated into
four modules which can be loaded independently to accommodate the The "mpl-domain" module describes the MPL-domains and associated
storage space to the wanted functionality. The model consists of the Multicast addresses and the interfaces on which the Multicast
following parts: (1) a "mpl-domain" part that describes the MPL- addresses are enabled. The model allow for a short single MPL-domain
domains and associated Multicast addresses and the interfaces on configuration or a multi-domain configuration that needs more storage
which the Multicast addresses are enabled, (2) a "mpl-op" part that space.
describes the parameters settings per seed, (3) a "mpl-seeds" part
that describes the MPL buffer contents and the Trickle timer values,
and (4) a "mpl-statistics" part that describes the number of lost and
correctly forwarded messages. The data model, divided in four
modules, has the following structure for MPL configuration per node:
module: ietf-yang-mpl-domain module: ietf-yang-mpl-domain
+--rw domain +--rw domain
+--rw (single)? +--rw (multiple)?
+--:(mpl-domain) +--:(mpl-domain)
| +--rw mpl-domain | +--rw mpl-domain
| +--rw domains* [domainID] | +--rw domains* [domainID]
| | +--rw domainID uint16 | | +--rw domainID uint16
| | +--rw MClist* inet:ipv6-address | | +--rw MClist* inet:ipv6-address
| +--rw addresses* [MCaddress] | +--rw addresses* [MCaddress]
| +--rw MCaddress inet:ipv6-address | +--rw MCaddress inet:ipv6-address
| +--rw interfaces* string | +--rw interfaces* string
+--:(mpl-single) +--:(mpl-single)
+--rw mpl-single +--rw mpl-single
+--rw MCaddresses* inet:ipv6-address +--rw MCaddresses* inet:ipv6-address
module: ietf-yang-mpl-ops 2.3. MPL-ops tree
The generator node of a MPL message is called a seed that emits on a
multicast address of a domain. The "mpl-ops" module describes the
operational parameters settings per domain. The parameters determine
the dynamics of the message reception intervals per domain [RFC7731].
module: ietf-yang-mpl-ops
augment /mpl:domain:
+--rw mpl-ops +--rw mpl-ops
+--rw SE_LIFETIME? uint16
+--rw PROACTIVE_FORWARDING? boolean +--rw PROACTIVE_FORWARDING? boolean
+--rw SEED_SET_ENTRY_LIFETIME? uint64 +--rw SEED_SET_ENTRY_LIFETIME? uint64
+--rw mpl-parameter* [domainID] +--rw mpl-parameter* [domainID]
+--rw domainID uint16 +--rw domainID uint16
+--rw DATA_MESSAGE_IMIN? uint16 +--rw DATA_MESSAGE_IMIN? uint16
+--rw DATA_MESSAGE_IMAX? uint16 +--rw DATA_MESSAGE_IMAX? uint16
+--rw DATA_MESSAGE_K? uint16 +--rw DATA_MESSAGE_K? uint16
+--rw DATA_MESSAGE_TIMER_EXPIRATIONS? uint16 +--rw DATA_MESSAGE_TIMER_EXPIRATIONS? uint16
+--rw CONTROL_MESSAGE_IMIN? uint16 +--rw CONTROL_MESSAGE_IMIN? uint16
+--rw CONTROL_MESSAGE_IMAX? uint16 +--rw CONTROL_MESSAGE_IMAX? uint16
+--rw CONTROL_MESSAGE_K? uint16 +--rw CONTROL_MESSAGE_K? uint16
+--rw CONTROL_MESSAGE_TIMER_EXPIRATIONS? uint16 +--rw CONTROL_MESSAGE_TIMER_EXPIRATIONS? uint16
2.4. MPL-seeds tree
The "mpl-seeds" part describes the MPL buffer contents and the
Trickle timer values associated with each seed and domain. Multiple
seeds per domain may exist. The module exposes the state of the MPL
buffer and key information about the messages in the MPL buffers at a
given acquisition moment.
module: ietf-yang-mpl-seeds module: ietf-yang-mpl-seeds
augment /mpl:domain:
+--rw SE_LIFETIME? uint16
+--ro mpl-seeds* [seedID domainID] +--ro mpl-seeds* [seedID domainID]
+--ro seedID uint64 +--ro seedID uint64
+--ro domainID uint16 +--ro domainID uint16
+--ro local? boolean +--ro local? boolean
+--ro generate-seqno? uint8 +--ro generate-seqno? uint8
+--ro life-time? uint64 +--ro life-time? uint64
+--ro min-seqno? uint8 +--ro min-seqno? uint8
+--ro data-number? uint8 +--ro data-number? uint8
+--ro control-number? uint8 +--ro control-number? uint8
+--ro buffered-messages* [seqno] +--ro buffered-messages* [seqno]
+--ro seqno uint8 +--ro seqno uint8
+--ro I? uint8 +--ro I? uint8
+--ro c? uint8 +--ro c? uint8
+--ro e? uint8 +--ro e? uint8
+--ro t? uint8 +--ro t? uint8
2.5. MPL-statistics tree
The "mpl-statistics" module describes the number of lost and
correctly forwarded messages and its copies.
module: ietf-yang-mpl-statistics module: ietf-yang-mpl-statistics
augment /mpl:domain:
+--ro mpl-statistics* [seedID domainID] +--ro mpl-statistics* [seedID domainID]
+--ro seedID uint64 | +--ro seedID uint64
+--ro domainID uint16 | +--ro domainID uint16
+--ro c-too-high? uint64 | +--ro c-too-high? uint64
+--ro nr-forwarded? uint64 | +--ro nr-forwarded? uint64
+--ro nr-of-messages-received? uint64 | +--ro nr-of-messages-received? uint64
+--ro nr-of-copies-received? uint64 | +--ro nr-of-messages-forwarded? uint64
+--ro nr-of-messages-forwarded? uint64 | +--ro nr-of-copies-received? uint64
+--ro nr-of-copies-forwarded? uint64 | +--ro nr-of-copies-forwarded? uint64
+--ro nr-of-refused? uint64 | +--ro nr-of-refused-copies? uint64
+--ro nr-of-missed? uint64 | +--ro nr-of-missed-messages? uint64
+--ro nr-of-notreceived? uint64 | +--ro nr-of-notreceived-messages? uint64
+--ro nr-of-inconsistent-data? uint64 | +--ro nr-of-inconsistent-data? uint64
+--ro nr-of-consistent-data? uint64 | +--ro nr-of-consistent-data? uint64
+--ro nr-of-consistent-control? uint64 | +--ro nr-of-consistent-control? uint64
+--ro nr-of-inconsistent-control? uint64 | +--ro nr-of-inconsistent-control? uint64
+--ro statistics-interval? uint64 | +--ro statistics-interval? uint64
+---x reset-statistics | +---x reset-buffer-statistics
+---x reset-all-statistics
3. SID file generation 3. SID file generation
SID are allocated to the identifiers specified in the four modules. YANG Schema Item iDentifiers (SID) are allocated to replace the
Their values are: relatively long YANG identifiers by the much shorter SIDs.
Consequently, the payload size is considerably reduced. The
assignment tool is https://comi.space/. SIDs are allocated to the
identifiers specified in the four modules. Their values are:
SID Assigned to 3.1. mpl-domain
--------- --------------------------------------------------
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
/MCaddresses
File ietf-yang-mpl-domain@2018-03-29.sid created Module : ietf-yang-mpl-domain
Number of SIDs available : 50 Revision : 2018-07-06
Number of SIDs used : 11
SID Assigned to SID Namespace YANG identifier
--------- -------------------------------------------------- 1004000 module ietf-yang-mpl-domain
1004100 module ietf-yang-mpl-ops 1004001 data /ietf-yang-mpl-domain:domain
1004101 data /ietf-yang-mpl-ops:mpl-ops 1004002 data /ietf-yang-mpl-domain:domain/mpl-domain
1004102 data /ietf-yang-mpl-ops:mpl-ops/PROACTIVE_FORWARDING 1004003 data /ietf-yang-mpl-domain:domain/mpl-domain
1004103 data /ietf-yang-mpl-ops:mpl-ops /addresses
/SEED_SET_ENTRY_LIFETIME 1004004 data /ietf-yang-mpl-domain:domain/mpl-domain
1004104 data /ietf-yang-mpl-ops:mpl-ops/SE_LIFETIME /addresses/MCaddress
1004105 data /ietf-yang-mpl-ops:mpl-ops/mpl-parameter 1004005 data /ietf-yang-mpl-domain:domain/mpl-domain
1004106 data /ietf-yang-mpl-ops:mpl-ops/mpl-parameter /addresses/interfaces
/CONTROL_MESSAGE_IMAX 1004006 data /ietf-yang-mpl-domain:domain/mpl-domain
1004107 data /ietf-yang-mpl-ops:mpl-ops/mpl-parameter /domains
/CONTROL_MESSAGE_IMIN 1004007 data /ietf-yang-mpl-domain:domain/mpl-domain
1004108 data /ietf-yang-mpl-ops:mpl-ops/mpl-parameter /domains/MClist
/CONTROL_MESSAGE_K 1004008 data /ietf-yang-mpl-domain:domain/mpl-domain
1004109 data /ietf-yang-mpl-ops:mpl-ops/mpl-parameter /domains/domainID
/CONTROL_MESSAGE_TIMER_EXPIRATIONS 1004009 data /ietf-yang-mpl-domain:domain/mpl-single
1004110 data /ietf-yang-mpl-ops:mpl-ops/mpl-parameter 1004010 data /ietf-yang-mpl-domain:domain/mpl-single
/DATA_MESSAGE_IMAX /MCaddresses
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 3.2. mpl-ops
Number of SIDs available : 50 Module : ietf-yang-mpl-ops
Number of SIDs used : 15 Revision : 2018-07-06
SID Assigned to SID Namespace YANG identifier
--------- -------------------------------------------------- 1004050 module ietf-yang-mpl-ops
1004150 module ietf-yang-mpl-seeds 1004051 data /ietf-yang-mpl-domain:domain
1004151 data /ietf-yang-mpl-seeds:mpl-seeds /ietf-yang-mpl-ops:mpl-ops
1004152 data /ietf-yang-mpl-seeds:mpl-seeds/buffered-messages 1004052 data /ietf-yang-mpl-domain:domain/ietf-yang-mpl-ops:
1004153 data /ietf-yang-mpl-seeds:mpl-seeds mpl-ops/PROACTIVE_FORWARDING
/buffered-messages/I 1004053 data /ietf-yang-mpl-domain:domain/ietf-yang-mpl-ops:
1004154 data /ietf-yang-mpl-seeds:mpl-seeds mpl-ops/SEED_SET_ENTRY_LIFETIME
/buffered-messages/c 1004054 data /ietf-yang-mpl-domain:domain/ietf-yang-mpl-ops:
1004155 data /ietf-yang-mpl-seeds:mpl-seeds mpl-ops/mpl-parameter
/buffered-messages/e 1004055 data /ietf-yang-mpl-domain:domain/ietf-yang-mpl-ops:
mpl-ops/mpl-parameter/CONTROL_MESSAGE_IMAX
1004056 data /ietf-yang-mpl-domain:domain/ietf-yang-mpl-ops:
mpl-ops/mpl-parameter/CONTROL_MESSAGE_IMIN
1004057 data /ietf-yang-mpl-domain:domain/ietf-yang-mpl-ops:
mpl-ops/mpl-parameter/CONTROL_MESSAGE_K
1004058 data /ietf-yang-mpl-domain:domain/ietf-yang-mpl-ops:
mpl-ops/mpl-parameter/CONTROL_MESSAGE_TIMER_EXPIRATIONS
1004059 data /ietf-yang-mpl-domain:domain/ietf-yang-mpl-ops:
mpl-ops/mpl-parameter/DATA_MESSAGE_IMAX
1004060 data /ietf-yang-mpl-domain:domain/ietf-yang-mpl-ops:
mpl-ops/mpl-parameter/DATA_MESSAGE_IMIN
1004061 data /ietf-yang-mpl-domain:domain/ietf-yang-mpl-ops:
mpl-ops/mpl-parameter/DATA_MESSAGE_K
1004062 data /ietf-yang-mpl-domain:domain/ietf-yang-mpl-ops:
mpl-ops/mpl-parameter/DATA_MESSAGE_TIMER_EXPIRATIONS
1004063 data /ietf-yang-mpl-domain:domain/ietf-yang-mpl-ops:
mpl-ops/mpl-parameter/domainID
1004156 data /ietf-yang-mpl-seeds:mpl-seeds 3.3. mpl-seeds
/buffered-messages/seqno Module : ietf-yang-mpl-seeds
1004157 data /ietf-yang-mpl-seeds:mpl-seeds Revision : 2018-07-06
/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 SID Namespace YANG identifier
Number of SIDs available : 50 1004100 module ietf-yang-mpl-seeds
Number of SIDs used : 16 1004101 data /ietf-yang-mpl-domain:domain/ietf-yang-mpl-seeds:SE_LIFETIME
1004102 data /ietf-yang-mpl-domain:domain
/ietf-yang-mpl-seeds:mpl-seeds
1004103 data /ietf-yang-mpl-domain:domain/ietf-yang-mpl-seeds:
mpl-seeds/buffered-messages
1004104 data /ietf-yang-mpl-domain:domain/ietf-yang-mpl-seeds:
mpl-seeds/buffered-messages/I
1004105 data /ietf-yang-mpl-domain:domain/ietf-yang-mpl-seeds:
mpl-seeds/buffered-messages/c
1004106 data /ietf-yang-mpl-domain:domain/ietf-yang-mpl-seeds:
mpl-seeds/buffered-messages/e
1004107 data /ietf-yang-mpl-domain:domain/ietf-yang-mpl-seeds:
mpl-seeds/buffered-messages/seqno
1004108 data /ietf-yang-mpl-domain:domain/ietf-yang-mpl-seeds:
mpl-seeds/buffered-messages/t
1004109 data /ietf-yang-mpl-domain:domain/ietf-yang-mpl-seeds:
mpl-seeds/control-number
1004110 data /ietf-yang-mpl-domain:domain/ietf-yang-mpl-seeds:
mpl-seeds/data-number
1004111 data /ietf-yang-mpl-domain:domain/ietf-yang-mpl-seeds:
mpl-seeds/domainID
1004112 data /ietf-yang-mpl-domain:domain/ietf-yang-mpl-seeds:
mpl-seeds/generate-seqno
1004113 data /ietf-yang-mpl-domain:domain/ietf-yang-mpl-seeds:
mpl-seeds/life-time
1004114 data /ietf-yang-mpl-domain:domain/ietf-yang-mpl-seeds:
mpl-seeds/local
1004115 data /ietf-yang-mpl-domain:domain/ietf-yang-mpl-seeds:
mpl-seeds/min-seqno
1004116 data /ietf-yang-mpl-domain:domain/ietf-yang-mpl-seeds:
mpl-seeds/seedID
SID Assigned to 3.4. mpl-statistics
--------- --------------------------------------------------
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
/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 Module : ietf-yang-mpl-statistics
Number of SIDs available : 50 Revision : 2018-07-06
Number of SIDs used : 19
SID Namespace YANG identifier
1004150 module ietf-yang-mpl-statistics
1004151 data /ietf-yang-mpl-domain:domain/
ietf-yang-mpl-statistics:mpl-statistics
1004152 data /ietf-yang-mpl-domain:domain/
ietf-yang-mpl-statistics:mpl-statistics/c-too-high
1004153 data /ietf-yang-mpl-domain:domain/
ietf-yang-mpl-statistics:mpl-statistics/domainID
1004154 data /ietf-yang-mpl-domain:domain/
ietf-yang-mpl-statistics:mpl-statistics/nr-forwarded
1004155 data /ietf-yang-mpl-domain:domain/
ietf-yang-mpl-statistics:mpl-statistics
/nr-of-consistent-control
1004156 data /ietf-yang-mpl-domain:domain/
ietf-yang-mpl-statistics:mpl-statistics
/nr-of-consistent-data
1004157 data /ietf-yang-mpl-domain:domain/
ietf-yang-mpl-statistics:mpl-statistics
/nr-of-copies-forwarded
1004158 data /ietf-yang-mpl-domain:domain/
ietf-yang-mpl-statistics:mpl-statistics
/nr-of-copies-received
1004159 data /ietf-yang-mpl-domain:domain/
ietf-yang-mpl-statistics:mpl-statistics
/nr-of-inconsistent-control
1004160 data /ietf-yang-mpl-domain:domain/
ietf-yang-mpl-statistics:mpl-statistics
/nr-of-inconsistent-data
1004161 data /ietf-yang-mpl-domain:domain/
ietf-yang-mpl-statistics:mpl-statistics
/nr-of-messages-forwarded
1004162 data /ietf-yang-mpl-domain:domain/
ietf-yang-mpl-statistics:mpl-statistics
/nr-of-messages-received
1004163 data /ietf-yang-mpl-domain:domain/
ietf-yang-mpl-statistics:mpl-statistics
/nr-of-missed-messages
1004164 data /ietf-yang-mpl-domain:domain/
ietf-yang-mpl-statistics:mpl-statistics
/nr-of-notreceived-messages
1004165 data /ietf-yang-mpl-domain:domain/
ietf-yang-mpl-statistics:mpl-statistics
/nr-of-refused-copies
1004166 data /ietf-yang-mpl-domain:domain/
ietf-yang-mpl-statistics:mpl-statistics
/seedID
1004167 data /ietf-yang-mpl-domain:domain/
ietf-yang-mpl-statistics:mpl-statistics
/statistics-interval
4. yang-mpl modules 4. yang-mpl modules
This section describes four yang modules. The model is based on the This section describes the four yang modules. The modules are based
MPL specification published in [RFC7731] and the specification of on the MPL specification published in [RFC7731] and the specification
[RFC6206]. The identification of the interfaces follows the of [RFC6206]. The identification of the interfaces follows the
specification of ietf-interfaces of [RFC7223]. specification of ietf-interfaces of [RFC8343].
The data model allows to set values to the parameters of the MPL The data model allows to set values to the parameters of the MPL
algorithm. This approach requires an active manager process to set algorithm. This approach requires an active manager process to set
the values without use of DHCP as described in: [RFC7774]. the values without use of DHCP as described in: [RFC7774].
The names of the four modules are: yang-mpl-domain, yang-mpl-ops, The names of the four modules are: yang-mpl-domain, yang-mpl-ops,
yang-mpl-seeds, and yang-mpl-statistics, described in subsections yang-mpl-seeds, and yang-mpl-statistics, described in subsections
with the same name. with the same name.
4.1. yang-mpl-domain module 4.1. yang-mpl-domain module
This module describes (1) the MPL domains and the associated This module describes (1) the MPL domains and the associated
multicast addresses, and (2) the interfaces and the multicast multicast addresses, and (2) the interfaces and the multicast
addresses for which they are enabled. addresses for which they are enabled.
The model features a choice such that for constrained devices with The model features a choice such that:
only one "single" interface and only one "single" domain, the model
specifies a list of MC addresses for which the single interface is
enabled.
<CODE BEGINS>file "ietf-yang-mpl-domain@2018-03-29.yang" the model specifies for constrained devices with only one "single"
interface and only one "single" domain, a list of MC addresses for
which the single interface is enabled.
the model specifies for larger devices "multiple" interface and
"multiple" domains, a list of MC addresses for which one or more
interfaces are enabled.
<CODE BEGINS>file "ietf-yang-mpl-domain@2018-07-06.yang"
module ietf-yang-mpl-domain { module ietf-yang-mpl-domain {
yang-version 1.1; yang-version 1.1;
namespace namespace
"urn:ietf:params:xml:ns:yang:ietf-yang-mpl-domain"; "urn:ietf:params:xml:ns:yang:ietf-yang-mpl-domain";
prefix mpl; prefix mpl;
skipping to change at page 9, line 10 skipping to change at page 12, line 4
yang-version 1.1; yang-version 1.1;
namespace namespace
"urn:ietf:params:xml:ns:yang:ietf-yang-mpl-domain"; "urn:ietf:params:xml:ns:yang:ietf-yang-mpl-domain";
prefix mpl; prefix mpl;
import ietf-inet-types{ import ietf-inet-types{
prefix inet; prefix inet;
} }
organization organization
"IETF ROLL (Routing Over Low power and lossy networks) "IETF ROLL (Routing Over Low power and lossy networks)
Working Group"; Working Group";
contact contact
"WG Web: http://tools.ietf.org/wg/roll/ "WG Web: http://tools.ietf.org/wg/roll/
WG List: mailto:roll@ietf.org WG List: mailto:roll@ietf.org
WG Chair: Peter van der Stok WG Chair: Peter van der Stok
mailto:consultancy@vanderstok.org mailto:consultancy@vanderstok.org
WG Chair: Ines Robles WG Chair: Ines Robles
mailto:maria.ines.robles@ericsson.com mailto:maria.ines.robles@ericsson.com
Editor: Peter van der Stok Editor: Peter van der Stok
mailto:consultancy@vanderstok.org"; mailto:consultancy@vanderstok.org";
description description
"This module contains information about the state of the MPL domain. "This module contains information about the state of the MPL domain.
Copyright (c) 2016 IETF Trust and the persons identified as Copyright (c) 2018 IETF Trust and the persons identified as
authors of the code. All rights reserved. authors of the code. All rights reserved.
Redistribution and use in source and binary forms, with or Redistribution and use in source and binary forms, with or
without modification, is permitted pursuant to, and subject without modification, is permitted pursuant to, and subject
to the license terms contained in, the Simplified BSD License to the license terms contained in, the Simplified BSD License
set forth in Section 4.c of the IETF Trust's Legal Provisions set forth in Section 4.c of the IETF Trust's Legal Provisions
Relating to IETF Documents Relating to IETF Documents
(http://trustee.ietf.org/license-info). (http://trustee.ietf.org/license-info).
This version of this YANG module is part of RFC XXXX; see This version of this YANG module is part of RFC XXXX; see
the RFC itself for full legal notices."; the RFC itself for full legal notices.";
revision "2018-03-29" { revision "2018-07-06" {
description "Initial revision."; description "revision 3";
reference reference
"I-D:draft-ietf-roll-mpl-yang: A YANG model for Multicast "I-D:draft-ietf-roll-mpl-yang: A YANG model for Multicast
Protocol for Low power and lossy Networks (MPL)"; Protocol for Low power and lossy Networks (MPL)";
} }
container domain { container domain {
description description
"High level container containing the choice statement."; "High level container containing the choice statement
between single domain/interface and multiple
domains and interfaces.";
choice single { choice multiple {
description description
"A choice between single domain/interface and multiple "A choice for large devices with multiple domains
domains and interfaces."; and interfaces.";
container mpl-domain { container mpl-domain {
description description
"The entries describe the MPL domains, the associated "The entries describe the MPL domains, the associated
Multicast addresses and interfaces."; Multicast addresses and interfaces.";
list domains { list domains {
key domainID; key domainID;
description description
"The entries describe a given domain identified with "The entries describe a given domain identified with
domainID and the associated Multicast addresses."; domainID and the associated Multicast addresses.";
leaf domainID { leaf domainID {
type uint16; type uint16;
description description
"Entry uniquely identifies the domain in the "Entry uniquely identifies the domain in the
forwarder."; forwarder.";
} }
leaf-list MClist{ leaf-list MClist{
type inet:ipv6-address; type inet:ipv6-address;
description description
"List of associated IPv6 Addresses."; "List of associated IPv6 Addresses.";
} }
} // domains list } // domains list
list addresses { list addresses {
key MCaddress; key MCaddress;
description description
"The entries describe the interfaces enabled "The entries describe the interfaces enabled
with the specified MC address."; with the specified MC address.";
leaf MCaddress { leaf MCaddress {
type inet:ipv6-address; type inet:ipv6-address;
description description
"MC address belonging to a MPL domain."; "MC address belonging to a MPL domain.";
} }
leaf-list interfaces { leaf-list interfaces {
type string; type string;
description description
"List of names of interfaces enabled for this "List of names of interfaces enabled for this
Multicast address. Interface name is defined in [RFC6206]."; Multicast address. Interface name is defined
in Appendix A of [RFC8343].";
} }
} // addresses list } // addresses list
} // container mpl-domain } // container mpl-domain
container mpl-single { container mpl-single {
description description
"For small devices list of MC addresses for single "A choice for constrained devices with a list of
interface and domain."; MC addresses for single interface and domain.";
leaf-list MCaddresses{ leaf-list MCaddresses{
type inet:ipv6-address; type inet:ipv6-address;
description description
"list of MC addresses belonging to one single "list of MC addresses belonging to one single
domain and interface."; domain and interface.";
} }
} // container mpl-simple } // container mpl-simple
} // choice simple } // choice simple
} // container module } // container module
} //module ietf-yang-mpl-domain } //module ietf-yang-mpl-domain
<CODE ENDS> <CODE ENDS>
4.2. yang-mpl-ops module 4.2. yang-mpl-ops module
This module models the operational aspects of MPL. Per domain MPL This module models the operational aspects of MPL. Per domain MPL
specifies four parameters I_MAX, I_MIN, K, and TIMER_EXPIRATIONs for specifies four parameters I_MAX, I_MIN, K, and TIMER_EXPIRATIONs for
data and control messages. The value of the MPL intervals are data and control messages. The value of the MPL intervals are
expressed in TUNIT. The entry SE_LIFETIME taken over from [RFC7774] expressed in TUNIT. The entry SE_LIFETIME taken over from [RFC7774]
fixes TUNIT to milliseconds. For very constrained devices with only fixes TUNIT to milliseconds. For very constrained devices with only
one domain there can be only one instance of mpl-parameter list. one domain there can be only one instance of mpl-parameter list. The
module augments the ietf-yang-mpl-domain module.
<CODE BEGINS>file "ietf-yang-mpl-ops@2018-03-29.yang" <CODE BEGINS>file "ietf-yang-mpl-ops@2018-07-06.yang"
module ietf-yang-mpl-ops { module ietf-yang-mpl-ops {
yang-version 1.1; yang-version 1.1;
namespace namespace
"urn:ietf:params:xml:ns:yang:ietf-yang-mpl-ops"; "urn:ietf:params:xml:ns:yang:ietf-yang-mpl-ops";
prefix "mplo";
prefix mpl; import ietf-yang-mpl-domain{
prefix "mpl";
}
organization organization
"IETF ROLL (Routing over Low power and lossy networks) "IETF ROLL (Routing over Low power and lossy networks)
Working Group"; Working Group";
contact contact
"WG Web: http://tools.ietf.org/wg/roll/ "WG Web: http://tools.ietf.org/wg/roll/
WG List: mailto:roll@ietf.org WG List: mailto:roll@ietf.org
WG Chair: Peter van der Stok WG Chair: Peter van der Stok
mailto:consultancy@vanderstok.org mailto:consultancy@vanderstok.org
WG Chair: Ines Robles WG Chair: Ines Robles
mailto:maria.ines.robles@ericsson.com mailto:maria.ines.robles@ericsson.com
Editor: Peter van der Stok Editor: Peter van der Stok
mailto:consultancy@vanderstok.org"; mailto:consultancy@vanderstok.org";
description description
skipping to change at page 12, line 14 skipping to change at page 15, line 17
WG Chair: Peter van der Stok WG Chair: Peter van der Stok
mailto:consultancy@vanderstok.org mailto:consultancy@vanderstok.org
WG Chair: Ines Robles WG Chair: Ines Robles
mailto:maria.ines.robles@ericsson.com mailto:maria.ines.robles@ericsson.com
Editor: Peter van der Stok Editor: Peter van der Stok
mailto:consultancy@vanderstok.org"; mailto:consultancy@vanderstok.org";
description description
"This module contains information about the operation of "This module contains information about the operation of
the MPL protocol. the MPL protocol.
Copyright (c) 2016 IETF Trust and the persons identified as Copyright (c) 2018 IETF Trust and the persons identified as
authors of the code. All rights reserved. authors of the code. All rights reserved.
Redistribution and use in source and binary forms, with or Redistribution and use in source and binary forms, with or
without modification, is permitted pursuant to, and subject without modification, is permitted pursuant to, and subject
to the license terms contained in, the Simplified BSD License to the license terms contained in, the Simplified BSD License
set forth in Section 4.c of the IETF Trust's Legal Provisions set forth in Section 4.c of the IETF Trust's Legal Provisions
Relating to IETF Documents Relating to IETF Documents
(http://trustee.ietf.org/license-info). (http://trustee.ietf.org/license-info).
This version of this YANG module is part of RFC XXXX; see This version of this YANG module is part of RFC XXXX; see
the RFC itself for full legal notices."; the RFC itself for full legal notices.";
revision "2018-03-29" { revision "2018-07-06" {
description "Initial revision."; description "revision 3";
reference reference
"I-D:draft-ietf-roll-mpl-yang: A YANG model for Multicast "I-D:draft-ietf-roll-mpl-yang: A YANG model for Multicast
Protocol for Low power and lossy Networks (MPL)"; Protocol for Low power and lossy Networks (MPL)";
} }
augment "/mpl:domain" {
description
"additional MPL server settings to MPL domains";
container mpl-ops { container mpl-ops {
description description
"Parameter settings for each MPL server and for each "Parameter settings for each MPL server and for each
individual domain of the server."; 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.";
}
leaf PROACTIVE_FORWARDING { leaf PROACTIVE_FORWARDING {
type boolean; type boolean;
description description
"The boolean value indicates whether the MPL forwarder "The boolean value indicates whether the MPL forwarder
schedules MPL data message transmission after schedules MPL data message transmission after
receiving them for the first time."; receiving them for the first time.
Specified in section 5.4 of [RFC7731]";
} }
leaf SEED_SET_ENTRY_LIFETIME { leaf SEED_SET_ENTRY_LIFETIME {
type uint64; type uint64;
units "seconds";
default 1800;
description description
"The value indicates the minimum lifetime for an entry "The value indicates the minimum lifetime for
in the Seed set expressed in seconds. Default value an entry in the Seed set expressed in seconds.
is 30 minutes."; Default value is 30 minutes.
Specified in section 5.4 of [RFC7731]";
} }
list mpl-parameter{ list mpl-parameter{
key domainID; key domainID;
description description
"Each domain has a set of MPL forwarding parameters "Each domain has a set of MPL forwarding parameters
which regulate the forwarding operation."; which regulate the forwarding operation.";
leaf domainID{ leaf domainID{
type uint16; type uint16;
description description
"Each domainID must be present in "Each domainID must be present in
mpl-parameter list."; mpl-parameter list.";
} }
leaf DATA_MESSAGE_IMIN{ leaf DATA_MESSAGE_IMIN{
type uint16; type uint16;
description description
"The minimum Trickle timer interval, as defined in "The minimum Trickle timer interval
[RFC6206], for MPL Data Message transmissions."; for MPL Data Message transmissions.
} mpl-ops/mpl-parameter/DATA_MESSAGE_IMIN <=
mpl-seeds/buffered-messages/I <=
mpl-ops/mpl-parameter/DATA_MESSAGE_IMAX
Specified in section 5.4 of [RFC7731]";
}
leaf DATA_MESSAGE_IMAX{ leaf DATA_MESSAGE_IMAX{
type uint16; type uint16;
description description
"The maximum Trickle timer interval, as defined in "The maximum Trickle timer interval
[RFC6206], for MPL Data Message transmissions."; for MPL Data Message transmissions.
} mpl-ops/mpl-parameter/DATA_MESSAGE_IMIN <=
mpl-seeds/buffered-messages/I <=
mpl-ops/mpl-parameter/DATA_MESSAGE_IMAX
Specified in section 5.4 of [RFC7731]";
}
leaf DATA_MESSAGE_K{ leaf DATA_MESSAGE_K{
type uint16; type uint16;
default 1; default 1;
description description
"The redundancy constant, as defined in [RFC6206], for "The redundancy constant
MPL Data Message transmissions."; for MPL Data Message transmissions.
} Specified in section 5.4 of [RFC7731]";
}
leaf DATA_MESSAGE_TIMER_EXPIRATIONS{ leaf DATA_MESSAGE_TIMER_EXPIRATIONS{
type uint16; type uint16;
default 3; default 3;
description description
"The number of Trickle timer expirations, as defined "The number of Trickle timer expirations, as
in [RFC7731], that occur that occur before terminating the Trickle
before terminating the Trickle algorithm's algorithm's retransmission of a given
retransmission of a given MPL Data Message."; MPL Data Message.
} Specified in section 5.4 of [RFC7731]";
}
leaf CONTROL_MESSAGE_IMIN{ leaf CONTROL_MESSAGE_IMIN{
type uint16; type uint16;
description description
"The minimum Trickle timer interval, as defined "The minimum Trickle timer interval
in [RFC6206], for MPL Control Message for MPL Control Message transmissions.
transmissions."; Specified in section 5.4 of [RFC7731]";
} }
leaf CONTROL_MESSAGE_IMAX{ leaf CONTROL_MESSAGE_IMAX{
type uint16; type uint16;
description description
"The maximum Trickle timer interval, as defined "The maximum Trickle timer interval
in [RFC6206], for MPL Control Message for MPL Control Message transmissions.
transmissions."; Specified in section 5.4 of [RFC7731]";
} }
leaf CONTROL_MESSAGE_K{ leaf CONTROL_MESSAGE_K{
type uint16; type uint16;
default 1; default 1;
description description
"The redundancy constant, as defined in [RFC6206], "The redundancy constant
for MPL Control Message transmissions."; for MPL Control Message transmissions.
} Specified in section 5.4 of [RFC7731]";
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 leaf CONTROL_MESSAGE_TIMER_EXPIRATIONS{
type uint16;
default 10;
description
"The number of Trickle time expirations,
that occur before terminating the Trickle
algorithm for MPL Control Message
transmissions.
Specified in section 5.4 of [RFC7731]";
}
} // list MPL-parameter
} // container MPL-ops } // container MPL-ops
} // augment ietf-yang-mpl-domain
} // module ietf-yang-mpl-ops } // module ietf-yang-mpl-ops
<CODE ENDS> <CODE ENDS>
4.3. yang-mpl-seeds module 4.3. yang-mpl-seeds module
This module specifies the current values of the operation of the MPL This module specifies the current values of the operation of the MPL
forwarder. The values are acquired by the client and set by the forwarder. The values are acquired by the client and set by the
server. The module specifies a set of message buffers, with a buffer server. The module specifies a set of message buffers, with a buffer
per seed and domain. In constrained devices there will be only one per seed and domain. In constrained devices there will be only one
skipping to change at page 15, line 29 skipping to change at page 18, line 44
uniquely identified by its sequence number and seed. The associated uniquely identified by its sequence number and seed. The associated
I, c, e, and t values indicate the progress of MPL with respect to I, c, e, and t values indicate the progress of MPL with respect to
this message, as specified in [RFC7731]. A forwarder sends and this message, as specified in [RFC7731]. A forwarder sends and
receives multiple copies of a message. When a forwarder has sent receives multiple copies of a message. When a forwarder has sent
(received) a copy of a message, the forwarder has sent (received) (received) a copy of a message, the forwarder has sent (received)
that message. that message.
For forwarders which are seeds, local has value true and seqno is the For forwarders which are seeds, local has value true and seqno is the
sequence number of the next message to send. sequence number of the next message to send.
<CODE BEGINS>file "ietf-yang-mpl-seeds@2018-03-29.yang" The module augments the ietf-yang-mpl-domain module.
<CODE BEGINS>file "ietf-yang-mpl-seeds@2018-07-06.yang"
module ietf-yang-mpl-seeds { module ietf-yang-mpl-seeds {
yang-version 1.1; yang-version 1.1;
namespace namespace
"urn:ietf:params:xml:ns:yang:ietf-yang-mpl-seeds"; "urn:ietf:params:xml:ns:yang:ietf-yang-mpl-seeds";
prefix mpl; prefix "mplse";
import ietf-yang-mpl-domain{
prefix "mpl";
}
organization organization
"IETF ROLL (Routing over Low power and lossy networks) "IETF ROLL (Routing over Low power and lossy networks)
Working Group"; Working Group";
contact contact
"WG Web: http://tools.ietf.org/wg/roll/ "WG Web: http://tools.ietf.org/wg/roll/
WG List: mailto:roll@ietf.org WG List: mailto:roll@ietf.org
WG Chair: Peter van der Stok WG Chair: Peter van der Stok
mailto:consultancy@vanderstok.org mailto:consultancy@vanderstok.org
WG Chair: Ines Robles WG Chair: Ines Robles
mailto:maria.ines.robles@ericsson.com mailto:maria.ines.robles@ericsson.com
Editor: Peter van der Stok Editor: Peter van der Stok
mailto:consultancy@vanderstok.org"; mailto:consultancy@vanderstok.org";
description description
"This module contains information about the operation "This module contains information about the operation
of the MPL protocol. of the MPL protocol.
Copyright (c) 2016 IETF Trust and the persons identified as Copyright (c) 2018 IETF Trust and the persons identified as
authors of the code. All rights reserved. authors of the code. All rights reserved.
Redistribution and use in source and binary forms, with or Redistribution and use in source and binary forms, with or
without modification, is permitted pursuant to, and subject without modification, is permitted pursuant to, and subject
to the license terms contained in, the Simplified BSD License to the license terms contained in, the Simplified BSD License
set forth in Section 4.c of the IETF Trust's Legal Provisions set forth in Section 4.c of the IETF Trust's Legal Provisions
Relating to IETF Documents Relating to IETF Documents
(http://trustee.ietf.org/license-info). (http://trustee.ietf.org/license-info).
This version of this YANG module is part of RFC XXXX; see This version of this YANG module is part of RFC XXXX; see
the RFC itself for full legal notices."; the RFC itself for full legal notices.";
revision "2018-03-29" { revision "2018-07-06" {
description "Initial revision."; description "revision 3";
reference reference
"I-D:draft-ietf-roll-mpl-yang: A YANG model for Multicast "I-D:draft-ietf-roll-mpl-yang: A YANG model for Multicast
Protocol for Low power and lossy Networks (MPL)"; Protocol for Low power and lossy Networks (MPL)";
} }
augment "/mpl:domain" {
description "additional message buffer status to MPL
domains";
leaf SE_LIFETIME {
type uint16;
units "milliseconds/timer units";
description
"Conversion from clock ticks to milliseconds,
equivalent to SEED_SET_ENTRY_LIFETIME/TUNIT as
specified in [RFC7774].";
}
list mpl-seeds{ list mpl-seeds{
key "seedID domainID"; key "seedID domainID";
config false; config false;
description description
"List describes all seeds that are active in the server. "List describes all seeds that are active in the
Seed information contains the message buffer contents and the server. Seed information contains the message buffer
operational values of I, c, sequence number and the life-times contents and the operational values of I, c, sequence
per message."; number and the life-times per message.";
leaf seedID{ leaf seedID{
type uint64; type uint64;
description description
"value uniquely identifies the MPL Seed within a MPL "value uniquely identifies the MPL Seed within a MPL
domain."; domain.";
} }
leaf domainID{ leaf domainID{
type uint16; type uint16;
description description
"together with seedID uniquely identifies buffer set."; "together with seedID uniquely identifies buffer
set.";
} }
leaf local { leaf local {
type boolean; type boolean;
description description
"When local == TRUE, seed originated in this forwarder. "When local == true, seed originated in this
WHEN local == false, seed originated in different forwarder.
forwarder."; When local == false, seed originated in different
forwarder.";
} }
leaf generate-seqno { leaf generate-seqno {
type uint8; type uint8;
description description
"Sequence number of next message to be generated by "Sequence number of next message to be generated by
this local seed."; this local seed.";
} }
leaf life-time { leaf life-time {
type uint64; type uint64;
description units "milliseconds";
" Minimum remaining lifetime of the seed entry in description
SE_LIFETIME units."; "Minimum remaining lifetime of the seed entry in
milliseconds.";
} }
leaf min-seqno{ leaf min-seqno{
type uint8; type uint8;
description description
"Lower bound sequence number in the buffer of the seed."; "Lower bound sequence number in the buffer of the
seed.";
} }
leaf data-number{ leaf data-number{
type uint8; type uint8;
description description
"Number of currently buffered data messages."; "Number of currently buffered data messages.";
} }
leaf control-number{ leaf control-number{
type uint8; type uint8;
description description
"Number of currently buffered control messages."; "Number of currently buffered control messages.";
} }
list buffered-messages{ list buffered-messages{
key seqno; key seqno;
description description
" status of trickle intervals of the buffered message "status of trickle intervals of the buffered message
identified by seqno. and seed/domain"; identified by seqno. and seed/domain";
leaf seqno{ leaf seqno{
type uint8; type uint8;
description description
"Sequence number of message."; "Sequence number of message.";
} }
leaf I{ leaf I{
type uint8; type uint8;
description units "milliseconds";
"Current Trickle timer interval size in SE-LIFETIME description
units."; "Current Trickle timer interval size in
} milliseconds.
mpl-ops/mpl-parameter/DATA_MESSAGE_IMIN <=
mpl-seeds/buffered-messages/I <=
mpl-ops/mpl-parameter/DATA_MESSAGE_IMAX";
}
leaf c{ leaf c{
type uint8; type uint8;
description description
"number of times that a copy of this message has been "number of times that a copy of this message has
received in this interval."; been received in this interval.";
} }
leaf e{ leaf e{
type uint8; type uint8;
description description
"number of Trickle time expirations since last "number of Trickle time expirations since last
Trickle timer reset."; Trickle timer reset.";
} }
leaf t{
type uint8;
units "milliseconds";
description
"Time expressed in milliseconds
that message will be (is) forwarded.
mpl-seeds/buffered-messages/t <
mpl-seeds/buffered-messages/I";
}
leaf t{
type uint8;
description
" Time expressed in SE-LIFETIME units
that message will be (is) forwarded";
}
} // list seed-timers } // list seed-timers
} // list MPL-seeds } // list MPL-seeds
} // augment
} // module ietf-yang-mpl-seeds } // module ietf-yang-mpl-seeds
<CODE ENDS> <CODE ENDS>
4.4. yang-mpl-statistics module 4.4. yang-mpl-statistics module
This module specifies the operation of the MPL forwarder expressed in This module specifies the operation of the MPL forwarder expressed in
number of messages and copies. The values are acquired by the client number of messages and copies. The values are acquired by the client
and set by the server. Statistics are specified per seed and domain. and set by the server. Statistics are specified per seed and domain.
In constrained devices there will be only one domain, but probably In constrained devices there will be only one domain, but probably
multiple seeds. multiple seeds.
The parameter k determines how many copies of a message can be The parameter k determines how many copies of a message can be
forwarded. The counters c-too-high, nr-forwarded, and nr-not- forwarded. The counters c-too-high, nr-forwarded, and nr-not-
forwarded give insight in the consequences of the current value of k. 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 The other counters give insight in the loss of messages caused by the
medium or forwarding delays. The inconsistent/consistent counters medium or forwarding delays. The inconsistent/consistent counters
indicate when consistent or inconsistent messages were received indicate when consistent or inconsistent messages were received
skipping to change at page 19, line 22 skipping to change at page 23, line 17
The parameter k determines how many copies of a message can be The parameter k determines how many copies of a message can be
forwarded. The counters c-too-high, nr-forwarded, and nr-not- forwarded. The counters c-too-high, nr-forwarded, and nr-not-
forwarded give insight in the consequences of the current value of k. 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 The other counters give insight in the loss of messages caused by the
medium or forwarding delays. The inconsistent/consistent counters medium or forwarding delays. The inconsistent/consistent counters
indicate when consistent or inconsistent messages were received indicate when consistent or inconsistent messages were received
according to the definition of consistent in [RFC7731]. according to the definition of consistent in [RFC7731].
<CODE BEGINS>file "ietf-yang-mpl-statistics@2018-03-29.yang" The module augments the ietf-yang-mpl-domain module.
<CODE BEGINS>file "ietf-yang-mpl-statistics@2018-07-06.yang"
module ietf-yang-mpl-statistics { module ietf-yang-mpl-statistics {
yang-version 1.1; yang-version 1.1;
namespace namespace
"urn:ietf:params:xml:ns:yang:ietf-yang-mpl-statistics"; "urn:ietf:params:xml:ns:yang:ietf-yang-mpl-statistics";
prefix mpl; prefix "mplst";
import ietf-yang-mpl-domain{
prefix "mpl";
}
organization organization
"IETF ROLL (Routing over Low power and lossy networks) "IETF ROLL (Routing over Low power and lossy networks)
Working Group"; Working Group";
contact contact
"WG Web: http://tools.ietf.org/wg/roll/ "WG Web: http://tools.ietf.org/wg/roll/
WG List: mailto:roll@ietf.org WG List: mailto:roll@ietf.org
WG Chair: Peter van der Stok WG Chair: Peter van der Stok
mailto:consultancy@vanderstok.org mailto:consultancy@vanderstok.org
WG Chair: Ines Robles WG Chair: Ines Robles
mailto:maria.ines.robles@ericsson.com mailto:maria.ines.robles@ericsson.com
Editor: Peter van der Stok Editor: Peter van der Stok
mailto:consultancy@vanderstok.org"; mailto:consultancy@vanderstok.org";
description description
"This module contains information about the operation "This module contains information about the operation
of the MPL protocol. of the MPL protocol.
Copyright (c) 2016 IETF Trust and the persons identified as Copyright (c) 2018 IETF Trust and the persons identified as
authors of the code. All rights reserved. authors of the code. All rights reserved.
Redistribution and use in source and binary forms, with or Redistribution and use in source and binary forms, with or
without modification, is permitted pursuant to, and subject without modification, is permitted pursuant to, and subject
to the license terms contained in, the Simplified BSD License to the license terms contained in, the Simplified BSD License
set forth in Section 4.c of the IETF Trust's Legal Provisions set forth in Section 4.c of the IETF Trust's Legal Provisions
Relating to IETF Documents Relating to IETF Documents
(http://trustee.ietf.org/license-info). (http://trustee.ietf.org/license-info).
This version of this YANG module is part of RFC XXXX; see This version of this YANG module is part of RFC XXXX; see
the RFC itself for full legal notices."; the RFC itself for full legal notices.";
revision "2018-03-29" { revision "2018-07-06" {
description "Initial revision."; description "revision 3";
reference reference
"I-D:draft-ietf-roll-mpl-yang: A YANG model for Multicast "I-D:draft-ietf-roll-mpl-yang: A YANG model for Multicast
Protocol for Low power and lossy Networks (MPL)"; Protocol for Low power and lossy Networks (MPL)";
} }
augment "/mpl:domain" {
description "additional MPL message statistics to MPL
domains";
list mpl-statistics{ list mpl-statistics{
key "seedID domainID"; key "seedID domainID";
config false; config false;
description description
"List describes performance statistics integrated over "List describes performance statistics integrated over
the messages identified by seed and domain identifiers. A the messages identified by seed and domain identifiers.
forwarder can receive and forward multiple copies of a message A forwarder can receive and forward multiple copies of
uniquely identified by seqno, domain, and seed."; a message uniquely identified by seqno, domain, and
seed.";
leaf seedID{ leaf seedID{
type uint64; type uint64;
description description
"value uniquely identifies the MPL Seed within a MPL "value uniquely identifies the MPL Seed within a MPL
domain."; domain.";
} }
leaf domainID{ leaf domainID{
type uint16; type uint16;
description description
"together with seed-ID uniquely identifies buffer set."; "together with seed-ID uniquely identifies buffer
set.";
} }
leaf c-too-high { leaf c-too-high {
type uint64; type uint64;
description description
"Number of times that a copy was not forwarded "Number of times that a copy was not forwarded
because c > k."; because c > k.";
} }
leaf nr-forwarded { leaf nr-forwarded {
type uint64; type uint64;
description description
"number of times copies are forwarded, while c <= k."; "number of times copies are forwarded,
while c <= k.";
} }
leaf nr-of-messages-received{ leaf nr-of-messages-received{
type uint64; type uint64;
description description
"number of messages received, "number of messages received,
must be smaller than or equal to seqno."; must be smaller than or equal to seqno.";
} }
leaf nr-of-copies-received{ leaf nr-of-messages-forwarded{
type uint64; type uint64;
description description
"total number of message copies received."; "number of forwarded messages, must be smaller
than or equal to nr-of-messages-received.";
} }
leaf nr-of-messages-forwarded{ leaf nr-of-copies-received{
type uint64; type uint64;
description description
"number of forwarded messages, must be smaller than or "total number of message copies received.";
equal to nr-of-messages-received.";
} }
leaf nr-of-copies-forwarded{ leaf nr-of-copies-forwarded{
type uint64; type uint64;
description description
"number of forwarded copies, can be larger than "number of forwarded copies, can be larger than
number-of-copies-received."; number-of-copies-received.";
} }
leaf nr-of-refused-copies{
leaf nr-of-refused{ type uint64;
type uint64; description
description "number of refused copies because seqno too small.";
"number of refused copies because seqno too small.";
} }
leaf nr-of-missed{
type uint64; leaf nr-of-missed-messages{
description type uint64;
"number of messages that were not received description
is equal to the number of empty message buffers "number of messages that were not received
seqno < min-seqno."; because seqno < min-seqno.";
} }
leaf nr-of-notreceived{ leaf nr-of-notreceived-messages{
type uint64; type uint64;
description description
"number of messages that were not received "number of messages that were not received
according to control message."; according to control message.";
} }
leaf nr-of-inconsistent-data{ leaf nr-of-inconsistent-data{
type uint64; type uint64;
description description
"number of inconsistent data messages."; "number of inconsistent data messages.";
} }
leaf nr-of-consistent-data{ leaf nr-of-consistent-data{
type uint64; type uint64;
description description
"number of consistent data messages."; "number of consistent data messages.";
} }
leaf nr-of-consistent-control{ leaf nr-of-consistent-control{
type uint64; type uint64;
description description
"number of consistent control messages."; "number of consistent control messages.";
} }
leaf nr-of-inconsistent-control{ leaf nr-of-inconsistent-control{
type uint64; type uint64;
description description
"number of inconsistent control messages."; "number of inconsistent control messages.";
} }
leaf statistics-interval{ leaf statistics-interval{
type uint64; type uint64;
description description
"Interval, expressed in seconds, during which "Interval, expressed in seconds, during which
the statistics are collected."; the statistics are collected.";
} }
action reset-statistics{ action reset-buffer-statistics{
description description
"set all statistics counters and "set all statistics counters and
statistics-interval to zero."; statistics-interval of buffer[seedID domainID}
to zero.";
} }
} // list mpl statistics } // list mpl statistics
action reset-all-statistics{
description
"set all statistics counters and
statistics-interval of all buffers to zero.";
}
} // augment
} // module ietf-yang-mpl-statistics } // module ietf-yang-mpl-statistics
<CODE ENDS> <CODE ENDS>
5. IANA Considerations 5. IANA Considerations
This specification has no consequences for IANA. Registration of four YANG modules and corresponding SID files in the
"YANG module assignment" registry is required.
module: ietf-yang-mpl-domain
.yang file: ietf-yang-mpl-domain@2018-07-06.yang
.sid file: ietf-yang-mpl-domain@2018-07-06.sid
module: ietf-yang-mpl-ops
.yang file: ietf-yang-mpl-ops@2018-07-06.yang
.sid file: ietf-yang-mpl-ops@2018-07-06.sid
module: ietf-yang-mpl-seeds
.yang file: ietf-yang-mpl-seeds@2018-07-06.yang
.sid file: ietf-yang-mpl-seeds@2018-07-06.sid
module: ietf-yang-mpl-statistics
.yang file: ietf-yang-mpl-statistics@2018-07-06.yang
.sid file: ietf-yang-mpl-statistics@2018-07-06.sid
6. Acknowledgements 6. Acknowledgements
Andy Bierman has commented on the use of YANG for mpl. YANG doctors Andy Bierman has commented on the use of YANG for mpl. Many thanks
pointed out a wrong use of config. to Radi Krejci for yang review.
7. Changelog 7. Changelog
Changes from version 01 to version 02
o Added NMDA section.
o added module explanation in model section
o IANA considerations added
Changes from version 00 to version 01 Changes from version 00 to version 01
o config false in "statistics" and "seeds" modules o config false in "statistics" and "seeds" modules
o separated into 4 modules o separated into 4 modules
o inserted choice in domain modules o inserted choice in domain modules
o more explanatory text o more explanatory text
o renamed some parameters o renamed some parameters
o Introduced section per module o Introduced section per module
o reset of statistics is added o reset of statistics is added
Version ietf-00 copied from version vanderstok-02
8. References 8. References
8.1. Normative References 8.1. Normative References
[I-D.ietf-core-sid]
Veillette, M. and A. Pelov, "YANG Schema Item iDentifier
(SID)", draft-ietf-core-sid-04 (work in progress), June
2018.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997, DOI 10.17487/RFC2119, March 1997,
<https://www.rfc-editor.org/info/rfc2119>. <https://www.rfc-editor.org/info/rfc2119>.
[RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for
the Network Configuration Protocol (NETCONF)", RFC 6020,
DOI 10.17487/RFC6020, October 2010,
<https://www.rfc-editor.org/info/rfc6020>.
[RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed.,
and A. Bierman, Ed., "Network Configuration Protocol and A. Bierman, Ed., "Network Configuration Protocol
(NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011,
<https://www.rfc-editor.org/info/rfc6241>. <https://www.rfc-editor.org/info/rfc6241>.
[RFC7223] Bjorklund, M., "A YANG Data Model for Interface
Management", RFC 7223, DOI 10.17487/RFC7223, May 2014,
<https://www.rfc-editor.org/info/rfc7223>.
[RFC7731] Hui, J. and R. Kelsey, "Multicast Protocol for Low-Power [RFC7731] Hui, J. and R. Kelsey, "Multicast Protocol for Low-Power
and Lossy Networks (MPL)", RFC 7731, DOI 10.17487/RFC7731, and Lossy Networks (MPL)", RFC 7731, DOI 10.17487/RFC7731,
February 2016, <https://www.rfc-editor.org/info/rfc7731>. February 2016, <https://www.rfc-editor.org/info/rfc7731>.
[RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language",
RFC 7950, DOI 10.17487/RFC7950, August 2016,
<https://www.rfc-editor.org/info/rfc7950>.
[RFC8343] Bjorklund, M., "A YANG Data Model for Interface
Management", RFC 8343, DOI 10.17487/RFC8343, March 2018,
<https://www.rfc-editor.org/info/rfc8343>.
8.2. Informative References 8.2. Informative References
[I-D.ietf-netmod-yang-tree-diagrams]
Bjorklund, M. and L. Berger, "YANG Tree Diagrams", draft-
ietf-netmod-yang-tree-diagrams-06 (work in progress),
February 2018.
[RFC6206] Levis, P., Clausen, T., Hui, J., Gnawali, O., and J. Ko, [RFC6206] Levis, P., Clausen, T., Hui, J., Gnawali, O., and J. Ko,
"The Trickle Algorithm", RFC 6206, DOI 10.17487/RFC6206, "The Trickle Algorithm", RFC 6206, DOI 10.17487/RFC6206,
March 2011, <https://www.rfc-editor.org/info/rfc6206>. March 2011, <https://www.rfc-editor.org/info/rfc6206>.
[RFC7390] Rahman, A., Ed. and E. Dijk, Ed., "Group Communication for
the Constrained Application Protocol (CoAP)", RFC 7390,
DOI 10.17487/RFC7390, October 2014,
<https://www.rfc-editor.org/info/rfc7390>.
[RFC7774] Doi, Y. and M. Gillmore, "Multicast Protocol for Low-Power [RFC7774] Doi, Y. and M. Gillmore, "Multicast Protocol for Low-Power
and Lossy Networks (MPL) Parameter Configuration Option and Lossy Networks (MPL) Parameter Configuration Option
for DHCPv6", RFC 7774, DOI 10.17487/RFC7774, March 2016, for DHCPv6", RFC 7774, DOI 10.17487/RFC7774, March 2016,
<https://www.rfc-editor.org/info/rfc7774>. <https://www.rfc-editor.org/info/rfc7774>.
[RFC8340] Bjorklund, M. and L. Berger, Ed., "YANG Tree Diagrams",
BCP 215, RFC 8340, DOI 10.17487/RFC8340, March 2018,
<https://www.rfc-editor.org/info/rfc8340>.
[RFC8342] Bjorklund, M., Schoenwaelder, J., Shafer, P., Watsen, K.,
and R. Wilton, "Network Management Datastore Architecture
(NMDA)", RFC 8342, DOI 10.17487/RFC8342, March 2018,
<https://www.rfc-editor.org/info/rfc8342>.
Author's Address Author's Address
Peter van der Stok (editor) Peter van der Stok (editor)
consultant consultant
Phone: +31-492474673 (Netherlands), +33-966015248 (France) Phone: +31-492474673 (Netherlands), +33-966015248 (France)
Email: consultancy@vanderstok.org Email: consultancy@vanderstok.org
URI: www.vanderstok.org URI: www.vanderstok.org
 End of changes. 150 change blocks. 
488 lines changed or deleted 704 lines changed or added

This html diff was produced by rfcdiff 1.47. The latest version is available from http://tools.ietf.org/tools/rfcdiff/