]> git.baikalelectronics.ru Git - kernel.git/commit
inet: Add ip_make_skb and ip_finish_skb
authorHerbert Xu <herbert@gondor.apana.org.au>
Tue, 1 Mar 2011 02:36:47 +0000 (02:36 +0000)
committerDavid S. Miller <davem@davemloft.net>
Tue, 1 Mar 2011 20:35:03 +0000 (12:35 -0800)
commit30328446fa7972a033bd5d33750d4a95572ef12c
tree6a7384abb34068adb298beb1967b11201d52ed48
parent52898418bfe6f186b647745c10b0ea5392453818
inet: Add ip_make_skb and ip_finish_skb

This patch adds the helper ip_make_skb which is like ip_append_data
and ip_push_pending_frames all rolled into one, except that it does
not send the skb produced.  The sending part is carried out by
ip_send_skb, which the transport protocol can call after it has
tweaked the skb.

It is meant to be called in cases where corking is not used should
have a one-to-one correspondence to sendmsg.

This patch also adds the helper ip_finish_skb which is meant to
be replace ip_push_pending_frames when corking is required.
Previously the protocol stack would peek at the socket write
queue and add its header to the first packet.  With ip_finish_skb,
the protocol stack can directly operate on the final skb instead,
just like the non-corking case with ip_make_skb.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Acked-by: Eric Dumazet <eric.dumazet@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/net/ip.h
net/ipv4/ip_output.c