IEEE 802.1Qbv Time-Aware Shaper (TAS), which is also called Enhancements for Scheduled Traffic (EST) in IEEE Std 802.1Q-2018, defines a mechanism to allocate and grant exclusive Ethernet port transmission access on repeating cycles which are divided into slices where traffic of specific traffic class queues can be selected for transmission as per use-case requirements.
The diagram below shows a generic EST schedule composed of n slices (also called time intervals), each slice has specific gate mask that defines the state of each transmission gate: open or closed.
Transmission gates are associated with specific traffic class queues (0-7). When a gate is open, frames from the corresponding queue can be selected for transmission. When the gate is closed, frames from the corresponding queue will not be selected for transmission. It's up to the application to determine the duration of each time slice and the state of each transmission gate.
The list of all gate states for all slices in the cycle is called gate control list. The control list that is programmed is called administrative list, when list becomes active is then called operational list.
For further information about TAS/EST specification, please refer to section 8.6.9 Scheduled traffic state machines of IEEE 802.1Q-2018 standard document.
It's worth noting that in EST, the transmission of a frame will not be interrupted, the full frame transmission will be completed even if it spills over the next time slice. This could pose a problem when traffic from the previous time slice, potentially of lower priority, spills over the next time slice meant for higher priority traffic.
A guard band, which is a time slice with all gates closed, can be added right before critical time slices to ensure that wire is cleared of any previous traffic. The duration of the guard band must be set long enough for a packet of MTU size that initiated transmission right before the non-critical time slice ended had been fully transmitted.
Enet LLD provides support for TAS/EST through the IOCTLs described in the Enet Time Aware Shaper API Guide. The most important IOCTLs are listed below:
The call sequence in the following diagram illustrates the typical usage of Enet LLD IOCTLs to configure EST/TAS on a given MAC port.
Enet LLD does not support CPSW EST for this SoC.