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 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 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 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 present 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 a 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 work. For a detailed description of preemption and interspersing of express traffic, refer to IEEE Std 802.1CM-2018 .
tx_axis_mac_tready
being deasserted between
frames.