netconfcentral logo

ietf-yang-mpl@2016-01-20



  module ietf-yang-mpl {

    yang-version 1;

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

    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: Michael Richardson
               mailto:mcr+ietf@sandelman.ca

     WG Chair: Ines Robles
               mailto:maria.ines.robles@ericsson.com

     Editor:   Peter van der Stok
               mailto:consultancy@vanderstok.org

     Editor:   Pascal Thubert
               mailto:pthubert@cisco.com";

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

     Copyright (c) 2016 IETF Trust and the persons identified as
     authors of the code.  All rights reserved.

     Redistribution and use in source and binary forms, with or

     without modification, is permitted pursuant to, and subject
     to the license terms contained in, the Simplified BSD License
     set forth in Section 4.c of the IETF Trust's Legal Provisions
     Relating to IETF Documents
     (http://trustee.ietf.org/license-info).

     This version of this YANG module is part of RFC XXXX; see
     the RFC itself for full legal notices.";

    revision "2016-01-20" {
      description "Initial revision.";
      reference
        "I-D:draft-vanderstok-roll-mpl-yang: A YANG model for Multicast Protocol for Low power and lossy Networks (MPL)";

    }


    container yang-mpl {
      description
        "This container describes the data model for MPL servers. The model consists of the following parts: (1) a mpl-domain part that describes the MPL-domains and associated Multicast addresses and the interfaces on which the Multicast addresses are enabled, (2) a mpl-op part that describes the parameters settings per seed, (3) a mpl-seeds part that describes the MPL buffer contents and the Trickle timer values, and (4) a mpl-statistics part that describes the number of lost and correctly forwarded messages.";
      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.";
          }
        }  // list domains

        list addresses {
          key "MCaddress";
          description
            "The entries describe the interfaces enabled with a given
            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].";
          }
        }  // list addresses
      }  // container mpl-domain

      container mpl-op {
        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 ietf-roll-mpl-parameter-
            configuration.";
        }

        leaf PROACTIVE_FORWARDING {
          type boolean;
          description
            "The boolean value indicates whether the MPL forwarder
           schedules MPL data message transmission after
            receiving them for the first time.";
        }

        leaf SEED_SET_ENTRY_LIFETIME {
          type uint64;
          description
            "The value indicates the minimum lifetime for an entry
            in the Seed set expressed in seconds. Default value
            is 30 minutes.";
        }

        list mpl-parameter {
          key "domainID";
          description
            "Each domain has a set of MPL forwarding parameters
           which regulate the forwarding operation.";
          leaf domainID {
            type uint16;
            description
              "Each domainID must be present in  mpl-parameter list.";
          }

          leaf DATA_MESSAGE_IMIN {
            type uint16;
            description
              "The minimum Trickle timer interval, as defined in
             [RFC6206], for MPL Data Message transmissions.";
          }

          leaf DATA_MESSAGE_IMAX {
            type uint16;
            description
              "The maximum Trickle timer interval, as defined in
             [RFC6206], for MPL Data Message transmissions.";
          }

          leaf DATA_MESSAGE_K {
            type uint16;
            default '1';
            description
              "The redundancy constant, as defined in [RFC6206], for
            MPL Data Message transmissions.";
          }

          leaf DATA_MESSAGE_TIMER_EXPIRATIONS {
            type uint16;
            default '3';
            description
              "The number of Trickle timer expirations that occur
            before terminating the Trickle algorithm's
            retransmission of a given MPL Data Message.";
          }

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

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

          leaf CONTROL_MESSAGE_K {
            type uint16;
            default '1';
            description
              "The redundancy constant, as defined in [RFC6206],
             for MPL Control Message transmissions.";
          }

          leaf CONTROL_MESSAGE_TIMER_EXPIRATIONS {
            type uint16;
            default '10';
            description
              "The number of Trickle time expirations that occur
              before terminating the Trickle algorithm
              for MPL Control Message transmissions.";
          }

          leaf-list MC_addresses {
            type inet:ipv6-address;
            description
              "All the MPL multicast addresses which belong to this domain.";
          }
        }  // list mpl-parameter
      }  // container mpl-op

      list mpl-seeds {
        key "seedID domainID";
        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, seed is located in this forwarder.
          WHEN local == false, seed is located in different
          forwarder.";
        }

        leaf life-time {
          type uint64;
          description
            " Minimum remaining lifetime of the seed entry in
           SE_LIFETIME units.";
        }

        leaf min-seqno {
          type uint8;
          description
            "Lower bound sequence number for this 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.";
        }

        leaf nr-of-timers {
          type uint8;
          description
            "number of active trickle timers.";
        }

        list seed-timers {
          key "seqno";
          description
            " status of timers of the active message identified by seqno.";
          leaf seqno {
            type uint8;
            description
              "Sequence number of message of this seed.";
          }

          leaf I {
            type uint8;
            description
              "Current Trickle timer interval in SE-LIFETIME units.";
          }

          leaf c {
            type uint8;
            description
              "number of times that identical message has been
            received in this interval.";
          }

          leaf e {
            type uint8;
            description
              "number of Trickle time expirations since last
             Trickle timer reset.";
          }

          leaf t {
            type uint8;
            description
              " number of time units expressed in SE-LIFETIME units
             since last Trickle time activation.";
          }
        }  // list seed-timers
      }  // list mpl-seeds

      list mpl-statistics {
        key "seedID domainID";
        description
          "List describes performance statistics integrated over the messages of a seed. A message identified with a seqno can receive and forward multiple copies";
        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 message copy was not forwarded
             because c > k.";
        }

        leaf nr-forwarded {
          type uint64;
          description
            "number of times message copies are forwarded.";
        }

        leaf nr-not-forwarded {
          type uint64;
          description
            "number of times no copies of a message are forwarded at all.";
        }

        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
            "number of message copies  received.";
        }

        leaf nr-of-messages-forwarded {
          type uint64;
          description
            "number of forwarded messages, must be smaller than or equal to nr-of-messages-received.";
        }

        leaf nr-of-copies-forwarded {
          type uint64;
          description
            "number of forwarded copies.";
        }

        leaf nr-of-refused {
          type uint64;
          description
            "number of refused messages because seqno too small.";
        }

        leaf nr-of-notreceived {
          type uint64;
          description
            "number of messages that are were not received
             according to control message.";
        }

        leaf nr-of-missing {
          type uint64;
          description
            "number of messages that were not received by a
            neighbour 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.";
        }
      }  // list mpl-statistics
    }  // container yang-mpl
  }  // module ietf-yang-mpl