Paul Durrant wrote:
> On 25/09/2007, David Edmondson <dme at sun.com> wrote:
>> Why? I can accept a large packet in a MAC layer transmit function,
>> chop it up and then present an mblk chain to the driver in a single
>> call to its' transmit routine.
>>
> 
> You lose the single DMA map this way, which is a good portion of the
> advantage of LSO (given how slow the DMA map operation appears to be
> on many platforms).
> 
>   Paul
> 

So I haven't looked at soft-LSO code yet but the way to do this
would be along the lines of what you, Dave and Garrett are saying.

The MAC layer is implementing a pseudo H/W layer anyway as part of
Crossbow. The idea is that upper layer can always assume that
features like classificaton, Rx/Tx rings, soft-lso, etc are
supported. The upper layer always have a pointer to a Tx
routine in MAC layer. The driver on the other hand can choose
to be native LSO, soft-lso aware or none. It needs to register
its capability as per the new document Kais and Roamer are
preparing and corresponding functions. In most cases, the MAC
transmit routine can just be a tail call to driver routine or
a tail call to mac_soft_lso() in case driver doesn't support
it. Some advantages of a function pointer driven approach ....

Cheers,
Sunay

-- 
Sunay Tripathi
Distinguished Engineer
Solaris Core Operating System
Sun MicroSystems Inc.

Solaris Networking:     http://www.opensolaris.org/os/community/networking
Project Crossbow:       http://www.opensolaris.org/os/project/crossbow

Reply via email to