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: "gnats-bugs%NetBSD.org@localhost" <gnats-bugs%netbsd.org@localhost>
Cc: kern-bug-people%netbsd.org@localhost, gnats-admin%netbsd.org@localhost, netbsd-bugs%netbsd.org@localhost, 
	Paul Goyette <paul%whooppee.com@localhost>
Subject: Re: kern/51301: 7.99.32 has broken IPv6 functionality of pkgsrc/net/openvpn
Date: Sat, 2 Jul 2016 18:00:24 +0900

 On Sat, Jul 2, 2016 at 4:00 PM, Paul Goyette <paul%whooppee.com@localhost> wrote:
 > The following reply was made to PR kern/51301; it has been noted by GNATS.
 >
 > From: Paul Goyette <paul%whooppee.com@localhost>
 > To: gnats-bugs%NetBSD.org@localhost
 > Cc:
 > Subject: Re: kern/51301: 7.99.32 has broken IPv6 functionality of pkgsrc/net/openvpn
 > Date: Sat, 2 Jul 2016 14:55:28 +0800 (PHT)
 >
 >  Bisecting the time period between working and non-working kernels gets
 >  us to the following commit.  A kernel built from sources just before
 >  this commit works, while a kernel built from after the commits fails.
 
 Thank your for the investigation. Could you provide outputs of
 ifconfig tun0 and netstat -nr -f inet6 with kernels w/ and w/o the commit?
 
   ozaki-r
 
 >
 >  Module Name:    src
 >  Committed By:   ozaki-r
 >  Date:           Thu Jun 30 01:34:53 UTC 2016
 >
 >  Modified Files:
 >           src/sys/net: if_spppsubr.c
 >           src/sys/netinet: if_arp.c in.c
 >           src/sys/netinet6: in6.c nd6.c
 >
 >  Log Message:
 >  Make sure that ifaddr is published after its initialization finished
 >
 >  Basically we should insert an item to a collection (say a list) after
 >  item's initialization has been completed to avoid accessing an item
 >  that is initialized halfway. ifaddr (in{,6}_ifaddr) isn't processed
 >  like so and needs to be fixed.
 >
 >  In order to do so, we need to tweak {arp,nd6}_rtrequest that depend
 >  on that an ifaddr is inserted during its initialization; they explore
 >  interface's address list to determine that rt_getkey(rt) of a given
 >  rtentry is in the list to know whether the route's interface should
 >  be a loopback, which doesn't work after the change. To make it work,
 >  first check RTF_LOCAL flag that is set in rt_ifa_addlocal that calls
 >  {arp,nd6}_rtrequest eventually. Note that we still need the original
 >  code for the case to remove and re-add a local interface route.
 >
 >
 >  To generate a diff of this commit:
 >  cvs rdiff -u -r1.143 -r1.144 src/sys/net/if_spppsubr.c
 >  cvs rdiff -u -r1.213 -r1.214 src/sys/netinet/if_arp.c
 >  cvs rdiff -u -r1.168 -r1.169 src/sys/netinet/in.c
 >  cvs rdiff -u -r1.201 -r1.202 src/sys/netinet6/in6.c
 >  cvs rdiff -u -r1.197 -r1.198 src/sys/netinet6/nd6.c
 >
 >
 >
 >  +------------------+--------------------------+------------------------+
 >  | Paul Goyette     | PGP Key fingerprint:     | E-mail addresses:      |
 >  | (Retired)        | FA29 0E3B 35AF E8AE 6651 | paul at whooppee.com   |
 >  | Kernel Developer | 0786 F758 55DE 53BA 7731 | pgoyette at netbsd.org |
 >  +------------------+--------------------------+------------------------+
 >
 


Home | Main Index | Thread Index | Old Index