driver packet coalesce

Bruce M. Simpson bms at FreeBSD.org
Thu May 31 18:29:08 UTC 2007


Jack Vogel wrote:
> On 5/31/07, Wilkinson, Alex <alex.wilkinson at dsto.defence.gov.au> wrote:
>>     0n Wed, May 30, 2007 at 04:45:05PM -0700, Jack Vogel wrote:
>>
>>     > Does any driver do this now? And if a driver were to coalesce
>>     > packets and send something up the stack that violates mss
>>     > will it barf?
>>
>> erm, what is meant by "coalesce" ?
>>
> combining packets before sending to the stack, aka LRO.

Yup - the firmware for the card's LRO engine would have to know not to 
coalesce packets not destined for the local host. I speculate many cards 
are not smart enough to do this, and LRO is an all-or-nothing 
proposition, as it's a technology designed to optimize for hosts, not 
routers; see recent discussions/slanging matches on end2end.

At the moment there is no central place where we track all layer 2 
addresses for which traffic should be delivered locally. This would 
logically belong in struct ifnet, and clients e.g. CARP would have to be 
taught to add their layer 2 endpoint addresses there.

It seems acceptable to disable LRO if bridging is on and document this 
behaviour.

BMS


More information about the freebsd-net mailing list