Receive Side Coalescing(RSC) and LRO

From: Wei Hu <weh_at_microsoft.com>
Date: Tue, 08 Feb 2022 15:32:15 UTC
Hi,

I am trying to find the term that FreeBSD uses for the network offloading feature like RSC. RSC is Microsoft's term which is essentially the same as LRO in Linux, in which the packet aggregation happens on the hardware NIC.

The LRO on FreeBSD seems different. It looks to be the GRO in Linux, in which the packet aggregation happens in software above the NIC driver.  There is a feature bit IFCAP_LRO in net/if.h.

So, is there a different feature bit on FreeBSD which means only for the hardware RSC/LRO? Or does the IFCAP_LRO mean both hardware and software LRO? What I want to achieve is to let user disable the hardware RSC/LRO and leave software LRO untouched on FreeBSD. What is the proper way to differentiate these two on FreeBSD?

Thanks,
Wei