If you disable preemption, the core services the express and preempt traffic on a first-come-first-serve basis. If both interfaces present frames at the same time, the express traffic is serviced first and then the preempt traffic. For details on presenting a frame for transmission, see the AXI4-Stream Interface section.
Before you enable preemption, the preemption capabilities of the
link-partner must be determined first. This is done by the exchange of Additional
Ethernet Capabilities TLV as described in IEEE standard 802.3, section 79.3.7. The core
assumes that the you enable preemption only after determining that the link-partner is
also capable of preemption. If preemption is enabled by asserting
ctl_en_preempt, the core first verifies the preemption
operation, provided that
deasserted. Preemption is active only after verification has been successfully
completed. You can also disable verification in which case the core does not attempt to
start the verification process and makes preemption active. When preemption is active,
the core services the frame transmission requests as follows:
- If the express interface is inactive, the frames presented on the preempt interface are transmitted.
- If the express and preempt interface request frame transmission at the same time, the express frames are transmitted.
- If the preempt traffic is being transmitted and express interfaces
presents a frame, the preempt traffic will be preempted in accordance with this
formula, specified in IEEE standard 802.3 br-2106:
pAllow * (eTx + hold) * preemptableFragSize * MIN_REMAIN
- After the express frame has been transmitted and no more express frames are queued up for transmission, the core resumes the transmission of the preempted frames.
For detailed description of preemption and interspersing of express traffic, refer to IEEE standard 802.1 CM. The following timing diagram depicts how preemption and interspersing works. For a detailed description of preemption and interspersing of express traffic, refer to IEEE Std 802.1CM-2018 .
tx_axis_mac_treadybeing deasserted between frames.