• Herbert Xu's avatar
    inet: Add ip_make_skb and ip_finish_skb · 1c32c5ad
    Herbert Xu authored
    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: default avatarHerbert Xu <herbert@gondor.apana.org.au>
    Acked-by: default avatarEric Dumazet <eric.dumazet@gmail.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    1c32c5ad
ip_output.c 37.4 KB