lkml.org 
[lkml]   [2014]   [Nov]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 3.4 88/91] ipv6: reuse ip6_frag_id from ip6_ufo_append_data
    Date
    From: Hannes Frederic Sowa <hannes@stressinduktion.org>

    3.4.105-rc1 review patch. If anyone has any objections, please let me know.

    ------------------


    commit 916e4cf46d0204806c062c8c6c4d1f633852c5b6 upstream.

    Currently we generate a new fragmentation id on UFO segmentation. It
    is pretty hairy to identify the correct net namespace and dst there.
    Especially tunnels use IFF_XMIT_DST_RELEASE and thus have no skb_dst
    available at all.

    This causes unreliable or very predictable ipv6 fragmentation id
    generation while segmentation.

    Luckily we already have pregenerated the ip6_frag_id in
    ip6_ufo_append_data and can use it here.

    Signed-off-by: Hannes Frederic Sowa <hannes@stressinduktion.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    [bwh: Backported to 3.2: adjust filename, indentation]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
    Signed-off-by: Zefan Li <lizefan@huawei.com>
    ---
    net/ipv6/udp.c | 2 +-
    1 file changed, 1 insertion(+), 1 deletion(-)

    diff --git a/net/ipv6/udp.c b/net/ipv6/udp.c
    index 98fd738..ef9052f 100644
    --- a/net/ipv6/udp.c
    +++ b/net/ipv6/udp.c
    @@ -1366,7 +1366,7 @@ static struct sk_buff *udp6_ufo_fragment(struct sk_buff *skb,
    fptr = (struct frag_hdr *)(skb_network_header(skb) + unfrag_ip6hlen);
    fptr->nexthdr = nexthdr;
    fptr->reserved = 0;
    - ipv6_select_ident(fptr, (struct rt6_info *)skb_dst(skb));
    + fptr->identification = skb_shinfo(skb)->ip6_frag_id;

    /* Fragment the skb. ipv6 header and the remaining fields of the
    * fragment header are updated in ipv6_gso_segment()
    --
    1.9.1


    \
     
     \ /
      Last update: 2014-11-27 10:21    [W:2.600 / U:0.192 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site