NetBSD-Bugs archive

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

Re: kern/51301: 7.99.32 has broken IPv6 functionality of pkgsrc/net/openvpn



The following reply was made to PR kern/51301; it has been noted by GNATS.

From: Ryota Ozaki <ozaki-r%netbsd.org@localhost>
To: Paul Goyette <paul%whooppee.com@localhost>
Cc: "gnats-bugs%NetBSD.org@localhost" <gnats-bugs%netbsd.org@localhost>
Subject: Re: kern/51301: 7.99.32 has broken IPv6 functionality of pkgsrc/net/openvpn
Date: Sat, 2 Jul 2016 23:17:15 +0900

 On Sat, Jul 2, 2016 at 11:00 PM, Ryota Ozaki <ozaki-r%netbsd.org@localhost> wrote:
 > On Sat, Jul 2, 2016 at 10:37 PM, Ryota Ozaki <ozaki-r%netbsd.org@localhost> wrote:
 >> On Sat, Jul 2, 2016 at 7:54 PM, Paul Goyette <paul%whooppee.com@localhost> wrote:
 >>> Looking at the two outputs side-by-side, the only significant differences
 >>> are:
 >>>
 >>> * The "L" flag is missing in the "after" output
 >>
 >> This is expected. Updating userland led the change.
 >>
 >>>
 >>> * For 2605:2700:1:1043::1:2 in the "after" file, the interface is tun0
 >>>   In the "before" file, that route has interface lo0
 >>
 >> So the diff should be important for the issue. Could you test
 >> a kernel with only r1.198 of src/sys/netinet6/nd6.c reverted?
 >> The change looks related to the issue.
 >
 > Oops. Only reverting the change doesn't work.
 > I'll investigate more to know what's happening.
 
 Does the following patch help you?
 
 Thanks,
   ozaki-r
 
 diff --git a/sys/net/if.c b/sys/net/if.c
 index dc73c47..62e58c8 100644
 --- a/sys/net/if.c
 +++ b/sys/net/if.c
 @@ -2021,6 +2021,8 @@ p2p_rtrequest(int req, struct rtentry *rt,
                 if ((rt->rt_flags & RTF_LOCAL) == 0)
                         break;
 
 +               rt->rt_ifp = lo0ifp;
 +
                 IFADDR_FOREACH(ifa, ifp) {
                         if (equal(rt_getkey(rt), ifa->ifa_addr))
                                 break;
 @@ -2039,8 +2041,6 @@ p2p_rtrequest(int req, struct rtentry *rt,
                 if (lo0ifa == NULL)
                         break;
 
 -               rt->rt_ifp = lo0ifp;
 -
                 /*
                  * Make sure to set rt->rt_ifa to the interface
                  * address we are using, otherwise we will have trouble
 


Home | Main Index | Thread Index | Old Index