Page MenuHomeFreeBSD

tcp: Rack - in the absence of LRO fixed rate pacing (loopback or interfaces with no LRO) does not work correctly.
ClosedPublic

Authored by rrs on Apr 10 2023, 8:11 PM.
Tags
None
Referenced Files
Unknown Object (File)
Mon, May 6, 9:57 AM
Unknown Object (File)
Mar 19 2024, 3:59 PM
Unknown Object (File)
Mar 19 2024, 2:34 PM
Unknown Object (File)
Jan 14 2024, 6:42 AM
Unknown Object (File)
Dec 20 2023, 7:48 AM
Unknown Object (File)
Aug 26 2023, 6:17 PM
Unknown Object (File)
Aug 22 2023, 5:43 AM
Unknown Object (File)
Aug 11 2023, 3:01 AM

Details

Summary

Rack is capable of fixed rate or dynamic rate pacing. Both of these can get mixed up when
LRO is not available. This is because LRO will hold off waking up the tcp connection to
processing the inbound packets until the pacing timer is up. Without LRO the pacing only
sort-of works. Sometimes we pace correctly, other times not so much.

This set of changes will make it so pacing works properly in the absence of LRO.

Test Plan

Easiest way to test this is to setup a fixed rate pacing test over the loopback (which has no LRO). If its fixed
then we should pace properly (the BB logs can be used to validate proper spacing of packets).

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Not Applicable
Unit
Tests Not Applicable