Module Name:    src
Committed By:   ozaki-r
Date:           Wed Mar  1 08:54:12 UTC 2017

Modified Files:
        src/sys/netinet6: in6_var.h ip6_input.c ip6_mroute.c ip6_output.c
            mld6.c

Log Message:
Provide in6_multi_group

Use it when checking if we belong to the group, instead of in6_lookup_multi.

No functional change.


To generate a diff of this commit:
cvs rdiff -u -r1.93 -r1.94 src/sys/netinet6/in6_var.h
cvs rdiff -u -r1.175 -r1.176 src/sys/netinet6/ip6_input.c
cvs rdiff -u -r1.118 -r1.119 src/sys/netinet6/ip6_mroute.c
cvs rdiff -u -r1.186 -r1.187 src/sys/netinet6/ip6_output.c
cvs rdiff -u -r1.83 -r1.84 src/sys/netinet6/mld6.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/netinet6/in6_var.h
diff -u src/sys/netinet6/in6_var.h:1.93 src/sys/netinet6/in6_var.h:1.94
--- src/sys/netinet6/in6_var.h:1.93	Thu Feb 23 07:57:10 2017
+++ src/sys/netinet6/in6_var.h	Wed Mar  1 08:54:12 2017
@@ -1,4 +1,4 @@
-/*	$NetBSD: in6_var.h,v 1.93 2017/02/23 07:57:10 ozaki-r Exp $	*/
+/*	$NetBSD: in6_var.h,v 1.94 2017/03/01 08:54:12 ozaki-r Exp $	*/
 /*	$KAME: in6_var.h,v 1.81 2002/06/08 11:16:51 itojun Exp $	*/
 
 /*
@@ -683,6 +683,7 @@ void	in6_init(void);
 
 struct in6_multi *
 	in6_lookup_multi(const struct in6_addr *, const struct ifnet *);
+bool	in6_multi_group(const struct in6_addr *, const struct ifnet *);
 void	in6_purge_multi(struct ifnet *);
 struct	in6_multi *in6_addmulti(struct in6_addr *, struct ifnet *,
 	int *, int);

Index: src/sys/netinet6/ip6_input.c
diff -u src/sys/netinet6/ip6_input.c:1.175 src/sys/netinet6/ip6_input.c:1.176
--- src/sys/netinet6/ip6_input.c:1.175	Wed Feb 22 07:46:00 2017
+++ src/sys/netinet6/ip6_input.c	Wed Mar  1 08:54:12 2017
@@ -1,4 +1,4 @@
-/*	$NetBSD: ip6_input.c,v 1.175 2017/02/22 07:46:00 ozaki-r Exp $	*/
+/*	$NetBSD: ip6_input.c,v 1.176 2017/03/01 08:54:12 ozaki-r Exp $	*/
 /*	$KAME: ip6_input.c,v 1.188 2001/03/29 05:34:31 itojun Exp $	*/
 
 /*
@@ -62,7 +62,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ip6_input.c,v 1.175 2017/02/22 07:46:00 ozaki-r Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ip6_input.c,v 1.176 2017/03/01 08:54:12 ozaki-r Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_gateway.h"
@@ -458,15 +458,15 @@ ip6_input(struct mbuf *m, struct ifnet *
 	 * Multicast check
 	 */
 	if (IN6_IS_ADDR_MULTICAST(&ip6->ip6_dst)) {
-	  	struct	in6_multi *in6m = 0;
+		bool ingroup;
 
 		in6_ifstat_inc(rcvif, ifs6_in_mcast);
 		/*
 		 * See if we belong to the destination multicast group on the
 		 * arrival interface.
 		 */
-		in6m = in6_lookup_multi(&ip6->ip6_dst, rcvif);
-		if (in6m)
+		ingroup = in6_multi_group(&ip6->ip6_dst, rcvif);
+		if (ingroup)
 			ours = 1;
 		else if (!ip6_mrouter) {
 			uint64_t *ip6s = IP6_STAT_GETREF();

Index: src/sys/netinet6/ip6_mroute.c
diff -u src/sys/netinet6/ip6_mroute.c:1.118 src/sys/netinet6/ip6_mroute.c:1.119
--- src/sys/netinet6/ip6_mroute.c:1.118	Wed Feb 22 07:46:00 2017
+++ src/sys/netinet6/ip6_mroute.c	Wed Mar  1 08:54:12 2017
@@ -1,4 +1,4 @@
-/*	$NetBSD: ip6_mroute.c,v 1.118 2017/02/22 07:46:00 ozaki-r Exp $	*/
+/*	$NetBSD: ip6_mroute.c,v 1.119 2017/03/01 08:54:12 ozaki-r Exp $	*/
 /*	$KAME: ip6_mroute.c,v 1.49 2001/07/25 09:21:18 jinmei Exp $	*/
 
 /*
@@ -117,7 +117,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ip6_mroute.c,v 1.118 2017/02/22 07:46:00 ozaki-r Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ip6_mroute.c,v 1.119 2017/03/01 08:54:12 ozaki-r Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_inet.h"
@@ -1551,7 +1551,7 @@ phyint_send(struct ip6_hdr *ip6, struct 
 	int error __mrt6debugused = 0;
 	int s;
 	static struct route ro;
-	struct in6_multi *in6m;
+	bool ingroup;
 	struct sockaddr_in6 dst6;
 	u_long linkmtu;
 
@@ -1608,8 +1608,8 @@ phyint_send(struct ip6_hdr *ip6, struct 
 	 */
 	sockaddr_in6_init(&dst6, &ip6->ip6_dst, 0, 0, 0);
 
-	in6m = in6_lookup_multi(&ip6->ip6_dst, ifp);
-	if (in6m != NULL) {
+	ingroup = in6_multi_group(&ip6->ip6_dst, ifp);
+	if (ingroup) {
 		ip6_mloopback(ifp, m,
 		    satocsin6(rtcache_getdst(&ro)));
 	}

Index: src/sys/netinet6/ip6_output.c
diff -u src/sys/netinet6/ip6_output.c:1.186 src/sys/netinet6/ip6_output.c:1.187
--- src/sys/netinet6/ip6_output.c:1.186	Wed Feb 22 07:46:00 2017
+++ src/sys/netinet6/ip6_output.c	Wed Mar  1 08:54:12 2017
@@ -1,4 +1,4 @@
-/*	$NetBSD: ip6_output.c,v 1.186 2017/02/22 07:46:00 ozaki-r Exp $	*/
+/*	$NetBSD: ip6_output.c,v 1.187 2017/03/01 08:54:12 ozaki-r Exp $	*/
 /*	$KAME: ip6_output.c,v 1.172 2001/03/25 09:55:56 itojun Exp $	*/
 
 /*
@@ -62,7 +62,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ip6_output.c,v 1.186 2017/02/22 07:46:00 ozaki-r Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ip6_output.c,v 1.187 2017/03/01 08:54:12 ozaki-r Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_inet.h"
@@ -636,7 +636,7 @@ ip6_output(
 	if (!IN6_IS_ADDR_MULTICAST(&ip6->ip6_dst))
 		m->m_flags &= ~(M_BCAST | M_MCAST);	/* just in case */
 	else {
-		struct	in6_multi *in6m;
+		bool ingroup;
 
 		m->m_flags = (m->m_flags & ~M_BCAST) | M_MCAST;
 
@@ -652,9 +652,8 @@ ip6_output(
 			goto bad;
 		}
 
-		in6m = in6_lookup_multi(&ip6->ip6_dst, ifp);
-		if (in6m != NULL &&
-		   (im6o == NULL || im6o->im6o_multicast_loop)) {
+		ingroup = in6_multi_group(&ip6->ip6_dst, ifp);
+		if (ingroup && (im6o == NULL || im6o->im6o_multicast_loop)) {
 			/*
 			 * If we belong to the destination multicast group
 			 * on the outgoing interface, and the caller did not

Index: src/sys/netinet6/mld6.c
diff -u src/sys/netinet6/mld6.c:1.83 src/sys/netinet6/mld6.c:1.84
--- src/sys/netinet6/mld6.c:1.83	Thu Feb 23 07:57:10 2017
+++ src/sys/netinet6/mld6.c	Wed Mar  1 08:54:12 2017
@@ -1,4 +1,4 @@
-/*	$NetBSD: mld6.c,v 1.83 2017/02/23 07:57:10 ozaki-r Exp $	*/
+/*	$NetBSD: mld6.c,v 1.84 2017/03/01 08:54:12 ozaki-r Exp $	*/
 /*	$KAME: mld6.c,v 1.25 2001/01/16 14:14:18 itojun Exp $	*/
 
 /*
@@ -102,7 +102,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: mld6.c,v 1.83 2017/02/23 07:57:10 ozaki-r Exp $");
+__KERNEL_RCSID(0, "$NetBSD: mld6.c,v 1.84 2017/03/01 08:54:12 ozaki-r Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_inet.h"
@@ -780,6 +780,16 @@ in6_lookup_multi(const struct in6_addr *
 	return in6m;
 }
 
+bool
+in6_multi_group(const struct in6_addr *addr, const struct ifnet *ifp)
+{
+	bool ingroup;
+
+	ingroup = in6_lookup_multi(addr, ifp) != NULL;
+
+	return ingroup;
+}
+
 /*
  * Purge in6_multi records associated to the interface.
  */

Reply via email to