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