netconfcentral logo

bbf-qos-traffic-mngt

HTML

bbf-qos-traffic-mngt@2018-12-03



  module bbf-qos-traffic-mngt {

    yang-version 1.1;

    namespace
      "urn:bbf:yang:bbf-qos-traffic-mngt";

    prefix bbf-qos-tm;

    import ietf-interfaces {
      prefix if;
    }
    import bbf-yang-types {
      prefix bbf-yang;
    }
    import bbf-qos-types {
      prefix bbf-qos-t;
    }

    organization
      "Broadband Forum <https://www.broadband-forum.org>
     Common YANG Work Area";

    contact
      "Comments or questions about this Broadband Forum YANG module
     should be directed to <mailto:help@broadband-forum.org>.

     Editor:      Joey Boyd, ADTRAN

     Editor:      Ludwig Pauwels, Nokia

     PS Leader:   Joey Boyd, ADTRAN

     PS Leader:   Ken Kerpez, ASSIA

     WA Director: Joey Boyd, ADTRAN

     WA Director: Sven Ooghe, Nokia";

    description
      "This module contains a collection of YANG definitions for
     supporting the Broadband Forum requirements on the management of
     Quality of Service (QoS) as applicable to access network
     equipment. As such, this module is specific to access network
     equipment (e.g., BBF-specified Access Nodes and FTTdp DPUs).

     Specifically, this module contains a collection of functions for
     QoS traffic management (TM).

     Copyright (c) 2017-2018, Broadband Forum

     Redistribution and use in source and binary forms, with or
     without modification, are permitted provided that the following
     conditions are met:

     1. Redistributions of source code must retain the above copyright
        notice, this list of conditions and the following disclaimer.

     2. Redistributions in binary form must reproduce the above
        copyright notice, this list of conditions and the following
        disclaimer in the documentation and/or other materials
        provided with the distribution.

     3. Neither the name of the copyright holder nor the names of its
        contributors may be used to endorse or promote products
        derived from this software without specific prior written
        permission.

     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
     CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES,
     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
     CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
     STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
     ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
     ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

     The above license is used as a license under copyright only.
     Please reference the Forum IPR Policy for patent licensing terms
     <https://www.broadband-forum.org/ipr-policy>.

     Any moral rights which are necessary to exercise under the above
     license grant are also deemed granted under this license.

     This version of this YANG module is part of TR-383; see
     the TR itself for full legal notices.";

    revision "2018-12-03" {
      description
        "Amendment 2.
       * Approval Date:    2018-12-03.
       * Publication Date: 2018-12-03.";
      reference
        "TR-383a2: Common YANG Modules
        	<https://www.broadband-forum.org/technical/download/
        		 TR-383_Amendment-2.pdf>";

    }

    revision "2018-07-13" {
      description
        "Initial revision.
       * Approval Date:    2018-06-04.
       * Publication Date: see revision date above.";
      reference
        "TR-383: Common YANG Modules
        	<https://www.broadband-forum.org/technical/download/
        		 TR-383_Amendment-1.pdf>";

    }

    revision "2017-05-08" {
      description
        "Initial revision.
       * Approval Date:    see revision date above.
       * Publication Date: 2017-06-02.";
      reference
        "TR-383: Common YANG Modules
        	<https://www.broadband-forum.org/technical/download/
        		 TR-383.pdf>";

    }


    feature pre-emption {
      description
        "This feature indicates whether the network element supports
       pre-emption.";
    }

    feature tc-id-2-queue-id-mapping-config {
      description
        "This feature indicates whether the network element supports
       configuring traffic-class-id to queue-id mapping profiles.";
    }

    typedef queue-id {
      type uint32 {
        range "0..7";
      }
      description
        "An integer number identifying a queue within the context from
       which traffic will be scheduled. It is an abstract identifier:
       its value does NOT represent the priority of the queue itself.
       This queue-id value is determined by means of a
       traffic-class-id to queue-id mapping profile.";
    }

    typedef scheduling-priority {
      type uint8 {
        range "0..7";
      }
      description
        "This number represents the priority of the queue or a scheduler
       competing with others in the context of scheduling traffic.
       Value 7 means highest priority and 0 means lowest priority.";
    }

    typedef scheduling-weight {
      type uint8;
      description
        "If scheduling is to be performed from multiple queues or
       schedulers with the same priority, then the scheduling-weight
       assigns a weight to each of them.";
    }

    identity bac-type {
      base 
      description
        "Base identity of a Buffer Acceptance Control (BAC) type.";
    }

    identity taildrop {
      base bac-type;
      description "Taildrop BAC type.";
    }

    identity red {
      base bac-type;
      description
        "Random Early Detection (RED) BAC type.";
    }

    identity wtaildrop {
      base bac-type;
      description
        "Weighted taildrop BAC type.";
    }

    identity wred {
      base bac-type;
      description
        "Weighted Random Early Detection (WRED) BAC type.";
    }

    grouping min-threshold {
      description
        "Definition of minimum threshold.";
      leaf min-threshold {
        type bbf-yang:percent;
        description
          "The threshold from which the system begins to discard
         incoming packets in a random way.

         The value is a percentage to be calculated on the value of
         the leaf max-queue-size of the queue on which the BAC is
         applied.";
      }
    }  // grouping min-threshold

    grouping max-threshold {
      description
        "Definition of maximum threshold.";
      leaf max-threshold {
        type bbf-yang:percent;
        description
          "The threshold to discard all incoming packets.

         The value is a percentage to be calculated on the value of
         the leaf max-queue-size.";
      }
    }  // grouping max-threshold

    grouping max-probability {
      description
        "Definition of maximum probability.";
      leaf max-probability {
        type bbf-yang:percent;
        description
          "The maximum discard probability of packets before the
         maximum threshold is reached.";
      }
    }  // grouping max-probability

    grouping common-random-early-detection-parameters {
      description
        "A set of parameters common to RED and WRED BAC algorithms.";
      uses min-threshold;

      uses max-threshold;

      uses max-probability;
    }  // grouping common-random-early-detection-parameters

    container tm-profiles {
      description
        "A set of types of profiles for traffic management
       configuration.";
      list tc-id-2-queue-id-mapping-profile {
        if-feature tc-id-2-queue-id-mapping-config;
        key "name";
        description
          "A list of traffic-class-id to queue-id mapping profiles.";
        leaf name {
          type bbf-yang:string-ascii64;
          description
            "The name of a traffic-class-id to queue-id mapping
           profile.";
        }

        list mapping-entry {
          key "traffic-class-id";
          description
            "A traffic-class-id to queue-id mapping profile. One profile
           maps each of the traffic-class-ids to a queue-id.";
          leaf traffic-class-id {
            type bbf-qos-t:traffic-class-id;
            description
              "A traffic-class-id.";
          }

          leaf local-queue-id {
            type queue-id;
            mandatory true;
            description
              "The identification of a queue locally within a parent
             node context.";
          }
        }  // list mapping-entry
      }  // list tc-id-2-queue-id-mapping-profile

      list bac-entry {
        key "name";
        description "A list of BAC entries.";
        leaf name {
          type bbf-yang:string-ascii64;
          description
            "The name of a BAC entry.";
        }

        leaf max-queue-size {
          type uint32;
          units "bytes";
          description
            "The maximum queue length.";
        }

        choice bac-type {
          mandatory true;
          description "Choice of BAC types";
          case taildrop {
            description
              "Applicable when the BAC type is 'taildrop'.";
            container taildrop {
              description
                "Management objects associated with taildrop.";
              uses max-threshold;
            }  // container taildrop
          }  // case taildrop

          case red {
            description
              "Applicable when the BAC type is 'red'.";
            container red {
              description
                "Management objects associated with Random Early
               Detection (RED).";
              uses common-random-early-detection-parameters;
            }  // container red
          }  // case red

          case wtaildrop {
            description
              "Applicable when the BAC type is 'wtaildrop'.";
            container wtaildrop {
              description
                "Management objects associated with weighted taildrop.";
              container color {
                description
                  "Management objects associated with the marked color
                 of the packet.";
                container green {
                  description
                    "Green packets.";
                  uses max-threshold;
                }  // container green

                container yellow {
                  description
                    "Yellow packets.";
                  uses max-threshold;
                }  // container yellow

                container red {
                  description "Red packets.";
                  uses max-threshold;
                }  // container red
              }  // container color
            }  // container wtaildrop
          }  // case wtaildrop

          case wred {
            description
              "Applicable when the BAC type is 'wred'.";
            container wred {
              description
                "Management objects associated with Weighted
               Random Early Detection.";
              container color {
                description
                  "Management objects associated with the marked color
                 of the packet.";
                container green {
                  description
                    "Green packets.";
                  uses common-random-early-detection-parameters;
                }  // container green

                container yellow {
                  description
                    "Yellow packets.";
                  uses common-random-early-detection-parameters;
                }  // container yellow

                container red {
                  description "Red packets.";
                  uses common-random-early-detection-parameters;
                }  // container red
              }  // container color
            }  // container wred
          }  // case wred
        }  // choice bac-type
      }  // list bac-entry
    }  // container tm-profiles

    grouping tc-id-2-queue-id-mapping-profile-ref {
      description
        "A reference to a traffic-class-id to queue-id mapping
       profile.";
      leaf tc-id-2-queue-id-mapping-profile-name {
        if-feature tc-id-2-queue-id-mapping-config;
        type leafref {
          path "/bbf-qos-tm:tm-profiles/bbf-qos-tm:tc-id-2-queue-id-mapping-profile/bbf-qos-tm:name";
        }
        description
          "The name of a referenced traffic-class-id to queue-id mapping
         profile.";
      }
    }  // grouping tc-id-2-queue-id-mapping-profile-ref

    grouping bac-ref {
      description
        "A reference to a BAC entry.";
      leaf bac-name {
        type leafref {
          path "/bbf-qos-tm:tm-profiles/bbf-qos-tm:bac-entry/bbf-qos-tm:name";
        }
        description
          "The name of a referenced BAC entry.";
      }
    }  // grouping bac-ref

    grouping scheduling-gen-attr {
      description
        "Configuration data for scheduling traffic from queues.";
      leaf priority {
        type scheduling-priority;
        description
          "The priority used to schedule packets from a queue or
         scheduler, relative to the priority assigned to other queues
         or schedulers that are defined in the same traffic scheduling
         context. For example the set of queues defined for a
         particular interface form the context for scheduling outgoing
         traffic to this interface.";
      }

      leaf weight {
        type scheduling-weight;
        description
          "Queues or schedulers that are defined in a particular
         context, e.g. queues defined to schedule outgoing traffic to
         an interface, can have the same priority. The weight defines
         the the portion of traffic that will be taken from this queue
         or scheduler by comparing the weight of this queue or
         scheduler against the sum of the weights of all queues or
         schedulers with the same scope and the same priority.";
      }
    }  // grouping scheduling-gen-attr

    grouping queues {
      description
        "Configuration data for queues.";
      list queue {
        key "local-queue-id";
        description "A list of queues.";
        leaf local-queue-id {
          type queue-id;
          description
            "The identification of a queue within the context of this
           list.";
        }

        uses bac-ref;

        choice queue-scheduling-cfg-type {
          description
            "Choice of queue scheduling types.";
          case inline {
            description
              "The queue parameters are directly configured here.";
            uses scheduling-gen-attr;
          }  // case inline
        }  // choice queue-scheduling-cfg-type

        leaf pre-emption {
          if-feature pre-emption;
          type boolean;
          description
            "Indicates whether the transmission of a packets from this
           queue can be interrupted in favor of packets from a higher
           priority queue.";
        }
      }  // list queue
    }  // grouping queues

    grouping tm-root {
      description
        "The root for traffic management data.
       Traffic management involves the following aspects:
       - the forwarding decision determined to egress a frame through
         an outgoing traffic container (which can be an interface).
       - the traffic container (which can be a bottleneck) is
         associated to a scheduler resolving the contention of
         different queues competing to access the traffic container.
       - so after the outgoing traffic container is determined, the
         system needs to determine in which queue of the traffic
         container the frame must be directed. This takes place based
         on the frame's traffic-class by means of the traffic-class-id
         to queue-id mapping concept.
       - at any time, the scheduler resolves which queue should
         deliver the next frame to the egress traffic container by
         looking at the scheduling-priority and scheduling-weight
         of each of queues.
       The tm-root represents the scheduling stage directly attached
       to the bottleneck resource (typically an interface).";
      container tm-root {
        description
          "The attributes of the root in the scheduling tree.";
        choice children-type {
          description
            "Choice of chidren types of a scheduler node.";
          case queues {
            description
              "In this mode the interface related to the tm-root can
             directly be selected by the forwarding process and has
             its own set of queues. Hence the scheduling of a frame
             from a forwarder to the egress queue takes place in a
             single stage.";
            uses queues;
          }  // case queues
        }  // choice children-type

        uses tc-id-2-queue-id-mapping-profile-ref;
      }  // container tm-root
    }  // grouping tm-root

    augment /if:interfaces/if:interface {
      description
        "Augments the interface with traffic management data.";
      uses tm-root;
    }
  }  // module bbf-qos-traffic-mngt

Summary

  
  
Organization Broadband Forum <https://www.broadband-forum.org> Common YANG Work Area
  
Module bbf-qos-traffic-mngt
Version 2018-12-03
File bbf-qos-traffic-mngt.yang
  
Prefix bbf-qos-tm
Namespace urn:bbf:yang:bbf-qos-traffic-mngt
  
Cooked /cookedmodules/bbf-qos-traffic-mngt/2018-12-03
YANG /src/bbf-qos-traffic-mngt@2018-12-03.yang
XSD /xsd/bbf-qos-traffic-mngt@2018-12-03.xsd
  
Abstract This module contains a collection of YANG definitions for supporting the Broadband Forum requirements on the management of Quali...
  
Contact
Comments or questions about this Broadband Forum YANG module
should be directed to <mailto:help@broadband-forum.org>.

Editor:      Joey Boyd, ADTRAN

Editor:      Ludwig Pauwels, Nokia

PS Leader:   Joey Boyd, ADTRAN

PS Leader:   Ken Kerpez, ASSIA

WA Director: Joey Boyd, ADTRAN

WA Director: Sven Ooghe, Nokia

Description

 
This module contains a collection of YANG definitions for
supporting the Broadband Forum requirements on the management of
Quality of Service (QoS) as applicable to access network
equipment. As such, this module is specific to access network
equipment (e.g., BBF-specified Access Nodes and FTTdp DPUs).

Specifically, this module contains a collection of functions for
QoS traffic management (TM).

Copyright (c) 2017-2018, Broadband Forum

Redistribution and use in source and binary forms, with or
without modification, are permitted provided that the following
conditions are met:

1. Redistributions of source code must retain the above copyright
   notice, this list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above
   copyright notice, this list of conditions and the following
   disclaimer in the documentation and/or other materials
   provided with the distribution.

3. Neither the name of the copyright holder nor the names of its
   contributors may be used to endorse or promote products
   derived from this software without specific prior written
   permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

The above license is used as a license under copyright only.
Please reference the Forum IPR Policy for patent licensing terms
<https://www.broadband-forum.org/ipr-policy>.

Any moral rights which are necessary to exercise under the above
license grant are also deemed granted under this license.

This version of this YANG module is part of TR-383; see
the TR itself for full legal notices.

Typedefs

Typedef Base type Abstract
queue-id uint32 An integer number identifying a queue within the context from which traffic will be scheduled. It is an abstract identifier: its value does NOT represent the priority of the queue itself. This queue-id value is determined by means of a traffic-class-id to...
scheduling-priority uint8 This number represents the priority of the queue or a scheduler competing with others in the context of scheduling traffic. Value 7 means highest priority and 0 means lowest priority.
scheduling-weight uint8 If scheduling is to be performed from multiple queues or schedulers with the same priority, then the scheduling-weight assigns a weight to each of them.

Groupings

Grouping Objects Abstract
bac-ref bac-name A reference to a BAC entry.
common-random-early-detection-parameters min-thresholdmax-thresholdmax-probability A set of parameters common to RED and WRED BAC algorithms.
max-probability max-probability Definition of maximum probability.
max-threshold max-threshold Definition of maximum threshold.
min-threshold min-threshold Definition of minimum threshold.
queues queue Configuration data for queues.
scheduling-gen-attr priority weight Configuration data for scheduling traffic from queues.
tc-id-2-queue-id-mapping-profile-ref tc-id-2-queue-id-mapping-profile-name A reference to a traffic-class-id to queue-id mapping profile.
tm-root tm-root The root for traffic management data. Traffic management involves the following aspects: - the forwarding decision determined to egress a frame through an outgoing traffic container (which can be an interface). - the traffic container (which can be a bo...

Objects

Type Key
Mandatory config
Optional config
Not config
Object Type Abstract
tm-profiles container A set of types of profiles for traffic management configuration.
   bac-entry list A list of BAC entries.
      bac-type choice Choice of BAC types
         red case Applicable when the BAC type is 'red'.
            red container Management objects associated with Random Early Detection (RED).
               max-probability leaf The maximum discard probability of packets before the maximum threshold is reached.
               max-threshold leaf The threshold to discard all incoming packets. The value is a percentage to be calculated on the value of the leaf max-queue-size.
               min-threshold leaf The threshold from which the system begins to discard incoming packets in a random way. The value is a percentage to be calculated on the value of the leaf max-queue-size of the queue on which the BAC is applied.
         taildrop case Applicable when the BAC type is 'taildrop'.
            taildrop container Management objects associated with taildrop.
               max-threshold leaf The threshold to discard all incoming packets. The value is a percentage to be calculated on the value of the leaf max-queue-size.
         wred case Applicable when the BAC type is 'wred'.
            wred container Management objects associated with Weighted Random Early Detection.
               color container Management objects associated with the marked color of the packet.
                  green container Green packets.
                     max-probability leaf The maximum discard probability of packets before the maximum threshold is reached.
                     max-threshold leaf The threshold to discard all incoming packets. The value is a percentage to be calculated on the value of the leaf max-queue-size.
                     min-threshold leaf The threshold from which the system begins to discard incoming packets in a random way. The value is a percentage to be calculated on the value of the leaf max-queue-size of the queue on which the BAC is applied.
                  red container Red packets.
                     max-probability leaf The maximum discard probability of packets before the maximum threshold is reached.
                     max-threshold leaf The threshold to discard all incoming packets. The value is a percentage to be calculated on the value of the leaf max-queue-size.
                     min-threshold leaf The threshold from which the system begins to discard incoming packets in a random way. The value is a percentage to be calculated on the value of the leaf max-queue-size of the queue on which the BAC is applied.
                  yellow container Yellow packets.
                     max-probability leaf The maximum discard probability of packets before the maximum threshold is reached.
                     max-threshold leaf The threshold to discard all incoming packets. The value is a percentage to be calculated on the value of the leaf max-queue-size.
                     min-threshold leaf The threshold from which the system begins to discard incoming packets in a random way. The value is a percentage to be calculated on the value of the leaf max-queue-size of the queue on which the BAC is applied.
         wtaildrop case Applicable when the BAC type is 'wtaildrop'.
            wtaildrop container Management objects associated with weighted taildrop.
               color container Management objects associated with the marked color of the packet.
                  green container Green packets.
                     max-threshold leaf The threshold to discard all incoming packets. The value is a percentage to be calculated on the value of the leaf max-queue-size.
                  red container Red packets.
                     max-threshold leaf The threshold to discard all incoming packets. The value is a percentage to be calculated on the value of the leaf max-queue-size.
                  yellow container Yellow packets.
                     max-threshold leaf The threshold to discard all incoming packets. The value is a percentage to be calculated on the value of the leaf max-queue-size.
      max-queue-size leaf The maximum queue length.
      name leaf The name of a BAC entry.
   tc-id-2-queue-id-mapping-profile list A list of traffic-class-id to queue-id mapping profiles.
      mapping-entry list A traffic-class-id to queue-id mapping profile. One profile maps each of the traffic-class-ids to a queue-id.
         local-queue-id leaf The identification of a queue locally within a parent node context.
         traffic-class-id leaf A traffic-class-id.
      name leaf The name of a traffic-class-id to queue-id mapping profile.