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