initial realease
This commit is contained in:
676
standard_changed/ieee802-dot1q-psfp.yang
Normal file
676
standard_changed/ieee802-dot1q-psfp.yang
Normal 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 component’s 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 implementation’s 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";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
440
standard_changed/ieee802-dot1q-sched.yang
Normal file
440
standard_changed/ieee802-dot1q-sched.yang
Normal 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 port’s 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";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user