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.
385 lines
12 KiB
385 lines
12 KiB
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"; |
|
} |
|
} |
|
} |
|
}
|
|
|