module ieee802-dot1q-ats { yang-version "1.1"; namespace urn:ieee:std:802.1Q:yang:ieee802-dot1q-ats; prefix ats; import ietf-yang-types { prefix yang; } import ietf-interfaces { prefix if; } import ieee802-dot1q-types { prefix dot1qtypes; } import ieee802-dot1q-bridge { prefix dot1q; } import ieee802-dot1q-stream-filters-gates { prefix sfsg; } organization "IEEE 802.1 Working Group"; contact "WG-URL: 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 Asynchronous Traffic Shaping (ATS). Copyright (C) IEEE (2022). This version of this YANG module is part of IEEE Std 802.1Q; see the standard itself for full legal notices."; revision 2022-01-19 { description "Published as part of IEEE Std 802.1Q-2022."; reference "IEEE Std 802.1Q-2022, Bridges and Bridged Networks."; } 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."; } typedef scheduler-ref-type { type leafref { path '/dot1q:bridges'+ '/dot1q:bridge'+ '/dot1q:component'+ '/ats:schedulers'+ '/ats:scheduler-instance-table'+ '/ats:scheduler-instance-id'; } description "This type is used to refer to an ATS scheduler instance."; } typedef scheduler-group-ref-type { type leafref { path '/dot1q:bridges'+ '/dot1q:bridge'+ '/dot1q:component'+ '/ats:scheduler-groups'+ '/ats:scheduler-group-instance-table'+ '/ats:scheduler-group-instance-id'; } description "This type is used to refer to an ATS scheduler group instance."; } augment "/dot1q:bridges"+ "/dot1q:bridge"+ "/dot1q:component"+ "/sfsg:stream-filters"+ "/sfsg:stream-filter-instance-table" { description "Augments the Bridge component stream filter for ATS schedulers."; container scheduler { description "Enapsulates ATS scheduler nodes."; leaf scheduler-ref { type ats:scheduler-ref-type; description "A reference to the ATS scheduler associated with this stream filter."; } leaf scheduler-enable { type boolean; default "false"; description "If TRUE, this stream filter has an associated ATS scheduler referenced by scheduler-ref. If FALSE, no ATS scheduler is associated with this stream filter (scheduler-ref is ignored)."; } } } augment "/if:interfaces/if:interface/dot1q:bridge-port" { description "Augments Bridge Ports by ATS per-Port parameters."; container ats-port-parameters { description "This container comprises all ATS per-Port parameters."; leaf discarded-frames-count { type yang:counter64; config false; description "A counter of frames discarded by ATS scheduler instances associated with the Bridge Port."; reference "12.31.7.3 of IEEE Std 802.1Q-2022"; } } } augment "/dot1q:bridges/dot1q:bridge/dot1q:component" { description "Augments the Bridge component by a) ATS schedulers b) ATS scheduler groups"; container schedulers { description "This container comprises all nodes related to an ATS schedulers."; list scheduler-instance-table { key "scheduler-instance-id"; description "Each list entry comprises a set of parameters that defines a single ATS scheduler instance, as detailed in Table 12-33."; reference "12.31.5 of IEEE Std 802.1Q-2022"; leaf scheduler-instance-id { type uint32; mandatory true; description "A unique index identifying this ATS scheduler instance."; reference "12.31.5.1, 8.6.5.6 of IEEE Std 802.1Q-2022"; } leaf committed-information-rate { type uint64; units "bits/second"; mandatory true; description "The committed information rate parameter of this ATS scheduler instance."; reference "12.31.5.3, 8.6.5.6 of IEEE Std 802.1Q-2022"; } leaf committed-burst-size { type uint32; units "bits"; mandatory true; description "The committed burst size parameter of this ATS scheduler instance."; reference "12.31.5.3, 8.6.5.6 of IEEE Std 802.1Q-2022"; } leaf scheduler-group-ref { type ats:scheduler-group-ref-type; mandatory true; description "A reference to the scheduler group (12.32.5) associated with this ATS scheduler instance. Multiple ATS scheduler instances can be associated to one scheduler group, as detailed in 8.6.5.6."; reference "12.31.6 of IEEE Std 802.1Q-2022"; } } leaf max-scheduler-instances { type uint32; config false; description "The maximum number of ATS scheduler instances supported by this Bridge component."; reference "12.31.1.5 of IEEE Std 802.1Q-2022"; } } container scheduler-groups { description "This container comprises all ATS scheduler group related nodes."; list scheduler-group-instance-table { key "scheduler-group-instance-id"; description "Each list entry comprises a set of parameters that defines a single ATS scheduler group instance."; reference "12.31.6, 8.6.5.6 of IEEE Std 802.1Q-2022"; leaf scheduler-group-instance-id { type uint32; description "A unique index identifying this ATS scheduler group instance."; reference "12.31.6, 8.6.5.6 of IEEE Std 802.1Q-2022"; } leaf max-residence-time { type uint32; units "nanoseconds"; mandatory true; description "The maximum residence time parameter of the ATS scheduler group."; reference "8.6.11.2.13, 8.6.5.6 of IEEE Std 802.1Q-2022"; } } leaf max-scheduler-group-instances { type uint32; config false; description "The maximum number of ATS scheduler group instances supported by this Bridge component."; reference "12.31.1.6, 8.6.5.6 of IEEE Std 802.1Q-2022"; } container scheduler-timing-characteristics { description "This container comprises all ATS scheduler timing characteristics related nodes."; list scheduler-timing-characteristics-table { key "reception-port transmission-port"; config false; description "Each list entry comprises the timing characteristics of a reception Port transmission Port pair, as detailed in Table 12-36."; reference "12.31.8, 8.6.11 of IEEE Std 802.1Q-2022"; leaf reception-port { type dot1qtypes:port-number-type; config false; mandatory true; description "A reference to the associated reception Port."; reference "12.31.8.1 of IEEE Std 802.1Q-2022"; } leaf transmission-port { type dot1qtypes:port-number-type; config false; mandatory true; description "A reference to the associated transmission Port."; reference "12.31.8.2 of IEEE Std 802.1Q-2022"; } leaf clock-offset-variation-max { type uint32; units "nanoseconds"; config false; mandatory true; description "The maximum clock offset variation associated with the reception Port transmission Port pair."; reference "12.31.8.3 of IEEE Std 802.1Q-2022"; } leaf clock-rate-deviation-max { type uint32; units "ppm"; config false; mandatory true; description "The maximum clock rate deviation associated with the reception Port transmission Port pair."; reference "12.31.8.4 of IEEE Std 802.1Q-2022"; } leaf arrival-recognition-delay-max { type uint32; units "nanoseconds"; config false; mandatory true; description "The maximum arrival time recognition delay associated with the reception Port transmission Port pair."; reference "12.31.8.5 of IEEE Std 802.1Q-2022"; } leaf processing-delay-min { type uint32; units "nanoseconds"; config false; mandatory true; description "The minimum processing delay associated with the reception Port transmission Port pair."; reference "12.31.8.6 of IEEE Std 802.1Q-2022"; } leaf processing-delay-max { type uint32; units "nanoseconds"; config false; mandatory true; description "The maximum processing delay associated with the reception Port transmission Port pair."; reference "12.31.8.7 of IEEE Std 802.1Q-2022"; } } } } } }