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