module ietf-queue-policy {
yang-version 1.1;
namespace "urn:ietf:params:xml:ns:yang:ietf-queue-policy";
prefix queue-policy;
import ietf-qos-classifier {
prefix classifier;
}
import ietf-qos-policy {
prefix policy;
}
import ietf-qos-action {
prefix action;
}
organization "IETF RTG (Routing Area) Working Group";
contact
"WG Web:
WG List:
WG Chair: Chris Bowers
WG Chair: Jeff Tantsura
Editor: Aseem Choudhary
Editor: Mahesh Jethanandani
Editor: Norm Strahle
";
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 2018-06-17 {
description
"Latest revision of queuing policy module";
reference "RFC XXXX";
}
feature queue-policy-support {
description
" This feature allows queue policy configuration
as a separate policy type support.";
}
feature queue-inline-support {
description
"Queue inline support in Queue policy";
}
feature queue-template-support {
description
"Queue template support in Queue policy";
}
identity queue-policy-type {
base policy:policy-type;
description
"This defines queue policy-type";
}
identity traffic-group-name {
base classifier:filter-type;
description
"Traffic-group filter type";
}
grouping traffic-group-reference {
container traffic-group-reference-cfg {
leaf traffic-group-name {
type string ;
mandatory true;
description
"This leaf defines name of the traffic group referenced";
}
description
"traffic group reference";
}
description
"traffic group reference grouping";
}
augment "/policy:policies/policy:policy-entry" +
"/policy:classifier-entry/policy:filter-entry" {
when "../../policy:policy-type = 'queue-policy:queue-policy-type'" {
description
"If policy type is queue policy, this filter can be used.";
}
if-feature queue-policy-support;
choice filter-params {
description
"Choice of action types";
case traffic-group-name {
uses traffic-group-reference;
description
"traffic group name";
}
}
description
"Augments Queue policy Classifier with common filter types";
}
identity queue-template-name {
base policy:action-type;
description
"queue template name";
}
grouping queue-template-reference {
container queue-template-reference-cfg {
leaf queue-template-name {
type string ;
mandatory true;
description
"This leaf defines name of the queue template referenced";
}
description
"queue template reference";
}
description
"queue template reference grouping";
}
container queue-template {
if-feature queue-policy-support;
description
"Queue template";
leaf name {
type string;
description
"A unique name identifying this queue template";
}
uses action:queue;
}
augment "/policy:policies/policy:policy-entry" +
"/policy:classifier-entry" +
"/policy:classifier-action-entry-cfg" +
"/policy:action-cfg-params" {
when "../../policy:policy-type = 'queue-policy:queue-policy-type'" {
description
"queue policy actions.";
}
case queue-template-name {
if-feature queue-template-support;
uses queue-template-reference;
}
case queue-inline {
if-feature queue-inline-support;
uses action:queue;
}
description
"augments queue template reference to queue policy";
}
}