Re: receive path with fragmented skb from device driver does not work.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sat, Feb 07, 2004 at 01:07:10PM -0800, NucleoDyne Systems,  Inc. wrote:
> Hello,
>      I have been evaluating the performance of a 10 gigabit adapter. It
> provides a mode of receive data placement to memory through DMA called
> "3 buffer mode". A receive packet is scattered into three buffers. The
> ethernet header is in the first buffer, the tcp/ip header is in the
> second buffer(if ip header, otherwise rest in 3rd), and the payload is
> in 3rd buffer. I have created a skb with two additional fragments,
> the ethernet header is contained in the skb itself, the first fragment
> contains the ip header, the seocnd the payload.
> 
> It seems linux stack can't handle the fragmented buffers in the receive
> path. Here is my finding, please correct me if I am wrong.
[snip]

I think you're right that the protocol headers need to be in the
non-fragmented part of the skb.

> If all the protocol headers in the skb could be assigned in the device
> driver, then probably fragmented skb in receive path would work. But the
> driver would have to decode packet type. That would not a good thing to
> do.
> 
> Any comment?

If possible, make the adapter put the TCP/IP header in the non-fragmented
part of the skb. If that is not possible, memcpy().

-- 
Regards,
Rask Ingemann Lambertsen
-
: send the line "unsubscribe linux-net" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Netdev]     [Ethernet Bridging]     [Linux 802.1Q VLAN]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Git]     [Bugtraq]     [Yosemite News and Information]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux PCI]     [Linux Admin]     [Samba]

  Powered by Linux