ARC members, As you may recall, when PSARC/2007/272 went through PSARC Inception, PSARC felt the materials were complete enough to vote. However, some aspects of the proposed architecture had not yet been implemented, and the project team wanted more time gain experience with the proposed interfaces and the ability to revise them without risk of obscuring the overall architecture via fasttracks. As such, PSARC agreed to an email-based vote once the project team was ready. Here we are :-)
The commitment.materials directory contains our complete proposal[1]. Given that the design document weighs in at 60 pages, the substantive changes from our inception materials are (relatively speaking) quite small. Specifically: * Section 3.6: The spec is now explicit that DHCP-managed test addresses work with DR (this was an oversight in the original materials). * Section 3.17: To resolve a conflict with the new architecture, IPMP Singleton no longer allows an IP data address to double as an IP test address. More generally, this section has been expanded to cover additional issues we (the Sun Cluster and Clearview teams) discovered while bringing a Clearview IPMP cluster up. * Section 4.1.10: To simplify the design and improve observability, IP interfaces with duplicate hardware addresses are now brought offline by in.mpathd rather than marked unusable by the kernel. * Section 4.2.3: To improve observability, ipmpstat now separates IPv4 and IPv6 multicast nominations, and identifies IP interfaces that have been taken offline due to hardware address conflicts. In addition, the "disabled" link state proved unnecessary and thus has been removed. * Section 4.2.7: The ipmpstat parsable output mode now mirrors the approach used by PSARC/2008/374 (dladm parseable output). * Sections 4.5 and 5.5: To simplify the implementation, support for adding legacy routes (routes over underlying IP interfaces) is handled by the kernel rather than route(1M). * Sections 4.6.1 and 4.6.2: The spec is now much more thorough in its explanation of how IPv6 link-local data and test addresses will work. * Section 4.12: To improve security, the IP filter interaction has been tweaked such that once an IP interface joins a group, it is subject to any filtering rules for the associated IPMP group interface. * Section 4.13: To improve ease-of-use, starting DHCP on an underlying IP interface now acquires a test address (rather than failing). * Section 4.13: To allow DHCP-managed test addresses to work with DR, dhcpagent(1M) no longer monitors changes to the IFF_UP flag. * Section 5.4.2: To improve future extensibility, the proposed SO_RTSIPMP socket option has been replaced with an RT_AWARE socket option, and a new SOL_ROUTE socket level to house the option. * Section 5.12: For consistency with SIOC*ARP, the SIOC*ND ioctls will fail if one attempts to change a mapping for an IPMP data address. * Section 5.14: To simplify the implementation, only SIOCSLIFUSESRC will fail in conjunction with IPMP; the other ioctls (SIOCGLIFUSESRC and SIOCGLIFSRCOF) now trivially succeed. * Section 5.15: The spec is now explicit that multicast memberships on an IP interface are purged when it joins an IPMP group (this was an oversight in the original materials). * Section 5.18: To ensure IPMP-unaware MIB applications won't trip over IPMP test address information, a synthetic EXPER_IP_AND_TESTHIDDEN MIB level has been added. * Section 5.23.5: As a convenience, a consolidation-private sockaddrcmp() function has been added to libinetutil; it compares two IP addresses. [1] Note that the provided libipmp.txt and ipmp-async.txt specifications are just to put the changes specified in sections 5.21 and 5.22 of the design document into context by partnering it with the specifications previously provided by PSARC/2002/137 and PSARC/2002/615 respectively. -- meem