Page MenuHomeFreeBSD

if_tuntap: add TCP LRO support
ClosedPublic

Authored by tuexen on Nov 10 2023, 7:55 PM.
Tags
None
Referenced Files
Unknown Object (File)
Mon, Jun 24, 8:05 AM
Unknown Object (File)
Mon, Jun 24, 6:41 AM
Unknown Object (File)
Fri, Jun 21, 8:27 AM
Unknown Object (File)
Sun, Jun 16, 11:39 PM
Unknown Object (File)
May 2 2024, 6:47 AM
Unknown Object (File)
May 2 2024, 6:47 AM
Unknown Object (File)
May 2 2024, 6:47 AM
Unknown Object (File)
Apr 25 2024, 8:32 PM

Diff Detail

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

Event Timeline

How would you programmatically keep collecting a few packets and flush them at a particular point?

I believe the intended way how to make use of this capability should be documented - at least in the Diff summary.

Am I mistaken to see that this will only excersize a singluar packet via the LRO path at a time?

If this is the case, this is probably not the complete patch, as LRO should also deal with actual coalescing of the mbufs, and extracting various per-packet state, when multiple packets are queued up before sending up...

But it is obviously the way which least infringes on the (current) expected behavior.

This revision is now accepted and ready to land.Nov 11 2023, 10:04 AM

How would you programmatically keep collecting a few packets and flush them at a particular point?

That will be added in an upcoming commit, since that will be very tap-specific. The change in this commit adds LRO functionality similar to the one available in other drivers.

I believe the intended way how to make use of this capability should be documented - at least in the Diff summary.

Just use ifconfig tap0 lro. Similar to all other drivers. I think this is documented in the man-page of ifconfig. This is also not mentioned in man igb, for example.

Am I mistaken to see that this will only excersize a singluar packet via the LRO path at a time?

No, that is correct. This change will ensure that that packet handling will be done via the LRO code path. Just each packet individually.

If this is the case, this is probably not the complete patch, as LRO should also deal with actual coalescing of the mbufs, and extracting various per-packet state, when multiple packets are queued up before sending up...

Yes. But that will be specific to this driver, since it will be controlled via ioctl.

But it is obviously the way which least infringes on the (current) expected behavior.

Yes. This is consistent with other drivers supporting lro.

This revision was automatically updated to reflect the committed changes.