Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys/netinet6 do not mistakenly lock PMTUD route entry with R...



details:   https://anonhg.NetBSD.org/src/rev/b47c86e50258
branches:  trunk
changeset: 532067:b47c86e50258
user:      itojun <itojun%NetBSD.org@localhost>
date:      Fri May 31 04:26:19 2002 +0000

description:
do not mistakenly lock PMTUD route entry with RTV_MTU.

diffstat:

 sys/netinet6/icmp6.c |  15 ++++++---------
 1 files changed, 6 insertions(+), 9 deletions(-)

diffs (36 lines):

diff -r f31b0266aea8 -r b47c86e50258 sys/netinet6/icmp6.c
--- a/sys/netinet6/icmp6.c      Fri May 31 03:18:54 2002 +0000
+++ b/sys/netinet6/icmp6.c      Fri May 31 04:26:19 2002 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: icmp6.c,v 1.79 2002/05/29 19:50:48 christos Exp $      */
+/*     $NetBSD: icmp6.c,v 1.80 2002/05/31 04:26:19 itojun Exp $        */
 /*     $KAME: icmp6.c,v 1.217 2001/06/20 15:03:29 jinmei Exp $ */
 
 /*
@@ -66,7 +66,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: icmp6.c,v 1.79 2002/05/29 19:50:48 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: icmp6.c,v 1.80 2002/05/31 04:26:19 itojun Exp $");
 
 #include "opt_inet.h"
 #include "opt_ipsec.h"
@@ -1208,13 +1208,10 @@
        /* sin6.sin6_scope_id = XXX: should be set if DST is a scoped addr */
        rt = icmp6_mtudisc_clone((struct sockaddr *)&sin6);
 
-       if (rt && (rt->rt_flags & RTF_HOST)
-           && !(rt->rt_rmx.rmx_locks & RTV_MTU)) {
-               if (mtu < IPV6_MMTU) {
-                               /* xxx */
-                       rt->rt_rmx.rmx_locks |= RTV_MTU;
-               } else if (mtu < rt->rt_ifp->if_mtu &&
-                          rt->rt_rmx.rmx_mtu > mtu) {
+       if (rt && (rt->rt_flags & RTF_HOST) &&
+           !(rt->rt_rmx.rmx_locks & RTV_MTU) &&
+           (rt->rt_rmx.rmx_mtu > mtu || rt->rt_rmx.rmx_mtu == 0)) {
+               if (mtu < IN6_LINKMTU(rt->rt_ifp)) {
                        icmp6stat.icp6s_pmtuchg++;
                        rt->rt_rmx.rmx_mtu = mtu;
                }



Home | Main Index | Thread Index | Old Index