From 027b0363c69adf0032001c346d2b30774b2042e9 Mon Sep 17 00:00:00 2001 From: bms Date: Wed, 29 Apr 2009 10:22:44 +0000 Subject: 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. --- sys/netinet6/in6.h | 31 +++++++++++++++++++------------ 1 file changed, 19 insertions(+), 12 deletions(-) (limited to 'sys') diff --git a/sys/netinet6/in6.h b/sys/netinet6/in6.h index 04a68d8..ecec6e4 100644 --- a/sys/netinet6/in6.h +++ b/sys/netinet6/in6.h @@ -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_loopback; 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) -- cgit v1.1