Hard Processor System Technical Reference Manual: Agilex™ 5 SoCs

ID 814346
Date 7/19/2024
Public
Document Table of Contents

5.1.7.20.1. Receive Side Programming

To enable the frame preemption function for the receive side use the following steps:
  1. Enable at least 2 RX queues by programming appropriate values in the MAC_RxQ_Ctrl0 register; one queue for express and the other for preemption traffic when preemption receive traffic is expected.
  2. Program the MAC_RxQ_Ctrl(#i) registers to route the received packets to MTL RX queues. Ensure that preemptable traffic and express traffic are not routed to the same RX queue.
    1. As the queue mapping for tagged packets is based on VLAN user-priority field, the priority of preemptable and express packets must be exclusive to each other. In other words, packets of a certain priority (traffic class) are either express or preemptable but cannot be both.
    2. If the MCBCQEN field of the MAC_RxQ_Ctrl1 register is set, preemptive multicast/broadcast packets are routed to the PMCBCQ field as programmed in the MAC_RxQ_Ctrl4 register. Therefore, ensure that PMCBCQ field is not same as any of the queues programmed for express queues.
  3. Program the preemption residue queue (RQ field of the MAC_RxQ_Ctrl1 register) to route all non-classified received preemptive packets, so that these packets are not routed to the default/residue queue for express packets, which is the RX queue 0.