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

    This is a commit scheduled for the next v2.6.34 longterm release.
    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 <>
    Signed-off-by: Herbert Xu <>
    Signed-off-by: David S. Miller <>
    Signed-off-by: Paul Gortmaker <>
    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);

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