
KSwitch D10 MMT Managed Time Sensitive Ethernet Switch - Preliminary User Guide, Rev. 0.99
// 35
A queue is said to be preemptible, if frame preemption is enabled, and if this queue is not
opened in a set-hold gate operation.
5.3.4.5.
Using Config-change and Base-time
The command "tsn tas config-change" signals the start of a configuration change. If the value of parameter base-time
is in the future, the configuration change will be executed at base-time. If base-time is in the past, the configuration
change will be executed as soon as possible. In practice it will be within approx 2 seconds, at a time which is an
integral number of cycle-times ahead of the configured value of basetime. This way, the synchronisation between
schedules in elements across a scheduled network can be maintained.
5.3.4.6.
Uncertainty Related to Last Frame in TAS Gate Open Interval
In the Fireant implementation of Time Aware Shaper function (IEEE 802.1Q-2018, Enhancements for Scheduled
Traffic), frames that are buffered in the disassembler fifo on the egress port when the TAS gate closes are
transmitted after the gate time Ts.
In a test, where frames of the same size are transmitted using TAS, the maximum number of frames transmitted ‘N’,
is calculated as follows:
Ts:
gate open time interval
max_sdu_line:
configured value (including 8 bytes pr 12 bytes IFG)
speed:
link speed
guard_time:
max_sdu_line * 8 / speed
frame_size:
size of frames sent
frame_size_line:
size of frames sent including 8 bytes pr 12 bytes IFG
fifo_size:
size of fifo on the egress port. Depends on port speed
N = (Ts - guard_time) * speed/frame_siz
Max(fifo_size/frame_size, 1)
Example:
Ts = 100 us
speed = 1000,000,000 bit/sec
frame_size = 148 bytes
frame_size_line = 168 bytes
max_sdu_line = 276 bytes
guard_time = 276 * 8 / 1000,000,000 = 2.208 us
fifo_size: 1024 bytes (1G interface)
N = (100 us - 2.208 us) * 1000,000,000 / (168*8) + Max(1024/148, 1)
N = 72,76 + 6,9 = 79.68 frames
Frames can be prevented from transmission after Ts by increasing the guard time to accommodate for the amount of
traffic queued up in the disassembler fifo as follows:
guard_time_safe * speed/frame_size_line = Max(fifo_size/frame_size, 1) <=>
guard_time_safe = Max(fifo_size/frame_size, 1) * frame_size_line/speed
Using the parameters from the Example:
guard_time_safe = 6,9 * 168 bytes * 8bits/byte / 1000,000,000 bit/sec = 9.3us
And thereby:
max_sdu_safe = guard_time_safe * speed / 8 bits/byte = 1162 bytes
max_sdu_line = 276 bytes + 1162 bytes = 1438 bytes.