Message ID | 4919E1F3.1080101@hp.com |
---|---|
State | Not Applicable, archived |
Delegated to: | David Miller |
Headers | show |
>> So which TAHI test was this? Have they tracked down a commit that >> caused this to break? > I use TAHI 4-0-3 RFC1981, if you can access my website , please see > http://10.66.65.20/self_test/ipv6-core/Self_Test_4-0-3_F10/ That looks like an internal link. Either way, I'm guessing this was test 13 (Checking For Increase in PMTU), which passed for RHEL 5.3 recently I think. >>> Version-Release number of selected component (if applicable): >>> 2.6.27-0.352.rc7.git1.fc10.i686 >> >> Hmmm, I would take a look at this commit: >> >> commit b5c15fc004ac83b7ad280acbe0fd4bbed7e2c8d4 >> Author: Herbert Xu <herbert@gondor.apana.org.au> >> Date: Thu Feb 14 23:49:37 2008 -0800 >> >> [IPV6]: Fix reversed local_df test in ip6_fragment >> >> I managed to reverse the local_df test when forward-porting this >> patch so it actually makes things worse by never fragmenting at >> all. >> >> Thanks to David Stevens for testing and reporting this bug. >> >> Bill Fink pointed out that the local_df setting is also the wrong >> way around. So can you verify your kernel has this fix? Or can you run a later kernel and see if it's fixed? > I check using the command, get the following info: > #cat /proc/net/dev_snmp6/eth0|grep -i frag > Ipv6FragOKs 0 > Ipv6FragFails 0 > Ip6FragCreates 0 You'll actually want to look at eth1, which is where the pings are going out, I was just giving that as an example. -Brian -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/net/ipv6/ip6_output.c b/net/ipv6/ip6_output.c index 4e9a2fe..8b67ca0 100644 --- a/net/ipv6/ip6_output.c +++ b/net/ipv6/ip6_output.c @@ -621,7 +621,7 @@ static int ip6_fragment(struct sk_buff *skb, int (*output)(s * or if the skb it not generated by a local socket. (This last * check should be redundant, but it's free.) */ - if (skb->local_df) { + if (!skb->local_df) { skb->dev = skb->dst->dev; icmpv6_send(skb, ICMPV6_PKT_TOOBIG, 0, mtu, skb->dev);