Inbound Preemption - 2.3 English

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

Document ID
Release Date
2.3 English

The receive logic assists packet preemption by performing integrity checks on received mPackets and extracting the mPacket header fields for presentation on the rx_preambleout[55:0] port.

Preempted frames are signaled to the user logic by means of symmetrical preempt and resume tuser flags. These signals indicate if a received packet was preempted upstream or if it represents a continuation fragment packet.

For continuation packets, the FRAG_COUNT field, found in the rx_preambleout signals, indicates to the user logic that the packet must be reassembled. Reassembly is the responsibility of the user logic.

The AXI4-Stream ERR flag is used by the MRMAC to indicate that a resumed packet has failed the mCRC check. In the event a continuation packet is received with a bad mCRC, it is left to the user logic to take appropriate action.

The RX logic supports two integrity checking modes, which are controlled through bits found in the CONFIGURON_RX_REG register.

Table 1. Preemption Integrity Checking Modes
ctl_tx_check_sdf ctl_rx_check_preamble Result
1 1 Strict SMD checking is enabled. In this mode, a received packet whose SMD byte does not match valid values from Table 99-1 from the IEEE 802.3-2018 (Clause 99) (see below) results in the AXI4-Stream ERR signal being asserted.
0 0 The RX preemption logic acts in pass-through mode and packets with invalid SMD values are passed through to the user logic without ERR. In this mode, received packets with SMD values not matching Table 99-1 toggles the error statistics (that is, stat_rx_bad_sfd) but not have the ERR flag asserted on the AXI interface.
Note: If an SMD value not found in Table 99-1 is received, it indicates to the RX logic that the frame's FCS field must be checked against its expected CRC value, not an mCRC.
Table 2. SMD Values (Table 99-1)
mPacket Type Notation Frame Count Value
verify packet SMD-V 0x07
respond packet SMD-R 0x19
express packet SMD-E 0xD5
preemptable packet start SMD-S0 0 0xE6
SMD-S1 1 0x4C
SMD-S2 2 0x7F
SMD-S3 3 0xB3
continuation fragment SMD-C0 0 0x61
SMD-C1 1 0x52
SMD-C2 2 0x9E
SMD-C3 3 0x2A

In this example, an inbound frame (Frame A) is pre-empted by the arrival of priority packet Frame B. Frame A resumes later with data A17. It is the responsibility of the user logic to parse the extracted rx_preamble_out_0 to correctly re-assemble Frame A from the two segments.

Figure 1. Receive Frame Preemption