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)
Oct 13 2024, 9:53 AM
Unknown Object (File)
Oct 13 2024, 9:53 AM
Unknown Object (File)
Oct 13 2024, 9:53 AM
Unknown Object (File)
Oct 13 2024, 9:44 AM
Unknown Object (File)
Oct 9 2024, 6:04 PM
Unknown Object (File)
Oct 1 2024, 10:57 AM
Unknown Object (File)
Sep 25 2024, 12:21 PM
Unknown Object (File)
Sep 23 2024, 5:32 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