Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 29 Apr 2009 10:22:44 +0000 (UTC)
From:      Bruce M Simpson <bms@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r191662 - head/sys/netinet6
Message-ID:  <200904291022.n3TAMi3V076428@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: bms
Date: Wed Apr 29 10:22:44 2009
New Revision: 191662
URL: http://svn.freebsd.org/changeset/base/191662

Log:
  Add IN6ADDR_LINKLOCAL_ALLV2ROUTERS_INIT, in6addr_linklocal_allv2routers
  for use by MLDv2.
  Add IPv6 SSM socket layer membership vector size constants and
  tree bounds.
  Remove unreferenced struct ipv6_mreq_source; SSM for IPv6 goes
  straight to the RFC 3678 socket options.

Modified:
  head/sys/netinet6/in6.h

Modified: head/sys/netinet6/in6.h
==============================================================================
--- head/sys/netinet6/in6.h	Wed Apr 29 10:20:17 2009	(r191661)
+++ head/sys/netinet6/in6.h	Wed Apr 29 10:22:44 2009	(r191662)
@@ -201,6 +201,9 @@ extern const struct in6_addr in6mask128;
 #define IN6ADDR_LINKLOCAL_ALLROUTERS_INIT \
 	{{{ 0xff, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
 	    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02 }}}
+#define IN6ADDR_LINKLOCAL_ALLV2ROUTERS_INIT \
+	{{{ 0xff, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
+	    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x16 }}}
 #endif
 
 extern const struct in6_addr in6addr_any;
@@ -209,6 +212,7 @@ extern const struct in6_addr in6addr_loo
 extern const struct in6_addr in6addr_nodelocal_allnodes;
 extern const struct in6_addr in6addr_linklocal_allnodes;
 extern const struct in6_addr in6addr_linklocal_allrouters;
+extern const struct in6_addr in6addr_linklocal_allv2routers;
 #endif
 
 /*
@@ -494,24 +498,27 @@ struct route_in6 {
 #define IPV6_DEFAULT_MULTICAST_LOOP 1	/* normally hear sends if a member */
 
 /*
- * Argument structure for IPV6_JOIN_GROUP and IPV6_LEAVE_GROUP.
+ * The im6o_membership vector for each socket is now dynamically allocated at
+ * run-time, bounded by USHRT_MAX, and is reallocated when needed, sized
+ * according to a power-of-two increment.
  */
-struct ipv6_mreq {
-	struct in6_addr	ipv6mr_multiaddr;
-	unsigned int	ipv6mr_interface;
-};
+#define	IPV6_MIN_MEMBERSHIPS	31
+#define	IPV6_MAX_MEMBERSHIPS	4095
 
-#ifdef notyet
 /*
- * Argument structure for IPV6_ADD_SOURCE_MEMBERSHIP,
- * IPV6_DROP_SOURCE_MEMBERSHIP, IPV6_BLOCK_SOURCE, and IPV6_UNBLOCK_SOURCE.
+ * Default resource limits for IPv6 multicast source filtering.
+ * These may be modified by sysctl.
  */
-struct ipv6_mreq_source {
+#define	IPV6_MAX_GROUP_SRC_FILTER	512	/* sources per group */
+#define	IPV6_MAX_SOCK_SRC_FILTER	128	/* sources per socket/group */
+
+/*
+ * Argument structure for IPV6_JOIN_GROUP and IPV6_LEAVE_GROUP.
+ */
+struct ipv6_mreq {
 	struct in6_addr	ipv6mr_multiaddr;
-	struct in6_addr	ipv6mr_sourceaddr;
-	uint32_t	ipv6mr_interface;
+	unsigned int	ipv6mr_interface;
 };
-#endif
 
 /*
  * IPV6_PKTINFO: Packet information(RFC2292 sec 5)



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200904291022.n3TAMi3V076428>