Enhanced Transmission Selection

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search

Enhanced Transmission Selection (ETS) is a network scheduler scheduling algorithm that has been defined by the Data Center Bridging Task Group of the IEEE 802.1 Working Group.[1] It is a hierarchical scheduler that combines static priority scheduling and a bandwidth sharing algorithms (such as Weighted round robin or Deficit round robin).

Description

[edit | edit source]

The Enhanced Transmission Selection algorithm is one scheduling algorithm supported by IEEE 802.1Q. In Enhanced Transmission Selection, they are two types or queues: Strict priority or Credit-based queues, and bandwidth-assigned queues. Each bandwidth-assigned queue has a bandwidth parameter, and the total for all bandwidth-assigned queue must be 100%.[2] [3][4][5]

Example of Enhanced Transmission Selection Architecture with two CBS queues and three bandwidth-assigned queues

If there is no frame ready for transmission, in the Strict priority and Credit-based queues, a frame from the bandwidth-assigned queue can be transmitted. A bandwidth-sharing algorithm is in charge of selecting the queue such that the bandwidth consumed by each queue approaches its percentage of the bandwidth leftover by the Strict priority and Credit-based queues. If a queue uses less than its percentage, the remainder of its percentage used by other queues.

The standard does not specify which bandwidth-sharing algorithm must be used since there are a number of variants of bandwidth sharing algorithm, but gives some constraints and references Weighted round robin. The Linux implementation of ETS does not consider Credit-based queues and uses Deficit round robin as bandwidth-sharing algorithm. ETS is also implemented in Microsoft Network Drivers [6]

See also

[edit | edit source]

References

[edit | edit source]
  1. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  2. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  3. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  4. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  5. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  6. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).