initial realease

This commit is contained in:
FRUCHARD Damien
2023-09-21 11:07:20 +02:00
parent d369acc857
commit e102d8725d
32 changed files with 20526 additions and 1 deletions

View File

@@ -0,0 +1,676 @@
module ieee802-dot1q-psfp {
namespace urn:ieee:std:802.1Q:yang:ieee802-dot1q-psfp;
prefix psfp;
import ietf-yang-types {
prefix yang;
}
import ieee802-types {
prefix ieee802;
}
import ieee802-dot1q-types {
prefix dot1q-types;
}
import ieee802-dot1q-bridge {
prefix dot1q;
}
import ieee802-dot1q-stream-filters-gates {
prefix sfsg;
}
organization
"IEEE 802.1 Working Group";
contact
"WG-URL: http://www.ieee802.org/1/
WG-EMail: stds-802-1-L@ieee.org
Contact: IEEE 802.1 Working Group Chair
Postal: C/O IEEE 802.1 Working Group
IEEE Standards Association
445 Hoes Lane
P.O. Box 1331
Piscataway
NJ 08855-1331
USA
E-mail: STDS-802-1-L@IEEE.ORG";
description
"This module provides management of 802.1Q bridge components that
support Per Stream Filtering and Policing (PSFP).";
revision 2020-07-07 {
description
"Published as part of IEEE Std 802.1Qcw.
Initial version.";
reference
"IEEE Std 802.1Qcw - Bridges and Bridged Networks — Amendment:
YANG Data Models for Scheduled Traffic, Frame Preemption, and
Per-Stream Filtering and Policing.";
}
feature psfp {
description
"Per Stream Filtering and Policing supported.";
reference
"IEEE Std 802.1Q-2018";
}
identity set-gate-and-ipv {
base dot1q-types:type-of-operation;
description
"The StreamGateState parameter specifies a desired state, open
or closed, for the stream gate, and the IPV parameter specifies
a desired value of the IPV associated with the stream. On
execution, the StreamGateState and IPV parameter values are used
to set the operational values of the stream gate state and
internal priority specification parameters for the stream. After
TimeInterval ticks has elapsed since the completion of the
previous stream gate control operation in the stream gate
control list, control passes to the next stream gate control
operation. The optional IntervalOctetMax parameter specifies the
maximum number of MSDU octets that are permitted to pass the
gate during the specified TimeInterval. If the IntervalOctetMax
parameter is omitted, there is no limit on the number of octets
that can pass the gate.";
reference
"8.6.5.1.2 of IEEE Std 802.1Q-2018";
}
grouping stream-gate-control-entries {
description
"A GateControlEntry consists of an operation name, followed by
four parameters associated with the operation. The first
parameter is a gateStatesValue; the second parameter is an IPV
value; the third parameter is a timeIntervalValue; and the
fourth parameter is an IntervalOctetMaxValue.
IntervalOctetMaxValue is optional.";
uses dot1q-types:base-gate-control-entries {
refine "gate-control-entry/operation-name" {
must ". = 'psfp:set-gate-and-ipv'";
}
refine "gate-control-entry/time-interval-value" {
must "(. <= ../../../../supported-interval-max )";
}
augment "gate-control-entry" {
description
"Augment gate-control-entry from base-gate-control-entries
with parameters gate-states-value, ipv-spec and
interval-octet-max.";
leaf gate-state-value {
type sfsg:gate-state-value-type;
mandatory true;
description
"The PSFPgateStatesValue indicates the desired gate state,
open or closed, for the stream gate.";
reference
"12.31.3.2.1 of IEEE Std 802.1Q-2018";
}
leaf ipv-spec {
type sfsg:ipv-spec-type;
mandatory true;
description
"The IPV value indicates the IPV to be associated with
frames that pass the gate.";
reference
"12.31.3.2.3 of IEEE Std 802.1Q-2018";
}
leaf interval-octet-max {
type uint32;
description
"An unsigned integer, denoting a IntervalOctetMax in MSDU
octets";
reference
"12.31.3.2.5 of IEEE Std 802.1Qcw";
}
}
}
}
augment
"/dot1q:bridges"+
"/dot1q:bridge"+
"/dot1q:component"+
"/sfsg:stream-filters"+
"/sfsg:stream-filter-instance-table" {
description
"Augment the Bridge component Stream filter by frame counters.";
leaf matching-frames-count {
type yang:counter64;
config false;
description
"A count of frames matching both the stream_handle and
priority specifications.";
reference
"8.6.5.1 of IEEE Std 802.1Q-2018";
}
leaf passing-frames-count {
type yang:counter64;
config false;
description
"A count of frames that passed the stream gate.";
reference
"8.6.5.1 of IEEE Std 802.1Q-2018";
}
leaf not-passing-frames-count {
type yang:counter64;
config false;
description
"A count of frames that did not pass the stream gate.";
reference
"8.6.5.1 of IEEE Std 802.1Q-2018";
}
leaf red-frames-count {
type yang:counter64;
config false;
description
"A count of frames that were discarded as a result of the
operation of the flow meter.";
reference
"8.6.5.1 of IEEE Std 802.1Q-2018";
}
leaf passing-sdu-count {
type yang:counter64;
config false;
description
"A count of frames that passed the Maximum SDU size filter.";
reference
"8.6.5.1 of IEEE Std 802.1Q-2018";
}
leaf not-passing-sdu-count {
type yang:counter64;
config false;
description
"A count of frames that did not pass the Maximum SDU size
filter.";
reference
"8.6.5.1 of IEEE Std 802.1Q-2018";
}
leaf flow-meter-instance-id {
type uint32;
description
"Flow meter instance that is associated with the stream filter.";
reference
"8.6.5.5 of IEEE Std 802.1Qcr
12.31.2.6 of IEEE Std 802.1Qcr";
}
leaf flow-meter-enable {
type boolean;
description
"If it is set to TRUE, flow-meter-ref identifies the flow meter
instance associated with the stream filter. If it is set to FALSE, no
flow meter instance is associated with the stream filter.";
reference
"8.6.5.5 of IEEE Std 802.1Qcr
12.31.2.6 of IEEE Std 802.1Qcr";
}
}
augment
"/dot1q:bridges/dot1q:bridge/dot1q:component/sfsg:stream-gates" {
description
"Augment the Bridge component Stream Gates by maximum control
list limits, as used for PTP-controlled open and close
transitions";
leaf supported-list-max {
type uint32;
description
"The maximum value supported by this Bridge component of the
AdminControlListLength and OperControlListLength parameters.
It is available for use by schedule computation software to
determine the Bridge components control list capacity prior
to computation. The object may optionally be read-only.";
reference
"12.31.1.4 of IEEE Std 802.1Q-2018";
}
container supported-cycle-max {
description
"The maximum value supported by this Bridge component of the
AdminCycleTime and OperCycleTime parameters. The object may
optionally be read-only.";
reference
"12.31.1.5 of IEEE Std 802.1Qcw";
uses ieee802:rational-grouping;
}
leaf supported-interval-max {
type uint32;
description
"The maximum value supported by this Bridge component of the
TimeIntervalValue parameter. The object may optionally
be read-only.";
reference
"12.31.1.6 of IEEE Std 802.1Qcw";
}
}
augment
"/dot1q:bridges"+
"/dot1q:bridge"+
"/dot1q:component"+
"/sfsg:stream-gates"+
"/sfsg:stream-gate-instance-table" {
description
"Augment the Bridge component Stream Gate instances by
a) operational gate states
b) operational IPV values
c) PTP controlled open and close transitions
d) Management for PTP controlled open and close transitions";
leaf oper-gate-states {
type sfsg:gate-state-value-type;
config false;
description
"The current state of the gate. PSFPOperGateStates is set by
the List Execute state machine, and its initial value is
determined by the value of the PSFPAdminGateStates variable.";
reference
"12.31.3.2.1 of IEEE Std 802.1Q-2018
8.6.10.5 of IEEE Std 802.1Q-2018";
}
leaf oper-ipv {
type sfsg:ipv-spec-type;
description
"The operational internal priority value specification.";
reference
"12.31.3.3 of IEEE Std 802.1Q-2018
8.6.10.7 of IEEE Std 802.1Q-2018
8.6.5.1.2 of IEEE Std 802.1Q-2018";
}
container admin-control-list {
must "(count(./gate-control-entry) <= ../../supported-list-max)" {
error-message "Number of elements in admin-control-list must
not be greater than supported-list-max";
}
config true;
description
"The AdminControlList and OperControlList are ordered
lists containing AdminControlListLength or OperControlListLength
entries, respectively. Each entry represents a gate operation.
Each entry in the list is structured as a GateControlEntry.";
reference
"12.31.3.2 of IEEE Std 802.1Q-2018
12.31.3.2.2 of IEEE Std 802.1Q-2018
8.6.9.4.2 of IEEE Std 802.1Q-2018";
uses stream-gate-control-entries;
}
container oper-control-list {
must "(count(./gate-control-entry) <= ../../supported-list-max)" {
error-message "Number of elements in oper-control-list must
not be greater than supported-list-max";
}
config false;
description
"The AdminControlList and OperControlList are ordered
lists containing AdminControlListLength or OperControlListLength
entries, respectively. Each entry represents a gate operation.
Each entry in the list is structured as a GateControlEntry.";
reference
"12.31.3.2 of IEEE Std 802.1Q-2018
12.31.3.2.2 of IEEE Std 802.1Q-2018
8.6.9.4.19 of IEEE Std 802.1Q-2018";
uses stream-gate-control-entries;
}
container admin-cycle-time {
/* IRT : removed invalid comparison between two rational-grouping: not numbers */
/*must "(. <= ../../supported-cycle-max)" {
error-message "admin-cycle-time must not be greater than supported-cycle-max";
}*/
description
"The administrative value of the gating cycle for the Port.
This value can be changed by management, and is used by the
List Config state machine to set the value of OperCycleTime.
The AdminCycleTime variable is a rational number of seconds,
defined by an integer numerator and an integer denominator.";
reference
"12.29.1.3 of IEEE Std 802.1Q-2018
8.6.9.4.3 of IEEE Std 802.1Q-2018";
uses ieee802:rational-grouping;
}
container oper-cycle-time {
/* IRT : removed invalid comparison between two rational-grouping: not numbers */
/*must "(. <= ../../supported-cycle-max)" {
error-message "oper-cycle-time must not be greater than supported-cycle-max";
}*/
config false;
description
"The operational value of the gating cycle for the Port. This
variable is set dynamically from the AdminCycleTime variable
under the control of the List Config state machine
OperCycleTime is used by the Cycle Timer state machine to
enforce the cycle time for the Port. The OperCycleTime
variable is a rational number of seconds, defined by an
integer numerator and an integer denominator.";
reference
"12.29.1.3 of IEEE Std 802.1Q-2018
8.6.9.4.20 of IEEE Std 802.1Q-2018";
uses ieee802:rational-grouping;
}
leaf admin-cycle-time-extension {
type uint32;
units "nanoseconds";
description
"An integer number of nanoseconds, defining the maximum amount
of time by which the gating cycle for the Port is permitted to
be extended when a new cycle configuration is being installed.
This administrative value can be changed by management, and is
used by the List Config state machine to set the value of
OperCycleTimeExtension.";
reference
"8.6.9.4.4 of IEEE Std 802.1Q-2018";
}
leaf oper-cycle-time-extension {
type uint32;
units "nanoseconds";
config false;
description
"An integer number of nanoseconds, defining the maximum amount
of time by which the gating cycle for the Port is permitted to
be extended when a new cycle configuration is installed. This
operational value is set by the List Config state machine to
the value of AdminCycleTimeExtension. The value of
OperCycleTimeExtension is used by the SetCycleStartTime()
procedure.";
reference
"8.6.9.4.21 of IEEE Std 802.1Q-2018";
}
container admin-base-time {
description
"The administrative value of base time, expressed as an IEEE
1588 precision time protocol (PTP) timescale (see IEEE Std
802.1AS-2011). This value can be changed by management, and is
used by the List Config state machine to set the value of
OperBaseTime.";
reference
"12.29.1.4 of IEEE Std 802.1Q-2018
8.6.9.4.1 of IEEE Std 802.1Q-2018";
uses ieee802:ptp-time-grouping;
}
container oper-base-time {
config false;
description
"The operational value of base time, expressed as a PTP
timescale (see IEEE Std 802.1AS-2011). This variable is used
by the List Config state machine.";
reference
"12.29.1.4 of IEEE Std 802.1Q-2018
8.6.9.4.18 of IEEE Std 802.1Q-2018";
uses ieee802:ptp-time-grouping;
}
leaf config-change {
type boolean;
description
"A Boolean variable that acts as a start signal to the List
Config state machine that the administrative variable values
for the Port are ready to be copied into their corresponding
operational variables. This variable is set TRUE by management
and is set FALSE by the List Config state machine.";
reference
"8.6.9.4.7 of IEEE Std 802.1Q-2018";
}
container config-change-time {
config false;
description
"The time at which the administrative variables that determine
the cycle are to be copied across to the corresponding
operational variables, expressed as a PTP timescale. The value
of this variable is set by the SetConfigChangeTime() procedure
in the List Config state machine.";
reference
"12.29.1.4 of IEEE Std 802.1Q-2018
8.6.9.4.9 of IEEE Std 802.1Q-2018";
uses ieee802:ptp-time-grouping;
}
leaf tick-granularity {
type uint32;
config false;
description
"Characteristics of an implementations cycle timer clock
(TickGranularity).";
reference
"8.6.9.4.16 of IEEE Std 802.1Q-2018";
}
container current-time {
config false;
description
"The current time maintained by the local system, expressed as
a PTP timescale (see IEEE Std 802.1AS-2011).";
reference
"12.29.1.4 of IEEE Std 802.1Q-2018
8.6.9.4.10 of IEEE Std 802.1Q-2018";
uses ieee802:ptp-time-grouping;
}
leaf config-pending {
type boolean;
config false;
description
"A Boolean variable, set TRUE by the List Config state machine
to signal that there is a new cycle configuration awaiting
installation. The variable is set FALSE when the List Config
state machine has installed the new configuration. The
variable is used by the SetCycleStartTime() procedure to
control the length of the cycle that immediately precedes the
first cycle that uses the new configuration values. This value
can be read by management.";
reference
"8.6.9.3 of IEEE Std 802.1Q-2018
8.6.9.4.8 of IEEE Std 802.1Q-2018";
}
leaf config-change-error {
type yang:counter64;
config false;
description
"An error counter that is incremented if AdminBaseTime
specifies a time in the past, and the current schedule is
running.";
reference
"8.6.9.3.1 of IEEE Std 802.1Q-2018";
}
leaf gate-closed-due-to-invalid-rx-enable {
type boolean;
default "false";
description
"A value of TRUE indicates that the GateClosedDueToInvalidRx
function is enabled; a value of FALSE indicates that the
GateClosedDueToInvalidRx function is disabled. The default
value of GateClosedDueToInvalidRxEnable is FALSE.";
reference
"8.6.5.1.2 of IEEE Std 802.1Q-2018";
}
leaf gate-closed-due-to-invalid-rx {
type boolean;
default "false";
description
"If GateClosedDueToInvalidRxEnable is TRUE, a value of TRUE in
GateClosedDueToInvalidRx indicates that all frames are dropped
(i.e., the gate behaves as if the operational stream gate
state is Closed). If GateClosedDueToInvalidRx is FALSE, it has
no effect. The default value of GateClosedDueToInvalidRx is
FALSE; if any frame is discarded because the gate is in the
Closed state, then GateClosedDueToInvalidRx is set TRUE.";
reference
"8.6.5.1.2 of IEEE Std 802.1Q-2018";
}
leaf gate-closed-due-octets-exceeded-enable {
type boolean;
default "false";
description
"A value of TRUE indicates that the
GateClosedDueToOctetsExceeded function is enabled; a value of
FALSE indicates that the GateClosedDueToOctetsExceeded
function is disabled. The default value of
GateClosedDueToOctetsExceed is FALSE.";
reference
"8.6.5.1.2 of IEEE Std 802.1Q-2018";
}
leaf gate-closed-due-octets-exceeded {
type boolean;
default "false";
description
"If GateClosedDueToOctetsExceededEnable is TRUE, a value of
TRUE in GateClosedDueToOctetsExceeded indicates that all
frames are dropped (i.e., the gate behaves as if the
operational stream gate state is Closed). If
GateClosedDueToOctetsExceeded is FALSE, it has no effect. The
default value of GateClosedDueToOctetsExceeded is FALSE; if
any frame is discarded because there are insufficient
IntervalOctetsLeft, then GateClosedDueToOctetsExceeded is set
TRUE.";
reference
"8.6.5.1.2 of IEEE Std 802.1Q-2018";
}
}
augment "/dot1q:bridges/dot1q:bridge/dot1q:component" {
description
"Augment the Bridge component by Flow Meters.";
container flow-meters {
description
"This container comprises all flow meter related nodes.";
list flow-meter-instance-table {
must "(count(.) <= ../max-flow-meter-instances)" {
error-message "Number of elements in flow-meter-instance-table
must not be greater than max-flow-meter-instances.";
}
key "flow-meter-instance-id";
description
"There is one Flow Meter Instance Table per Bridge
component. Each table row contains a set of parameters that
defines a single Flow Meter Instance. Tables can be created
or removed dynamically in implementations that support
dynamic configuration of Bridge components. Rows in the
table can be created or removed dynamically in
implementations that support dynamic configuration of flow
meters.";
reference
"12.31.4 of IEEE Std 802.1Q-2018";
leaf flow-meter-instance-id {
type uint32;
mandatory true;
description
"An integer table index that allows the Flow Meter to be
referenced from Stream Filter Instance Table entries.";
reference
"8.6.5.1.3 of IEEE Std 802.1Q-2018";
}
leaf committed-information-rate {
type uint64;
units "bits/second";
mandatory true;
description
"Committed information rate (CIR), in bits per second.";
reference
"8.6.5.1.3 of IEEE Std 802.1Q-2018";
}
leaf committed-burst-size {
type uint32;
units "octets";
mandatory true;
description
"Committed burst size (CBS), in octets.";
reference
"8.6.5.1.3 of IEEE Std 802.1Q-2018";
}
leaf excess-information-rate {
type uint64;
units "bits/second";
mandatory true;
description
"Excess Information Rate (EIR), in bits per second.";
reference
"8.6.5.1.3 of IEEE Std 802.1Q-2018";
}
leaf excess-burst-size {
type uint32;
units "octets";
mandatory true;
description
"Excess burst size (EBS) per bandwidth profile flow, in
octets.";
reference
"8.6.5.1.3 of IEEE Std 802.1Q-2018";
}
leaf coupling-flag {
type enumeration {
enum zero {
value 0;
description
"Uncoupled";
}
enum one {
value 1;
description
"Coupled";
}
}
mandatory true;
description
"Coupling flag (CF), which takes the value 0 or 1.";
reference
"8.6.5.1.3 of IEEE Std 802.1Q-2018";
}
leaf color-mode {
type enumeration {
enum color-blind {
description
"Color-blind (i.e., the color of a frame is ignored
by the bandwidth profile algorithm).";
}
enum color-aware {
description
"Color-aware (i.e., the color of a frame is considered
by the bandwidth profile algorithm).";
}
}
mandatory true;
description
"Color mode (CM), which takes the value color-blind or
color-aware, as specified in Bandwidth Profile Parameters
and Algorithm in MEF 10.3.";
reference
"8.6.5.1.3 of IEEE Std 802.1Q-2018";
}
leaf drop-on-yellow {
type boolean;
mandatory true;
description
"DropOnYellow, which takes the value TRUE or FALSE. A
value of TRUE indicates that yellow frames are dropped
(i.e., discarded); a value of FALSE indicates that yellow
frames will have the drop_eligible parameter set to TRUE.";
reference
"8.6.5.1.3 of IEEE Std 802.1Q-2018";
}
leaf mark-all-frames-red-enable {
type boolean;
default "false";
description
"MarkAllFramesRedEnable, which takes the value TRUE or
FALSE. A value of TRUE indicates that the MarkAllFramesRed
function is enabled; a value of FALSE indicates that the
MarkAllFramesRed function is disabled. The default value
of MarkAllFramesRedEnable is FALSE.";
reference
"8.6.5.1.3 of IEEE Std 802.1Q-2018";
}
leaf mark-all-frames-red {
type boolean;
default "false";
description
"MarkAllFramesRed, which takes the value TRUE or FALSE. If
MarkAllFramesRedEnable is TRUE, a value of TRUE in
MarkAllFramesRed indicates that all frames are dropped
(i.e., discarded). If MarkAllFramesRed is False, it has no
effect. The default value of MarkAllFramesRed is FALSE; if
the operation of the flow meter causes any frame to be
discarded, then MarkAllFramesRed is set TRUE.";
reference
"8.6.5.1.3 of IEEE Std 802.1Q-2018";
}
}
leaf max-flow-meter-instances {
type uint32;
description
"The maximum number of Flow Meter instances supported by
this Bridge component. The object may optionally be read-only.";
reference
"12.31.1.3 of IEEE Std 802.1Q-2018";
}
}
}
}

View File

@@ -0,0 +1,440 @@
module ieee802-dot1q-sched {
namespace urn:ieee:std:802.1Q:yang:ieee802-dot1q-sched;
prefix sched;
import ietf-yang-types {
prefix yang;
}
import ieee802-types {
prefix ieee802;
}
import ieee802-dot1q-types {
prefix dot1q-types;
}
import ietf-interfaces {
prefix if;
}
import ieee802-dot1q-bridge {
prefix dot1q;
}
organization
"IEEE 802.1 Working Group";
contact
"WG-URL: http://www.ieee802.org/1/
WG-EMail: stds-802-1-L@ieee.org
Contact: IEEE 802.1 Working Group Chair
Postal: C/O IEEE 802.1 Working Group
IEEE Standards Association
445 Hoes Lane
P.O. Box 1331
Piscataway
NJ 08855-1331
USA
E-mail: STDS-802-1-L@IEEE.ORG";
description
"This module provides for management of IEEE Std 802.1Q Bridges
that support Scheduled Traffic Enhancements.";
revision 2020-07-07 {
description
"Published as part of IEEE Std 802.1Qcw.
Initial version.";
reference
"IEEE Std 802.1Qcw - Bridges and Bridged Networks — Amendment:
YANG Data Models for Scheduled Traffic, Frame Preemption, and
Per-Stream Filtering and Policing.";
}
feature scheduled-traffic {
description
"Enhancements for Scheduled Traffic supported.";
reference
"IEEE Std 802.1Q-2018";
}
identity set-gate-states {
base dot1q-types:type-of-operation;
description
"Operation to set the gate states.";
}
identity set-and-hold-mac {
base dot1q-types:type-of-operation;
description
"Operation to set and hold MAC.";
}
identity set-and-release-mac {
base dot1q-types:type-of-operation;
description
"Operation to set and release MAC.";
}
grouping sched-gate-control-entries {
description
"A GateControlEntry consists of an operation name,
followed by up to 2 parameters associated with the
operation. The first parameter is a gateStatesValue;
the second parameter is a timeIntervalValue";
uses dot1q-types:base-gate-control-entries {
refine "gate-control-entry/operation-name" {
must "(. = 'sched:set-gate-states') or
(. = 'sched:set-and-hold-mac') or
(. = 'sched:set-and-release-mac')";
}
refine "gate-control-entry/time-interval-value" {
must "(. <= ../../../supported-interval-max )";
}
augment "gate-control-entry" {
description
"Augment gate-control-entry from base-gate-control-entries
with parameter gate-states-value.";
leaf gate-states-value {
type uint8;
mandatory true;
description
"gateStatesValue is the gate states for this entry for the
Port. The gates are immediately set to the states in
gateStatesValue when this entry executes. The bits of the
octet represent the gate states for the corresponding
traffic classes; the most-significant bit corresponds to
traffic class 7, the least-significant bit to traffic class
0. A bit value of 0 indicates closed; a bit value of 1
indicates open.";
reference
"12.29.1.2.2 of IEEE Std 802.1Q-2018
8.6.8.4 of IEEE Std 802.1Q-2018";
}
}
}
}
augment "/if:interfaces/if:interface/dot1q:bridge-port" {
if-feature "scheduled-traffic";
description
"Augment bridge-port with Scheduled Traffic configuration.";
container gate-parameter-table {
description
"A table that contains the per-port manageable parameters for
traffic scheduling. For a given Port, an entry in the table
exists. All writable objects in this table must be persistent
over power up restart/reboot.";
reference
"12.29.1 of IEEE Std 802.1Q-2018
8.6.8.4 of IEEE Std 802.1Q-2018
8.6.9 of IEEE Std 802.1Q-2018";
list queue-max-sdu-table {
key "traffic-class";
description
"A list containing a set of max SDU parameters, one for each
traffic class. All writable objects in this table must be
persistent over power up restart/reboot.";
reference
"12.29.1.1 of IEEE Std 802.1Q-2018
8.6.8.4 of IEEE Std 802.1Q-2018
8.6.9 of IEEE Std 802.1Q-2018";
leaf traffic-class {
type dot1q-types:traffic-class-type;
description
"Traffic class";
}
leaf queue-max-sdu {
type uint32;
default "0";
description
"The value of the queueMaxSDU parameter for the traffic
class. A value of 0 is interpreted as the max SDU size
supported by the underlying MAC. The value must be retained
across reinitializations of the management system.";
reference
"12.29.1.1.1 of IEEE Std 802.1Q-2018
8.6.8.4 of IEEE Std 802.1Q-2018
8.6.9 of IEEE Std 802.1Q-2018";
}
leaf transmission-overrun {
type yang:counter64;
default "0";
config false;
description
"A counter of transmission overrun events, where a PDU is
still being transmitted by a MAC at the time when the
transmission gate for the queue closed.";
reference
"12.29.1.1.2 of IEEE Std 802.1Q-2018
8.6.8.4 of IEEE Std 802.1Q-2018
8.6.9 of IEEE Std 802.1Q-2018";
}
}
leaf gate-enabled {
type boolean;
default "false";
description
"The GateEnabled parameter determines whether traffic
scheduling is active (true) or inactive (false). The value
must be retained across reinitializations of the management
system.";
reference
"12.29.1 of IEEE Std 802.1Q-2018
8.6.8.2 of IEEE Std 802.1Q-2018
8.6.9.4.14 of IEEE Std 802.1Q-2018";
}
leaf admin-gate-states {
type uint8;
default "255";
description
"AdminGateStates is the administrative value of the initial
gate states for the Port. The bits of the octet represent
the gate states for the corresponding traffic classes; the
most-significant bit corresponds to traffic class 7, the
least-significant bit to traffic class 0. A bit value of 0
indicates closed; a bit value of 1 indicates open. The value
must be retained across reinitializations of the management
system.";
reference
"12.29.1 of IEEE Std 802.1Q-2018
8.6.9.4.5 of IEEE Std 802.1Q-2018";
}
leaf oper-gate-states {
type uint8;
config false;
description
"OperGateStates is the operational value of the current gate
states for the Port. The bits of the octet represent the
gate states for the corresponding traffic classes; the
most-significant bit corresponds to traffic class 7, the
least-significant bit to traffic class 0. A bit value of 0
indicates closed; a bit value of 1 indicates open.";
reference
"12.29.1 of IEEE Std 802.1Q-2018
8.6.9.4.22 of IEEE Std 802.1Q-2018";
}
container admin-control-list {
/* check removed to allow empty list (for example when TAS is not used on
a port that support it):
must "(count(./gate-control-entry) > 0)" {
error-message "admin-control-list empty.";
} */
/* check removed to allow not defining supported-list-max and gate-control-entry,
for example when TAS is not used on a port.
must "(count(./gate-control-entry) <= ../supported-list-max)" {
error-message "Number of elements in admin-control-list must
not be greater than supported-list-max";
}*/
config true;
description
"AdminControlList is the administrative value of the gate
control list for the Port.
The value must be retained across reinitializations of the
management system.";
reference
"12.29.1.2 of IEEE Std 802.1Q-2018
8.6.8.4 of IEEE Std 802.1Q-2018
8.6.9.4.2 of IEEE Std 802.1Q-2018";
uses sched-gate-control-entries;
}
container oper-control-list {
must "(count(./gate-control-entry) > 0)" {
error-message "oper-control-list empty.";
}
must "(count(./gate-control-entry) <= ../supported-list-max)" {
error-message "Number of elements in oper-control-list must
not be greater than supported-list-max";
}
config false;
description
"OperControlList is the operational value of the gate
control list for the Port.";
reference
"12.29.1.2 of IEEE Std 802.1Q-2018
8.6.8.4 of IEEE Std 802.1Q-2018
8.6.9.4.19 of IEEE Std 802.1Q-2018";
uses sched-gate-control-entries;
}
container admin-cycle-time {
/* IRT : removed invalid comparison between two rational-grouping: not numbers */
/*must "(. <= ../supported-cycle-max)" {
error-message "admin-cycle-time must not be greater than supported-cycle-max";
}*/
description
"AdminCycleTime specifies the administrative value of the
gating cycle time for the Port.
AdminCycleTime is a rational number of seconds, defined by
an integer numerator and an integer denominator.
The value must be retained across reinitializations of the
management system.";
reference
"12.29.1 of IEEE Std 802.1Q-2018
8.6.8.4 of IEEE Std 802.1Q-2018
8.6.9.4.3 of IEEE Std 802.1Q-2018";
uses ieee802:rational-grouping;
}
container oper-cycle-time {
/* IRT : removed invalid comparison between two rational-grouping: not numbers */
/*must "(. <= ../supported-cycle-max)" {
error-message "oper-cycle-time must not be greater than supported-cycle-max";
}*/
config false;
description
"OperCycleTime specifies the operational value of the gating
cycle time for the Port.
OperCycleTime is a rational number of seconds, defined by an
integer numerator and an integer denominator.";
reference
"12.29.1 of IEEE Std 802.1Q-2018
8.6.8.4 of IEEE Std 802.1Q-2018
8.6.9.4.20 of IEEE Std 802.1Q-2018";
uses ieee802:rational-grouping;
}
leaf admin-cycle-time-extension {
type uint32;
units "nanoseconds";
description
"An unsigned integer number of nanoseconds, defining the
maximum amount of time by which the gating cycle for the
Port is permitted to be extended when a new cycle
configuration is being installed. This is the administrative
value.
The value must be retained across reinitializations of the
management system.";
reference
"12.29.1 of IEEE Std 802.1Q-2018
8.6.9.4.4 of IEEE Std 802.1Q-2018";
}
leaf oper-cycle-time-extension {
type uint32;
units "nanoseconds";
config false;
description
"An unsigned integer number of nanoseconds, defining the
maximum amount of time by which the gating cycle for the
Port is permitted to be extended when a new cycle
configuration is being installed. This is the operational
value.";
reference
"12.29.1 of IEEE Std 802.1Q-2018
8.6.9.4.21 of IEEE Std 802.1Q-2018";
}
container admin-base-time {
description
"The administrative value of the base time at which gating
cycles begin, expressed as an IEEE 1588 precision time
protocol (PTP) timescale.
The value must be retained across reinitializations of the
management system.";
reference
"12.29.1 of IEEE Std 802.1Q-2018
8.6.9.4.1 of IEEE Std 802.1Q-2018";
uses ieee802:ptp-time-grouping;
}
container oper-base-time {
config false;
description
"The operational value of the base time at which gating
cycles begin, expressed as an IEEE 1588 precision time
protocol (PTP) timescale.";
reference
"12.29.1 of IEEE Std 802.1Q-2018
8.6.9.4.18 of IEEE Std 802.1Q-2018";
uses ieee802:ptp-time-grouping;
}
leaf config-change {
type boolean;
description
"The ConfigChange parameter signals the start of a
configuration change when it is set to TRUE, indicating that
the administrative parameters for the Port are ready to be
copied into their corresponding operational parameters. This
should only be done when the various administrative
parameters are all set to appropriate values.";
reference
"12.29.1 of IEEE Std 802.1Q-2018
8.6.9.4.7 of IEEE Std 802.1Q-2018";
}
container config-change-time {
config false;
description
"The time at which the next config change is scheduled to
occur.";
reference
"12.29.1 of IEEE Std 802.1Q-2018
8.6.9.4.9 of IEEE Std 802.1Q-2018";
uses ieee802:ptp-time-grouping;
}
leaf tick-granularity {
type uint32;
config false;
description
"The granularity of the cycle time clock, represented as an
unsigned number of tenths of nanoseconds.
The value must be retained across reinitializations of the
management system.";
reference
"12.29.1 of IEEE Std 802.1Q-2018";
}
container current-time {
config false;
description
"The current time as maintained by the local system.";
reference
"12.29.1 of IEEE Std 802.1Q-2018
8.6.9.4.10 of IEEE Std 802.1Q-2018";
uses ieee802:ptp-time-grouping;
}
leaf config-pending {
type boolean;
config false;
description
"The value of the ConfigPending state machine variable. The
value is TRUE if a configuration change is in progress but
has not yet completed.";
reference
"12.29.1 of IEEE Std 802.1Q-2018
8.6.9.4.8 of IEEE Std 802.1Q-2018";
}
leaf config-change-error {
type yang:counter64;
config false;
description
"A counter of the number of times that a re-configuration of
the traffic schedule has been requested with the old
schedule still running and the requested base time was in
the past.";
reference
"12.29.1 of IEEE Std 802.1Q-2018
8.6.9.3.1 of IEEE Std 802.1Q-2018";
}
leaf supported-list-max {
type uint32;
description
"The maximum value supported by this Port for the
AdminControlListLength and OperControlListLength parameters.
It is available for use by schedule computation software to
determine the ports control list capacity prior to
computation. The object may optionally be read-only.";
reference
"12.29.1.5 of IEEE Std 802.1Q-2018
8.6.9.4.21 of IEEE Std 802.1Q-2018";
}
container supported-cycle-max {
description
"The maximum value supported by this Port of the
AdminCycleTime and OperCycleTime parameters. The object may
optionally be read-only.";
reference
"12.29.1.6 of IEEE Std 802.1Qcw";
uses ieee802:rational-grouping;
}
leaf supported-interval-max {
type uint32;
description
"The maximum value supported by this Port of the
TimeIntervalValue parameter. The object may optionally
be read-only.";
reference
"12.29.1.7 of IEEE Std 802.1Qcw";
}
}
}
}