The basis for Real-Time Ethernet protocols in Linux
Thomas Gleixner and Sebastian Siewior, Linutronix GmbH, Germany
Even if the latest PREEMPT_RT patched Linux kernel is used, the network stack can inflict unbound latencies on real-time Ethernet protocols due to:
- Socket buffer allocations
- Traffic congestion with non real-time traffic
In a proof-of-concept implementation, the following mechanisms are used
to overcome the above limitations:
- Generic preallocated socket buffer pools
- Protocol-specific traffic policing and traffic shaping
This approach is minimally invasive to the network stack and has zero impact when the real-time protocol related functions are not enabled:
- Network card drivers require no or minimal changes to support preallocated buffer pools
- Traffic control is modular and only loaded and enabled when required
- No restriction on network tools and network functionality
The paper does not cover the complex user space part of real-time Ethernet protocols.