On Fri, 2009-09-04 at 13:53 -0700, Peter Memishian wrote: > > Another belated opinion for PSARC review. Please review by 09/11/2009. > > Is there supposed to be some content?
Yes, I included the wrong file (blush). The correct file is now attached. -Seb -------------- next part -------------- sun microsystems Systems Architecture Committee _________________________________________________________________ Subject: Project Clearview: IPMP Rearchitecture Submitted by: Peter Memishian File: PSARC/2007/272/opinion.ms Date: November 19th, 2008 Committee: Kais Belgaied, James Carlson, Glenn Skinner. Abstain: Gary Winiger. (opinion written by Sebastien Roy) Product Approval Committee: Solaris PAC solaris-pac-opinion at sun.com 1. Summary This is one of a series of projects under the PSARC/2005/132 umbrella case, "Clearview: Network Interface Coherence". This project rearchitects the existing Solaris IP Multipath- ing (IPMP) technology so that it can work transparently with all IP-based applications, allowing it to be deployed much more widely by customers. As a side effect, it also enables core technologies such as DHCP to work seamlessly with IPMP. It also provides an improved administrative model and new diagnostic facilities which should greatly ease troub- leshooting in IPMP environments -- and reduce our support costs. Finally, it massively simplifies the IPMP kernel implementation, shrinking it by over 35% (3000 lines less code) and isolating the majority of the remaining code beh- ing a well-defined internal API. 2. Decision & Precedence Information The project is approved as specified in references [1-6]. The project may be delivered in a Minor release of Solaris as part of the ON consolidation. 3. Interfaces PSARC/2007/272 Copyright 2007 Sun Microsystems - 2 - The project exports the following interfaces. ____________________________________________________________________________ | Interfaces Exported | |__________________________________|__________________|____________________| |Interface | Classification | Comments | |__________________________________|__________________|____________________| |IPMP IP Interface | Committed | [1] section 3.1 | |outbount load spreading behavior | Volatile | [1] section 3.2 | |source address selection behavior | Volatile | [1] section 3.3 | |ifconfig "ipmp" subcommand | Committed | [1] section 4.1.5 | |ifconfig "ipmp" subcommand | Committed | [1] section 4.1.5 | |"ipmp" in /etc/hostname[6].* | Committed | [1] section 4.3 | |networking commands on IPMP and | Committed | [1] sections 4.1, | |underlying IP interfaces | | 4.4, 4.5, 4.8-4.10| |IPMP packet monitoring semantics | Committed | [1] section 4.11 | |IPMP packet filtering semantics | Committed | [1] section 4.12 | |DHCP for IPMP data/test addresses | Committed | [1] section 4.13 | |kstats for IPMP IP interfaces | Committed[4] | [1] section 4.8 | |MIBII stats for IPMP IP interfaces| Uncommitted | [1] section 5.18 | |IPv6 link-local IPMP interaction | Committed | [1] section 4.6 | |IPMP bring-up at boot | Project Private | [1] section 4.3 | | | | | |/usr/sbin/ipmpstat | Committed | [1] section 4.2 | |/sbin/ipmpstat alternate location | Volatile | [1] section 4.3.4 | |/sbin/in.mpathd alternate location| Volatile | [1] section 4.3.4 | |ipmpstat output modes | Committed | [1] section 4.2 | |(-a, -g, -i, -p, -t) | | | |ipmpstat normal output format | Not-an-Interface| [1] section 4.2 | |ipmpstat -P output format | Committed | [1] section 4.2 | | | | | |SIOCG[L]IFCONF and SIOCG[L]IFNUM | Committed | [1] section 5.1 | |IPMP interaction | | | |LIFC_UNDER_IPMP | Committed | [1] section 5.1 | |SIOC[GS]LIFFLAGS IPMP interaction | Committed | [1] section 5.2 | |IFF_IPMP | Committed | [1] section 5.3 | |IFF_RUNNING on IPMP IP interfaces | Committed | [1] section 5.3 | |Visibility of IPMP and underlying | Committed | [1] section 5.4 | |IP interfaces via PF_ROUTE | | | |SOL_ROUTE socket level | Committed | [1] section 5.4.2 | |RT_AWARE / RTAW_* socket option | Committed | [1] section 5.4.2 | |Assorted "set" SIOC* and PF_ROUTE | Volatile | [1] section 5.* | |ops on underlying IP interfaces | | | |SIOC*ARP IPMP behavior | Committed | [1] section 5.11 | |SIOC*ND IPMP behavior | Committed | [1] section 5.12 | |SIOC[GS]LIFZONE/DLDIOC_SETZID | Cons. Private | [1] section 5.13 | |SIOC*LIF*SRC* IPMP interaction | Volatile | [1] section 5.14 | |IPMP data address multicast API | Committed | [1] section 5.15 | |behavior and semantics | | | |SIOCGLIFBINDING | Project Private | [1] section 5.17 | |SIOCGLIFGROUPINFO | Project Private | [1] section 5.17 | |lifr_binding lifreq member | Project Private | [1] section 5.17 | |struct lifgroupinfo | Project Private | [1] section 5.17 | |EXPER_IP_AND_TESTHIDDEN MIB level | Cons. Private | [1] section 5.18 | |__________________________________|__________________|____________________| PSARC/2007/272 Copyright 2007 Sun Microsystems - 3 - ____________________________________________________________________________ | Interfaces Exported | |__________________________________|__________________|____________________| |Interface | Classification | Comments | |__________________________________|__________________|____________________| |dlpistub kernel module | Cons. Private | [1] section 5.20 | |/dev/ipmpstub | Project Private | [1] section 5.20 | | | | | |libipmp APIs | Contracted Cons.| [1] section 5.21 | |in.mpathd/libipmp communication | Project Private | [1] section 5.21 | |/usr/include/ipmp_admin.h | Contracted Cons.| [1] section 5.21 | |IPMP async events | Contracted Cons.| [1] section 5.22 | |if_indextoname() IPMP behavior | Committed | [1] section 5.23.1| |if_nametoindex() IPMP behavior | Committed | [1] section 5.23.1| |if_nameindex() IPMP behavior | Committed | [1] section 5.23.2| |ifaddrlist() enhancements | Cons. Private | [1] section 5.23.3| |ifaddrlistx(), ifaddrlistx_free() | Cons. Private | [1] section 5.23.4| |sockaddrcmp() | Cons. Private | [1] section 5.23.5| |__________________________________|__________________|____________________| The project imports the following interfaces. ___________________________________________________________________ | Interfaces Imported | |__________________________|_________________|____________________| |Interface | Classification | Comments | |__________________________|_________________|____________________| |vni device driver | Cons. Private | [1] section 5.20 | |NIC kstats | Committed | [1] section 4.8 | |sysevent API | Committed | For PSARC/2002/137| |IP module IPSQ framework | Project Private| [2] question 14 | |ARP/IP message-passing API| Cons. Private | [2] question 14 | |modhash kernel API | Cons. Private | Impl. artifact | |/etc/hostname[6].* | Committed | [1] section 4.3 | |__________________________|_________________|____________________| 4. Opinion 4.1. IPMP is a Network Layer Mechanism During the case review, concern was raised that an IPMP group represented by a virtual IP interface could be confus- ing to users. Specifically, IP interfaces that have no one-to-on relationship with an underlying link require spe- cial handling by observability tools, and thus require addi- tional architecture such as PSARC/2006/475. The discussion did not result in any technical change nor advise. IPMP is by definition a network layer mechanism, and thus cannot be represented at the link layer. PSARC/2007/272 Copyright 2007 Sun Microsystems - 4 - 4.2. Reverse ARP Autoconfiguration and IPMP Section 4.1.11 of [1] states that the ifconfig auto-revarp subcommand will fail on an IPMP interface. The group inter- face does not exist as a DLPI device, and DLPI is needed for ifconfig to send and receive ARP packets. One PSARC member noted that while it is true that the group interface does not exist as a DLPI device, implementing auto-revarp should still be possible by interacting directly with one of the underlying interface's DLPI device. All agreed that implementing such a mechanism is likely not worth the effort. 4.3. Incompatible Change to Networking MIB Section 5.18 of [1] describes that data associated with test addresses on underlying interfaces will be invisible to con- sumers of the Networking MIB unless the new EXPER_IP_AND_TESTHIDDEN MIB II level is specified in the request, under the assumption that only in.mpathd should be concerned with those details. The committee noted that this constituted a slight regres- sion in functionality, as SNMP applications will no longer have observability into IPMP configuration. This resulted in advice to management described in section 6. 5. Minority Opinion(s) None 6. Advisory Information This project's management should fund a project to add SNMP observability into IPMP configuration, perhaps using a new private MIB. See section 4.3 for details. 7. Appendices 7.1. Appendix A: Technical Changes Required None 7.2. Appendix B: Technical Changes Advised None 7.3. Appendix C: Reference Material Unless stated otherwise, path names are relative to the case directory PSARC/2007/272/final.materials/. 1. High-Level Design Document PSARC/2007/272 Copyright 2007 Sun Microsystems - 5 - File: ipmp-highlevel-design.pdf 2. PSARC 20 Questions File: ipmp-20q.txt 3. Specification for ifaddrlistx() and ifaddrlistx_free() File: ifaddrlistx.txt 4. IPMP Async Events Specification File: ipmp-async.txt 5. libipmp Specification File: libipmp.txt 6. Draft Manual Pages File: manpages/index.html PSARC/2007/272 Copyright 2007 Sun Microsystems