I am sponsoring this fasttrack for Michael Christensen. The project team is requesting a patch/micro release binding. The 3 manpages (ldminfo.1m, libldom.3lib & ldoms_capabilities.3ldoms) and the libldoms.h include file are placed in the case directory.
The timer is set to expire on 1/14/10. ------- 1. Introduction 1.1 Project/Component Working Name Logical Domains Information API and ldminfo program 1.2 Name of Document Author/Supplier Michael Christensen 1.3 Date of This Document 18-DEC-2009 1.4 Name of Major Document Customer(s)/Consumer(s) 1.4.1 The PAC or CPT you expect to review your project 1.4.2 The ARC(s) you expect to review your project PSARC 1.4.3 The Director/VP who is sponsoring this project jerriann.meyer at sun.com 1.4.4 The Name of Your Business Unit Solaris Core OS 1.5 Email Aliases 1.5.1 Responsible Manager: jay.jayachandran at sun.com 1.5.2 Responsible Engineer: michael.christensen at sun.com 1.5.3 Marketing Manager: duncan.hardie at sun.com 1.5.4 Interest List: ldoms-internal at sun.com 2. Project Summary 2.1 Project Description This project will implement Logical Domains Information API and ldminfo program on Solaris. The API and ldminfo program will provide information about the currently running domain. Among the items that may be provided are: - Domain type (control, guest, I/O, service, root) - LDom Manager's LDom name for this domain (Domain name) - Domain Universally Unique ID (UUID) - Domain's control domain network nodename - Chassis Serial Number the domain is running on. None of the above items are currently easily obtainable from within a guest domain. As an example, many customers have expressed a desire to run LDom manager scripts on the control domain initiated from a guest domain. However, there is no easy way to either identify the network nodename of the control domain or to identify the LDom Manager's name for the current domain, which would be required for LDom Manager commands. Further, many customers have requested a means of uniquely identifying each domain and also identifying the hardware platform that the domain is running on for accounting or resourcing. On the Solaris operating system, the Logical Domains Information API will be implemented as a library (libldoms) using information from the Guest Domain's Machine Description provided by FWARC 2005/115 (sun4v machine description), the sun4v MD uuid property from FWARC 2009/680 (Domain UUID property), the libds library provided by PSARC 2008/568 (Logical Domain's Domain Services) and using domain services provided by the logical domain agent daemon provided by PSARC 2009/459 (Logical Domains Agents on Solaris) and FWARC 2009/426 (Logical Domains Agents). The ldminfo program will utilize the libldoms library to display the various items of information provided. 2.2 Risks and Assumptions None. 3. Business Summary 3.1 Problem Area In an LDoms system, a user program or user has no easy way to identify what type of domain the program is being run on (e.g. control domain, guest domain, I/O domain, service domain). Also a guest domain has no easy way to identify the network nodename of its control domain, what name the LDoms Manager running on the control domain uses to identify this domain, what is the domain's Universally Unique Identifier that The LDoms Manager uses to identify this domain or what the Chassis Serial Number of the platform it is currently running on. 3.2 Market/Requestor See FWARC 2005/633. 3.3 Business Justification See FWARC 2005/633. 3.4 Competitive Analysis The problems listed in 3.1 have been the subject of bug reports from customers. Virtualization solutions provided by competitors have equivalent functionality. 3.5 Opportunity Window/Exposure See FWARC 2005/663. 3.6 How will you know when you are done? The work will be completed when the final code changes to implement Logical Domains Information API and ldminfo program are integrated into the Solaris Nevada gate and Solaris 10 Update gates. 4. Technical Description 4.1 Overview On the Solaris operating system, Logical Domains Information API will be implemented as a user library "libldoms.so.1" and a user program "ldminfo" will be provided to display this information. This information will be provided either via the sun4v Machine Description (FWARC/2005/115 and FWARC 2009/680) or via a domain service (FWARC/2009/426) provided by the logical domains agent daemon (PSARC/2009/459) on the control domain. 4.2 Bug/RFE Number(s) 6680702 - Want a mechanism for Solaris to know if it is an LDOM and if so what type 6873151 - RFE: unique ID for LDOMs to facillitate asset tracking 6712763 - Need information about control domain from within a guest domain 4.3 Scope Not Applicable. 4.4 Out of Scope Not Applicable. 4.5 Interfaces 4.5.1 Interfaces 4.5.2 Imported Interfaces Interface Classification Comments ================================================================= Domain Services API Consolidation Private PSARC/2008/568 (libds.so.1) Logical Domains Sun Private PSARC/2009/459 Agents on Solaris Logical Domains Sun Private FWARC/2009/426 Agents Machine Description Sun Private FWARC/2005/115 Device (/dev/mdesc) Domain UUID property Consolidation Private FWARC/2009/680 UUID library API Evolving PSARC/2002/094 (libuuid.so.1) 4.5.3 Exported Interfaces Interface Classification Comments ================================================================ /usr/sbin/ldminfo Committed See ldminfo(1M) /usr/lib/libldoms.so Committed 32-bit library /usr/lib/sparcv9/libldoms.so Committed 64-bit library /usr/include/libldoms.h Committed Header file ldoms_capabilities() Committed ldoms_domain_roles() Committed ldoms_domain_name() Committed ldoms_domain_uuid() Committed ldoms_control_domain() Committed ldoms_platform_serialno() Committed LDMCAP_SUPPORTED Committed LDMCAP_ENABLED Committed LDMROLE_CONTROL Committed LDMROLE_IO Committed LDMROLE_SERVICE Committed LDMROLE_ROOT Committed 4.6 Doc Impact Man pages for ldminfo (1M), libldoms (3LIB), ldoms_capabilities(3LDOMS), ldoms_domain_roles(3LDOMS), ldoms_domain_name(3LDOMS), ldoms_domain_uuid(3LDOMS), ldoms_control_domain(3LDOMS), ldoms_platform_serialno(3LDOMS) 4.7 Admin/Config Impact None. 4.8 HA Impact None. 4.9 I18N/L10N Not affected. 4.10 Packaging & Delivery The Logical Domains Information API library libldoms and ldminfo program will be delivered as part of the existing Solaris packages SUNWcsl (Solaris 32bit libraries), SUNWcslx (Solaris 64bit libraries), SUNWcsu (Solaris User Core), SUNWhea (Solaris headers) on Sparc platforms only. 4.11 Security Impact None. 4.12 Dependencies None. 5. Reference Documents PSARC 2008/568 Logical Domain's Domain Services PSARC 2009/459 Logical Domain's Agents on Solaris FWARC 2005/115 sun4v machine description FWARC 2009/680 Domain UUID property 6. Resources and Schedule 6.1 Projected Availability Q4FY10 (S10U9) 6.2 Cost of Effort 1 person month 6.3 Cost of Capital Resources 6.4 Product Approval Committee requested information 6.4.1 Consolidation Or Component Name OS-Networking (ON) 6.4.3 Type of CPT Approval Expected FastTrack 6.4.4 Project Boundary Conditions 6.4.5 Is this a necessary project for OEM agreements: No. 6.4.6 Notes 6.4.7 Target RTI Date/Release February 2010 6.4.8 Target Code Design Review Date: 6.4.9 Update approval addition: Not applicable 6.5 ARC review type FastTrack 6.6 ARC Exposure open 7. Prototype Availability: 7.1 Prototype Availability A prototype is already available. 7.2 Prototype Cost: A prototype is already available.