You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
386 lines
12 KiB
386 lines
12 KiB
1 year ago
|
module ieee802-dot1q-stream-filters-gates {
|
||
|
yang-version "1.1";
|
||
|
namespace urn:ieee:std:802.1Q:yang:ieee802-dot1q-stream-filters-gates;
|
||
|
prefix sfsg;
|
||
|
import ieee802-dot1q-bridge {
|
||
|
prefix dot1q;
|
||
|
}
|
||
|
organization
|
||
|
"IEEE 802.1 Working Group";
|
||
|
contact
|
||
|
"WG-URL: http://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
|
||
|
Piscataway, NJ 08854
|
||
|
USA
|
||
|
|
||
|
E-mail: stds-802-1-chairs@ieee.org";
|
||
|
description
|
||
|
"This module provides management of 802.1Q bridge components that support
|
||
|
Stream Filters and Stream Gates.";
|
||
|
revision 2020-11-06 {
|
||
|
description
|
||
|
"Published as part of IEEE Std 802.1Qcr-2020.
|
||
|
Initial version.";
|
||
|
reference
|
||
|
"IEEE Std 802.1Qcr-2020, Bridges and Bridged Networks -
|
||
|
Asynchronous Traffic Shaping.";
|
||
|
}
|
||
|
|
||
|
feature closed-gate-state {
|
||
|
description
|
||
|
"The bridge component supports gate state closed.";
|
||
|
reference
|
||
|
"IEEE Std 802.1Qcr-2020";
|
||
|
}
|
||
|
|
||
|
/* Types and groupings */
|
||
|
typedef priority-spec-type {
|
||
|
type enumeration {
|
||
|
enum zero {
|
||
|
value 0;
|
||
|
description
|
||
|
"Priority 0";
|
||
|
}
|
||
|
enum one {
|
||
|
value 1;
|
||
|
description
|
||
|
"Priority 1";
|
||
|
}
|
||
|
enum two {
|
||
|
value 2;
|
||
|
description
|
||
|
"Priority 2";
|
||
|
}
|
||
|
enum three {
|
||
|
value 3;
|
||
|
description
|
||
|
"Priority 3";
|
||
|
}
|
||
|
enum four {
|
||
|
value 4;
|
||
|
description
|
||
|
"Priority 4";
|
||
|
}
|
||
|
enum five {
|
||
|
value 5;
|
||
|
description
|
||
|
"Priority 5";
|
||
|
}
|
||
|
enum six {
|
||
|
value 6;
|
||
|
description
|
||
|
"Priority 6";
|
||
|
}
|
||
|
enum seven {
|
||
|
value 7;
|
||
|
description
|
||
|
"Priority 7";
|
||
|
}
|
||
|
enum wildcard {
|
||
|
description
|
||
|
"wildcard value";
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
typedef ipv-spec-type {
|
||
|
type enumeration {
|
||
|
enum zero {
|
||
|
value 0;
|
||
|
description
|
||
|
"Priority 0";
|
||
|
}
|
||
|
enum one {
|
||
|
value 1;
|
||
|
description
|
||
|
"Priority 1";
|
||
|
}
|
||
|
enum two {
|
||
|
value 2;
|
||
|
description
|
||
|
"Priority 2";
|
||
|
}
|
||
|
enum three {
|
||
|
value 3;
|
||
|
description
|
||
|
"Priority 3";
|
||
|
}
|
||
|
enum four {
|
||
|
value 4;
|
||
|
description
|
||
|
"Priority 4";
|
||
|
}
|
||
|
enum five {
|
||
|
value 5;
|
||
|
description
|
||
|
"Priority 5";
|
||
|
}
|
||
|
enum six {
|
||
|
value 6;
|
||
|
description
|
||
|
"Priority 6";
|
||
|
}
|
||
|
enum seven {
|
||
|
value 7;
|
||
|
description
|
||
|
"Priority 7";
|
||
|
}
|
||
|
enum null {
|
||
|
description
|
||
|
"null value";
|
||
|
}
|
||
|
}
|
||
|
description
|
||
|
"An IPV can be either of the following:
|
||
|
1) The null value. For a frame that passes through the gate, the
|
||
|
priority value associated with the frame is used to determine
|
||
|
the frame’s traffic class, using the Traffic Class Table as
|
||
|
specified in 8.6.6.
|
||
|
2) An internal priority value. For a frame that passes through the
|
||
|
gate, the IPV is used, in place of the priority value
|
||
|
associated with the frame, to determine the frame’s traffic
|
||
|
class, using the Traffic Class Table as specified in 8.6.6.";
|
||
|
reference
|
||
|
"8.6.5.2 of IEEE Std 802.1Qcr-2020";
|
||
|
}
|
||
|
typedef gate-state-value-type {
|
||
|
type enumeration {
|
||
|
enum closed {
|
||
|
description
|
||
|
"Gate closed";
|
||
|
}
|
||
|
enum open {
|
||
|
description
|
||
|
"Gate open";
|
||
|
}
|
||
|
}
|
||
|
description
|
||
|
"The gate-state-value-type indicates a gate state, open or closed,
|
||
|
for the stream gate.";
|
||
|
reference
|
||
|
"12.31.3.2.1 of IEEE Std 802.1Qcr-2020";
|
||
|
}
|
||
|
typedef stream-gate-ref {
|
||
|
type leafref {
|
||
|
path
|
||
|
'/dot1q:bridges'+
|
||
|
'/dot1q:bridge'+
|
||
|
'/dot1q:component'+
|
||
|
'/sfsg:stream-gates'+
|
||
|
'/sfsg:stream-gate-instance-table'+
|
||
|
'/sfsg:stream-gate-instance-id';
|
||
|
}
|
||
|
description
|
||
|
"This type is used to refer to a stream gate instance.";
|
||
|
}
|
||
|
augment "/dot1q:bridges/dot1q:bridge/dot1q:component" {
|
||
|
description
|
||
|
"Augments the Bridge component with stream filters and stream gates.";
|
||
|
container stream-filters {
|
||
|
description
|
||
|
"This container encapsulates all nodes related to stream bilters.";
|
||
|
reference
|
||
|
"12.31.1 of IEEE Std 802.1Qcr-2020
|
||
|
12.31.2 of IEEE Std 802.1Qcr-2020
|
||
|
12.31.3 of IEEE Std 802.1Qcr-2020";
|
||
|
list stream-filter-instance-table {
|
||
|
key "stream-filter-instance-id";
|
||
|
description
|
||
|
"Each list entry contains a set of parameters that defines a
|
||
|
single stream filter (8.6.5.1) with associated maximum SDU size
|
||
|
filtering (8.6.5.3.1), as detailed in Table 12-32. Entries can be
|
||
|
created or removed dynamically in implementations that support
|
||
|
dynamic configuration of stream filters. The value of the
|
||
|
stream-handle-spec and priority-spec parameters associated with a
|
||
|
received frame determine which stream filter is selected by the
|
||
|
frame, and therefore what combination of filtering and policing
|
||
|
actions is applied to the frame. If the stream-handle-spec and
|
||
|
priority-spec parameters associated with a received frame match
|
||
|
more than one stream filter, the stream filter that is selected
|
||
|
is the one that appears earliest in the ordered list. If a
|
||
|
received frame’s stream-handle-spec and priority-spec does not
|
||
|
match any of the stream filters in the list, the frame is
|
||
|
processed as if stream filters and stream gates would not be
|
||
|
supported.";
|
||
|
reference
|
||
|
"12.31.2 of IEEE Std 802.1Qcr-2020";
|
||
|
leaf stream-filter-instance-id {
|
||
|
type uint32;
|
||
|
mandatory true;
|
||
|
description
|
||
|
"An integer index value that determines the place of the stream
|
||
|
filter in the ordered list of stream filter instances. The
|
||
|
values are ordered according to their integer value; smaller
|
||
|
values appear earlier in the ordered list.";
|
||
|
reference
|
||
|
"12.31.2.1 of IEEE Std 802.1Qcr-2020";
|
||
|
}
|
||
|
choice stream-handle-spec {
|
||
|
description
|
||
|
"The stream_handle specification data type allows either of the
|
||
|
following to be represented:
|
||
|
a) A stream_handle value, represented as an integer.
|
||
|
b) The wildcard value, which matches any frame";
|
||
|
reference
|
||
|
"12.31.2.2 of IEEE Std 802.1Qcr-2020";
|
||
|
|
||
|
/* NOTE: The mapping of the wildcard literal is
|
||
|
* other than in the MIB definition, where
|
||
|
* the wildcard value is mapped to -1.
|
||
|
*/
|
||
|
case wildcard {
|
||
|
leaf wildcard {
|
||
|
type empty;
|
||
|
description
|
||
|
"The stream handle specification represents a wildcard value.";
|
||
|
}
|
||
|
}
|
||
|
case stream-handle {
|
||
|
leaf stream-handle {
|
||
|
type uint32;
|
||
|
mandatory true;
|
||
|
description
|
||
|
"The stream handle specification refers to a stream_handle
|
||
|
value.";
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
leaf priority-spec {
|
||
|
type priority-spec-type;
|
||
|
mandatory true;
|
||
|
description
|
||
|
"The priority specification data type allows either of the
|
||
|
following to be represented:
|
||
|
a) A priority value, represented as an integer.
|
||
|
b) The wildcard value, which matches any priority.";
|
||
|
reference
|
||
|
"12.31.2.3 of IEEE Std 802.1Qcr-2020";
|
||
|
}
|
||
|
leaf max-sdu-size {
|
||
|
type uint32;
|
||
|
units "octets";
|
||
|
mandatory true;
|
||
|
description
|
||
|
"The allowed maximum SDU size, in octets. If set to 0, any SDU
|
||
|
size is accepted.";
|
||
|
reference
|
||
|
"8.6.5.3.1 of IEEE Std 802.1Qcr-2020";
|
||
|
}
|
||
|
leaf stream-blocked-due-to-oversize-frame-enabled {
|
||
|
type boolean;
|
||
|
default "false";
|
||
|
description
|
||
|
"A value of true indicates that
|
||
|
stream-blocked-due-to-oversize-frame is set to true as soon as
|
||
|
a frame exceeds max-sdu-size.";
|
||
|
reference
|
||
|
"8.6.5.3.1 of IEEE Std 802.1Qcr-2020";
|
||
|
}
|
||
|
leaf stream-blocked-due-to-oversize-frame {
|
||
|
type boolean;
|
||
|
default "false";
|
||
|
description
|
||
|
"Indicates by value true that frames are permanently discarded
|
||
|
as a result of an initial frame exceeding max-sdu-size. The
|
||
|
value of stream-blocked-due-to-oversize-frame can be
|
||
|
administratively reset to false.";
|
||
|
reference
|
||
|
"8.6.5.3.1 of IEEE Std 802.1Qcr-2020";
|
||
|
}
|
||
|
leaf stream-gate-ref {
|
||
|
type stream-gate-ref;
|
||
|
mandatory true;
|
||
|
description
|
||
|
"This node refers to the stream gate (12.31.3) that is
|
||
|
associated with the stream filter. The relationship between
|
||
|
stream filters and stream gates is many to one; a given stream
|
||
|
filter can be associated with only one stream gate, but there
|
||
|
can be multiple stream filters associated with a given stream
|
||
|
gate.";
|
||
|
reference
|
||
|
"12.31.2.4 of IEEE Std 802.1Qcr-2020";
|
||
|
}
|
||
|
}
|
||
|
leaf max-stream-filter-instances {
|
||
|
type uint32;
|
||
|
config false;
|
||
|
description
|
||
|
"The maximum number of stream filter instances supported by this
|
||
|
Bridge component.";
|
||
|
reference
|
||
|
"12.31.1.1 of IEEE Std 802.1Qcr-2020
|
||
|
8.6.5.1 of IEEE Std 802.1Qcr-2020";
|
||
|
}
|
||
|
}
|
||
|
container stream-gates {
|
||
|
description
|
||
|
"This container encapsulates all nodes related to Stream Gates.";
|
||
|
list stream-gate-instance-table {
|
||
|
key "stream-gate-instance-id";
|
||
|
description
|
||
|
"Each list entry contains a set of parameters that defines a
|
||
|
single stream gate (8.6.5.2), as detailed in Table 12-33. Entries
|
||
|
in the table can be created or removed dynamically in
|
||
|
implementations that support dynamic configuration of stream
|
||
|
gates.";
|
||
|
reference
|
||
|
"12.31.3 of IEEE Std 802.1Qcr-2020";
|
||
|
leaf stream-gate-instance-id {
|
||
|
type uint32;
|
||
|
description
|
||
|
"An integer table index that allows the stream gate to be
|
||
|
referenced from Stream Filter Instance Table entries.";
|
||
|
reference
|
||
|
"12.31.2.4 of IEEE Std 802.1Qcr-2020
|
||
|
8.6.5.3 of IEEE Std 802.1Qcr-2020
|
||
|
8.6.5.4 of IEEE Std 802.1Qcr-2020";
|
||
|
}
|
||
|
leaf gate-enable {
|
||
|
type boolean;
|
||
|
default "false";
|
||
|
description
|
||
|
"A Boolean variable that indicates whether the operation of the
|
||
|
state machines is enabled (TRUE) or disabled (FALSE). This
|
||
|
variable is set by management. The default value of this
|
||
|
variable is FALSE.";
|
||
|
reference
|
||
|
"8.6.9.4.14 of IEEE Std 802.1Q-2018";
|
||
|
}
|
||
|
leaf admin-gate-states {
|
||
|
type gate-state-value-type;
|
||
|
default "open";
|
||
|
description
|
||
|
"The administratively set gate state of this gate.";
|
||
|
reference
|
||
|
"12.31.3.2.1 of IEEE Std 802.1Qcr-2020
|
||
|
8.6.10.4 of IEEE Std 802.1Qcr-2020";
|
||
|
}
|
||
|
leaf admin-ipv {
|
||
|
type ipv-spec-type;
|
||
|
default "null";
|
||
|
description
|
||
|
"The administratively set internal priority value
|
||
|
specification.";
|
||
|
reference
|
||
|
"12.31.3.3 of IEEE Std 802.1Qcr-2020
|
||
|
8.6.10.6 of IEEE Std 802.1Qcr-2020
|
||
|
8.6.5.4 of IEEE Std 802.1Qcr-2020";
|
||
|
}
|
||
|
}
|
||
|
leaf max-stream-gate-instances {
|
||
|
type uint32;
|
||
|
config false;
|
||
|
description
|
||
|
"The maximum number of Stream Gate instances supported by this
|
||
|
Bridge component.";
|
||
|
reference
|
||
|
"12.31.1.2 of IEEE Std 802.1Qcr-2020";
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|