Setup:
a sender PC on ether5 (1G) streams 1024-byte frames at line rate through a CRS310-8G+2S+IN (98DX226S) to a receiver on sfp-sfpplus1 (10G, ConnectX-6 Dx). The receiver consumes at a fixed, deliberately limited rate, pauses the switch when it falls behind, and counts every lost frame. Both ports have rx-flow-control=on tx-flow-control=on and are hardware-offloaded bridge ports. Tested on RouterOS 7.19.6 and 7.24.4 with the same results.
My problems:
-
The XOFF towards the sender isn't refreshed. The switch obeys the receiver's pause, but only holds the sender back while the receiver drains at least ~324 Mbit/s against a 1G sender. Below that, frames are dropped on sfp-sfpplus1 (tx-drop). The cut-off barely changes with the sender's rate. Receiver stalls are tolerated for about 33.5 ms + ~6 MB ÷ sender rate (e.g. 80–90 ms at 1G). 33.5 ms is exactly one maximum pause at 1G. This fits the switch sending one XOFF at its high-water mark and never resending it, only sending another after draining ~1.3 MB to its XON level. So pause only works for receivers draining at least ~1/3 of the sender's link speed.
-
qos-hw-offloading=yes disables pause to the sender. With QoS offload on, the sender is never paused, and exactly the excess is dropped (66.1% at a 324M receiver). The switch still obeys the receiver's pause. It's the same whichever traffic class or use-shared-buffers setting I use. Turning offload off, plus a reboot, restores behaviour 1.
Also: I think tx-pause never counts, even when pause is clearly being sent (but my final checks got a bit lost in the testing - I'm confident this was the case on 7.19.6, but it might have been fixed).
Questions:
- Can the 98DX226S be made to refresh XOFF while congested, or can its XON/XOFF thresholds be tuned?
- What are the default XOFF and XON thresholds for 802.3x on this chip? Are they fixed, or derived from the port or queue buffer allocation? Can they be configured, e.g. to narrow the ~1.3 MB gap between XOFF and XON?
- Is it expected that QoS offload disables tx pause?
- The QoS docs list PFC and lossless buffers for the 98DX226S, but 7.24.4 has no way to configure either on this model. Is PFC usable on the CRS310, and how?