ietf-diffserv-action

This module contains a collection of YANG definitions for configuring diffserv specification implementations. Copyright (c) 2014...

  • Version: 2015-04-07

    ietf-diffserv-action@2015-04-07


    
      module ietf-diffserv-action {
    
        yang-version 1;
    
        namespace
          "urn:ietf:params:xml:ns:yang:ietf-diffserv-action";
    
        prefix action;
    
        import ietf-inet-types {
          prefix inet;
        }
        import ietf-diffserv-classifier {
          prefix classifier;
        }
        import ietf-diffserv-policy {
          prefix policy;
        }
        import policy-types {
          prefix policy-types;
        }
    
        organization
          "IETF NETMOD (Netmod Working Group) Working Group";
    
        contact
          "WG Web: <http://tools.ietf.org/wg/netmod/> WG List: <mailto:netmod@ietf.org>
            WG Chair: Jurgen Schonwalder <mailto:j.schoenwaelder@jacobs-university.de>
            WG Chair: Tom Nadeau <mailto:tnadeau@lucidvision.com> Editor:
            Aseem Choudhary <mailto:asechoud@cisco.com> Editor: Shitanshu
            Shah <mailto:svshah@cisco.com>";
    
        description
          "This module contains a collection of YANG definitions for configuring
            diffserv specification implementations. Copyright (c) 2014 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 "2015-04-07" {
          description
            "Latest revision for diffserv actions";
          reference
            "RFC XXXX";
    
        }
    
    
        feature hierarchial-policy-support {
          description
            " This feature allows hierarchial policy to be configured";
        }
    
        feature aqm-red-support {
          description
            " This feature allows AQM RED to be configured";
        }
    
        feature priority-rate-burst-support {
          description
            "support rate and burst in priority";
        }
    
        grouping dscp-range {
          description "dscp range definition";
          leaf dscp-min {
            type inet:dscp;
            description "Minimum of dscp range";
          }
    
          leaf dscp-max {
            type inet:dscp;
            description "Maximum of dscp range";
          }
        }  // grouping dscp-range
    
        grouping burst {
          description
            "burst size or interval configuration";
          choice burst-type {
            description "Choice of burst type";
            leaf burst-size {
              type uint64;
              units "bytes";
              description "burst size";
            }
            leaf burst-interval {
              type uint64;
              units "microsecond";
              description "burst interval";
            }
          }  // choice burst-type
        }  // grouping burst
    
        grouping threshold {
          description "Threshold Parameters";
          container threshold {
            description "threshold";
            choice threshold-type {
              description
                "Choice of threshold type";
              leaf threshold-size {
                type uint64;
                units "bytes";
                description "Threshold size";
              }
              leaf threshold-interval {
                type uint64;
                units "microsecond";
                description "Threshold interval";
              }
            }  // choice threshold-type
          }  // container threshold
        }  // grouping threshold
    
        identity marking {
          base policy:action-type;
          description "marking action type";
        }
    
        identity meter {
          base policy:action-type;
          description "meter action type";
        }
    
        identity priority {
          base policy:action-type;
          description "priority action type";
        }
    
        identity min-rate {
          base policy:action-type;
          description "min-rate action type";
        }
    
        identity max-rate {
          base policy:action-type;
          description "max-rate action type";
        }
    
        identity algorithmic-drop {
          base policy:action-type;
          description
            "algorithmic-drop action type";
        }
    
        identity drop-type {
          description "drop algorithm";
        }
    
        identity always-drop {
          base drop-type;
          description "always drop algorithm";
        }
    
        identity tail-drop {
          base drop-type;
          description "tail drop algorithm";
        }
    
        identity random-detect {
          base drop-type;
          description "random detect algorithm";
        }
    
        identity meter-action-type {
          description "action type in a meter";
        }
    
        identity meter-action-drop {
          base meter-action-type;
          description
            "drop action type in a meter";
        }
    
        identity meter-action-set {
          base meter-action-type;
          description
            "mark action type in a meter";
        }
    
        grouping drop {
          description "the drop action";
          leaf drop-action {
            type empty;
            description "always drop algorithm";
          }
        }  // grouping drop
    
        grouping queuelimit {
          description
            "the queue limit beyond which queue will not hold any packet";
          list qlimit-dscp-thresh {
            key "dscp-min dscp-max";
            description
              "the queue limit per dscp range";
            uses dscp-range;
    
            uses threshold;
          }  // list qlimit-dscp-thresh
        }  // grouping queuelimit
    
        grouping meter-action-params {
          description "meter action parameters";
          leaf meter-action-type {
            type identityref {
              base meter-action-type;
            }
            description "meter action type";
          }
    
          leaf next-meter-id {
            type uint16;
            description "next meter identifier";
          }
    
          choice val {
            description
              " meter action based on choice of meter action type";
            case meter-action-mark {
              description "meter action: mark";
              uses marking;
            }  // case meter-action-mark
    
            case meter-action-drop {
              description "meter action: drop";
              uses drop;
            }  // case meter-action-drop
          }  // choice val
        }  // grouping meter-action-params
    
        grouping meter {
          description "meter attributes";
          leaf meter-id {
            type uint16;
            description "meter identifier";
          }
    
          leaf meter-rate {
            type uint64;
            units "bits-per-second";
            description "meter rate";
          }
    
          uses burst;
    
          container color {
            description
              "color aware & color blind attributes container";
            uses classifier:classifier-entry-generic-attr;
          }  // container color
    
          container succeed-action {
            description "confirm action";
            uses meter-action-params;
          }  // container succeed-action
    
          container fail-action {
            description "exceed action";
            uses meter-action-params;
          }  // container fail-action
        }  // grouping meter
    
        grouping priority {
          description "priority attributes";
          leaf priority-level {
            type uint8;
            description "priority level";
          }
        }  // grouping priority
    
        grouping min-rate {
          description "minimum rate grouping";
          leaf min-rate {
            type uint64;
            units "bits-per-second";
            description "minimum rate";
          }
        }  // grouping min-rate
    
        grouping marking {
          description "marking grouping";
          leaf dscp {
            type inet:dscp;
            description "dscp marking";
          }
        }  // grouping marking
    
        grouping max-rate {
          description "maximum rate attributes";
          leaf absolute-rate {
            type uint64;
            units "bits-per-second";
            description
              "rate in bits per second";
          }
    
          uses burst;
        }  // grouping max-rate
    
        grouping red-threshold {
          description "RED threshold attributes";
          container red-min-thresh {
            description "Minimum threshold";
            uses threshold;
          }  // container red-min-thresh
    
          container red-max-thresh {
            description "Maximum threshold";
            uses threshold;
          }  // container red-max-thresh
    
          leaf mark-probability {
            type uint32 {
              range "1..1000";
            }
            description "Mark probability";
          }
        }  // grouping red-threshold
    
        grouping randomdetect {
          description "Random detect attributes";
          leaf exp-weighting-const {
            type uint32;
            description
              "Exponential weighting constant factor for red profile ";
          }
    
          uses red-threshold;
        }  // grouping randomdetect
    
        typedef percent-value-1to100 {
          type uint8 {
            range "1..100";
          }
          description
            "Percent range from 1 to 100";
        }
    
        grouping RATE-OPER {
          description
            "Rate value and units operator";
          leaf rate {
            type uint64;
            units "bits-per-second";
            description "Rate value";
          }
    
          uses RATE-UNIT;
        }  // grouping RATE-OPER
    
        grouping RATE-UNIT {
          description "Rate units";
          leaf absolute-rate-metric {
            type policy-types:metric;
            default 'none';
            description "Metric";
          }
    
          leaf absolute-rate-units {
            type policy-types:rate-unit;
            description "Rate basic units";
          }
    
          leaf rate-percent {
            type percent-value-1to100;
            description "percent";
          }
    
          leaf rate-ratio {
            type uint32 {
              range "1..65532";
            }
          }
        }  // grouping RATE-UNIT
    
        augment /policy:policies/policy:policy-entry/policy:classifier-entry/policy:classifier-action-entry-cfg/policy:action-cfg-params {
          description
            "Augment the actions to policy entry";
          container marking-cfg {
            description
              "Marking configuration container";
            uses marking;
          }  // container marking-cfg
          container priority-cfg {
            description
              "priority attributes container";
            uses priority;
    
            container rate-burst {
              if-feature priority-rate-burst-support;
              description
                "absolute priority rate with/without burst rate"
                  + "and absolute percent";
              uses RATE-OPER;
    
              uses burst;
            }  // container rate-burst
          }  // container priority-cfg
          container meter-cfg {
            description
              "Meter list configuration container";
            list meter-list {
              key "meter-id";
              description "Meter configuration";
              uses meter;
            }  // list meter-list
          }  // container meter-cfg
          container min-rate-cfg {
            description
              "min guaranteed bandwidth";
            uses min-rate;
    
            uses RATE-UNIT;
    
            container bw-excess-share-cfg {
              description
                "share the bandwidth remaming";
              leaf value {
                type uint32;
                description
                  "percentage or ratio value";
              }
    
              uses RATE-UNIT;
            }  // container bw-excess-share-cfg
          }  // container min-rate-cfg
          container max-rate-cfg {
            description
              "maximum rate attributes";
            uses max-rate;
    
            uses RATE-UNIT;
          }  // container max-rate-cfg
          choice drop-algorithm {
            description
              "Choice of Drop Algorithm";
            container drop-cfg {
              description
                "Always Drop configuration container";
              uses drop;
            }  // container drop-cfg
            container tail-drop-cfg {
              description
                "Tail Drop configuration container";
              uses queuelimit;
            }  // container tail-drop-cfg
            container random-detect-cfg {
              if-feature aqm-red-support;
              description
                "Random Detect configuration container";
              uses randomdetect;
            }  // container random-detect-cfg
          }  // choice drop-algorithm
        }
      }  // module ietf-diffserv-action
    

© 2023 YumaWorks, Inc. All rights reserved.