netconfcentral logo

bbf-qos-classifiers

HTML

bbf-qos-classifiers@2018-07-13



  module bbf-qos-classifiers {

    yang-version 1.1;

    namespace
      "urn:bbf:yang:bbf-qos-classifiers";

    prefix bbf-qos-cls;

    import ietf-inet-types {
      prefix inet;
    }
    import bbf-yang-types {
      prefix bbf-yang;
    }
    import bbf-dot1q-types {
      prefix bbf-dot1qt;
    }
    import bbf-frame-classification {
      prefix bbf-classif;
    }
    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 classifiers
used by policies applied to packets.

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

    }


    typedef qos-pbit-marking-index {
      type uint8;
      description
        "An index in a Priority Code Point bits (PBIT) marking list,
generated via a QoS profile.";
    }

    typedef qos-dei-marking-index {
      type uint8;
      description
        "An index in a Drop Eligibility Inidicator (DEI) marking list
generated via a QoS profile.";
    }

    identity classifier-entry-filter-operation-type {
      base 
      description
        "Classifier entry filter logical operation.";
    }

    identity match-any-filter {
      base classifier-entry-filter-operation-type;
      description
        "Classifier entry filter logical OR operation.";
    }

    identity match-all-filter {
      base classifier-entry-filter-operation-type;
      description
        "Classifier entry filter logical AND operation.";
    }

    identity action-type {
      base 
      description
        "This base identity type defines action-types.";
    }

    identity pbit-marking {
      base action-type;
      description
        "The action-type identity indicating the system shall generate
one or more values for the priority bit (PBIT) bits.";
    }

    identity dei-marking {
      base action-type;
      description
        "The action-type identity indicating the system shall generate
one or more values for the Drop Eligibility Inidicator (DEI)
bit.";
    }

    identity scheduling-traffic-class {
      base action-type;
      description
        "The action-type identity indicating a scheduling traffic
class.";
    }

    identity dscp-marking {
      base action-type;
      description
        "The action-type identity indicating the system shall generate
a value for the Differentiated Services Code Point (DSCP)
bits.";
    }

    identity action-scope {
      base 
      description
        "This base identity type defines action scopes.";
    }

    identity vlan-sub-interface {
      base action-scope;
      description
        "The scope of the action is the VLAN sub-interface.";
    }

    identity ethernet-interface {
      base action-scope;
      description
        "The scope of the action is the Ethernet like interface.
This encompasses all VLAN sub-interfaces within the
Ethernet like interface in scope.";
    }

    typedef action-scope {
      type identityref {
        base action-scope;
      }
      description "The scope of the action.";
    }

    grouping pbit-marking {
      description "PBIT marking grouping.";
      list pbit-marking-list {
        key "index";
        description
          "The list defines a set of values for the PBIT bits.

Each pbit-value from this list is a value provided to the
ingress / egress packet editing process that can reference
an entry in this list for writing PBIT bits to a VLAN tag.
Having a list of values allows different PBIT bits to be
written to different VLAN tags.";
        leaf index {
          type qos-pbit-marking-index;
          description
            "The index within the list.";
        }

        leaf pbit-value {
          type bbf-dot1qt:pbit;
          description
            "A pbit-value to be inserted in the PBIT bits of a tag of a
packet.";
        }
      }  // list pbit-marking-list
    }  // grouping pbit-marking

    grouping dei-marking {
      description "DEI marking grouping.";
      list dei-marking-list {
        key "index";
        description
          "The list defines a set of values for DEI bits.

Each dei-value from this list is a value provided to the
ingress / egress packet editing process that can reference
an entry in this list for writing a DEI bit to a VLAN tag.
Having a list of values allows a different DEI bit to be
written to different VLAN tags.";
        leaf index {
          type qos-dei-marking-index;
          description
            "The index within the list.";
        }

        leaf dei-value {
          type bbf-dot1qt:dei;
          description
            "A dei-value to be inserted in the DEI bit of a tag of a
packet.";
        }
      }  // list dei-marking-list
    }  // grouping dei-marking

    grouping dscp-marking {
      description "DSCP marking grouping.";
      leaf dscp {
        type inet:dscp;
        description
          "The value to be inserted in the DSCP field in the header of
an IP packet.";
      }
    }  // grouping dscp-marking

    grouping classifier-entry-inline-attr {
      description
        "Classifier inline attributes.";
      container match-criteria {
        description
          "Match criteria to be applied to a packet.";
        uses bbf-classif:multiple-vlan-tag-match;

        uses bbf-classif:dscp-match;

        uses bbf-classif:protocol-match;
      }  // container match-criteria
    }  // grouping classifier-entry-inline-attr

    grouping classifier-action-entry-cfg {
      description
        "List of actions to be applied to a classified set of packets.";
      list classifier-action-entry-cfg {
        key "action-type";
        ordered-by user;
        description
          "Configuration of classifier associated actions.";
        leaf action-type {
          type identityref {
            base action-type;
          }
          description
            "This defines the action type.";
        }

        choice action-cfg-params {
          description
            "Choice of action types.";
          container pbit-marking-cfg {
            when
              "../action-type='bbf-qos-cls:pbit-marking'" {
              description
                "Only applicable when the action-type is
pbit-marking.";
            }
            description
              "PBIT bits marking configuration container.";
            uses pbit-marking;
          }  // container pbit-marking-cfg
          container dei-marking-cfg {
            when
              "../action-type='bbf-qos-cls:dei-marking'" {
              description
                "Only applicable when the action-type is
dei-marking.";
            }
            description
              "DEI marking configuration container.";
            uses dei-marking;
          }  // container dei-marking-cfg
          container dscp-marking-cfg {
            when
              "../action-type='bbf-qos-cls:dscp-marking'" {
              description
                "Only applicable when the action-type is
dscp-marking.";
            }
            description
              "DSCP marking configuration container.";
            uses dscp-marking;
          }  // container dscp-marking-cfg
          leaf scheduling-traffic-class {
            when
              "../action-type=
'bbf-qos-cls:scheduling-traffic-class'" {
              description
                "Only applicable when the action-type is
scheduling-traffic-class.";
            }
            type bbf-qos-t:traffic-class-id;
            description
              "Define the traffic class for scheduling.";
          }
        }  // choice action-cfg-params
      }  // list classifier-action-entry-cfg
    }  // grouping classifier-action-entry-cfg

    container classifiers {
      description
        "List of classifier entries.";
      list classifier-entry {
        key "name";
        description
          "Classifier entry template.";
        leaf name {
          type bbf-yang:string-ascii64;
          description "Classifier name.";
        }

        leaf description {
          type bbf-yang:string-ascii64-or-empty;
          description
            "Description of the class template.";
        }

        leaf filter-operation {
          type identityref {
            base classifier-entry-filter-operation-type;
          }
          default
            "bbf-qos-cls:match-any-filter";
          description
            "Filters are applicable as any or all filters.";
        }

        choice filter-method {
          description
            "Choice of filter configuration way.";
          case inline {
            description
              "The classifier criteria are directly configured here.";
            uses classifier-entry-inline-attr;
          }  // case inline
        }  // choice filter-method

        uses classifier-action-entry-cfg;
      }  // list classifier-entry
    }  // container classifiers

    grouping classifier-entry-ref {
      description
        "A reference to a classifier entry.";
      leaf name {
        type leafref {
          path
            "/bbf-qos-cls:classifiers/bbf-qos-cls:classifier-entry/bbf-qos-cls:name";
        }
        description
          "The name of the referenced classifier entry.";
      }
    }  // grouping classifier-entry-ref

    augment /classifiers/classifier-entry/filter-method/inline/match-criteria/vlan-tag-match-type/vlan-tagged/tag {
      description
        "Allows to classify packets based on their containing PBIT bits
/ DEI bit values.";
      leaf in-pbit-list {
        type bbf-dot1qt:pbit-list;
        description
          "Filter containing PBIT bits value(s) to be matched with the
value of the corresponding packet field. The list of values
form an OR condition: in case the value of the packet field
matches with one of the values of the leaf then there is a
match. In case the leaf specifies a set of values and none
of them appear in the packet, then there is no match. In case
the leaf specifies a value for a packet field that is not
present, then no packets match the filter. E.g. an untagged
packet does not contain PBIT bits, hence this packet will not
match a specified PBIT bits value. In case the leaf is an
empty list, or unknown, then no match is required and all
packets classify the filter, including untagged packets.

An Ethernet frame can contain multiple VLAN tags or no VLAN
tag. The vlan-tag-match-type/vlan-tagged/tag is a list and
the element with index 0 is used to match with the PBIT bits
of outermost VLAN tag of the packet, the element with index
1 is used to match with the PBIT bits of the second VLAN tag
of the packet.";
      }

      leaf in-dei {
        type uint8 {
          range "0..1";
        }
        description
          "Filter containing DEI bit value(s) to be matched with the
values of the corresponding packet fields. In case the leaf
specifies a value for a packet field that is not present,
then no packets match the filter. E.g. an untagged packet
does not contain a DEI bit, hence this packet will not match
a specified DEI bit value. In case the leaf is unknown,
no match is required and all packets classify the filter,
including untagged packets.

An Ethernet frame can contain multiple VLAN tags or no VLAN
tag. The vlan-tag-match-type/vlan-tagged/tag is a list and
the element with index 0 is used to match with the DEI bit of
the outermost VLAN tag of the packet, the element with index
1 is used to match with the DEI bit of the second VLAN tag of
the packet.";
      }
    }
  }  // module bbf-qos-classifiers

Summary

  
  
Organization Broadband Forum <https://www.broadband-forum.org> Common YANG Work Area
  
Module bbf-qos-classifiers
Version 2018-07-13
File bbf-qos-classifiers.yang
  
Prefix bbf-qos-cls
Namespace urn:bbf:yang:bbf-qos-classifiers
  
Cooked /cookedmodules/bbf-qos-classifiers/2018-07-13
YANG /src/bbf-qos-classifiers@2018-07-13.yang
XSD /xsd/bbf-qos-classifiers@2018-07-13.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 classifiers
used by policies applied to packets.

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
action-scope identityref The scope of the action.
qos-dei-marking-index uint8 An index in a Drop Eligibility Inidicator (DEI) marking list generated via a QoS profile.
qos-pbit-marking-index uint8 An index in a Priority Code Point bits (PBIT) marking list, generated via a QoS profile.

Groupings

Grouping Objects Abstract
classifier-action-entry-cfg classifier-action-entry-cfg List of actions to be applied to a classified set of packets.
classifier-entry-inline-attr match-criteria Classifier inline attributes.
classifier-entry-ref name A reference to a classifier entry.
dei-marking dei-marking-list DEI marking grouping.
dscp-marking dscp DSCP marking grouping.
pbit-marking pbit-marking-list PBIT marking grouping.

Objects

Type Key
Mandatory config
Optional config
Not config
Object Type Abstract
classifiers container List of classifier entries.
   classifier-entry list Classifier entry template.
      classifier-action-entry-cfg list Configuration of classifier associated actions.
         action-cfg-params choice Choice of action types.
            dei-marking case dei-marking-cfg
               dei-marking-cfg container DEI marking configuration container.
                  dei-marking-list list The list defines a set of values for DEI bits. Each dei-value from this list is a value provided to the ingress / egress packet editing process that can reference an entry in this list for writing a DEI bit to a VLAN tag. Having a list of values allows a...
                     dei-value leaf A dei-value to be inserted in the DEI bit of a tag of a packet.
                     index leaf The index within the list.
            dscp-marking case dscp-marking-cfg
               dscp-marking-cfg container DSCP marking configuration container.
                  dscp leaf The value to be inserted in the DSCP field in the header of an IP packet.
            pbit-marking case pbit-marking-cfg
               pbit-marking-cfg container PBIT bits marking configuration container.
                  pbit-marking-list list The list defines a set of values for the PBIT bits. Each pbit-value from this list is a value provided to the ingress / egress packet editing process that can reference an entry in this list for writing PBIT bits to a VLAN tag. Having a list of values al...
                     index leaf The index within the list.
                     pbit-value leaf A pbit-value to be inserted in the PBIT bits of a tag of a packet.
            scheduling-traffic-class case scheduling-traffic-class
               scheduling-traffic-class leaf Define the traffic class for scheduling.
         action-type leaf This defines the action type.
      description leaf Description of the class template.
      filter-method choice Choice of filter configuration way.
         inline case The classifier criteria are directly configured here.
            match-criteria container Match criteria to be applied to a packet.
               dscp-range leaf String identifying the DSCP values and/or range.
               protocols choice The choice allows to specify combintations of packet field values that identify a particular protocol/ or allows to indicate any protocol.
                  any-protocol case any-protocol
                     any-protocol leaf Identifies any protocol, i.e. not match is specified for any protocol.
                  protocol case protocol
                     protocol leaf-list Defines the protocols which will be matched.
               vlan-tag-match-type choice Provides a choice of how the frames may be matched.
                  match-all case match-all
                     match-all leaf Matches all traffic, i.e; irrespective of the frame being tagged or untagged.
                  untagged case untagged
                     untagged leaf Untagged match. Matches all untagged traffic.
                  vlan-tagged case tag
                     tag list The tags to match, with the outermost tag to match assigned index 0.
                        in-dei leaf Filter containing DEI bit value(s) to be matched with the values of the corresponding packet fields. In case the leaf specifies a value for a packet field that is not present, then no packets match the filter. E.g. an untagged packet does not contain a DE...
                        in-pbit-list leaf Filter containing PBIT bits value(s) to be matched with the value of the corresponding packet field. The list of values form an OR condition: in case the value of the packet field matches with one of the values of the leaf then there is a match. In case t...
                        index leaf The index into the tag stack, outermost tag first.
      filter-operation leaf Filters are applicable as any or all filters.
      name leaf Classifier name.