summaryrefslogtreecommitdiffstats
path: root/sys/netinet6
diff options
context:
space:
mode:
authorqingli <qingli@FreeBSD.org>2009-08-12 19:15:26 +0000
committerqingli <qingli@FreeBSD.org>2009-08-12 19:15:26 +0000
commitd7ddc7ccbe531019ee08753204ac3d9210ea215f (patch)
tree3810b66a002c0d5ef0d1c5a22e03ea0563c235ac /sys/netinet6
parentcda13d6d86bd52b9bdbe8d98d739aeccaf6ddff9 (diff)
downloadFreeBSD-src-d7ddc7ccbe531019ee08753204ac3d9210ea215f.zip
FreeBSD-src-d7ddc7ccbe531019ee08753204ac3d9210ea215f.tar.gz
A piece of code was added to install a host route when an IPv6 interface
address is configured with a /128 prefix. This is no longer necessary due to r192011. In fact that code conflicts with r192011. This patch removes the host route installation when detecting the /128 prefix, and instead let the code added by r192011 to install the loopback route for that IPv6 interface address. Reviewed by: bz Approved by: re
Diffstat (limited to 'sys/netinet6')
-rw-r--r--sys/netinet6/in6.c15
1 files changed, 3 insertions, 12 deletions
diff --git a/sys/netinet6/in6.c b/sys/netinet6/in6.c
index c099da7..c4333ed 100644
--- a/sys/netinet6/in6.c
+++ b/sys/netinet6/in6.c
@@ -1750,21 +1750,12 @@ in6_ifinit(struct ifnet *ifp, struct in6_ifaddr *ia,
* interface that share the same destination.
*/
plen = in6_mask2len(&ia->ia_prefixmask.sin6_addr, NULL); /* XXX */
- if (!(ia->ia_flags & IFA_ROUTE) && plen == 128) {
- struct sockaddr *dstaddr;
+ if (!(ia->ia_flags & IFA_ROUTE) && plen == 128 &&
+ ia->ia_dstaddr.sin6_family == AF_INET6) {
int rtflags = RTF_UP | RTF_HOST;
- /*
- * use the interface address if configuring an
- * interface address with a /128 prefix len
- */
- if (ia->ia_dstaddr.sin6_family == AF_INET6)
- dstaddr = (struct sockaddr *)&ia->ia_dstaddr;
- else
- dstaddr = (struct sockaddr *)&ia->ia_addr;
-
error = rtrequest(RTM_ADD,
- (struct sockaddr *)dstaddr,
+ (struct sockaddr *)&ia->ia_dstaddr,
(struct sockaddr *)&ia->ia_addr,
(struct sockaddr *)&ia->ia_prefixmask,
ia->ia_flags | rtflags, NULL);
OpenPOWER on IntegriCloud