svn commit: r274342 - head/sys/netinet6
Andrey V. Elsukov
ae at FreeBSD.org
Mon Nov 10 10:59:09 UTC 2014
Author: ae
Date: Mon Nov 10 10:59:08 2014
New Revision: 274342
URL: https://svnweb.freebsd.org/changeset/base/274342
Log:
For now handle only multicast addresses, we still use routes to
LLA unicasts yet.
Sponsored by: Yandex LLC
Modified:
head/sys/netinet6/in6_src.c
Modified: head/sys/netinet6/in6_src.c
==============================================================================
--- head/sys/netinet6/in6_src.c Mon Nov 10 09:55:35 2014 (r274341)
+++ head/sys/netinet6/in6_src.c Mon Nov 10 10:59:08 2014 (r274342)
@@ -587,10 +587,18 @@ selectroute(struct sockaddr_in6 *dstsock
goto getroute;
}
/*
+ * If the destination address is a multicast address and the outgoing
+ * interface for the address is specified by the caller, use it.
+ */
+ if (IN6_IS_ADDR_MULTICAST(dst) &&
+ mopts != NULL && (ifp = mopts->im6o_multicast_ifp) != NULL) {
+ goto done; /* we do not need a route for multicast. */
+ }
+ /*
* If destination address is LLA or link- or node-local multicast,
* use it's embedded scope zone id to determine outgoing interface.
*/
- if (IN6_IS_SCOPE_LINKLOCAL(dst) ||
+ if (IN6_IS_ADDR_MC_LINKLOCAL(dst) ||
IN6_IS_ADDR_MC_NODELOCAL(dst)) {
zoneid = ntohs(in6_getscope(dst));
if (zoneid > 0) {
@@ -598,14 +606,6 @@ selectroute(struct sockaddr_in6 *dstsock
goto done;
}
}
- /*
- * If the destination address is a multicast address and the outgoing
- * interface for the address is specified by the caller, use it.
- */
- if (IN6_IS_ADDR_MULTICAST(dst) &&
- mopts != NULL && (ifp = mopts->im6o_multicast_ifp) != NULL) {
- goto done; /* we do not need a route for multicast. */
- }
getroute:
/*
More information about the svn-src-head
mailing list