lkml.org 
[lkml]   [2012]   [Aug]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[v2.6.34-stable 027/165] ipv6: Add GSO support on forwarding path
    Date
    From: Herbert Xu <herbert@gondor.apana.org.au>

    -------------------
    This is a commit scheduled for the next v2.6.34 longterm release.
    http://git.kernel.org/?p=linux/kernel/git/paulg/longterm-queue-2.6.34.git
    If you see a problem with using this for longterm, please comment.
    -------------------

    commit 0aa68271510ae2b221d4b60892103837be63afe4 upstream.

    Currently we disallow GSO packets on the IPv6 forward path.
    This patch fixes this.

    Note that I discovered that our existing GSO MTU checks (e.g.,
    IPv4 forwarding) are buggy in that they skip the check altogether,
    when they really should be checking gso_size + header instead.

    I have also been lazy here in that I haven't bothered to segment
    the GSO packet by hand before generating an ICMP message. Someone
    should add that to be 100% correct.

    Reported-by: Ralf Baechle <ralf@linux-mips.org>
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
    ---
    net/ipv6/ip6_output.c | 2 +-
    1 file changed, 1 insertion(+), 1 deletion(-)

    diff --git a/net/ipv6/ip6_output.c b/net/ipv6/ip6_output.c
    index 60daecc..2d55954 100644
    --- a/net/ipv6/ip6_output.c
    +++ b/net/ipv6/ip6_output.c
    @@ -514,7 +514,7 @@ int ip6_forward(struct sk_buff *skb)
    if (mtu < IPV6_MIN_MTU)
    mtu = IPV6_MIN_MTU;

    - if (skb->len > mtu) {
    + if (skb->len > mtu && !skb_is_gso(skb)) {
    /* Again, force OUTPUT device used as source address */
    skb->dev = dst->dev;
    icmpv6_send(skb, ICMPV6_PKT_TOOBIG, 0, mtu);
    --
    1.7.12.rc2


    \
     
     \ /
      Last update: 2012-08-16 01:43    [W:0.075 / U:28.936 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site