Re: data of skbuff

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

 



On Fri, 25 Aug 2006, Octavian Purdila wrote:

On Friday 25 August 2006 11:15, Hayim Shaul wrote:
Hi,

I have written a module that registers a netfilter hook on
NF_IP_POST_ROUTING (that is , everything that goes out of the machine).
When I look at the skbuff I get the headers (IP/TCP) look fine, but the
data seems to be missing!?!

The content of the buffer following the end of the TCP header has no
correlation to what is actually being sent over the net.

I thought it might be fragmanted and I see only one fragment but
skb_shinfo(sb)->frag_list is NULL.

Can anyone please explain what I am missing?



AFAIK, you should check skb_shinfo(skb)->nr_frags. You can use skb_copy_bits()
to see all the data of an skb. Also, see if the interface has the
scatter-gather feature enabled (ethtool -k).


You were right:

1. skb_shinfo(skb)->nr_frags should be checked
2. disabling scatter/gather made the problem go away
3. skb_copy_bits solved the problem

Thanks.

BTW, what's the idea behind scatter/gather?
What do you benefit from keeping the buffer in different places???


--
Kernelnewbies: Help each other learn about the Linux kernel.
Archive:       http://mail.nl.linux.org/kernelnewbies/
FAQ:           http://kernelnewbies.org/faq/


[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux