[<prev] [next>] [day] [month] [year] [list]
Message-ID: <473E0BA5.9070804@mvista.com>
Date: Fri, 16 Nov 2007 14:29:09 -0700
From: Tushar Gohad <tgohad@...sta.com>
To: YOSHIFUJI Hideaki / 吉藤英明
<yoshfuji@...ux-ipv6.org>
Cc: netdev@...r.kernel.org
Subject: ping6 sets IPV6_PMTUDISC_DO option on multicast packets
Yoshifuji-san,
I noticed that ping6 forces the IPV6_PMTUDISC_DO option on packets sent
to multicast destinations. Is this a requirement?
Due to the following check recently introduced in the ip6_fragment()
code, multicast packets that are over PMTU in size are never sent out,
since ping6 code always sets the PMTUDISC_DO option and ip6_fragment()
always fails.
=== net/ipv6/ip6_output.c ===
573 static int ip6_fragment(struct sk_buff *skb, int (*output)
(struct sk_buff *))
574 {
......
592 /* We must not fragment if the socket is set to force MTU
discovery
......
596 if (!np || np->pmtudisc >= IPV6_PMTUDISC_DO) {
597 skb->dev = skb->dst->dev;
598 icmpv6_send(skb, ICMPV6_PKT_TOOBIG, 0, mtu,
skb->dev);
599 IP6_INC_STATS(ip6_dst_idev(skb->dst),
IPSTATS_MIB_FRAGFAILS);
600 kfree_skb(skb);
601 return -EMSGSIZE;
602 }
......
--
This check in the kernel code makes perfect sense, since the option is
implies "do not fragment."
Should the ping6 code be fixed in that case?
Thanks,
- Tushar
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists