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
core first verifies the preemption operation, provided that
ctl_disable_verify is 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
- 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.