module ietf-qos-classifier {
yang-version 1.1;
namespace "urn:ietf:params:xml:ns:yang:ietf-qos-classifier";
prefix classifier;
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 qos specification implementations.
Copyright (c) 2019 IETF Trust and the persons identified as
the document authors. 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 2019-01-13 {
description
"Latest revision of qos base classifier module";
reference "RFC XXXX";
}
feature policy-inline-classifier-config {
description
" This feature allows classifier configuration
directly under policy.";
}
feature classifier-template-feature {
description
" This feature allows classifier as template configuration
in a policy.";
}
feature match-any-filter-type-support {
description
" This feature allows classifier configuration
directly under policy.";
}
identity filter-type {
description
"This is identity of base filter-type";
}
identity classifier-entry-filter-operation-type {
description
"Classifier entry filter logical operation";
}
identity match-all-filter {
base classifier-entry-filter-operation-type;
description
"Classifier entry filter logical AND operation";
}
identity match-any-filter {
base classifier-entry-filter-operation-type;
if-feature "match-any-filter-type-support";
description
"Classifier entry filter logical OR operation";
}
grouping filters {
description
"Filters types in a Classifier entry";
leaf filter-type {
type identityref {
base filter-type;
}
description
"This leaf defines type of the filter";
}
leaf filter-logical-not {
type boolean;
description
"
This is logical-not operator for a filter. When true, it
indicates filter looks for absence of a pattern defined
by the filter
";
}
}
grouping classifier-entry-generic-attr {
description
"
Classifier generic attributes like name,
description, operation type
";
leaf classifier-entry-name {
type string;
description
"classifier entry name";
}
leaf classifier-entry-descr {
type string;
description
"classifier entry description statement";
}
leaf classifier-entry-filter-operation {
type identityref {
base classifier-entry-filter-operation-type;
}
default "match-all-filter";
description
"Filters are applicable as match-any or match-all filters";
}
}
grouping classifier-entry-inline-attr {
description
"attributes of inline classifier in a policy";
leaf classifier-entry-inline {
type boolean;
default "false";
description
"Indication of inline classifier entry";
}
leaf classifier-entry-filter-oper {
type identityref {
base classifier-entry-filter-operation-type;
}
default "match-all-filter";
description
"Filters are applicable as match-any or match-all filters";
}
list filter-entry {
if-feature "policy-inline-classifier-config";
must " ../classifier-entry-inline = 'true' " {
description
"For inline filter configuration, inline attributemust
be true";
}
key "filter-type filter-logical-not";
uses filters;
description
"Filters configured inline in a policy";
}
}
container classifiers {
if-feature "classifier-template-feature";
description
"list of classifier entry";
list classifier-entry {
key "classifier-entry-name";
description
"each classifier entry contains a list of filters";
uses classifier-entry-generic-attr;
list filter-entry {
key "filter-type filter-logical-not";
uses filters;
description
"Filter entry configuration";
}
}
}
}