netconfcentral logo

ietf-pmip-qos@2018-05-17



  module ietf-pmip-qos {

    yang-version 1.1;

    namespace
      "urn:ietf:params:xml:ns:yang:ietf-pmip-qos";

    prefix qos-pmip;

    import ietf-inet-types {
      prefix inet;
      revision-date "2013-07-15";
    }
    import ietf-trafficselector-types {
      prefix traffic-selectors;
      revision-date "2018-05-17";
    }

    organization
      "IETF Distributed Mobility Management (DMM)
Working Group";

    contact
      "WG Web:   <http://tools.ietf.org/wg/netmod/>
WG List:  <mailto:netmod@ietf.org>

WG Chair: Dapeng Liu
	  <mailto:maxpassion@gmail.com>

WG Chair: Sri Gundavelli
	  <mailto:sgundave@cisco.com>

Editor:   Satoru Matsushima
	  <mailto:satoru.matsushima@g.softbank.co.jp>

Editor:   Lyle Bertz
	  <mailto:lylebe551144@gmail.com>";

    description
      "This module contains a collection of YANG definitions for
quality of service paramaters used in Proxy Mobile IPv6.

Copyright (c) 2016 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
(http://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.";

    revision "2018-05-17" {
      description "Initial Revision.";
      reference
        "RFC 6088: Traffic Selectors for Flow Bindings";

    }


    typedef sr-id {
      type uint8;
      description
        "An 8-bit unsigned integer used for identifying the QoS
Service Request.";
    }

    typedef traffic-class {
      type inet:dscp;
      description
        "Traffic Class consists of a 6-bit DSCP field followed by a
2-bit reserved field.";
      reference
        "RFC 3289: Management Information Base for the
          Differentiated Services Architecture
         RFC 2474: Definition of the Differentiated Services Field
        	  (DS Field) in the IPv4 and IPv6 Headers
         RFC 2780: IANA Allocation Guidelines For Values In
        	  the Internet Protocol and Related Headers";

    }

    typedef operational-code {
      type enumeration {
        enum "RESPONSE" {
          value 0;
          description
            "Response to a QoS request";
        }
        enum "ALLOCATE" {
          value 1;
          description
            "Request to allocate QoS resources";
        }
        enum "DE-ALLOCATE" {
          value 2;
          description
            "Request to de-Allocate QoS resources";
        }
        enum "MODIFY" {
          value 3;
          description
            "Request to modify QoS parameters for a
previously negotiated QoS Service Request";
        }
        enum "QUERY" {
          value 4;
          description
            "Query to list the previously negotiated QoS
Service Requests that are still active";
        }
        enum "NEGOTIATE" {
          value 5;
          description
            "Response to a QoS Service Request with a
counter QoS proposal";
        }
      }
      description
        "The type of QoS request. Reserved values:   (6) to (255)
	Currently not used.  Receiver MUST ignore the option
	received with any value in this range.";
    }

    typedef Per-MN-Agg-Max-DL-Bit-Rate-Value {
      type uint32;
      description
        "The aggregate maximum downlink bit rate that is
requested/allocated for all the mobile node's IP flows.
The measurement units are bits per second.";
    }

    typedef Per-MN-Agg-Max-UL-Bit-Rate-Value {
      type uint32;
      description
        "The aggregate maximum uplink bit rate that is
   requested/allocated for the mobile node's IP flows.  The
   measurement units are bits per second.";
    }

    grouping Per-Session-Agg-Max-Bit-Rate-Value {
      description
        "Per-Session-Agg-Max-Bit-Rate Value";
      leaf max-rate {
        type uint32;
        mandatory true;
        description
          "The aggregate maximum bit rate that is requested/allocated
for all the IP flows associated with that mobility session.
The measurement units are bits per second.";
      }

      leaf service-flag {
        type boolean;
        mandatory true;
        description
          "This flag is used for extending the scope of the
target flows for Per-Session-Agg-Max-UL/DL-Bit-Rate
from(UL)/to(DL) the mobile node's other mobility sessions
sharing the same Service Identifier.";
        reference
          "RFC 5149 - Service Selection mobility option";

      }

      leaf exclude-flag {
        type boolean;
        mandatory true;
        description
          "This flag is used to request that the uplink/downlink
flows for which the network is providing
   Guaranteed-Bit-Rate service be excluded from the
   target IP flows for which
   Per-Session-Agg-Max-UL/DL-Bit-Rate is measured.";
      }
    }  // grouping Per-Session-Agg-Max-Bit-Rate-Value

    grouping Allocation-Retention-Priority-Value {
      description
        "Allocation-Retention-Priority Value";
      leaf priority-level {
        type uint8 {
          range "0..15";
        }
        mandatory true;
        description
          "This is a 4-bit unsigned integer value. It is used to decide
whether a mobility session establishment or modification
request can be accepted; this is typically used for
admission control of Guaranteed Bit Rate traffic in case of
resource limitations.";
      }

      leaf preemption-capability {
        type enumeration {
          enum "enabled" {
            value 0;
            description "enabled";
          }
          enum "disabled" {
            value 1;
            description "disabled";
          }
          enum "reserved1" {
            value 2;
            description "reserved1";
          }
          enum "reserved2" {
            value 3;
            description "reserved2";
          }
        }
        mandatory true;
        description
          "This is a 2-bit unsigned integer value.  It defines whether a
service data flow can get resources tha were already
assigned to another service data flow with a lower priority
level.";
      }

      leaf preemption-vulnerability {
        type enumeration {
          enum "enabled" {
            value 0;
            description "enabled";
          }
          enum "disabled" {
            value 1;
            description "disabled";
          }
          enum "reserved1" {
            value 2;
            description "reserved1";
          }
          enum "reserved2" {
            value 3;
            description "reserved2";
          }
        }
        mandatory true;
        description
          "This is a 2-bit unsigned integer value.  It defines whether a
 service data flow can lose the resources assigned to it in
 order to admit a service data flow with a higher priority
 level.";
      }
    }  // grouping Allocation-Retention-Priority-Value

    typedef Aggregate-Max-DL-Bit-Rate-Value {
      type uint32;
      description
        "The aggregate maximum downlink bit rate that is
requested/allocated for downlink IP flows.  The measurement
units are bits per second.";
    }

    typedef Aggregate-Max-UL-Bit-Rate-Value {
      type uint32;
      description
        "The aggregate maximum downlink bit rate that is
requested/allocated for downlink IP flows.  The measurement
units are bits per second.";
    }

    typedef Guaranteed-DL-Bit-Rate-Value {
      type uint32;
      description
        "The guaranteed bandwidth in bits per second for downlink
 IP flows.  The measurement units are bits per second.";
    }

    typedef Guaranteed-UL-Bit-Rate-Value {
      type uint32;
      description
        "The guaranteed bandwidth in bits per second for uplink
IP flows.  The measurement units are bits per second.";
    }

    grouping QoS-Vendor-Specific-Attribute-Value-Base {
      description
        "QoS Vendor-Specific Attribute.";
      leaf vendorid {
        type uint32;
        mandatory true;
        description
          "The Vendor ID is the SMI (Structure of Management
Information) Network Management Private Enterprise Code of
the IANA-maintained 'Private Enterprise Numbers'
registry.";
        reference
          "'PRIVATE ENTERPRISE NUMBERS', SMI Network Management
           Private Enterprise Codes, April 2014,
            <http://www.iana.org/assignments/enterprise-numbers>";

      }

      leaf subtype {
        type uint8;
        mandatory true;
        description
          "An 8-bit field indicating the type of vendor-specific
information carried in the option.  The namespace for this
sub-type is managed by the vendor identified by the
Vendor ID field.";
      }
    }  // grouping QoS-Vendor-Specific-Attribute-Value-Base

    grouping qosattribute {
      description
        "PMIP QoS Attributes. Note Vendor option
is not a part of this grouping";
      leaf per-mn-agg-max-dl {
        type Per-MN-Agg-Max-DL-Bit-Rate-Value;
        description
          "Per-MN-Agg-Max-DL-Bit-Rate Value";
      }

      leaf per-mn-agg-max-ul {
        type Per-MN-Agg-Max-UL-Bit-Rate-Value;
        description
          "Per-MN-Agg-Max-UL-Bit-Rate Value";
      }

      container per-session-agg-max-dl {
        description
          "Per-Session-Agg-Max-Bit-Rate Value";
        uses qos-pmip:Per-Session-Agg-Max-Bit-Rate-Value;
      }  // container per-session-agg-max-dl

      container per-session-agg-max-ul {
        description
          "Per-Session-Agg-Max-Bit-Rate Value";
        uses qos-pmip:Per-Session-Agg-Max-Bit-Rate-Value;
      }  // container per-session-agg-max-ul

      uses qos-pmip:Allocation-Retention-Priority-Value;

      leaf agg-max-dl {
        type Aggregate-Max-DL-Bit-Rate-Value;
        description
          "Aggregate-Max-DL-Bit-Rate Value";
      }

      leaf agg-max-ul {
        type Aggregate-Max-UL-Bit-Rate-Value;
        description
          "Aggregate-Max-UL-Bit-Rate Value";
      }

      leaf gbr-dl {
        type Guaranteed-DL-Bit-Rate-Value;
        description
          "Guaranteed-DL-Bit-Rate Value";
      }

      leaf gbr-ul {
        type Guaranteed-UL-Bit-Rate-Value;
        description
          "Guaranteed-UL-Bit-Rate Value";
      }
    }  // grouping qosattribute

    grouping qosoption {
      description "PMIP QoS Option";
      leaf srid {
        type sr-id;
        mandatory true;
        description
          "Service Request Identifier";
      }

      leaf trafficclass {
        type traffic-class;
        mandatory true;
        description "Traffic Class";
      }

      leaf operationcode {
        type operational-code;
        mandatory true;
        description "Operation Code";
      }

      uses qos-pmip:qosattribute;

      uses qos-pmip:QoS-Vendor-Specific-Attribute-Value-Base;

      container traffic-selector {
        description "traffic selector";
        uses traffic-selectors:traffic-selector;
      }  // container traffic-selector
    }  // grouping qosoption
  }  // module ietf-pmip-qos