[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
(usagi-users 02694) need to check the MTU option which is contained by a Router Advertisement
- To: usagi-users@xxxxxxxxxxxxxx
- Subject: (usagi-users 02694) need to check the MTU option which is contained by a Router Advertisement
- From: Hiroaki Kago <kago@xxxxxxxxxxxxxx>
- Date: Fri, 12 Dec 2003 22:48:49 +0900
- Reply-to: kago@xxxxxxxxxxxxxx
- User-agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; ja-JP; rv:1.4) Gecko/20030624 Netscape/7.1 (ax)
Hello,
Although the following is specified in RFC2461 as conditions which
should be fulfilled in order to update an MTU value at the time of
the IPv6 Router Advertisement message reception with the MTU option,
in the USAGI snap kernel-2.6-s20031208, it has updated unconditionally.
1. the MTU value is greater than or equal to the minimum link MTU(1280Bytes)
2. the MTU value does not exceed the default LinkMTU value
------------------------------------------------------------------------
According to RFC2461:
6.3.4. Processing Received Router Advertisements
.....
If the MTU option is present, hosts SHOULD copy the option's value
into LinkMTU so long as the value is greater than or equal to the
minimum link MTU [IPv6] and does not exceed the default LinkMTU value
specified in the link type specific document (e.g. [IPv6-ETHER]).
------------------------------------------------------------------------
I made a patch and fixed the problem. This patch referred to the USAGI
snap kernel-2.4-s20031208.
------------------------------------------------------------------------
--- net/ipv6/ndisc.c.orig 2003-12-09 11:27:56.000000000 +0900
+++ net/ipv6/ndisc.c 2003-12-09 11:33:14.000000000 +0900
@@ -1187,9 +1187,7 @@
ND_PRINTK0("NDISC: router announcement with mtu = %d\n",
mtu);
}
- }
-
- if (in6_dev->cnf.mtu6 != mtu) {
+ } else if (in6_dev->cnf.mtu6 != mtu) {
in6_dev->cnf.mtu6 = mtu;
if (rt)
------------------------------------------------------------------------
Regards,
Hiroaki Kago