Folks,

I've updated both the High-Level Design Document and the "PSARC 20
questions" in preparation for PSARC Commitment; the latest documents
are linked off of http://opensolaris.org/os/project/clearview/ipmp/

Specifically:

  http://opensolaris.org/os/project/clearview/ipmp-highlevel-design.pdf
  http://opensolaris.org/os/project/clearview/ipmp-20q-commitment.txt

These materials are quite similar to what we originally went to inception
with last year; I've summarized the key changes below.  I will ask PSARC
to vote on the case shortly (within a week), so prompt comments are
appreciated.  Note that I am still planning two minor additional changes
to the materials:

        * Summarizing changes to the IPMP async API
        * Summarizing changes to in.ndpd to simplify placing an IPv6
          interface into an IPMP group.

---8<--- 

   * 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.22.5: As a convenience, a consolidation-private sockaddrcmp()
     function has been added to libinetutil; it compares two IP addresses.

-- 
meem

Reply via email to