AM64x MCU+ SDK  10.00.00
Enet EST/TAS Support

Introduction

IEEE 802.1Qbv EST/TAS

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.

EST schedule

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.

Guard band

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.

Back To Top

Enet LLD API

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:

  • ENET_TAS_IOCTL_SET_STATE. Sets the state of TAS module for each MAC port:
  • ENET_TAS_IOCTL_SET_ADMIN_LIST. Sets a new administrative list of type EnetTas_ControlList. The gate control list is composed of:
    • baseTime. The administrative base time which determines when the administrative list will become active.
      • The base time can be set to a timestamp in the past, in which case the administrative list should become active right away.
      • The base time can also be set to a timestamp in the future, but note that not all Ethernet peripherals may fully support this feature.
    • gateCmdList. The actual gate control list defined as list of time interval duration and gate state mask pairs. Enet LLD supports up to 16 intervals for simplicity, though some Ethernet peripherals may support larger number of intervals.
    • listLength. The number of entries in the gate control list.
    • cycleTime. The repeating cycle time.
      • If it's larger that the accumulated time of all the intervals in the control list, the last time interval gets extended till end of the cycle.
      • If it's shorter than the accumulated interval time, then the gate control list gets truncated as per cycle time.
    • sduTable. The maximum service data unit (SDU) per queue.
  • ENET_TAS_IOCTL_GET_OPER_LIST_STATUS. Gets the status of the operational list update. It must be called after a new operational list has been set until driver acknowledges that the operational list has been updated by returning ENET_TAS_OPER_LIST_UPDATED.
  • ENET_TAS_IOCTL_GET_OPER_LIST_STATUS. Gets the current operational list. It must be called after valid administrative list has been programmed. The operational list is a structure of type EnetTas_ControlList which is the same type used for administrative lists describer earlier.

The call sequence in the following diagram illustrates the typical usage of Enet LLD IOCTLs to configure EST/TAS on a given MAC port.

TAS IOCTL sequence in Enet LLD

Back To Top

CPSW Support

Enet LLD does not support CPSW EST for this SoC.

Back To Top