lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Message-ID: <20160505125829.GA26978@oracle.com> Date: Thu, 5 May 2016 08:58:29 -0400 From: Sowmini Varadhan <sowmini.varadhan@...cle.com> To: Edward Cree <ecree@...arflare.com> Cc: matvejchikov@...il.com, netdev@...r.kernel.org, Aleksey.Baulin@...il.com Subject: Re: A couple of questions about the SKB fragments On (05/05/16 12:13), Edward Cree wrote: > On 05/05/16 08:40, Ilya Matveychikov wrote: > > > > While working with fragmented SKBs we've got stuck with the following: > > - is it possible for an SKB fragment in skb_shinfo(skb)->frag_list to > > be fragmented too (i.e. to have SKBs in frag_list)? > > - do skb->len and skb->data_len contain the whole SKB length, > > including the length of all fragments (not only the paged parts)? > > > > Is there any docs except the kernel sources itself to refer to? > davem has some docs up at http://vger.kernel.org/~davem/skb.html and > http://vger.kernel.org/~davem/skb_data.html > In particular note the following: > "The frag_list is used to maintain a chain of SKBs organized for > fragmentation purposes, it is _not_ used for maintaining paged data." > So my reading would suggest there is no way to multiple-layer-fragment > an SKB; the frags are page pointers and offsets, not entire sk_buff > structs in their own right. Actually (and perhaps I am mixing up skb_frag_t with the sk_buff in skb_shinfo(skb)->frag_list) I think it is entirely possible in theory for the frag_list to itself both skb_frag_t's as well as more sk_buffs in the ->frag_list- at least that's why I understand fromcode that recurses using skb_walk_frags(), such as tcp_md5_hash_skb_data(). AIUI, the statement about page pointers and offsets applies to the skb_frag_t's in the skb_shared_info. The len and data_len should be the sum-total for the whole skb, including skb_frag_t's and ->frag_list. --Sowmini
Powered by blists - more mailing lists