sk_buff *skbのデータ長skb->lenとskb->data_lenについて

skb->data_len == 0 の時は、パケットのデータにリニアにアクセスできる。
つまり、skb->data[i] (i=0..skb->len)ですべてのデータを読み出せる。

skb->data_len != 0 の時は、パケットのデータがフラグメント化されているので、上記のようにリニアには読み出せない。
skb->dataに入っているのは、ヘッダーのみ。
つまり、skb->data[j](j=0.."skb->len - skb->data_len")で、ヘッダー部分のみ呼び出せるらしい。(どのプロトコルのヘッダーまで?)
残りは、skb_shared_info->frags[i].sizeがどうのこうのらしい。


The Relation between `skb->len' and `skb->data_len' and What They Represent | KernelTrap
http://kerneltrap.org/node/16224