AnsweredAssumed Answered

T2080RDB Ethernet Flow Control Issue

Question asked by Jacob Moroni on Feb 16, 2018

Hello,

 

I'm having an issue getting Ethernet flow control working on the T2080RDB. Specifically, the device doesn't seem to transmit pause frames under any circumstances.

 

I'm running the 2.0-1703 SDK kernel (4.1) with the regular "t2080rdb" device tree (non-USDPAA). I'm using the interfaces as regular Linux Ethernet interfaces.

 

A have a piece of test equipment that allows me to generate Ethernet frames at full line rate (with any arbitrary frame size), as well as monitor incoming frames in real time. For my tests, I'm sending 64 byte frames to the T2080RDB to intentionally cause congestion. On the 10G ports, this equates to around 14 million frames per second.

 

From what I understand, back pressure should eventually be induced (resulting in pause frame transmission) if the NAPI poll routine can't drain the ingress frame queue fast enough to keep up with the ingress rate, but that's not what is happening. Instead, frames are just dropped somewhere in the hardware. This was verified by inserting a hook to increment a counter via the kernel's "netdev_rx_handler_register" API. When sending a line rate burst of 1,000,000 frames, I can see that the RX handler gets invoked less than 1,000,000 times, and that no pause frames were transmitted to my frame generator device.

 

Any help/suggestions would be appreciated!

 

Thanks,

Jake Moroni

Outcomes