module ieee802-dot1q-ats {
yang-version 1.1;
namespace
'urn:ieee:std:802.1Q:yang:ieee802-dot1q-ats';
prefix ats;
import ietf-yang-types {
prefix yang;
}
import ietf-interfaces {
prefix if;
}
import ieee802-dot1q-types {
prefix dot1qtypes;
}
import ieee802-dot1q-bridge {
prefix dot1q;
}
import ieee802-dot1q-stream-filters-gates {
prefix sfsg;
}
organization "IEEE 802.1 Working Group";
contact
"WG-URL: https://1.ieee802.org/
WG-EMail: stds-802-1@ieee.org
Contact: IEEE 802.1 Working Group Chair
Postal: C/O IEEE 802.1 Working Group
IEEE Standards Association
445 Hoes Lane
Piscataway
NJ 08855
USA
E-mail: STDS-802-1-L@LISTSERV.IEEE.ORG";
description
"This module provides management of 802.1Q bridge components that support
Asynchronous Traffic Shaping (ATS).";
revision "2020-02-15" {
description
"Initial revision from IEEE P802.1Qcr.";
reference
"IEEE Std 802.1Qcr-2020";
}
typedef scheduler-ref-type {
type leafref {
path "/dot1q:bridges/dot1q:bridge/dot1q:component/ats:schedulers/ats:scheduler-instance-table/ats:scheduler-instance-id";
}
description
"This type is used to refer to an ATS scheduler instance.";
}
typedef scheduler-group-ref-type {
type leafref {
path "/dot1q:bridges/dot1q:bridge/dot1q:component/ats:scheduler-groups/ats:scheduler-group-instance-table/ats:scheduler-group-instance-id";
}
description
"This type is used to refer to an ATS scheduler group instance.";
}
augment /dot1q:bridges/dot1q:bridge/dot1q:component/sfsg:stream-filters/sfsg:stream-filter-instance-table {
description
"Augments the Bridge component stream filter for ATS schedulers.";
container scheduler {
description
"Enapsulates ATS scheduler nodes.";
leaf scheduler-ref {
type scheduler-ref-type;
description
"A reference to the ATS scheduler associated with this stream
filter.";
}
leaf scheduler-enable {
type boolean;
default "false";
description
"If TRUE, this stream filter has an associated ATS scheduler
referenced by scheduler-ref. If FALSE, no ATS scheduler is
associated with this stream filter (scheduler-ref is ignored).";
}
} // container scheduler
}
augment /if:interfaces/if:interface/dot1q:bridge-port {
description
"Augments Bridge Ports by ATS per-Port parameters.";
container ats-port-parameters {
description
"This container comprises all ATS per-Port parameters.";
leaf discarded-frames-count {
type yang:counter64;
config false;
description
"A counter of frames discarded by ATS scheduler instances
associated with the Bridge Port.";
reference
"12.31.7.3 of IEEE Std 802.1Qcr-2020";
}
} // container ats-port-parameters
}
augment /dot1q:bridges/dot1q:bridge/dot1q:component {
description
"Augments the Bridge component by
a) ATS schedulers
b) ATS scheduler groups";
container schedulers {
description
"This container comprises all nodes related to an ATS schedulers.";
list scheduler-instance-table {
key "scheduler-instance-id";
description
"Each list entry comprises a set of parameters that defines a
single ATS scheduler instance, as detailed in Table 12-33.";
reference
"12.31.5 of IEEE Std 802.1Qcr-2020";
leaf scheduler-instance-id {
type uint32;
mandatory true;
description
"A unique index identifying this ATS scheduler instance.";
reference
"12.31.5.1 of IEEE Std 802.1Qcr-2020
8.6.5.6 of IEEE Std 802.1Qcr-2020";
}
leaf committed-information-rate {
type uint64;
units "bits/second";
mandatory true;
description
"The committed information rate parameter of this ATS scheduler
instance.";
reference
"12.31.5.3 of IEEE Std 802.1Qcr-2020
8.6.5.6 of IEEE Std 802.1Qcr-2020";
}
leaf committed-burst-size {
type uint32;
units "bits";
mandatory true;
description
"The committed burst size parameter of this ATS scheduler
instance.";
reference
"12.31.5.2 of IEEE Std 802.1Qcr-2020
8.6.5.6 of IEEE Std 802.1Qcr-2020";
}
leaf scheduler-group-ref {
type scheduler-group-ref-type;
mandatory true;
description
"A reference to the scheduler group (12.32.5) associated with
this ATS scheduler instance. Multiple ATS scheduler instances
can be associated to one scheduler group, as detailed in
8.6.5.6.";
reference
"12.31.6 of IEEE Std 802.1Qcr-2020";
}
} // list scheduler-instance-table
leaf max-scheduler-instances {
type uint32;
config false;
description
"The maximum number of ATS scheduler instances supported by this
Bridge component.";
reference
"12.31.1.5 of IEEE Std 802.1Qcr-2020";
}
} // container schedulers
container scheduler-groups {
description
"This container comprises all ATS scheduler group related nodes.";
list scheduler-group-instance-table {
key "scheduler-group-instance-id";
description
"Each list entry comprises a set of parameters that defines a
single ATS scheduler group instance.";
reference
"12.31.6 of IEEE Std 802.1Qcr-2020
8.6.5.6 of IEEE Std 802.1Qcr-2020";
leaf scheduler-group-instance-id {
type uint32;
description
"A unique index identifying this ATS scheduler group instance.";
reference
"12.31.6.1 of IEEE Std 802.1Qcr-2020
8.6.5.6 of IEEE Std 802.1Qcr-2020";
}
leaf max-residence-time {
type uint32;
units "nanoseconds";
mandatory true;
description
"The maximum residence time parameter of the ATS scheduler
group.";
reference
"8.6.11.2.13 of IEEE Std 802.1Qcr-2020
8.6.5.6 of IEEE Std 802.1Qcr-2020";
}
} // list scheduler-group-instance-table
leaf max-scheduler-group-instances {
type uint32;
config false;
description
"The maximum number of ATS scheduler group instances supported by
this Bridge component.";
reference
"12.31.1.6 of IEEE Std 802.1Qcr-2020
8.6.5.6 of IEEE Std 802.1Qcr-2020";
}
container scheduler-timing-characteristics {
description
"This container comprises all ATS scheduler timing
characteristics related nodes.";
list scheduler-timing-characteristics-table {
key "reception-port transmission-port";
config false;
description
"Each list entry comprises the timing characteristics of a
reception Port transmission Port pair, as detailed in Table
12-36.";
reference
"12.31.8 of IEEE Std 802.1Qcr-2020
8.6.11 of IEEE Std 802.1Qcr-2020";
leaf reception-port {
type dot1qtypes:port-number-type;
config false;
mandatory true;
description
"A reference to the associated reception Port.";
reference
"12.31.8.1 of IEEE Std 802.1Qcr-2020";
}
leaf transmission-port {
type dot1qtypes:port-number-type;
config false;
mandatory true;
description
"A reference to the associated transmission Port.";
reference
"12.31.8.2 of IEEE Std 802.1Qcr-2020";
}
leaf clock-offset-variation-max {
type uint32;
units "nanoseconds";
config false;
mandatory true;
description
"The maximum clock offset variation associated with the
reception Port transmission Port pair.";
reference
"12.31.8.3 of IEEE Std 802.1Qcr-2020";
}
leaf clock-rate-deviation-max {
type uint32;
units "ppm";
config false;
mandatory true;
description
"The maximum clock rate deviation associated with the
reception Port transmission Port pair.";
reference
"12.31.8.4 of IEEE Std 802.1Qcr-2020";
}
leaf arrival-recognition-delay-max {
type uint32;
units "nanoseconds";
config false;
mandatory true;
description
"The maximum arrival time recognition delay associated with
the reception Port transmission Port pair.";
reference
"12.31.8.5 of IEEE Std 802.1Qcr-2020";
}
leaf processing-delay-min {
type uint32;
units "nanoseconds";
config false;
mandatory true;
description
"The minimum processing delay associated with the reception
Port transmission Port pair.";
reference
"12.31.8.6 of IEEE Std 802.1Qcr-2020";
}
leaf processing-delay-max {
type uint32;
units "nanoseconds";
config false;
mandatory true;
description
"The maximum processing delay associated with the reception
Port transmission Port pair.";
reference
"12.31.8.7 of IEEE Std 802.1Qcr-2020";
}
} // list scheduler-timing-characteristics-table
} // container scheduler-timing-characteristics
} // container scheduler-groups
}
} // module ieee802-dot1q-ats