2004-01-13 08:50:14

by Sirotkin, Alexander

[permalink] [raw]
Subject: skb fragmentation

I've seen a couple of drivers (for instance - e100) using fragmented skb
on transmit path.
I was wondering, how one can do the same on receive ?

Anybody ever tried to do this ? Is there any example of such a driver ?

--
Alexander Sirotkin
SW Engineer

Texas Instruments
Broadband Communications Israel (BCIL)
Tel: +972-9-9706587
________________________________________________________________________
"Those who do not understand Unix are condemned to reinvent it, poorly."
-- Henry Spencer


2004-01-13 09:49:04

by Muli Ben-Yehuda

[permalink] [raw]
Subject: Re: skb fragmentation

On Tue, Jan 13, 2004 at 10:49:56AM +0200, Sirotkin, Alexander wrote:

> I've seen a couple of drivers (for instance - e100) using fragmented skb
> on transmit path.
> I was wondering, how one can do the same on receive ?

How? build a fragmented skb on the receive path and send it
upwards. Last I looked at the relevant code (2.4.something), however,
the tcp/ip stack called skb_linearize() on the skb on its way up, so
you wouldn't gain anything unless you teach it to deal with fragmented
skb's all the way up. That's just what I recall - this subject was
discussed several times in the past, look in the archives for details.

Cheers,
Muli
--
Muli Ben-Yehuda
http://www.mulix.org | http://mulix.livejournal.com/

"the nucleus of linux oscillates my world" - gccbot@#offtopic


Attachments:
(No filename) (785.00 B)
signature.asc (189.00 B)
Digital signature
Download all attachments

2004-01-13 10:10:20

by Andi Kleen

[permalink] [raw]
Subject: Re: skb fragmentation

Muli Ben-Yehuda <[email protected]> writes:

> How? build a fragmented skb on the receive path and send it
> upwards. Last I looked at the relevant code (2.4.something), however,
> the tcp/ip stack called skb_linearize() on the skb on its way up, so

Actually the main protocols (TCP,UDP,RAW) work with fragmented skbs. The
skb_linearize() users are mostly netfilter modules and some obscure
older protocols. Most of that has been fixed in 2.6.

-Andi