module ieee802-dot1q-sched { namespace urn:ieee:std:802.1Q:yang:ieee802-dot1q-sched; prefix sched; import ietf-yang-types { prefix yang; } import ieee802-dot1q-types { prefix dot1q-types; } import ietf-interfaces { prefix if; } import ieee802-dot1q-preemption { prefix preemption; } 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 2018-09-10 { description "Update for P802.1Qcw/D0.1"; reference "IEEE Std 802.1Qbv-2015"; } feature scheduled-traffic { description "Each Port supports the Enhancements for Scheduled Traffic."; reference "IEEE Std 802.1Qbv-2015"; } identity type-of-operation { description "Represents the operation type (name)."; } identity set-gate-states { base type-of-operation; description "Operation to set the gate states."; } identity set-and-hold-mac { base type-of-operation; description "Operation to set set and hold mac."; } identity set-and-release-mac { base type-of-operation; description "Operation to set and release mac."; } grouping ptp-timestamp { description "This grouping specifies a PTP timestamp, represented as a 48-bit unsigned integer number of seconds and a 32-bit unsigned integer number of nanoseconds."; reference "IEEE Std 802.1AS-2011: Clause 6.3.3.4"; leaf seconds { type uint64; description "This is the integer portion of the timestamp in units of seconds. The upper 16 bits are always zero."; } leaf fractional-seconds { type uint64; description "This is the fractional portion of the timestamp in units of nanoseconds. This value is always less than 10^9."; } } grouping gate-control-entry { description "This grouping specifies a GateControlEntry, an entry in the gate control list for scheduled traffic."; reference "IEEE Std 802.1Qbv-2015: Clause 12.29.1.2.1"; leaf operation-name { type identityref { base type-of-operation; } mandatory true; description "The name (type) of the operation for this entry."; } container sgs-params { when "../operation-name = 'sched:set-gate-states'" { description "Applies to the SetGateStates operation."; } description "Contains parameters for the SetGateStates operation."; reference "IEEE Std 802.1Qbv-2015: Clause 12.29.1.2.1 Clause 8.6.8.4"; leaf gate-states-value { type uint8; 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 execiutes. 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 "IEEE Std 802.1Qbv-2015: Clause 12.29.1.2.2 Clause 8.6.8.4"; } leaf time-interval-value { type uint32; description "timeIntervalValue is a 32-bit unsigned integer, representing a number of nanoseconds. After timeIntervalValue nanoseconds have elapsed since the completion of the previous entry in the gate control list, control passes to the next entry."; reference "IEEE Std 802.1Qbv-2015: Clause 12.29.1.2.3 Clause 8.6.8.4"; } } container shm-params { when "../operation-name = 'sched:set-and-hold-mac'" { description "Applies to the Set-And-Hold-MAC operation."; } if-feature "preemption:frame-preemption"; description "Contains parameters for the Set-And-Hold-MAC operation."; reference "IEEE Std 802.1Qbv-2015: Clause 12.29.1.2.1 Clause 8.6.8.4"; leaf gate-states-value { type uint8; 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 execiutes. 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 "IEEE Std 802.1Qbv-2015: Clause 12.29.1.2.2 Clause 8.6.8.4"; } leaf time-interval-value { type uint32; description "timeIntervalValue is a 32-bit unsigned integer, representing a number of nanoseconds. After timeIntervalValue nanoseconds have elapsed since the completion of the previous entry in the gate control list, control passes to the next entry."; reference "IEEE Std 802.1Qbv-2015: Clause 12.29.1.2.3 Clause 8.6.8.4"; } } container srm-params { when "../operation-name = 'sched:set-and-release-mac'" { description "Applies to the Set-And-Release-MAC operation."; } if-feature "preemption:frame-preemption"; description "Contains parameters for the Set-And-Release-MAC operation."; reference "IEEE Std 802.1Qbv-2015: Clause 12.29.1.2.1 Clause 8.6.8.4"; leaf gate-states-value { type uint8; 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 execiutes. 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 "IEEE Std 802.1Qbv-2015: Clause 12.29.1.2.2 Clause 8.6.8.4"; } leaf time-interval-value { type uint32; description "timeIntervalValue is a 32-bit unsigned integer, representing a number of nanoseconds. After timeIntervalValue nanoseconds have elapsed since the completion of the previous entry in the gate control list, control passes to the next entry."; reference "IEEE Std 802.1Qbv-2015: Clause 12.29.1.2.3 Clause 8.6.8.4"; } } } augment "/if:interfaces/if:interface" { if-feature "scheduled-traffic"; description "Augment the interfaces management with Scheduled Traffic configuration."; list 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 "IEEE Std 802.1Qbv-2015: Clause 12.29.1 Clause 8.6.8.4 Clause 8.6.9"; 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 "IEEE Std 802.1Qbv-2015: Clause 12.29.1.1.1 Clause 8.6.8.4 Clause 8.6.9"; } 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 "IEEE Std 802.1Qbv-2015: Clause 12.29.1.1.2 Clause 8.6.8.4 Clause 8.6.9"; } } container gate-parameters { description "A list that contains the per-port managable 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 "IEEE Std 802.1Qbv-2015: Clause 12.29.1 Clause 8.6.8.4 Clause 8.6.9"; leaf gate-enabled { type boolean; 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 "IEEE Std 802.1Qbv-2015: Clause 12.29.1 Clause 8.6.8.2 Clause 8.6.9.4.14"; } leaf admin-gate-states { type uint8; 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 "IEEE Std 802.1Qbv-2015: Clause 12.29.1 Clause 8.6.9.4.5"; } 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. The value must be retained across reinitializations of the management system."; reference "IEEE Std 802.1Qbv-2015: Clause 12.29.1 Clause 8.6.9.4.22"; } leaf admin-control-list-length { type uint32; description "AdminControlListLength is the number of entries in the AdminControlList. The value must be retained across reinitializations of the management system."; reference "IEEE Std 802.1Qbv-2015: Clause 12.29.1.2 Clause 8.6.9.4.6"; } leaf oper-control-list-length { type uint32; config false; description "OperControlListLength is the number of entries in the OperControlList."; reference "IEEE Std 802.1Qbv-2015: Clause 12.29.1.2 Clause 8.6.9.4.23"; } list admin-control-list { key "index"; 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 "IEEE Std 802.1Qbv-2015: Clause 12.29.1.2 Clause 8.6.8.4 Clause 8.6.9.4.2"; leaf index { type uint32; description "This index is provided in order to provide a unique key per list entry. The value of index for each entry shall be unique (but not neccesarily contiguous)."; } uses gate-control-entry; } list oper-control-list { key "index"; config false; description "OperControlList is the operational value of the gate control list for the Port."; reference "IEEE Std 802.1Qbv-2015: Clause 12.29.1.2 Clause 8.6.8.4 Clause 8.6.9.4.19"; leaf index { type uint32; description "This index is provided in order to provide a unique key per list entry. The value of index for each entry shall be unique (but not neccesarily contiguous)."; } uses gate-control-entry; } container admin-cycle-time { 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 "IEEE Std 802.1Qbv-2015: Clause 12.29.1 Clause 8.6.8.4 Clause 8.6.9.4.3"; leaf numerator { type uint32; description "AdminCycleTime’s numerator."; } leaf denominator { type uint32; description "AdminCycleTime’s denominator."; } } container oper-cycle-time { 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 "IEEE Std 802.1Qbv-2015: Clause 12.29.1 Clause 8.6.8.4 Clause 8.6.9.4.20"; leaf numerator { type uint32; description "OperCycleTime’s numerator."; } leaf denominator { type uint32; description "OperCycleTime’s denominator."; } } leaf admin-cycle-time-extension { type uint32; 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 "IEEE Std 802.1Qbv-2015: Clause 12.29.1 Clause 8.6.9.4.4"; } leaf oper-cycle-time-extension { type uint32; 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 "IEEE Std 802.1Qbv-2015: Clause 12.29.1 Clause 8.6.9.4.21"; } 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 "IEEE Std 802.1Qbv-2015: Clause 12.29.1 Clause 8.6.9.4.1"; uses ptp-timestamp; } 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 "IEEE Std 802.1Qbv-2015: Clause 12.29.1 Clause 8.6.9.4.18"; uses ptp-timestamp; } 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 parmaeters 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 "IEEE Std 802.1Qbv-2015: Clause 12.29.1 Clause 8.6.9.4.7"; } container config-change-time { config false; description "The time at which the next config change is scheduled to occur."; reference "IEEE Std 802.1Qbv-2015: Clause 12.29.1 Clause 8.6.9.4.9"; uses ptp-timestamp; } 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 "IEEE Std 802.1Qbv-2015: Clause 12.29.1"; } container current-time { config false; description "The current time as maintained by the local system."; reference "IEEE Std 802.1Qbv-2015: Clause 12.29.1 Clause 8.6.9.4.10"; uses ptp-timestamp; } 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 "IEEE Std 802.1Qbv-2015: Clause 12.29.1 Clause 8.6.9.4.8"; } 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 "IEEE Std 802.1Qbv-2015: Clause 12.29.1 Clause 8.6.9.3.1"; } leaf supported-list-max { type uint32; config false; 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."; reference "IEEE Std 802.1Qbv-2015: Clause 12.29.1.5 Clause 8.6.9.4.21"; } } } }