roll                                                P. van der Stok, Ed.
Internet-Draft                                                consultant
Intended status: Standards Track                          March 30,                           July 15, 2018
Expires: October 1, 2018 January 16, 2019

  A YANG model for Multicast Protocol for Low power and lossy Networks
                                 (MPL)
                      draft-ietf-roll-mpl-yang-01
                      draft-ietf-roll-mpl-yang-02

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. January 16, 2019.

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
   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
     2.1.  NMDA considerations . . . . . . . . . . . . . . . . . . .   4
     2.2.  MPL-domain tree . . . . . . . . . . . . . . . . . . . . .   4
     2.3.  MPL-ops tree  . . . . . . . . . . . . . . . . . . . . . .   5
     2.4.  MPL-seeds tree  . . . . . . . . . . . . . . . . . . . . .   5
     2.5.  MPL-statistics tree . . . . . . . . . . . . . . . . . . .   6
   3.  SID file generation . . . . . . . . . . . . . . . . . . . . .   5   7
     3.1.  mpl-domain  . . . . . . . . . . . . . . . . . . . . . . .   7
     3.2.  mpl-ops . . . . . . . . . . . . . . . . . . . . . . . . .   7
     3.3.  mpl-seeds . . . . . . . . . . . . . . . . . . . . . . . .   8
     3.4.  mpl-statistics  . . . . . . . . . . . . . . . . . . . . .   9
   4.  yang-mpl modules  . . . . . . . . . . . . . . . . . . . . . .   8  11
     4.1.  yang-mpl-domain module  . . . . . . . . . . . . . . . . .   8  11
     4.2.  yang-mpl-ops module . . . . . . . . . . . . . . . . . . .  11  14
     4.3.  yang-mpl-seeds module . . . . . . . . . . . . . . . . . .  15  18
     4.4.  yang-mpl-statistics module  . . . . . . . . . . . . . . .  19  22
   5.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .  23  27
   6.  Acknowledgements  . . . . . . . . . . . . . . . . . . . . . .  23  28
   7.  Changelog . . . . . . . . . . . . . . . . . . . . . . . . . .  23  28
   8.  References  . . . . . . . . . . . . . . . . . . . . . . . . .  23  29
     8.1.  Normative References  . . . . . . . . . . . . . . . . . .  23  29
     8.2.  Informative References  . . . . . . . . . . . . . . . . .  24  29
   Author's Address  . . . . . . . . . . . . . . . . . . . . . . . .  24  30

1.  Introduction

   This document defines a YANG [RFC6020] [RFC7950] 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

   o  state data

   The following terms are defined in [RFC6020] [RFC7950] and are not redefined
   here:

   o  data model

   o  data node

   The terminology for describing YANG data models is found in
   [RFC6020].
   [RFC7950].

   Terms like message, domain, seed, I, k, c are defined in [RFC7731].

   Mutiple

   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

   A simplified graphical

   YANG tree diagrams provide a concise representation of the data model is used in
   the a YANG modules specified module,
   and SHOULD be included to help readers understand YANG module
   structure.  Guidelines on tree diagrams can be found in this document.  The meaning Section 3 of the
   symbols in these
   [I-D.ietf-netmod-yang-tree-diagrams].  Tree 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. used in this
   document follow the notation defined in [RFC8340].

2.  MPL model

   This document defines the YANG module "ietf-yang-mpl", modules "ietf-yang-mpl-xxx", which
   specifies
   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) a "mpl-domain", (2) "mpl-op", (3) "mpl-seeds", and
   (4) "mpl-statistics".  The four models are discussed below
   accompanied by their trees.

2.1.  NMDA considerations

   The Network Management Data Architecture (NMDA) is specified in
   [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].

   Consequently, The contents of the "candidate", "startup", "running",
   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.

   The modules ietf-yang-mpl-ops, ietf-yang-mpl-seeds, and ietf-yang-
   mpl-statistics "augment" ietf-yang-mpl-domain.

2.2.  MPL-domain tree

   The "mpl-domain" part that module describes the MPL-
   domains MPL-domains and associated
   Multicast addresses and the interfaces on which the Multicast
   addresses are enabled, (2) a "mpl-op" part that
   describes the parameters settings per seed, (3) a "mpl-seeds" part
   that describes the MPL buffer contents and the Trickle timer values,
   and (4) a "mpl-statistics" part that describes the number of lost and
   correctly forwarded messages. enabled.  The data model, divided in four
   modules, has the following structure model allow for MPL a short single MPL-domain
   configuration per node: or a multi-domain configuration that needs more storage
   space.

   module: ietf-yang-mpl-domain
       +--rw domain
          +--rw (single)? (multiple)?
             +--:(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

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 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

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
     augment /mpl:domain:
       +--rw SE_LIFETIME?   uint16
       +--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
             +--ro c?       uint8
             +--ro e?       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
     augment /mpl:domain:
       +--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? nr-of-messages-forwarded?     uint64
       |  +--ro nr-of-messages-forwarded? nr-of-copies-received?        uint64
       |  +--ro nr-of-copies-forwarded?       uint64
       |  +--ro nr-of-refused? nr-of-refused-copies?         uint64
       |  +--ro nr-of-missed? nr-of-missed-messages?        uint64
       |  +--ro nr-of-notreceived? nr-of-notreceived-messages?   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 reset-buffer-statistics
       +---x reset-all-statistics

3.  SID file generation

   SID

   YANG Schema Item iDentifiers (SID) are allocated to replace the
   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:

3.1.  mpl-domain

   Module : ietf-yang-mpl-domain
   Revision : 2018-07-06

   SID        Assigned to
   ---------  --------------------------------------------------     Namespace       YANG identifier
   1004000 module  ietf-yang-mpl-domain
   1004001 data    /ietf-yang-mpl-domain:domain
   1004002 data    /ietf-yang-mpl-domain:domain/mpl-domain
   1004003 data    /ietf-yang-mpl-domain:domain/mpl-domain
                                         /addresses
   1004004 data    /ietf-yang-mpl-domain:domain/mpl-domain
                                         /addresses/MCaddress
   1004005 data    /ietf-yang-mpl-domain:domain/mpl-domain
                                         /addresses/interfaces
   1004006 data    /ietf-yang-mpl-domain:domain/mpl-domain
                                         /domains
   1004007 data    /ietf-yang-mpl-domain:domain/mpl-domain
                                         /domains/MClist
   1004008 data    /ietf-yang-mpl-domain:domain/mpl-domain
                                         /domains/domainID
   1004009 data    /ietf-yang-mpl-domain:domain/mpl-single
   1004010 data    /ietf-yang-mpl-domain:domain/mpl-single
                                         /MCaddresses

3.2.  mpl-ops
   Module : ietf-yang-mpl-ops
   Revision : 2018-07-06

   SID     Namespace       YANG identifier
   1004050 module ietf-yang-mpl-domain  ietf-yang-mpl-ops
   1004051 data    /ietf-yang-mpl-domain:domain
                                      /ietf-yang-mpl-ops:mpl-ops
   1004052 data /ietf-yang-mpl-domain:domain/mpl-domain    /ietf-yang-mpl-domain:domain/ietf-yang-mpl-ops:
              mpl-ops/PROACTIVE_FORWARDING
   1004053 data /ietf-yang-mpl-domain:domain/mpl-domain/addresses    /ietf-yang-mpl-domain:domain/ietf-yang-mpl-ops:
              mpl-ops/SEED_SET_ENTRY_LIFETIME
   1004054 data /ietf-yang-mpl-domain:domain/mpl-domain
                                               /addresses/MCaddress    /ietf-yang-mpl-domain:domain/ietf-yang-mpl-ops:
              mpl-ops/mpl-parameter
   1004055 data /ietf-yang-mpl-domain:domain/mpl-domain
                                               /addresses/interfaces    /ietf-yang-mpl-domain:domain/ietf-yang-mpl-ops:
              mpl-ops/mpl-parameter/CONTROL_MESSAGE_IMAX
   1004056 data /ietf-yang-mpl-domain:domain/mpl-domain/domains    /ietf-yang-mpl-domain:domain/ietf-yang-mpl-ops:
              mpl-ops/mpl-parameter/CONTROL_MESSAGE_IMIN
   1004057 data /ietf-yang-mpl-domain:domain/mpl-domain
                                               /domains/MClist    /ietf-yang-mpl-domain:domain/ietf-yang-mpl-ops:
              mpl-ops/mpl-parameter/CONTROL_MESSAGE_K
   1004058 data /ietf-yang-mpl-domain:domain/mpl-domain
                                               /domains/domainID    /ietf-yang-mpl-domain:domain/ietf-yang-mpl-ops:
            mpl-ops/mpl-parameter/CONTROL_MESSAGE_TIMER_EXPIRATIONS
   1004059 data /ietf-yang-mpl-domain:domain/mpl-single    /ietf-yang-mpl-domain:domain/ietf-yang-mpl-ops:
              mpl-ops/mpl-parameter/DATA_MESSAGE_IMAX
   1004060 data /ietf-yang-mpl-domain:domain/mpl-single
                                               /MCaddresses

   File ietf-yang-mpl-domain@2018-03-29.sid created
   Number of SIDs available    /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

3.3.  mpl-seeds
Module : 50
   Number of SIDs used ietf-yang-mpl-seeds
Revision : 11 2018-07-06

SID        Assigned to
   ---------  --------------------------------------------------     Namespace       YANG identifier
1004100 module ietf-yang-mpl-ops  ietf-yang-mpl-seeds
1004101 data /ietf-yang-mpl-ops:mpl-ops    /ietf-yang-mpl-domain:domain/ietf-yang-mpl-seeds:SE_LIFETIME
1004102 data /ietf-yang-mpl-ops:mpl-ops/PROACTIVE_FORWARDING    /ietf-yang-mpl-domain:domain
                             /ietf-yang-mpl-seeds:mpl-seeds
1004103 data /ietf-yang-mpl-ops:mpl-ops
                                          /SEED_SET_ENTRY_LIFETIME    /ietf-yang-mpl-domain:domain/ietf-yang-mpl-seeds:
           mpl-seeds/buffered-messages
1004104 data /ietf-yang-mpl-ops:mpl-ops/SE_LIFETIME    /ietf-yang-mpl-domain:domain/ietf-yang-mpl-seeds:
           mpl-seeds/buffered-messages/I
1004105 data /ietf-yang-mpl-ops:mpl-ops/mpl-parameter    /ietf-yang-mpl-domain:domain/ietf-yang-mpl-seeds:
           mpl-seeds/buffered-messages/c
1004106 data /ietf-yang-mpl-ops:mpl-ops/mpl-parameter
                                          /CONTROL_MESSAGE_IMAX    /ietf-yang-mpl-domain:domain/ietf-yang-mpl-seeds:
           mpl-seeds/buffered-messages/e
1004107 data /ietf-yang-mpl-ops:mpl-ops/mpl-parameter
                                          /CONTROL_MESSAGE_IMIN    /ietf-yang-mpl-domain:domain/ietf-yang-mpl-seeds:
           mpl-seeds/buffered-messages/seqno
1004108 data /ietf-yang-mpl-ops:mpl-ops/mpl-parameter
                                          /CONTROL_MESSAGE_K    /ietf-yang-mpl-domain:domain/ietf-yang-mpl-seeds:
           mpl-seeds/buffered-messages/t
1004109 data /ietf-yang-mpl-ops:mpl-ops/mpl-parameter
                                 /CONTROL_MESSAGE_TIMER_EXPIRATIONS    /ietf-yang-mpl-domain:domain/ietf-yang-mpl-seeds:
           mpl-seeds/control-number
1004110 data /ietf-yang-mpl-ops:mpl-ops/mpl-parameter
                                          /DATA_MESSAGE_IMAX    /ietf-yang-mpl-domain:domain/ietf-yang-mpl-seeds:
           mpl-seeds/data-number
1004111 data /ietf-yang-mpl-ops:mpl-ops/mpl-parameter
                                          /DATA_MESSAGE_IMIN    /ietf-yang-mpl-domain:domain/ietf-yang-mpl-seeds:
           mpl-seeds/domainID
1004112 data /ietf-yang-mpl-ops:mpl-ops/mpl-parameter
                                          /DATA_MESSAGE_K    /ietf-yang-mpl-domain:domain/ietf-yang-mpl-seeds:
           mpl-seeds/generate-seqno
1004113 data /ietf-yang-mpl-ops:mpl-ops/mpl-parameter
                                    /DATA_MESSAGE_TIMER_EXPIRATIONS    /ietf-yang-mpl-domain:domain/ietf-yang-mpl-seeds:
           mpl-seeds/life-time
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    /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

3.4.  mpl-statistics

   Module : 50
   Number of SIDs used ietf-yang-mpl-statistics
   Revision : 15 2018-07-06

   SID        Assigned to
   ---------  --------------------------------------------------     Namespace       YANG identifier
   1004150 module ietf-yang-mpl-seeds  ietf-yang-mpl-statistics
   1004151 data /ietf-yang-mpl-seeds:mpl-seeds    /ietf-yang-mpl-domain:domain/
              ietf-yang-mpl-statistics:mpl-statistics
   1004152 data /ietf-yang-mpl-seeds:mpl-seeds/buffered-messages    /ietf-yang-mpl-domain:domain/
       ietf-yang-mpl-statistics:mpl-statistics/c-too-high
   1004153 data /ietf-yang-mpl-seeds:mpl-seeds
                                        /buffered-messages/I    /ietf-yang-mpl-domain:domain/
        ietf-yang-mpl-statistics:mpl-statistics/domainID
   1004154 data /ietf-yang-mpl-seeds:mpl-seeds
                                        /buffered-messages/c    /ietf-yang-mpl-domain:domain/
        ietf-yang-mpl-statistics:mpl-statistics/nr-forwarded
   1004155 data /ietf-yang-mpl-seeds:mpl-seeds
                                        /buffered-messages/e    /ietf-yang-mpl-domain:domain/
        ietf-yang-mpl-statistics:mpl-statistics
                                 /nr-of-consistent-control
   1004156 data /ietf-yang-mpl-seeds:mpl-seeds
                                        /buffered-messages/seqno    /ietf-yang-mpl-domain:domain/
         ietf-yang-mpl-statistics:mpl-statistics
                                 /nr-of-consistent-data
   1004157 data /ietf-yang-mpl-seeds:mpl-seeds
                                        /buffered-messages/t    /ietf-yang-mpl-domain:domain/
       ietf-yang-mpl-statistics:mpl-statistics
                                 /nr-of-copies-forwarded
   1004158 data /ietf-yang-mpl-seeds:mpl-seeds/control-number    /ietf-yang-mpl-domain:domain/
       ietf-yang-mpl-statistics:mpl-statistics
                                 /nr-of-copies-received
   1004159 data /ietf-yang-mpl-seeds:mpl-seeds/data-number    /ietf-yang-mpl-domain:domain/
       ietf-yang-mpl-statistics:mpl-statistics
                                 /nr-of-inconsistent-control
   1004160 data /ietf-yang-mpl-seeds:mpl-seeds/domainID    /ietf-yang-mpl-domain:domain/
       ietf-yang-mpl-statistics:mpl-statistics
                                 /nr-of-inconsistent-data
   1004161 data /ietf-yang-mpl-seeds:mpl-seeds/generate-seqno    /ietf-yang-mpl-domain:domain/
       ietf-yang-mpl-statistics:mpl-statistics
                                 /nr-of-messages-forwarded
   1004162 data /ietf-yang-mpl-seeds:mpl-seeds/life-time    /ietf-yang-mpl-domain:domain/
       ietf-yang-mpl-statistics:mpl-statistics
                                 /nr-of-messages-received
   1004163 data /ietf-yang-mpl-seeds:mpl-seeds/local    /ietf-yang-mpl-domain:domain/
       ietf-yang-mpl-statistics:mpl-statistics
                                 /nr-of-missed-messages
   1004164 data /ietf-yang-mpl-seeds:mpl-seeds/min-seqno    /ietf-yang-mpl-domain:domain/
       ietf-yang-mpl-statistics:mpl-statistics
                                 /nr-of-notreceived-messages
   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    /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-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    /ietf-yang-mpl-domain:domain/
        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 the four yang modules.  The model is modules are 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]. [RFC8343].

   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 that:

      the model specifies 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.

      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-03-29.yang" "ietf-yang-mpl-domain@2018-07-06.yang"

module ietf-yang-mpl-domain {

  yang-version 1.1;

  namespace
      "urn:ietf:params:xml:ns:yang:ietf-yang-mpl-domain";

  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 2018 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" "2018-07-06" {
      description "Initial revision."; "revision 3";
      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.";

   choice statement
         between single domain/interface and multiple
         domains and interfaces.";

   choice multiple {
     description
        "A choice between single domain/interface and for large devices with 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]."; Appendix A of [RFC8343].";
         }
       }   // addresses list
     }   // container mpl-domain
     container mpl-single {
        description
         "For small
           "A choice for constrained devices  with a 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

<CODE ENDS>

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.  The
   module augments the ietf-yang-mpl-domain module.

   <CODE BEGINS>file "ietf-yang-mpl-ops@2018-03-29.yang" "ietf-yang-mpl-ops@2018-07-06.yang"

   module ietf-yang-mpl-ops {

     yang-version 1.1;

     namespace
         "urn:ietf:params:xml:ns:yang:ietf-yang-mpl-ops";
     prefix mpl; "mplo";

     import ietf-yang-mpl-domain{
        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";

     description
        "This module contains information about the operation of
         the MPL protocol.

        Copyright (c) 2016 2018 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" "2018-07-06" {
         description "Initial revision."; "revision 3";
         reference
           "I-D:draft-ietf-roll-mpl-yang: A YANG model for Multicast
            Protocol for Low power and lossy Networks (MPL)";
       }

       augment "/mpl:domain" {
          description
             "additional MPL server settings to MPL domains";

       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.";
         }
         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."; time.
               Specified in section 5.4 of [RFC7731]";
         }

         leaf SEED_SET_ENTRY_LIFETIME {
            type uint64;
            units "seconds";
            default 1800;
            description
               "The value indicates the minimum lifetime for
                an entry in the Seed set expressed in seconds.
                Default value is 30 minutes."; minutes.
                Specified in section 5.4 of [RFC7731]";
          }

          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], interval
                    for MPL Data Message transmissions."; 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{
                 type uint16;
                 description
                    "The maximum Trickle timer interval, as defined in
                [RFC6206], interval
                     for MPL Data Message transmissions."; 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{
                 type uint16;
                 default 1;
                 description
                    "The redundancy constant, as defined in [RFC6206], constant
                     for MPL Data Message transmissions."; transmissions.
                     Specified in section 5.4 of [RFC7731]";
              }

              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."; Message.
                      Specified in section 5.4 of [RFC7731]";
               }

               leaf CONTROL_MESSAGE_IMIN{
                  type uint16;
                  description
                     "The minimum Trickle timer interval, as defined
                in [RFC6206], interval
                      for MPL Control Message
                transmissions."; transmissions.
                      Specified in section 5.4 of [RFC7731]";
               }

               leaf CONTROL_MESSAGE_IMAX{
                  type uint16;
                  description
                     "The maximum Trickle timer interval, as defined
               in [RFC6206], interval
                      for MPL Control Message
                transmissions."; transmissions.
                      Specified in section 5.4 of [RFC7731]";
               }

               leaf CONTROL_MESSAGE_K{
                  type uint16;
                  default 1;
                  description
                     "The redundancy constant, as defined in [RFC6206], constant
                      for MPL Control Message transmissions."; 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.";
                      transmissions.
                      Specified in section 5.4 of [RFC7731]";
               }

          }  // list MPL-parameter
        }  // container MPL-ops
      }  // augment ietf-yang-mpl-domain
   } // module ietf-yang-mpl-ops

   <CODE ENDS>

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.

   The module augments the ietf-yang-mpl-domain module.

   <CODE BEGINS>file "ietf-yang-mpl-seeds@2018-03-29.yang" "ietf-yang-mpl-seeds@2018-07-06.yang"

   module ietf-yang-mpl-seeds {

     yang-version 1.1;
     namespace
         "urn:ietf:params:xml:ns:yang:ietf-yang-mpl-seeds";

     prefix mpl; "mplse";

     import ietf-yang-mpl-domain{
        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";

     description
        "This module contains information about the operation
         of the MPL protocol.

        Copyright (c) 2016 2018 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" "2018-07-06" {
         description "Initial revision."; "revision 3";
         reference
           "I-D:draft-ietf-roll-mpl-yang: A YANG model for Multicast

    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{
           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.";
         }

         leaf domainID{
            type uint16;
            description
               "together with seedID uniquely identifies buffer
                set.";
         }

         leaf local {
            type boolean;
            description
               "When local == TRUE, true, seed originated in this
                forwarder.
             WHEN
                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;
           units   "milliseconds";
           description
             " Minimum
              "Minimum remaining lifetime of the seed entry in
              SE_LIFETIME units.";
               milliseconds.";
        }

        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;
            description
             " status
               "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;
               units  "milliseconds";
               description
                  "Current Trickle timer interval size in SE-LIFETIME
   units.";
                   milliseconds.
                   mpl-ops/mpl-parameter/DATA_MESSAGE_IMIN <=
                   mpl-seeds/buffered-messages/I <=
                   mpl-ops/mpl-parameter/DATA_MESSAGE_IMAX";
            }

            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;
               units  "milliseconds";
               description
               " Time
                  "Time expressed in SE-LIFETIME units milliseconds
                   that message will be (is) forwarded"; forwarded.
                   mpl-seeds/buffered-messages/t <
                   mpl-seeds/buffered-messages/I";
            }

        } // list seed-timers
      } // list MPL-seeds
     } // augment
   } // module ietf-yang-mpl-seeds

   <CODE ENDS>

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].

   The module augments the ietf-yang-mpl-domain module.

   <CODE BEGINS>file "ietf-yang-mpl-statistics@2018-03-29.yang" "ietf-yang-mpl-statistics@2018-07-06.yang"

   module ietf-yang-mpl-statistics {

     yang-version 1.1;

     namespace
         "urn:ietf:params:xml:ns:yang:ietf-yang-mpl-statistics";

     prefix mpl; "mplst";

     import ietf-yang-mpl-domain{
        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";

     description
       "This module contains information about the operation
        of the MPL protocol.

        Copyright (c) 2016 2018 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" "2018-07-06" {
         description "Initial revision."; "revision 3";
         reference
           "I-D:draft-ietf-roll-mpl-yang: A YANG model for Multicast
    Protocol for Low power and lossy Networks (MPL)";
       }

    augment "/mpl:domain" {
          description "additional MPL message statistics to MPL
          domains";

        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
               "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-received{
            type uint64;
            description
               "total number of message copies 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{ nr-of-refused-copies{
            type uint64;
            description
               "number of refused copies because seqno too small.";
         }

         leaf nr-of-missed{ nr-of-missed-messages{
            type uint64;
            description
               "number of messages that were not received
                is equal to the number of empty message buffers
                because seqno < min-seqno.";
         }

         leaf nr-of-notreceived{ nr-of-notreceived-messages{
            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{ reset-buffer-statistics{
            description
               "set all statistics counters and
                statistics-interval of buffer[seedID domainID}
                to zero.";
         }

      }  // 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

   <CODE ENDS>

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

   Andy Bierman has commented on the use of YANG for mpl.  YANG doctors
   pointed out a wrong use of config.  Many thanks
   to Radi Krejci for yang review.

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

   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

   Version ietf-00 copied from version vanderstok-02

8.  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
              Requirement Levels", BCP 14, RFC 2119,
              DOI 10.17487/RFC2119, March 1997,
              <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.,
              and A. Bierman, Ed., "Network Configuration Protocol
              (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011,
              <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
              and Lossy Networks (MPL)", RFC 7731, DOI 10.17487/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

   [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,
              "The Trickle Algorithm", RFC 6206, DOI 10.17487/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
              and Lossy Networks (MPL) Parameter Configuration Option
              for DHCPv6", RFC 7774, DOI 10.17487/RFC7774, March 2016,
              <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

   Peter van der Stok (editor)
   consultant

   Phone: +31-492474673 (Netherlands), +33-966015248 (France)
   Email: consultancy@vanderstok.org
   URI:   www.vanderstok.org