diff options
author | Bruce M Simpson <bms@FreeBSD.org> | 2009-04-29 10:22:44 +0000 |
---|---|---|
committer | Bruce M Simpson <bms@FreeBSD.org> | 2009-04-29 10:22:44 +0000 |
commit | ba970783a9c3022d8df57f05c5dbb1a044369a1b (patch) | |
tree | ed3f9f0b20afe8431621112b782bbd849bd087af /sys/netinet6/in6.h | |
parent | 9efc1a1bbf4ced1f38d1f78810626d59ee7890b5 (diff) | |
download | src-ba970783a9c3022d8df57f05c5dbb1a044369a1b.tar.gz src-ba970783a9c3022d8df57f05c5dbb1a044369a1b.zip |
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.
Notes
Notes:
svn path=/head/; revision=191662
Diffstat (limited to 'sys/netinet6/in6.h')
-rw-r--r-- | sys/netinet6/in6.h | 31 |
1 files changed, 19 insertions, 12 deletions
diff --git a/sys/netinet6/in6.h b/sys/netinet6/in6.h index 04a68d886971..ecec6e4963bf 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) |