Outbound Preemption - 2.3 English

Versal Devices Integrated 100G Multirate Ethernet MAC Subsystem Product Guide (PG314)

Document ID
PG314
Release Date
2024-05-30
Version
2.3 English

In the transmit direction, the MRMAC supports packet preemption by allowing packets currently in flight across the AXI4-Stream interface to be preempted.

When preemption is enabled, the user logic provides appropriate mPacket header fields for all outbound frames using the preamble insertion function. The transmit path does not interpret any of the mPacket header fields but instead places these fields, as provided by tx_preamblein_<N>, into the outbound frames.

During packet transfer on TX AXI4-Stream, user logic can indicate that a packet has been preempted by asserting the preempt signal input (a bit in the tx_axis_tkeep_user_<N> signal as listed in the port descriptions) along with EOP/tlast. The user logic can then send its express packet.

If transmit FCS insert is enabled, the TX logic calculates and inserts an mCRC on the preempted packet. The partially calculated frame CRC is stored away so it can be resumed later.

After the express packet has been transmitted, the user logic can resume the previously preempted frame by asserting the resume signal along with SOP/tvalid. The MRMAC resumes calculating the CRC for the interrupted packet. As before, the user logic must provide a suitable mPacket header (with SMD and FRAG_COUNT set appropriately).

Care must be taken by the user logic to ensure that any outbound packet (including fragments) respects the 64B min size for a fragment/packet.

In this example, an in-flight egress frame, Frame A, transmits cycles A0 through A16. However, it is preempted when the user logic asserts both tx_axis_tlast_0 and tx_axis_tkeep_user0[9] (preempt). The MRMAC calculates an mCRC for Frame A and sets aside the partial FCS calculation for later.

Figure 1. Transmit Frame Preemption

The priority frame (Frame B) begins in the very next cycle. It is a minimum length frame of 64B. Its final data (B7) is signaled normally with tx_axis_tlast_0. The MRMAC transmits this frame normally.

Finally, Frame A resumes in the next cycle with the user logic asserting the resume signal (tx_axis_tkeep_user0[10]). The user logic-provided preamble (tx_preamble_in_0) must provide an appropriate preemption header. The partially calculated FCS from earlier is retrieved and packet data transmission resumes with packet data A17.