Page MenuHomeFreeBSD

LRO nsegs

Authored by lstewart on Aug 18 2016, 3:15 PM.
Referenced Files
Unknown Object (File)
Apr 6 2017, 1:42 PM
Unknown Object (File)
Mar 14 2017, 1:14 AM
Unknown Object (File)
Mar 11 2017, 4:40 PM
Unknown Object (File)
Mar 7 2017, 3:50 AM
Unknown Object (File)
Feb 24 2017, 2:28 PM
Unknown Object (File)
Feb 13 2017, 12:11 AM
Unknown Object (File)
Jan 30 2017, 3:15 AM
Unknown Object (File)
Dec 30 2016, 7:02 PM



Pass the number of segments coalesced by LRO up the stack by repurposing the tso_segsz pkthdr field during RX processing, and use the information in TCP for more correct accounting and as a congestion control input. This is only a start, and an audit of other uses for the data is left as future work.

Diff Detail

rS FreeBSD src repository - subversion
Lint Not Applicable
Tests Not Applicable

Event Timeline

lstewart retitled this revision from to LRO nsegs.
lstewart updated this object.
lstewart edited the test plan for this revision. (Show Details)
lstewart added reviewers: rrs, gallatin, np, bz.
lstewart set the repository for this revision to rS FreeBSD src repository - subversion.
lstewart added a subscriber: transport.
rrs edited edge metadata.


This revision is now accepted and ready to land.Aug 18 2016, 3:54 PM
gallatin edited edge metadata.

I can't prove my paranoia, so I think we should get this in, as it will be an improvement on balance.

395 ↗(On Diff #19458)

I have a slight twinge of paranoia that not every path that does not flow through LRO will use a properly initialized (zeroed) pkthdr mbuf, and we might see garbage in this field.

A similar-ish problem in the current LRO implementation is that it doesn't heed the TCP PSH bit and continues to aggregate frames, and the upper layers do not know how many frames with PSH bit were compressed into the LRO'd packet.

This revision was automatically updated to reflect the committed changes.