From gdamore@sun.com Wed Jun 10 07:27:39 2009
Received: from sunmail4.singapore.sun.com (sunmail4.Singapore.Sun.COM [129.158.71.19])
	by sac.sfbay.sun.com (8.13.8+Sun/8.13.8) with ESMTP id n5AERceU001398
	for <psarc-ext@sac.sfbay.sun.com>; Wed, 10 Jun 2009 07:27:38 -0700 (PDT)
Received: from nwk-avmta-1.SFBay.Sun.COM (nwk-avmta-1.SFBay.Sun.COM [129.146.11.74])
	by sunmail4.singapore.sun.com (8.13.4+Sun/8.13.3/ENSMAIL,v2.2) with ESMTP id n5AERYGQ005845
	for <@sunmail2sca.sfbay.sun.com:PSARC-ext@sun.com>; Wed, 10 Jun 2009 22:27:37 +0800 (SGT)
Received: from pmxchannel-daemon.nwk-avmta-1.sfbay.Sun.COM by
 nwk-avmta-1.sfbay.Sun.COM
 (Sun Java System Messaging Server 6.2-3.04 (built Jul 15 2005))
 id <0KL100B0B1I0JR00@nwk-avmta-1.sfbay.Sun.COM> for PSARC-ext@sun.com
 (ORCPT PSARC-ext@sun.com); Wed, 10 Jun 2009 07:27:36 -0700 (PDT)
Received: from sca-es-mail-2.sun.com ([192.18.43.133])
 by nwk-avmta-1.sfbay.Sun.COM
 (Sun Java System Messaging Server 6.2-3.04 (built Jul 15 2005))
 with ESMTP id <0KL100I661HZFYD0@nwk-avmta-1.sfbay.Sun.COM> for
 PSARC-ext@sun.com (ORCPT PSARC-ext@sun.com); Wed,
 10 Jun 2009 07:27:35 -0700 (PDT)
Received: from fe-sfbay-10.sun.com ([192.18.43.129])
	by sca-es-mail-2.sun.com (8.13.7+Sun/8.12.9) with ESMTP id n5AERZc0022730	for
 <PSARC-ext@sun.com>; Wed, 10 Jun 2009 07:27:35 -0700 (PDT)
Received: from conversion-daemon.fe-sfbay-10.sun.com by fe-sfbay-10.sun.com
 (Sun Java(tm) System Messaging Server 7u2-7.02 64bit (built Apr 16 2009))
 id <0KL100M001FZUF00@fe-sfbay-10.sun.com> for PSARC-ext@sun.com
 (ORCPT PSARC-ext@sun.com); Wed, 10 Jun 2009 07:27:35 -0700 (PDT)
Received: from [192.168.251.11] ([unknown] [76.93.15.33])
 by fe-sfbay-10.sun.com
 (Sun Java(tm) System Messaging Server 7u2-7.02 64bit (built Apr 16 2009))
 with ESMTPSA id <0KL100DEC1HWN130@fe-sfbay-10.sun.com> for PSARC-ext@sun.com
 (ORCPT PSARC-ext@sun.com); Wed, 10 Jun 2009 07:27:35 -0700 (PDT)
Date: Wed, 10 Jun 2009 07:27:32 -0700
From: "Garrett D'Amore" <gdamore@sun.com>
Subject: PSARC 2008/181 Solaris Hotplug Framework
Sender: Garrett.Damore@sun.com
To: PSARC-ext <PSARC-ext@sun.com>
Message-id: <4A2FC2D4.1060902@sun.com>
MIME-version: 1.0
Content-type: text/plain; CHARSET=US-ASCII; format=flowed
Content-transfer-encoding: 7BIT
X-PMX-Version: 5.4.1.325704
User-Agent: Thunderbird 2.0.0.18 (X11/20081201)
Status: RO
Content-Length: 914

Case materials for the inception review (scheduled for June 17) are now 
in the inception.materials directory:

gd78059@sac{19}> ls -la inception.materials/
total 1971
drwxrwsr-x   2 apai     sac           11 Jun 10 07:26 .
drwxrwsr-x   6 apai     sac           10 Mar  7  2008 ..
-r--r--r--   1 gd78059  sac         8302 Jun 10 07:26 hotplug.1m.txt
-r--r--r--   1 gd78059  sac        16223 Jun 10 07:26 libhotplug.3lib.txt
-r--r--r--   1 gd78059  sac        17222 Jun 10 07:26 shp-1pgr.txt
-r--r--r--   1 gd78059  sac       114612 Jun 10 07:26 shp-overview.odt
-r--r--r--   1 gd78059  sac       174751 Jun 10 07:26 shp-overview.pdf
-r--r--r--   1 gd78059  sac        15575 Jun 10 07:26 shp-proj-20q.txt
-r--r--r--   1 gd78059  sac       170610 Jun 10 07:26 shp-slides.odp
-r--r--r--   1 gd78059  sac       211535 Jun 10 07:26 shp-slides.pdf
-r--r--r--   1 gd78059  sac        31504 Jun 10 07:26 shp-userland.txt


From Colin.Zou@sun.com Sun Jun 28 01:52:33 2009
Received: from sunmail5.uk.sun.com (sunmail5.UK.Sun.COM [129.156.85.165])
	by sac.sfbay.sun.com (8.13.8+Sun/8.13.8) with ESMTP id n5S8qW2v027168
	for <psarc-ext@sac.sfbay.sun.com>; Sun, 28 Jun 2009 01:52:32 -0700 (PDT)
Received: from nwk-avmta-2.sfbay.sun.com (nwk-avmta-2.SFBay.Sun.COM [129.145.155.6])
	by sunmail5.uk.sun.com (8.13.8+Sun/8.13.8/ENSMAIL,v2.2) with ESMTP id n5S8qT3U009645;
	Sun, 28 Jun 2009 09:52:31 +0100 (BST)
Received: from pmxchannel-daemon.nwk-avmta-2.sfbay.sun.com by
 nwk-avmta-2.sfbay.sun.com
 (Sun Java System Messaging Server 6.2-3.04 (built Jul 15 2005))
 id <0KLX00E1BXZHQA00@nwk-avmta-2.sfbay.sun.com>; Sun,
 28 Jun 2009 01:52:29 -0700 (PDT)
Received: from sineb-mail-2.sun.com ([192.18.19.7])
 by nwk-avmta-2.sfbay.sun.com
 (Sun Java System Messaging Server 6.2-3.04 (built Jul 15 2005))
 with ESMTP id <0KLX00BBKXZ3Y230@nwk-avmta-2.sfbay.sun.com>; Sun,
 28 Jun 2009 01:52:16 -0700 (PDT)
Received: from fe-apac-06.sun.com
 (fe-apac-06.sun.com [192.18.19.177] (may be forged))
	by sineb-mail-2.sun.com (8.13.6+Sun/8.12.9) with ESMTP id n5S8qFLV015583; Sun,
 28 Jun 2009 08:52:15 +0000 (GMT)
Received: from conversion-daemon.mail-apac.sun.com by mail-apac.sun.com
 (Sun Java(tm) System Messaging Server 7u2-7.02 64bit (built Apr 16 2009))
 id <0KLX00600XTOR300@mail-apac.sun.com>; Sun, 28 Jun 2009 16:52:15 +0800 (SGT)
Received: from [192.168.1.101] ([unknown] [123.118.29.27])
 by mail-apac.sun.com (Sun Java(tm) System Messaging Server 7u2-7.02 64bit
 (built Apr 16 2009)) with ESMTPSA id <0KLX00ICOXZ1PC40@mail-apac.sun.com>; Sun,
 28 Jun 2009 16:52:15 +0800 (SGT)
Date: Sun, 28 Jun 2009 16:52:14 +0800
From: Colin Zou <Colin.Zou@sun.com>
Subject: Investigation results for issues of PSARC 2008/181 Solaris Hotplug
 Framework
Sender: Colin.Zou@sun.com
To: PSARC-ext@sun.com
Cc: "Garrett D'Amore" <Garrett.Damore@sun.com>, Phi Tran <Phi.Tran@sun.com>,
        ddi-hp-iteam@sun.com, Craig.Payne@sun.com,
        Gary Winiger <gww@eng.sun.com>
Message-id: <4A472F3E.9050606@sun.com>
MIME-version: 1.0
Content-type: text/plain; charset=GB2312
Content-transfer-encoding: 7BIT
X-PMX-Version: 5.4.1.325704
User-Agent: Thunderbird 2.0.0.22 (Windows/20090605)
Status: RO
Content-Length: 4319

Folks,

Please review the following investigation results. Any comments are
welcomed.

gw-1 How does this play with devkit, device allocation, SunRay?

All the above are investigated. They are out of scope of this project and
there are no conflicts. Details see following:
- devkit:
It is being ported to Solaris and is similar as HAL regarding as
functionality and interface dependencies. It is a userland utility which is
going to depend on libdevinfo and libsysevent. It gets device information
from libdevinfo and listens to sysevents for device add/remove events. This
project does not break the existing interfaces which devkit will depend on.
I've talked to the devkit team and confirmed this.

- device allocation:
It "manages the ownership of devices". It depends on devfs interfaces. This
project implements hotplug controller drivers and framework which are in
the kernel device driver level which is under devfs. So it does not impacts
device allocation. The userland administer tool introduced by this project
is used to issue commands to kernel drivers to hot add/remove devices
to/from the "system". It is not related with user ownerships. And the tool
will conform to RBAC, so only a user with proper authorizations can issue
commands to hotplug devices to/from the system. This prevents the tool from
conflicting/breaking device allocation.

- SunRay: Sun Ray client is not related. Sun Ray server is a userland
application which can run on Solaris and Linux. It manages remote devices
on Sun Ray clients including hotplug operations. However, Sun Ray server is
an independent userland application which does not interact with Solaris
hotplug framework or device drivers. For example, if a usb keyboard is
plugged to a Sun Ray client, the Sun Ray server gets the event from network
and starts a userland process to deal with the hotplug event. And then a
Sun Ray specific userland usb device driver works for the device. Sun Ray
support is out of scope of this Solaris project.

gw-2 This project seems to require administrative audit, yet there
is no mention. See the 20 Questions (and Solaris Audit Policy).

In scope. The project team will address it in commitment documents.

gw-3 What is the method context for the service?
Are there any properties? Is this enabled by the profile?
Is there any reason to ever disable it manually?

In scope. The project team will address it in commitment documents.

gw-4 Root is not a privilege (nor is uid 0 special) why isn't
this authorization driven? Just how are you doing access
control? Access control decisions also require audit.

The project team will turn to RBAC in commitment documents.

gw-5 I'm dubious about the Patch binding. Verify with the Solaris
Evaluations and Trusted Extensions project teams that this is
appropriate for a Patch. The manager is Craig Payne.

Hotpug project team sent emails to Craig for this issue but did not get
any responses.
The following are the investigation results from hotplug project team on
this issue:
There are mainly two parts of this project, one is to implement hotplug
controller drivers and framework in the kernel device driver level;
another is the userland administer tool to issue commands to the kernel
drivers to initiate the operation of hot add/remove device to/from the
system. All these jobs are not directly related with "Solaris Evaluations
and Trusted Extensions project". Our userland administer tool will
conform to RBAC, so that only users with proper authorizations can
perform the device hotplug operations for a system. Given these, we
didn't see any risks that our project would break "Solaris Evaluations
and Trusted Extensions project". And, for a reference of the existing
stuff, cfgadm(1M) is the existing framework which does the similar
functionality. It co-exists with TX for many years.

gw-6 What would be the meaning of "remote clients". INET sockets
should be avoided as they add an attack vector. I'm still
dubious about doors being complex.

The project team will turn to door in commitment documents.

gw-7 What is the compelling reason that RBAC must be postponed?
How is the project complete without meeting the Solaris
Policies? Is a PAC waver going to be requested?

RBAC will be supported. The project team will address it in commitment
documents.

Thanks,
Colin


From Phi.Tran@sun.com Wed Jul 15 15:35:29 2009
Received: from sunmail4.singapore.sun.com (sunmail4.Singapore.Sun.COM [129.158.71.19])
	by sac.sfbay.sun.com (8.13.8+Sun/8.13.8) with ESMTP id n6FMZSqr011422
	for <psarc-ext@sac.sfbay.sun.com>; Wed, 15 Jul 2009 15:35:29 -0700 (PDT)
Received: from brm-avmta-1.central.sun.com (brm-avmta-1.Central.Sun.COM [129.147.4.11])
	by sunmail4.singapore.sun.com (8.13.4+Sun/8.13.3/ENSMAIL,v2.2) with ESMTP id n6FMZMVj021782
	for <@sunmail2sca.sfbay.sun.com:PSARC-ext@sun.com>; Thu, 16 Jul 2009 06:35:27 +0800 (SGT)
Received: from pmxchannel-daemon.brm-avmta-1.central.sun.com by
 brm-avmta-1.central.sun.com
 (Sun Java System Messaging Server 6.2-3.04 (built Jul 15 2005))
 id <0KMU0001ZHF2QA00@brm-avmta-1.central.sun.com> for PSARC-ext@sun.com
 (ORCPT PSARC-ext@sun.com); Wed, 15 Jul 2009 16:35:26 -0600 (MDT)
Received: from sca-es-mail-2.sun.com ([192.18.43.133])
 by brm-avmta-1.central.sun.com
 (Sun Java System Messaging Server 6.2-3.04 (built Jul 15 2005))
 with ESMTP id <0KMU0099JHF1Q770@brm-avmta-1.central.sun.com> for
 PSARC-ext@sun.com (ORCPT PSARC-ext@sun.com); Wed,
 15 Jul 2009 16:35:25 -0600 (MDT)
Received: from fe-sfbay-09.sun.com ([192.18.43.129])
	by sca-es-mail-2.sun.com (8.13.7+Sun/8.12.9) with ESMTP id n6FMZOMD020624	for
 <PSARC-ext@sun.com>; Wed, 15 Jul 2009 15:35:24 -0700 (PDT)
Received: from conversion-daemon.fe-sfbay-09.sun.com by fe-sfbay-09.sun.com
 (Sun Java(tm) System Messaging Server 7u2-7.02 64bit (built Apr 16 2009))
 id <0KMU00B00HBFQZ00@fe-sfbay-09.sun.com> for PSARC-ext@sun.com
 (ORCPT PSARC-ext@sun.com); Wed, 15 Jul 2009 15:35:24 -0700 (PDT)
Received: from [129.153.2.14] ([unknown] [129.153.2.14])
 by fe-sfbay-09.sun.com (Sun Java(tm) System Messaging Server 7u2-7.02 64bit
 (built Apr 16 2009)) with ESMTPSA id <0KMU007MPHF0Z830@fe-sfbay-09.sun.com> for
 PSARC-ext@sun.com (ORCPT PSARC-ext@sun.com); Wed,
 15 Jul 2009 15:35:24 -0700 (PDT)
Date: Wed, 15 Jul 2009 15:35:24 -0700
From: Phi Tran <Phi.Tran@sun.com>
Subject: Commitment materials for PSARC/2008/181 Solaris Hotplug Framework
Sender: Phi.Tran@sun.com
To: PSARC-ext@sun.com
Message-id: <4A5E59AC.7090209@Sun.COM>
MIME-version: 1.0
Content-type: text/plain; CHARSET=US-ASCII; format=flowed
Content-transfer-encoding: 7BIT
X-PMX-Version: 5.4.1.325704
User-Agent: Thunderbird 2.0.0.19 (X11/20090110)
Status: RO
Content-Length: 1220

I've put the case materials for commitment review in the 
commitment.materials directory.  The review is scheduled for next week 
on 7/22.

sac> ls -l commitment.materials/
total 2477
-r--r--r--   1 phitran  sac        11771 Jul 15 15:13 hotplug.1m.txt
-r--r--r--   1 phitran  sac        12782 Jul 15 15:13 
hotplug.1m.txt.changebar
-r--r--r--   1 phitran  sac         3472 Jul 15 15:13 hotplugd.1m.txt
-r--r--r--   1 phitran  sac        23097 Jul 15 15:13 libhotplug.3lib.txt
-r--r--r--   1 phitran  sac        23403 Jul 15 15:13 
libhotplug.3lib.txt.changebar
-r--r--r--   1 phitran  sac        17222 Jul 15 15:13 shp-1pgr.txt
-r--r--r--   1 phitran  sac       243009 Jul 15 15:13 shp-overview.odt
-r--r--r--   1 phitran  sac       184504 Jul 15 15:13 shp-overview.pdf
-r--r--r--   1 phitran  sac        11906 Jul 15 15:13 shp-proj-20q.txt
-r--r--r--   1 phitran  sac        12563 Jul 15 15:13 
shp-proj-20q.txt.changebar-r--r--r--   1 phitran  sac       170610 Jul 
15 15:13 shp-slides.odp
-r--r--r--   1 phitran  sac       211535 Jul 15 15:13 shp-slides.pdf
-r--r--r--   1 phitran  sac        40742 Jul 15 15:13 shp-userland.txt
-r--r--r--   1 phitran  sac        40910 Jul 15 15:13 
shp-userland.txt.changebar

Phi

From sacadmin Wed Jul 22 14:13:34 2009
Received: from marduk.eng.sun.com (marduk.SFBay.Sun.COM [129.146.108.224])
	by sac.sfbay.sun.com (8.13.8+Sun/8.13.8) with ESMTP id n6MLDYUV021652
	for <psarc-record@sac.eng.sun.com>; Wed, 22 Jul 2009 14:13:34 -0700 (PDT)
Received: from marduk.eng.sun.com (localhost [127.0.0.1])
	by marduk.eng.sun.com (8.13.6+Sun/8.12.11) with ESMTP id n6MLCKDo006670;
	Wed, 22 Jul 2009 14:12:20 -0700 (PDT)
Received: (from gww@localhost)
	by marduk.eng.sun.com (8.13.6+Sun/8.12.11/Submit) id n6MLCKcq006669;
	Wed, 22 Jul 2009 14:12:20 -0700 (PDT)
Date: Wed, 22 Jul 2009 14:12:20 -0700 (PDT)
From: Gary Winiger <gww@eng.sun.com>
Message-Id: <200907222112.n6MLCKcq006669@marduk.eng.sun.com>
To: scott.carter@sun.com
Subject: PSARC/2008/181 authorization and audit
Cc: psarc-record@sac.sfbay.sun.com, garrett.damore@sun.com, phi.tran@sun.com
X-Sun-Charset: US-ASCII
Status: RO
Content-Length: 942

Scott,

	Cutting to the chase of the authorization and audit issues from today,
I'd recommend:

	1 remove solaris.hotplug.read -- it seems unnecessary to protect
	  this information from all users.
	2 remove the authorization checks from hotplug(1m) and libhotplug(3lib).
	  only do authorization checks in hotplugd.
	3 make all necessary authorization checks in hotplugd.
	  for each check there's likely to be a separate audit event
	  needed.  Only you can define what the events are and what data
	  needs to be associated with them.

	You might want to look at the stuff in ~gww/Audit/Book/ before we
talk.  We will need to schedule some time.  I'm away from Tue next week
on family business.  Depending on how aggressive the schedule needs to be
it's probably best to try to get something in 3-7 Aug.  I'm in all that
week.  I'm away the next week on holiday, after 17 Aug, I don't have any
other specific time away planned.

Gary..

	

From gdamore@sun.com Wed Aug 12 16:29:33 2009
Received: from newsunmail1brm.central.sun.com (newsunmail1brm.Central.Sun.COM [129.147.62.245])
	by sac.sfbay.sun.com (8.13.8+Sun/8.13.8) with ESMTP id n7CNTXYI028437
	for <psarc-ext@sac.sfbay.sun.com>; Wed, 12 Aug 2009 16:29:33 -0700 (PDT)
Received: from brm-avmta-1.central.sun.com (brm-avmta-1.Central.Sun.COM [129.147.4.11])
	by newsunmail1brm.central.sun.com (8.13.7+Sun/8.13.7/ENSMAIL,v2.2) with ESMTP id n7CNTWQg009930
	for <@sunmail2sca.sfbay.sun.com:PSARC-ext@sun.com>; Wed, 12 Aug 2009 17:29:32 -0600 (MDT)
Received: from pmxchannel-daemon.brm-avmta-1.central.sun.com by
 brm-avmta-1.central.sun.com
 (Sun Java System Messaging Server 6.2-3.04 (built Jul 15 2005))
 id <0KOA00M0JEL6BJ00@brm-avmta-1.central.sun.com> for PSARC-ext@sun.com
 (ORCPT PSARC-ext@sun.com); Wed, 12 Aug 2009 17:29:30 -0600 (MDT)
Received: from sca-es-mail-2.sun.com ([192.18.43.133])
 by brm-avmta-1.central.sun.com
 (Sun Java System Messaging Server 6.2-3.04 (built Jul 15 2005))
 with ESMTP id <0KOA00KKPEL63KB0@brm-avmta-1.central.sun.com> for
 PSARC-ext@sun.com (ORCPT PSARC-ext@sun.com); Wed,
 12 Aug 2009 17:29:30 -0600 (MDT)
Received: from fe-sfbay-09.sun.com ([192.18.43.129])
	by sca-es-mail-2.sun.com (8.13.7+Sun/8.12.9) with ESMTP id n7CNTUYZ029032	for
 <PSARC-ext@sun.com>; Wed, 12 Aug 2009 16:29:30 -0700 (PDT)
Received: from conversion-daemon.fe-sfbay-09.sun.com by fe-sfbay-09.sun.com
 (Sun Java(tm) System Messaging Server 7u2-7.04 64bit (built Jul  2 2009))
 id <0KOA00L00E8VY900@fe-sfbay-09.sun.com> for PSARC-ext@sun.com
 (ORCPT PSARC-ext@sun.com); Wed, 12 Aug 2009 16:29:30 -0700 (PDT)
Received: from [192.168.251.11] ([unknown] [76.93.15.33])
 by fe-sfbay-09.sun.com
 (Sun Java(tm) System Messaging Server 7u2-7.04 64bit (built Jul  2 2009))
 with ESMTPSA id <0KOA002D5EL4Z400@fe-sfbay-09.sun.com> for PSARC-ext@sun.com
 (ORCPT PSARC-ext@sun.com); Wed, 12 Aug 2009 16:29:29 -0700 (PDT)
Date: Wed, 12 Aug 2009 16:29:28 -0700
From: "Garrett D'Amore" <gdamore@sun.com>
Subject: PSARC 2008/181 Solaris Hotplug Framework
Sender: Garrett.Damore@sun.com
To: PSARC-ext <PSARC-ext@sun.com>
Message-id: <4A835058.1060906@sun.com>
MIME-version: 1.0
Content-type: text/plain; CHARSET=US-ASCII; format=flowed
Content-transfer-encoding: 7BIT
X-PMX-Version: 5.4.1.325704
User-Agent: Thunderbird 2.0.0.18 (X11/20081201)
Status: RO
Content-Length: 294

FYI, I've updated the case directory with updated materials 
(commitment2.materials) and I've also updated the issues
file with responses from the project team.

The project team would like a commitment review next Wednesday; I've 
asked the coordinator to schedule such a slot.

    - Garrett

From Phi.Tran@sun.com Mon Aug 17 16:49:19 2009
Received: from sunmail4.singapore.sun.com (sunmail4.Singapore.Sun.COM [129.158.71.19])
	by sac.sfbay.sun.com (8.13.8+Sun/8.13.8) with ESMTP id n7HNnIm1015346
	for <psarc-ext@sac.sfbay.sun.com>; Mon, 17 Aug 2009 16:49:19 -0700 (PDT)
Received: from brm-avmta-1.central.sun.com (brm-avmta-1.Central.Sun.COM [129.147.4.11])
	by sunmail4.singapore.sun.com (8.13.4+Sun/8.13.3/ENSMAIL,v2.2) with ESMTP id n7HNn9YV008480
	for <@sunmail2sca.sfbay.sun.com:PSARC-ext@sun.com>; Tue, 18 Aug 2009 07:49:17 +0800 (SGT)
Received: from pmxchannel-daemon.brm-avmta-1.central.sun.com by
 brm-avmta-1.central.sun.com
 (Sun Java System Messaging Server 6.2-3.04 (built Jul 15 2005))
 id <0KOJ00D03OU32000@brm-avmta-1.central.sun.com> for PSARC-ext@sun.com
 (ORCPT PSARC-ext@sun.com); Mon, 17 Aug 2009 17:49:15 -0600 (MDT)
Received: from sca-es-mail-2.sun.com ([192.18.43.133])
 by brm-avmta-1.central.sun.com
 (Sun Java System Messaging Server 6.2-3.04 (built Jul 15 2005))
 with ESMTP id <0KOJ00A2ROU2QS10@brm-avmta-1.central.sun.com> for
 PSARC-ext@sun.com (ORCPT PSARC-ext@sun.com); Mon,
 17 Aug 2009 17:49:14 -0600 (MDT)
Received: from fe-sfbay-10.sun.com ([192.18.43.129])
	by sca-es-mail-2.sun.com (8.13.7+Sun/8.12.9) with ESMTP id n7HNnElE009648	for
 <PSARC-ext@sun.com>; Mon, 17 Aug 2009 16:49:14 -0700 (PDT)
Received: from conversion-daemon.fe-sfbay-10.sun.com by fe-sfbay-10.sun.com
 (Sun Java(tm) System Messaging Server 7u2-7.02 64bit (built Apr 16 2009))
 id <0KOJ00F00OLU6600@fe-sfbay-10.sun.com> for PSARC-ext@sun.com
 (ORCPT PSARC-ext@sun.com); Mon, 17 Aug 2009 16:49:14 -0700 (PDT)
Received: from [129.153.2.14] ([unknown] [129.153.2.14])
 by fe-sfbay-10.sun.com (Sun Java(tm) System Messaging Server 7u2-7.02 64bit
 (built Apr 16 2009)) with ESMTPSA id <0KOJ00BIAOU10G10@fe-sfbay-10.sun.com> for
 PSARC-ext@sun.com (ORCPT PSARC-ext@sun.com); Mon,
 17 Aug 2009 16:49:14 -0700 (PDT)
Date: Mon, 17 Aug 2009 16:49:13 -0700
From: Phi Tran <Phi.Tran@sun.com>
Subject: PSARC 2008/181 Solaris Hotplug Framework
Sender: Phi.Tran@sun.com
To: PSARC-ext@sun.com
Message-id: <4A89EC79.8060503@Sun.COM>
MIME-version: 1.0
Content-type: text/plain; CHARSET=US-ASCII; format=flowed
Content-transfer-encoding: 7BIT
X-PMX-Version: 5.4.1.325704
User-Agent: Thunderbird 2.0.0.19 (X11/20090110)
Status: RO
Content-Length: 616

I've updated the case directory in the commitment3.materials directory 
with updated materials.  The following have minor changes:

     o hotplug.1m.txt
       - Minor clarification to 'enable' subcommand.
       - Clarified output of the 'list' subcommand.
       - Added documentation about bus private options.

     o libhotplug.3lib.txt
     o libhotplug.3lib.txt.changebar
       - Minor change to hp_set_private() function params.
       - Clarified errno values returned on failure.

     o shp-proj-20q.txt
     o shp-proj-20q.txt.changebar
       - Minor change to delivery table for kernel headers.

Phi

From Phi.Tran@sun.com Mon Aug 17 19:55:36 2009
Received: from sunmail5.uk.sun.com (sunmail5.UK.Sun.COM [129.156.85.165])
	by sac.sfbay.sun.com (8.13.8+Sun/8.13.8) with ESMTP id n7I2tZD2018215
	for <psarc-ext@sac.sfbay.sun.com>; Mon, 17 Aug 2009 19:55:36 -0700 (PDT)
Received: from nwk-avmta-1.SFBay.Sun.COM (nwk-avmta-1.SFBay.Sun.COM [129.146.11.74])
	by sunmail5.uk.sun.com (8.13.8+Sun/8.13.8/ENSMAIL,v2.2) with ESMTP id n7I2tS86019370
	for <@sunmail2sca.sfbay.sun.com:PSARC-ext@sun.com>; Tue, 18 Aug 2009 03:55:35 +0100 (BST)
Received: from pmxchannel-daemon.nwk-avmta-1.sfbay.Sun.COM by
 nwk-avmta-1.sfbay.Sun.COM
 (Sun Java System Messaging Server 6.2-3.04 (built Jul 15 2005))
 id <0KOJ00103XGN0W00@nwk-avmta-1.sfbay.Sun.COM> for PSARC-ext@sun.com
 (ORCPT PSARC-ext@sun.com); Mon, 17 Aug 2009 19:55:35 -0700 (PDT)
Received: from sca-es-mail-1.sun.com ([192.18.43.132])
 by nwk-avmta-1.sfbay.Sun.COM
 (Sun Java System Messaging Server 6.2-3.04 (built Jul 15 2005))
 with ESMTP id <0KOJ00MRFXGN7RC0@nwk-avmta-1.sfbay.Sun.COM> for
 PSARC-ext@sun.com (ORCPT PSARC-ext@sun.com); Mon,
 17 Aug 2009 19:55:35 -0700 (PDT)
Received: from fe-sfbay-09.sun.com ([192.18.43.129])
	by sca-es-mail-1.sun.com (8.13.7+Sun/8.12.9) with ESMTP id n7I2tY1D004158	for
 <PSARC-ext@sun.com>; Mon, 17 Aug 2009 19:55:34 -0700 (PDT)
Received: from conversion-daemon.fe-sfbay-09.sun.com by fe-sfbay-09.sun.com
 (Sun Java(tm) System Messaging Server 7u2-7.04 64bit (built Jul  2 2009))
 id <0KOJ00F00X4LZO00@fe-sfbay-09.sun.com> for PSARC-ext@sun.com
 (ORCPT PSARC-ext@sun.com); Mon, 17 Aug 2009 19:55:34 -0700 (PDT)
Received: from [129.153.2.14] ([unknown] [129.153.2.14])
 by fe-sfbay-09.sun.com (Sun Java(tm) System Messaging Server 7u2-7.04 64bit
 (built Jul  2 2009)) with ESMTPSA id <0KOJ00HGKXGMIE50@fe-sfbay-09.sun.com> for
 PSARC-ext@sun.com (ORCPT PSARC-ext@sun.com); Mon,
 17 Aug 2009 19:55:34 -0700 (PDT)
Date: Mon, 17 Aug 2009 19:55:34 -0700
From: Phi Tran <Phi.Tran@sun.com>
Subject: Re: PSARC 2008/181 Solaris Hotplug Framework
In-reply-to: <4A89EC79.8060503@Sun.COM>
Sender: Phi.Tran@sun.com
To: Phi Tran <Phi.Tran@sun.com>
Cc: PSARC-ext@sun.com
Message-id: <4A8A1826.9080001@Sun.COM>
MIME-version: 1.0
Content-type: text/plain; CHARSET=US-ASCII; format=flowed
Content-transfer-encoding: 7BIT
X-PMX-Version: 5.4.1.325704
References: <4A89EC79.8060503@Sun.COM>
User-Agent: Thunderbird 2.0.0.19 (X11/20090110)
Status: RO
Content-Length: 950

On 08/17/09 16:49, Phi Tran wrote:
> I've updated the case directory in the commitment3.materials directory 

I was asked to remove the commitment3.materials directory and use the 
commitment2.materials directory so the updates are in commitment2.materials.

Phi

> with updated materials.  The following have minor changes:
> 
>     o hotplug.1m.txt
>       - Minor clarification to 'enable' subcommand.
>       - Clarified output of the 'list' subcommand.
>       - Added documentation about bus private options.
> 
>     o libhotplug.3lib.txt
>     o libhotplug.3lib.txt.changebar
>       - Minor change to hp_set_private() function params.
>       - Clarified errno values returned on failure.
> 
>     o shp-proj-20q.txt
>     o shp-proj-20q.txt.changebar
>       - Minor change to delivery table for kernel headers.
> 
> Phi
> _______________________________________________
> opensolaris-arc mailing list
> opensolaris-arc@opensolaris.org
> 


From gww@eng.sun.com Tue Aug 18 10:30:19 2009
Received: from sunmail4.singapore.sun.com (sunmail4.Singapore.Sun.COM [129.158.71.19])
	by sac.sfbay.sun.com (8.13.8+Sun/8.13.8) with ESMTP id n7IHUIAw028129
	for <psarc-ext@sac.sfbay.sun.com>; Tue, 18 Aug 2009 10:30:19 -0700 (PDT)
Received: from brm-avmta-1.central.sun.com (brm-avmta-1.Central.Sun.COM [129.147.4.11])
	by sunmail4.singapore.sun.com (8.13.4+Sun/8.13.3/ENSMAIL,v2.2) with ESMTP id n7IHUHnv029920
	for <@sunmail2sca.sfbay.sun.com:PSARC-ext@sun.com>; Wed, 19 Aug 2009 01:30:17 +0800 (SGT)
Received: from pmxchannel-daemon.brm-avmta-1.central.sun.com by
 brm-avmta-1.central.sun.com
 (Sun Java System Messaging Server 6.2-3.04 (built Jul 15 2005))
 id <0KOL00A051YHG700@brm-avmta-1.central.sun.com> for PSARC-ext@sun.com
 (ORCPT PSARC-ext@sun.com); Tue, 18 Aug 2009 11:30:17 -0600 (MDT)
Received: from dm-eng-02.sfbay.sun.com ([129.146.11.32])
 by brm-avmta-1.central.sun.com
 (Sun Java System Messaging Server 6.2-3.04 (built Jul 15 2005))
 with ESMTP id <0KOL00A8A1YG4300@brm-avmta-1.central.sun.com> for
 PSARC-ext@sun.com (ORCPT PSARC-ext@sun.com); Tue,
 18 Aug 2009 11:30:16 -0600 (MDT)
Received: from marduk.eng.sun.com (marduk.SFBay.Sun.COM [129.146.108.224])
	by dm-eng-02.sfbay.sun.com (8.13.8+Sun/8.13.8/ENSMAIL,v2.2)
 with ESMTP id n7IHUGEK063866; Tue, 18 Aug 2009 10:30:16 -0700 (PDT)
Received: from marduk.eng.sun.com (localhost [127.0.0.1])
	by marduk.eng.sun.com (8.13.6+Sun/8.12.11) with ESMTP id n7IHSPnW029008; Tue,
 18 Aug 2009 10:28:25 -0700 (PDT)
Received: (from gww@localhost)
	by marduk.eng.sun.com (8.13.6+Sun/8.12.11/Submit) id n7IHSPow029007; Tue,
 18 Aug 2009 10:28:25 -0700 (PDT)
Date: Tue, 18 Aug 2009 10:28:25 -0700 (PDT)
From: Gary Winiger <gww@eng.sun.com>
Subject: Re: PSARC 2008/181 Solaris Hotplug Framework
To: PSARC-ext@sun.com, Phi.Tran@sun.com
Message-id: <200908181728.n7IHSPow029007@marduk.eng.sun.com>
Content-transfer-encoding: 7BIT
X-Sun-Charset: US-ASCII
X-PMX-Version: 5.4.1.325704
Status: RO
Content-Length: 562

> I've updated the case directory in the commitment3.materials directory 
> with updated materials.

	No such file or directory.

/net/sac.sfbay/export/sac/Archives/CaseLog/arc/PSARC/2008/181
marduk.eng-gww[200]: l
20080306_govinda.tatti@            commitment2.materials/
20090617.2008.181.inception@       inception.materials/
20090617.2008.181.inception.mp3@   issues
20090722.2008.181.commitment@      issues.broken
20090722.2008.181.commitment.mp3@  mail
IAM.Solaris_Hotplug_Framework      sc/
SCCS/                              uirb/
commitment.materials/

From gdamore@sun.com Tue Aug 18 10:38:59 2009
Received: from newsunmail1brm.central.sun.com (newsunmail1brm.Central.Sun.COM [129.147.62.245])
	by sac.sfbay.sun.com (8.13.8+Sun/8.13.8) with ESMTP id n7IHcwhK028323
	for <psarc-ext@sac.sfbay.sun.com>; Tue, 18 Aug 2009 10:38:59 -0700 (PDT)
Received: from nwk-avmta-2.sfbay.sun.com (nwk-avmta-2.SFBay.Sun.COM [129.145.155.6])
	by newsunmail1brm.central.sun.com (8.13.7+Sun/8.13.7/ENSMAIL,v2.2) with ESMTP id n7IHcsJw062553
	for <@sunmail2sca.sfbay.sun.com:PSARC-ext@sun.com>; Tue, 18 Aug 2009 11:38:58 -0600 (MDT)
Received: from pmxchannel-daemon.nwk-avmta-2.sfbay.sun.com by
 nwk-avmta-2.sfbay.sun.com
 (Sun Java System Messaging Server 6.2-3.04 (built Jul 15 2005))
 id <0KOL00E0P2CY0D00@nwk-avmta-2.sfbay.sun.com> for PSARC-ext@sun.com
 (ORCPT PSARC-ext@sun.com); Tue, 18 Aug 2009 10:38:58 -0700 (PDT)
Received: from sca-es-mail-1.sun.com ([192.18.43.132])
 by nwk-avmta-2.sfbay.sun.com
 (Sun Java System Messaging Server 6.2-3.04 (built Jul 15 2005))
 with ESMTP id <0KOL00DCX2CXT300@nwk-avmta-2.sfbay.sun.com> for
 PSARC-ext@sun.com (ORCPT PSARC-ext@sun.com); Tue,
 18 Aug 2009 10:38:57 -0700 (PDT)
Received: from fe-sfbay-09.sun.com ([192.18.43.129])
	by sca-es-mail-1.sun.com (8.13.7+Sun/8.12.9) with ESMTP id n7IHcvMw021539	for
 <PSARC-ext@sun.com>; Tue, 18 Aug 2009 10:38:57 -0700 (PDT)
Received: from conversion-daemon.fe-sfbay-09.sun.com by fe-sfbay-09.sun.com
 (Sun Java(tm) System Messaging Server 7u2-7.04 64bit (built Jul  2 2009))
 id <0KOL00D00249C300@fe-sfbay-09.sun.com> for PSARC-ext@sun.com
 (ORCPT PSARC-ext@sun.com); Tue, 18 Aug 2009 10:38:57 -0700 (PDT)
Received: from [192.168.251.11] ([unknown] [76.93.15.33])
 by fe-sfbay-09.sun.com
 (Sun Java(tm) System Messaging Server 7u2-7.04 64bit (built Jul  2 2009))
 with ESMTPSA id <0KOL00A1O2CXUGA0@fe-sfbay-09.sun.com>; Tue,
 18 Aug 2009 10:38:57 -0700 (PDT)
Date: Tue, 18 Aug 2009 10:38:56 -0700
From: "Garrett D'Amore" <gdamore@sun.com>
Subject: Re: PSARC 2008/181 Solaris Hotplug Framework
In-reply-to: <200908181728.n7IHSPow029007@marduk.eng.sun.com>
Sender: Garrett.Damore@sun.com
To: Gary Winiger <gww@eng.sun.com>
Cc: PSARC-ext@sun.com, Phi.Tran@sun.com
Message-id: <4A8AE730.6060308@sun.com>
MIME-version: 1.0
Content-type: text/plain; CHARSET=US-ASCII; format=flowed
Content-transfer-encoding: 7BIT
X-PMX-Version: 5.4.1.325704
References: <200908181728.n7IHSPow029007@marduk.eng.sun.com>
User-Agent: Thunderbird 2.0.0.18 (X11/20081201)
Status: RO
Content-Length: 816

Gary Winiger wrote:
>> I've updated the case directory in the commitment3.materials directory 
>> with updated materials.
>>     
>
> 	No such file or directory.
>   

It moved to commitment2.materials.  (Since we're not planning on having 
a third commitment review, it didn't seem appropriate to have a 
commitment3.materials directory. :-)

    - Garrett
> /net/sac.sfbay/export/sac/Archives/CaseLog/arc/PSARC/2008/181
> marduk.eng-gww[200]: l
> 20080306_govinda.tatti@            commitment2.materials/
> 20090617.2008.181.inception@       inception.materials/
> 20090617.2008.181.inception.mp3@   issues
> 20090722.2008.181.commitment@      issues.broken
> 20090722.2008.181.commitment.mp3@  mail
> IAM.Solaris_Hotplug_Framework      sc/
> SCCS/                              uirb/
> commitment.materials/
>   


From Phi.Tran@sun.com Wed Aug 19 11:03:41 2009
Received: from newsunmail1brm.central.sun.com (newsunmail1brm.Central.Sun.COM [129.147.62.245])
	by sac.sfbay.sun.com (8.13.8+Sun/8.13.8) with ESMTP id n7JI3fV3013679
	for <psarc-ext@sac.sfbay.sun.com>; Wed, 19 Aug 2009 11:03:41 -0700 (PDT)
Received: from brm-avmta-1.central.sun.com (brm-avmta-1.Central.Sun.COM [129.147.4.11])
	by newsunmail1brm.central.sun.com (8.13.7+Sun/8.13.7/ENSMAIL,v2.2) with ESMTP id n7JI3evO037179
	for <@sunmail2sca.sfbay.sun.com:PSARC-ext@sun.com>; Wed, 19 Aug 2009 12:03:41 -0600 (MDT)
Received: from pmxchannel-daemon.brm-avmta-1.central.sun.com by
 brm-avmta-1.central.sun.com
 (Sun Java System Messaging Server 6.2-3.04 (built Jul 15 2005))
 id <0KOM00401Y63HU00@brm-avmta-1.central.sun.com> for PSARC-ext@sun.com
 (ORCPT PSARC-ext@sun.com); Wed, 19 Aug 2009 12:03:39 -0600 (MDT)
Received: from sca-es-mail-2.sun.com ([192.18.43.133])
 by brm-avmta-1.central.sun.com
 (Sun Java System Messaging Server 6.2-3.04 (built Jul 15 2005))
 with ESMTP id <0KOM007CTY62TUE0@brm-avmta-1.central.sun.com> for
 PSARC-ext@sun.com (ORCPT PSARC-ext@sun.com); Wed,
 19 Aug 2009 12:03:38 -0600 (MDT)
Received: from fe-sfbay-10.sun.com ([192.18.43.129])
	by sca-es-mail-2.sun.com (8.13.7+Sun/8.12.9) with ESMTP id n7JI3cc3001013	for
 <PSARC-ext@sun.com>; Wed, 19 Aug 2009 11:03:38 -0700 (PDT)
Received: from conversion-daemon.fe-sfbay-10.sun.com by fe-sfbay-10.sun.com
 (Sun Java(tm) System Messaging Server 7u2-7.04 64bit (built Jul  2 2009))
 id <0KOM00J00XUVLX00@fe-sfbay-10.sun.com> for PSARC-ext@sun.com
 (ORCPT PSARC-ext@sun.com); Wed, 19 Aug 2009 11:03:38 -0700 (PDT)
Received: from [129.153.2.14] ([unknown] [129.153.2.14])
 by fe-sfbay-10.sun.com (Sun Java(tm) System Messaging Server 7u2-7.04 64bit
 (built Jul  2 2009)) with ESMTPSA id <0KOM007K0Y61M7D0@fe-sfbay-10.sun.com> for
 PSARC-ext@sun.com (ORCPT PSARC-ext@sun.com); Wed,
 19 Aug 2009 11:03:38 -0700 (PDT)
Date: Wed, 19 Aug 2009 11:03:37 -0700
From: Phi Tran <Phi.Tran@sun.com>
Subject: Case Approved: PSARC 2008/181 Solaris Hotplug Framework
Sender: Phi.Tran@sun.com
To: psarc-ext@sun.com
Message-id: <4A8C3E79.5000806@Sun.COM>
MIME-version: 1.0
Content-type: text/plain; CHARSET=US-ASCII; format=flowed
Content-transfer-encoding: 7BIT
X-PMX-Version: 5.4.1.325704
User-Agent: Thunderbird 2.0.0.19 (X11/20090110)
Status: RO
Content-Length: 166

This case was approved at today's PSARC meeting with a note to update a 
few of the interfaces to the appropriate stability level and other minor 
spec updates.

Phi

From Scott.Carter@sun.com Mon Aug 31 15:14:22 2009
Received: from newsunmail1brm.central.sun.com (newsunmail1brm.Central.Sun.COM [129.147.62.245])
	by sac.sfbay.sun.com (8.13.8+Sun/8.13.8) with ESMTP id n7VMEM9p006995
	for <psarc-ext@sac.sfbay.sun.com>; Mon, 31 Aug 2009 15:14:22 -0700 (PDT)
Received: from brm-avmta-1.central.sun.com (brm-avmta-1.Central.Sun.COM [129.147.4.11])
	by newsunmail1brm.central.sun.com (8.13.7+Sun/8.13.7/ENSMAIL,v2.2) with ESMTP id n7VME6mk013110
	for <@sunmail2sca.sfbay.sun.com:psarc-ext@sun.com>; Mon, 31 Aug 2009 16:14:21 -0600 (MDT)
Received: from pmxchannel-daemon.brm-avmta-1.central.sun.com by
 brm-avmta-1.central.sun.com
 (Sun Java System Messaging Server 6.2-3.04 (built Jul 15 2005))
 id <0KP900M05HRTHH00@brm-avmta-1.central.sun.com> for psarc-ext@sun.com
 (ORCPT psarc-ext@sun.com); Mon, 31 Aug 2009 16:14:17 -0600 (MDT)
Received: from sca-es-mail-2.sun.com ([192.18.43.133])
 by brm-avmta-1.central.sun.com
 (Sun Java System Messaging Server 6.2-3.04 (built Jul 15 2005))
 with ESMTP id <0KP900ATJHRSY080@brm-avmta-1.central.sun.com> for
 psarc-ext@sun.com (ORCPT psarc-ext@sun.com); Mon,
 31 Aug 2009 16:14:17 -0600 (MDT)
Received: from fe-sfbay-09.sun.com ([192.18.43.129])
	by sca-es-mail-2.sun.com (8.13.7+Sun/8.12.9) with ESMTP id n7VMECZL023659	for
 <psarc-ext@sun.com>; Mon, 31 Aug 2009 15:14:12 -0700 (PDT)
Received: from conversion-daemon.fe-sfbay-09.sun.com by fe-sfbay-09.sun.com
 (Sun Java(tm) System Messaging Server 7u2-7.04 64bit (built Jul  2 2009))
 id <0KP900A00HN0SV00@fe-sfbay-09.sun.com> for psarc-ext@sun.com
 (ORCPT psarc-ext@sun.com); Mon, 31 Aug 2009 15:14:11 -0700 (PDT)
Received: from [129.153.85.54] ([unknown] [129.153.85.54])
 by fe-sfbay-09.sun.com
 (Sun Java(tm) System Messaging Server 7u2-7.04 64bit (built Jul  2 2009))
 with ESMTPSA id <0KP90088YHRJTW00@fe-sfbay-09.sun.com> for psarc-ext@sun.com
 (ORCPT psarc-ext@sun.com); Mon, 31 Aug 2009 15:14:11 -0700 (PDT)
Date: Mon, 31 Aug 2009 15:14:07 -0700
From: Scott Carter <Scott.Carter@sun.com>
Subject: PSARC 2008/181 Solaris Hotplug Framework: shp-userland.txt diffs
Sender: Scott.Carter@sun.com
To: psarc-ext@sun.com
Reply-to: Scott.Carter@sun.com
Message-id: <4A9C4B2F.9040202@Sun.COM>
MIME-version: 1.0
Content-type: text/plain; CHARSET=US-ASCII; format=flowed
Content-transfer-encoding: 7BIT
X-PMX-Version: 5.4.1.325704
User-Agent: Thunderbird 2.0.0.21 (X11/20090311)
Status: RO
Content-Length: 983

The shp-userland.txt document is missing some details
about the cfgadm_shp(1m) plugin.  The following diffs
describe the commitment level and packaging of this
plugin:

------- shp-userland.txt -------
***************
*** 575,580 ****
--- 575,581 ----
      ----------------------------------------------------------------------
      /usr/sbin/hotplug          Committed               hotplug(1M) CLI
      /usr/lib/hotplugd          Project Private         hotplugd(1M) daemon
+    /usr/lib/cfgadm/shp.so.1   Uncommitted             cfgadm_shp(1M) plugin
      /lib/libhotplug.so.1       Consolidation Private   libhotplug(3LIB)
      /var/run/hotplugd_door     Project Private         Door file, hotplugd(1M)

***************
*** 706,711 ****
--- 707,713 ----

           SUNWcsl:
           --------
+             - /usr/lib/cfgadm/shp.so.1
               - /lib/libhotplug.so.1
               - /lib/amd64/libhotplug.so.1
               - /lib/sparcv9/libhotplug.so.1

--
Scott

From Scott.Carter@sun.com Thu Sep  3 15:21:07 2009
Received: from sunmail2sca.sfbay.sun.com (sunmail2sca.SFBay.Sun.COM [129.145.155.234])
	by sac.sfbay.sun.com (8.13.8+Sun/8.13.8) with ESMTP id n83ML7Qs000272
	for <psarc-ext@sac.sfbay.sun.com>; Thu, 3 Sep 2009 15:21:07 -0700 (PDT)
Received: from nwk-avmta-2.sfbay.sun.com (nwk-avmta-2.SFBay.Sun.COM [129.145.155.6])
	by sunmail2sca.sfbay.sun.com (8.13.7+Sun/8.13.7/ENSMAIL,v2.2) with ESMTP id n83ML59G026989
	for <@sunmail2sca.sfbay.sun.com:psarc-ext@sun.com>; Thu, 3 Sep 2009 15:21:07 -0700 (PDT)
Received: from pmxchannel-daemon.nwk-avmta-2.sfbay.sun.com by
 nwk-avmta-2.sfbay.sun.com
 (Sun Java System Messaging Server 6.2-3.04 (built Jul 15 2005))
 id <0KPF0080R236AV00@nwk-avmta-2.sfbay.sun.com> for psarc-ext@sun.com
 (ORCPT psarc-ext@sun.com); Thu, 03 Sep 2009 15:21:06 -0700 (PDT)
Received: from sca-es-mail-2.sun.com ([192.18.43.133])
 by nwk-avmta-2.sfbay.sun.com
 (Sun Java System Messaging Server 6.2-3.04 (built Jul 15 2005))
 with ESMTP id <0KPF00LEI2356V80@nwk-avmta-2.sfbay.sun.com> for
 psarc-ext@sun.com (ORCPT psarc-ext@sun.com); Thu,
 03 Sep 2009 15:21:05 -0700 (PDT)
Received: from fe-sfbay-09.sun.com ([192.18.43.129])
	by sca-es-mail-2.sun.com (8.13.7+Sun/8.12.9) with ESMTP id n83ML4Vu027321	for
 <psarc-ext@sun.com>; Thu, 03 Sep 2009 15:21:04 -0700 (PDT)
Received: from conversion-daemon.fe-sfbay-09.sun.com by fe-sfbay-09.sun.com
 (Sun Java(tm) System Messaging Server 7u2-7.04 64bit (built Jul  2 2009))
 id <0KPF00F001WUUJ00@fe-sfbay-09.sun.com> for psarc-ext@sun.com
 (ORCPT psarc-ext@sun.com); Thu, 03 Sep 2009 15:21:04 -0700 (PDT)
Received: from [129.153.85.54] ([unknown] [129.153.85.54])
 by fe-sfbay-09.sun.com
 (Sun Java(tm) System Messaging Server 7u2-7.04 64bit (built Jul  2 2009))
 with ESMTPSA id <0KPF00M7B22YNH30@fe-sfbay-09.sun.com> for psarc-ext@sun.com
 (ORCPT psarc-ext@sun.com); Thu, 03 Sep 2009 15:20:59 -0700 (PDT)
Date: Thu, 03 Sep 2009 15:20:58 -0700
From: Scott Carter <Scott.Carter@sun.com>
Subject: PSARC 2008/181 Solaris Hotplug Framework: cfgadm manpages
Sender: Scott.Carter@sun.com
To: psarc-ext@sun.com
Reply-to: Scott.Carter@sun.com
Message-id: <4AA0414A.3000306@Sun.COM>
MIME-version: 1.0
Content-type: multipart/mixed; boundary="Boundary_(ID_FOVzSpfwRJe8qLHLlv3kzA)"
X-PMX-Version: 5.4.1.325704
User-Agent: Thunderbird 2.0.0.21 (X11/20090311)
Status: RO
Content-Length: 58477

This is a multi-part message in MIME format.

--Boundary_(ID_FOVzSpfwRJe8qLHLlv3kzA)
Content-type: text/plain; CHARSET=US-ASCII; format=flowed
Content-transfer-encoding: 7BIT

All,

This message is to record the cfgadm manpage content into
the case log for:

	PSARC/2008/181 Solaris Hotplug Framework.

Support for some PCI buses was migrated from the existing
PCI plugin to the new SHP plugin.  Thus some of the bus
specific content from the cfgadm_pci(1m) manpage has been
moved into the new cfgadm_shp(1m) manpage.

Attached are:

	o cfgadm_shp.1m.txt  -- New cfgadm_shp(1m) manpage.
	o cfgadm_pci.1m.txt  -- Updated cfgadm_pci(1m) page.
	o cfgadm_pci.1m.txt.diff  -- Diffs to cfgadm_pci(1m).

--
Scott

--Boundary_(ID_FOVzSpfwRJe8qLHLlv3kzA)
Content-type: text/plain; name=cfgadm_shp.1m.txt
Content-transfer-encoding: 7BIT
Content-disposition: inline; filename=cfgadm_shp.1m.txt




System Administration Commands                     cfgadm_shp(1M)



NAME
     cfgadm_shp  -  PCI Express and Standard PCI Hotplug hardware
     specific commands for cfgadm

SYNOPSIS
     /usr/sbin/cfgadm [-f] [-y | -n] [-v]
          [-o hardware_options] -c function ap_id [ap_id]


     /usr/sbin/cfgadm [-f] [-y | -n] [-v]
          [-o hardware_options] -x hardware_function ap_id
          [ap_id]


     /usr/sbin/cfgadm [-v] [-s listing_options]
          [-o hardware_options] [-l [ap_id | ap_type]]


     /usr/sbin/cfgadm [-v] [-o harware_options] -t ap_id [ap_id]


     /usr/sbin/cfgadm [-v] [-o hardware_function] -h
          [ap_id| ap_type]


DESCRIPTION
     The PCI Express and Standard PCI Hotplug hardware specific
     library, /usr/lib/cfgadm/shp.so.1, provides the support for 
     hot plugging PCI Express and Standard PCI Hotplug adapter cards
     into the respective hot pluggable slots in a system that is hot
     plug capable, through the cfgadm command (see cfgadm(1M)). 
     Support for the rest PCI Hotplug adapter cards (other than 
     PCI Express and Standard PCI Hotplug cards) are provided by 
     cfgadm_pci(1M) library (see cfgadm_pci(1M)). Hot plug admini-
     strative models between PCI Express Hotplug and Standard PCI
     Hotplug remain the same except where noted in this document.


     For PCI Hot Plug, each hot plug slot on a specific  PCI  bus
     is  represented  by an attachment point of that specific PCI
     bus.


     An attachment point consist of two parts: a  receptacle  and
     an  occupant.  The  receptacle under PCI hot plug is usually
     referred to as the physical  hot  pluggable  slot;  and  the
     occupant is usually referred to as the PCI adapter card that
     plugs into the slot.


     Attachment points are named through ap_ids.  There  are  two
     types of ap_ids: logical and physical. The physical ap_id is
     based    on    the    physical    pathname,     that     is,
     /devices/pci@7c,0/pci10de,5d@d:pcie2, whereas  the  logical 
     ap_id is a shorter, and more user-friendly name, e.g. pcie2.
     The ap_type for Hot plug PCI is pci.


     Note that the ap_type is not the same as the information  in
     the Type field.


  PCI Express ap_id naming
     For attachment points located in  a  PCI  Express  hierarchy
     (that  is,  the  parent or an ancestor is a PCI Express dev-
     ice), including attachment points which are not PCI  Express
     devices themselves, the following naming scheme is used:

       Grammar:
          APID : absolute-slot-path

          absolute-slot-path : slot-path[:slot-path[:slotpath ...]]

          slot-path : [fru-id.]slot-id
                  where fru-id indicates the chassis FRU, if any,
                  containing the slot-id

          fru-id : fru-type[serialid#]
                  where fru-type is "iob" for PCI Express expansion
                  chassis, followed by its serial number serialid#,
                  if available

          slot-id: slot-name | device-type physical-slot# |\
                   nexus-driver-name nexus-driver-instance.\
                   device-type pci-device-number


     where slot-name is  a  name  assigned  by  the  platform  or
     hardware itself; device-type is either "pcie"for PCI Express
     devices or "pci" for PCI devices; nexus-driver-name  is  the
     driver  name for the device component; physical-slot# is the
     hardware slot number; and pci-device-number is the PCI  dev-
     ice number in standard PCI nomenclature.


     First, an absolute-slot-path is constructed that attempts to
     describe the attachment point's topological location in more
     physically identifiable terms for the user . This  absolute-
     slot-path consists of slot-path components each seperated by
     a ":" (colon). The leaf  or  left-most  slot-path  component
     describes  the  device  of the attachment point itself while
     its right adjacent slot-path component up to  the  right  or
     top-most  slot-path component describes the parent up to the
     root devices, respectively.


     Each slot-path consists of a slot-id optionally preceded  by
     an  fru-id,  which indicates an expansion chassis containing
     the device described by  slot-id  (detailed  below).  fru-id
     consists  of  fru-type  followed  by  an optional serialid#.
     fru-type is "iob" for PCI Express expansion  chassis  types,
     while  serialid# is either a 64-bit hexadecimal number indi-
     cating a raw  serial  number  obtained  from  the  expansion
     chassis hardware, or a 4 upper-case ASCII character sequence
     for Sun branded expansion chassis.


     Each slot-id consists of one of three possible forms:

     slot-id form (1)

         slot-names


     slot-id form (2)

         device-type physical-slot#


     slot-id form (3)

         nexus-driver-name   nexus-driver-instance.   device-type
         pci-device-number



     The precedence of which form to select flows from the lowest
     form  number to the highest form number, or from top to bot-
     towm as described above. If a form  cannot  be  successfully
     constructed,  then  the  next  numerically  higher  form  is
     attempted.


     The slot-names in "slot-id  form  (1)"  is  taken  from  the
     "slot-names"  property of the corresponding node in the dev-
     ice tree and is a name assigned by hardware or the platform.
     This format is not predefined or established.


     In "slot-id form (2)", device-type indicates the device type
     of  the  component's  slot,  and  is  either  "pcie" for PCI
     Express or "pci" for PCI, while  physical-slot#,  take  from
     the  "physical-slot#"  property  of its corresponding device
     node, indicates the hardware slot number of the component.


     "slot-id form (3)" is used when all other forms cannot  suc-
     cessfully  be  constructed,  and  is  considered  to  be the
     default form. nexus-driver-name is  the  component's  driver
     name;   nexus-driver-instance  is  such  driver's  instance;
     device-type is the same  as  described  in  form  (2);  pci-
     device-type  is  the PCI device number as described and used
     for device configuration cycles in  standard  PCI  nomencla-
     ture.


     In  summary  of  the  slot-path  component,  expanding   the
     optional  FRU  component that may precede it, slot-path will
     consist one of the following forms in order:

       (1) [ iob[serialid#]. ] slot-names
       (2) [ iob[serialid#]. ] device_type physical_slot#
       (2) [ iob[serialid#]. ]
                 nexus-driver-name nexus-driver-instance.
                 device_type pci-device-number


     Lastly, the final form of the  actual  ap_id  name  used  in
     cfgadm  is  decided  as  follows, specified in order of pre-
     cedence:

     ap_id form (1)

         if the  absolute-slot-path  can  fit  within  the  fixed
         length  limit  of  cfgadm's  ap_id field, then absolute-
         slot-path itself is used


     ap_id form (2)

         (absolute-slot-path exceeds the ap_id length  limit)  if
         the  last  slot_path  component  is  contained within an
         expansion chassis, and it contains a serialid#, then the
         last  slot_path component is used. The requirement for a
         serialid# in this form is to ensure  a  globally  unique
         ap_id.


     ap_id form (3)

         (absolute-slot-path exceeds the ap_id length limit)  the
         default  form, "slot-id form (3)", of the last slot_path
         component is used


     Whichever final ap_id name is used,  the  absolute-slot-path
     is  stored  in  the  Information ("info") field which can be
     displayed using the -s or -voptions. This information can be
     used to physically locate any ap_ids named using "ap_id form
     (2)" or "ap_id form (3)". The  absolute-slot-path  is  tran-
     formed slightly when stored in the information field, by the
     replacement of a colon (":") with forward slashes  ("/")  to
     more  closely  denote  a  topological context. The absolute-
     slot-path can include slot-path components that are not hot-
     pluggable  above  the leaf or right-most slot-path component
     up to the onboard host slot.


     See the EXAMPLES section for a list  of  hotpluggable  exam-
     ples.

OPTIONS
     The following options are supported:

     -c function

         The following functions are supported for PCI hot plugg-
         able slots:

         configure

             Configure the PCI device in the slot to be  used  by
             Solaris.


         connect

             Connect the slot to PCI bus.


         disconnect

             Disconnect the slot from the PCI bus.


         insert

             Not supported.


         remove

             Not supported.


         unconfigure

             Logically remove the PCI device's resources from the
             system.


     -f

         Not supported.


     -h ap_id | ap_type

         Print out PCI hot plug specific help message.


     -l list

         List the values of PCI Hot Plug slots.


     -o hardware_options

         No hardware specific options are currently defined.


     -s listing_options

         Same as the generic cfgadm(1M).


     -t ap_id

         This command is only supported on platforms  which  sup-
         port testing capability on the slot.


     -v

         Execute in verbose mode.

         When the -v option is  used  with  the  -l  option,  the
         cfgadm  command outputs information about the attachment
         point. For attachment points located in  a  PCI  Express
         hierarhcy,   the  Information  field  will  contain  the
         attachment  point's   absolute   slot   path   location,
         including  any  hardware  or  platform specific labeling
         information for each component in the  slot  path.  Each
         component  in  the  slot path will be seperated by a "/"
         (foward slash). See the PCI Express  ap_id  naming  sec-
         tion.  For PCI Hot Plug attachment points not located in
         a PCI Express hieararchy, see cfgadm_pci(1M).
         The information in the Type field is printed with or without
         the -v option. The occupant Type  field  will describe
         the contents of the slot. There are 2 possible values:

         unknown

             The slot is empty. If a card is  in  the  slot,  the
             card is not configured or there is no driver for the
             device on the card.


         subclass/board

             The card in the slot is either a single-function  or
             multi-function device.

             subclass is a string representing the subclass  code
             of the device, for example, SCSI, ethernet, pci-isa,
             and so forth. If the card is a multi-functional dev-
             ice, MULT will get printed instead.

             board is a string representing the board type of the
             device. For example, hp is the string used for a PCI
             Hot Plug adapter.


     -x hardware_function

         Perform  hardware  specific  function.  These   hardware
         specific  functions should not normally change the state
         of a receptacle or occupant.


         The following hardware_functions are supported:


         led=[led_sub_arg],mode=[mode_sub_arg]

             Without sub-arguments, print a list of  the  current
             LED  settings. With sub-arguments, set the mode of a
             specific LED for a slot.

             Specify  led_sub_arg  as  fault,  power,  attn,   or
             active.

             Specify mode_sub_arg as on, off or blink.

             For PCI Express, only the power and  attn  LEDs  are
             valid  and  only  the  state  of the attn LED can be
             changed.

             Changing the state of the LED does  not  change  the
             state  of  the receptacle or occupant. Normally, the
             LEDs are controlled by the hot plug  controller,  no
             user intervention is necessary. Use this command for
             testing purposes.

             Caution:  Changing  the  state  of   the   LED   can
             misrepresent       the state of occupant or recepta-
             cle.

             The following command prints the values of LEDs:

               example#  cfgadm -x led pcie2
               Ap_Id             Led
               pcie2     power=on,fault=off,active=off,attn=off


             The following command sets the attn LED  to  blink
             to indicate the location of the slot:

               example# cfgadm -x led=attn,mode=blink pcie2


EXAMPLES
     Example 1 Printing out the Value of Each Slot


     The following command prints out the values of each slot:


       example# cfgadm -l
       Ap_Id            Type         Receptacle   Occupant       Condition
       c0               scsi-bus     connected    configured     unknown
       c1               scsi-bus     connected    unconfigured   unknown
       c2               scsi-bus     connected    unconfigured   unknown
       pcie7            etherne/hp   connected    configured     ok
       pcie8            unknown      empty        unconfigured   unknown
       pcie9            fibre/hp     connected    configured     ok


     Example 2 Replacing a Card


     The  following  command  lists  all  DR-capable   attachment
     points:


       example# cfgadm


       Type             Receptacle   Occupant     Condition
       c0               scsi-bus     connected    configured     unknown
       c1               scsi-bus     connected    unconfigured   unknown
       c2               scsi-bus     connected    unconfigured   unknown
       pcie7            etherne/hp   connected    configured     ok
       pcie8            unknown      empty        unconfigured   unknown
       pcie9            fibre/hp     connected    configured     ok


     The following command unconfigures and electrically  discon-
     nects the card:


       example# cfgadm -c disconnect pcie7


     The change can be verified by entering  the  following  com-
     mand:


       example# cfgadm pcie7


       Ap_Id                   Type         Receptacle   Occupant     Condition
       pcie7                   unknown      disconnected unconfigured unknown


     Now the card can be swapped. The following command  electri-
     cally connects and configures the card:


       example# cfgadm -c configure pcie7


     The change can be verifed by entering the following command:


       example# cfgadm pcie7


       Ap_Id                   Type         Receptacle   Occupant     Condition
       pcie7                   etherne/hp   connected    configured   ok


     Example 3 Interpreting ApIds for devices in  a  PCI  Express
     topology


     The following command shows a listing for  a  topology  with
     both  PCI Express and PCI attachment points in I/O expansion
     chassis connected to hotpluggable slots at the host level:


       example# cfgadm -s cols=ap_id:info


       Ap_Id                          Information
       iou#0-pci#0                    Location: iou#0-pci#0
       iou#0-pci#1                    Location: iou#0-pci#1
       iou#0-pci#1:iob.pci3           Location: iou#0-pci#1/iob.pci3
       iou#0-pci#1:iob.pci4           Location: iou#0-pci#1/iob.pci4
       iou#0-pci#2                    Location: iou#0-pci#2
       iou#0-pci#2:iob58071.pcie1     Location: iou#0-pci#2/iob58071.pcie1
       iou#0-pci#2:iob58071.special   Location: iou#0-pci#2/iob58071.special
       iou#0-pci#3                    Location: iou#0-pci#3
       iou#0-pci#3:iobBADF.pcie1      Location: iou#0-pci#3/iobBADF.pcie1
       iou#0-pci#3:iobBADF.pcie2      Location: iou#0-pci#3/iobBADF.pcie2
       iou#0-pci#3:iobBADF.pcie3      Location: iou#0-pci#3/iobBADF.pcie3
       iou#0-pci#3:iobBADF.pci1       Location: iou#0-pci#3/iobBADF.pci1
       iou#0-pci#3:iobBADF.pci2       Location: iou#0-pci#3/iobBADF.pci2



     In this example, the "iou#0-pci#[0-3]" represents  the  top-
     most  hotpluggable  slots in the system. Since the "iou#<n>-
     pci#<n>" form does not match any of the forms stated in  the
     grammar  specification  section  described  earilier, we can
     infer that such a name for the base component in  this  hot-
     plug  topology  is  derived  from  the  platform through the
     "slot-names" property.


     Slot iou#0-pci#0

         this slot is empty or its occupant is unconfigured


     Slot iou#0-pci#1

         this slot contains an expansion chassis  with  two  hot-
         pluggable  slots,  "pci3"  and "pci4". "pci3" and "pci4"
         represent two PCI slots contained within that  expansion
         chassis with physical slot numbers 3 and 4 respectively.
         The expansion chassis in this  case  does  not  have  or
         exports a serial-id.


     Slot iou#0-pci#2

         this slot contains a third party expansion chassis  with
         a  hexadecimal serial-id of 58071. Within that expansion
         chassis are two hotpluggable slots,  "pcie1"  and  "spe-
         cial". "pcie1" represents a PCI Express slot with physi-
         cal slot number 1. The slot "special" has a label  which
         is derived from the platform, hardware or firmware.


     Slot iou#0-pci#3

         this slot contains a Sun expansion chassis with  an  FRU
         identifier  of  "BADF".  This expansion chassis contains
         three PCI Express slots, "pcie1", "pcie2",  and  "pcie3"
         with physical slot numbers 1, 2, and 3 respectively; and
         two PCI slots, "pci1"  and  "pci2"  with  physical  slot
         numbers 1 and 2, respectively.



     The following command shows a listing for  a  topology  with
     both  PCI Express and PCI attachment points in I/O expansion
     chassis connected  hotpluggable  and  non-hotpluggable  host
     slots:


       example# cfgadm -s cols=ap_id:info

       Ap_Id                          Information
       Slot1                          Location: Slot1
       Slot2:iob4ffa56.pcie1          Location: Slot2/iob4ffa56.pcie1
       Slot2:iob4ffa56.pcie2          Location: Slot2/iob4ffa56.pcie2
       Slot5:iob3901.pci1             Location: Slot2/iob3901.pci1
       Slot5:iob3901.pci2             Location: Slot2/iob3901.pci2


     In this example, the host system only has  one  hotpluggable
     slot, "Slot1". We can infer that "Slot2" and "Slot5" are not
     hotpluggable slots because they do not appear as  attachment
     points  themselves  in  cfgadm. However, "Slot2" and "Slot5"
     each contains a third party expansion chassis with hotplugg-
     able slots.


     The following command shows a listing for  a  topology  with
     attachment points that are lacking in certain device proper-
     ties:


       example# cfgadm -s cols=ap_id:info

       Ap_Id                          Information
       px_pci7.pcie0                  Location: px_pci7.pcie0
       px_pci11.pcie0                 Location: px_pci11.pcie0
       px_pci11.pcie0:iob.pcie1       Location: px_pci11.pcie0/iob.pcie1
       px_pci11.pcie0:iob.pcie2       Location: px_pci11.pcie0/iob.pcie2
       px_pci11.pcie0:iob.pcie3       Location: px_pci11.pcie0/iob.pcie3


     In this example, the host system contains  two  hotpluggable
     slots,  "px_pci7.pcie0"  and "px_pci11.pcie0". In this case,
     it uses "slot-id form (3)" ( the default form) for the  base
     slot-path  component  in  the absolute-slot-path because the
     framework could not obtain  enough  information  to  produce
     other more descriptive forms of higher precedence.


     Interpreting right-to-left, attachment point "px_pci7.pcie0"
     represents  a  PCI  Express  slot  with  PCI device number 0
     (which does not imply a physical slot number of  the  same),
     bound  to  nexus  driver  "px_pci",  instance  7.  Likewise,
     attachment point "px_pci11.pcie0" represents a  PCI  Express
     slot with PCI device number 0 bound to driver instance 11 of
     px_pci.


     Under "px_pci11.pcie0" is a third  party  expansion  chassis
     without  a serial-id and with three hotpluggable PCI Express
     slots.


     The following command shows a listing for  a  topology  with
     attachment  point  paths  exceeding  the  ApId  field length
     limit:


       example# cfgadm -s cols=ap_id:info

       Ap_Id                          Information
       pcie4                          Location: pcie4
       pcie4:iobSUNW.pcie1            Location: pcie4/iobSUNW.pcie1
       pcie4:iobSUNW.pcie2            Location: pcie4/iobSUNW.pcie2
       iob8879c3f3.pci1
                          Location: pcie4/iobSUNW.pcie2/iob8879c3f3.pci1
       iob8879c3f3.pci2
                          Location: pcie4/iobSUNW.pcie2/iob8879c3f3.pci2
       iob8879c3f3.pci3
                          Location: pcie4/iobSUNW.pcie2/iob8879c3f3.pci3


     In this  example,  there  is  only  one  hotpluggable  slot,
     "pcie4" in the host. Connected under "pcie4" is a SUN expan-
     sion chassis with FRU identifier "SUNW".  Nested  under  PCI
     Express   slot  "pcie2"  of  that  expansion  chassis  (ApId
     pcie4:iobSUNW.pcie2) lies  another  expansion  chassis  with
     three hotpluggable PCI slots.



     Because  the  length  of  the  absolute-slot-path  form   of
     "pcie4/iobSUNW.pcie2/iob8879c3f3.pci1...3"  exceeds the ApId
     field length limit, and the leaf slot-path component is glo-
     bally  unique,  "ap_id  form  (2)"  is  used, where the leaf
     slot-path component in the absolute-slot-path is used as the
     final ApId.



     The following command shows a listing for  a  topology  with
     attachment point paths exceeding the ApId field length limit
     and lacking enough information to uniquely identify the leaf
     slot-id on its own (for instance, missing the serial-id):


       example# cfgadm -s cols=ap_id:info

       Ap_Id                          Information
       pcie4                          Location: pcie4
       pcie4:iob4567812345678.pcie3   Location: pcie4/iob4567812345678.pcie3
       px_pci20.pcie0
                          Location: pcie4/iob4567812345678.pcie3/iob.pcie1
       px_pci21.pcie0
                          Location: pcie4/iob4567812345678.pcie3/iob.pcie2


     In this  example,  there  is  only  one  hotpluggable  slot,
     "pcie4"  in  the  host.  Connected  under "pcie4" is a third
     party   expansion   chassis   with   hexadecimal   serial-id
     4567812345678.  Nested under the PCI Express slot "pcie3" of
     that expansion chassis (ApId  pcie4:iob4567812345678.pcie3),
     lies  another third part expansion chassis without a serial-
     id and with two hotpluggable PCI Express slots.


     Because  the  length  of  the  absolute-slot-path  form   of
     "pcie4/iob4567812345678.pcie3/iob.pcie1...2"   exceeds   the
     ApId field length limit, and the leaf slot-path component is
     not  globally  unique, "ap_id form (3)" is used. "ap_id form
     (2)" is where slot-id form (3) (default form)  of  the  leaf
     slot-path component in the absolute-slot-path is used as the
     final ApId.


     The default form or "slot-id form (3)" of the leaf component
     ".../iob.pcie1"represents  a  PCI  Express  slot with device
     number 0, bound to driver instance 20 of "px_pci". Likewise,
     the  default  form  of  the  leaf  component ".../iob.pcie2"
     represents a  PCI Express slot with device number  0,  bound
     to driver instance 21 of "px_pci"


FILES
     /usr/lib/cfgadm/shp.so.1

         Hardware specific library for PCI Express and Standard
         PCI hot plugging.


ATTRIBUTES
     See attributes(5) for descriptions of the  following  attri-
     butes:

     ____________________________________________________________
    |       ATTRIBUTE TYPE        |       ATTRIBUTE VALUE       |
    |_____________________________|_____________________________|
    | Availability                | SUNWcsl                     |
    |_____________________________|_____________________________|
    | Stability                   | Uncommitted                 |
    |_____________________________|_____________________________|



SEE ALSO
     cfgadm(1M), cfgadm_pci(1M), config_admin(3CFGADM), libcfgadm(3LIB),
     attributes(5), hotplugd(1M)

NOTES
     The cfgadm_shp(1M) library is dependent on the hotplug service,
     which is managed by smf(5) under FMRI:

     svc:/system/hotplug:default

     The service must be enabled for cfgadm_shp(1M) library to function
     properly, see hotplugd(1M) for details.

--Boundary_(ID_FOVzSpfwRJe8qLHLlv3kzA)
Content-type: text/plain; name=cfgadm_pci.1m.txt
Content-transfer-encoding: 7BIT
Content-disposition: inline; filename=cfgadm_pci.1m.txt




System Administration Commands                     cfgadm_pci(1M)



NAME
     cfgadm_pci  -  PCI and CompactPCI Hotplug hardware specific
     commands for cfgadm

SYNOPSIS
     /usr/sbin/cfgadm [-f] [-y | -n] [-v]
          [-o hardware_options] -c function ap_id [ap_id]


     /usr/sbin/cfgadm [-f] [-y | -n] [-v]
          [-o hardware_options] -x hardware_function ap_id
          [ap_id]


     /usr/sbin/cfgadm [-v] [-s listing_options]
          [-o hardware_options] [-l [ap_id | ap_type]]


     /usr/sbin/cfgadm [-v] [-o harware_options] -t ap_id [ap_id]


     /usr/sbin/cfgadm [-v] [-o hardware_function] -h
          [ap_id| ap_type]


DESCRIPTION
     The PCI hardware specific library, /usr/lib/cfgadm/pci.so.1,
     provides  the  support for hot plugging PCI and CompactPCI 
     adapter cards into the respective hot  pluggable slots  in
     a  system  that  is hot plug capable, through the cfgadm 
     command (see  cfgadm(1M)). This library doesn't include
     support for PCI Express Hotplug or Standard PCI Hotplug adapter
     cards, which are provided by a different library (see cfgadm_shp(1M)).
     Hot plug administrative models between PCI, CompactPCI remain
     the same except where noted in this document.


     For PCI Hot Plug, each hot plug slot on a specific  PCI  bus
     is  represented  by an attachment point of that specific PCI
     bus.


     An attachment point consist of two parts: a  receptacle  and
     an  occupant.  The  receptacle under PCI hot plug is usually
     referred to as the physical  hot  pluggable  slot;  and  the
     occupant is usually referred to as the PCI adapter card that
     plugs into the slot.


     Attachment points are named through ap_ids.  There  are  two
     types of ap_ids: logical and physical. The physical ap_id is
     based    on    the    physical    pathname,     that     is,
     /devices/pci@1/hpc0_slot3,  whereas  the  logical ap_id is a
     shorter, and more user-friendly name. For PCI hot  pluggable
     slots,  the  logical  ap_id is usually the corresponding hot
     plug controller driver name plus the  logical  slot  number,
     that  is,  pci0:hpc0slot1;  PCI  nexus driver, with hot plug
     controller driver named hpc and slot number 1.  The  ap_type
     for Hot plug PCI is pci.


     Note that the ap_type is not the same as the information  in
     the Type field.


     See the  for a detailed description of  the  hot  plug  pro-
     cedure.

OPTIONS
     The following options are supported:

     -c function

         The following functions are supported for PCI hot plugg-
         able slots:

         configure

             Configure the PCI device in the slot to be  used  by
             Solaris.


         connect

             Connect the slot to PCI bus.


         disconnect

             Disconnect the slot from the PCI bus.


         insert

             Not supported.


         remove

             Not supported.


         unconfigure

             Logically remove the PCI device's resources from the
             system.

     -f

         Not supported.


     -h ap_id | ap_type

         Print out PCI hot plug specific help message.


     -l list

         List the values of PCI Hot Plug slots.


     -o hardware_options

         No hardware specific options are currently defined.


     -s listing_options

         Same as the generic cfgadm(1M).


     -t ap_id

         This command is only supported on platforms  which  sup-
         port testing capability on the slot.


     -v

         Execute in verbose mode.

         When the -v option is  used  with  the  -l  option,  the
         cfgadm  command outputs information about the attachment
         point. For PCI Hotplug attachment points located in a PCI
         PCI Express hieararchy, see cfgadm_shp(1M) for details.
         For PCI Hot Plug attachment points not located in
         a PCI Express hieararchy, the Information field will  be
         the  slot's  system  label,  if any. This string will be
         obtained from the slot-name property of the  slot's  bus
         node.  The information in the Type field is printed with
         or without the -v option. The occupant Type  field  will
         describe  the contents of the slot. There are 2 possible
         values:

         unknown

             The slot is empty. If a card is  in  the  slot,  the
             card is not configured or there is no driver for the
             device on the card.


         subclass/board

             The card in the slot is either a single-function  or
             multi-function device.

             subclass is a string representing the subclass  code
             of the device, for example, SCSI, ethernet, pci-isa,
             and so forth. If the card is a multi-functional dev-
             ice, MULT will get printed instead.

             board is a string representing the board type of the
             device. For example, hp is the string used for a PCI
             Hot Plug adapter, hs is used for a Hot  Swap  Board,
             nhs  for a Non-Hot Swap cPCI Board,  bhs for a Basic
             Hot Swap cPCI Board, and fhs for  a  Full  Hot  Swap
             cPCI Board.

             Most PCI cards with more than  one  device  are  not
             multi-function devices, but are implemented as a PCI
             bridge with arbitrary devices behind them. In  those
             cases,  the  subclass  displayed  is that of the PCI
             bridge. Most commonly, the bridges  are  pci-pci,  a
             generic   PCI  to  PCI  bridge  or  stpci,  a  semi-
             transparent PCI bridge.



     -x hardware_function

         Perform  hardware  specific  function.  These   hardware
         specific  functions should not normally change the state
         of a receptacle or occupant.


         The following hardware_functions are supported:

         enable_slot | disable_slot

             Change the state of the slot and preserve the  state
             of  slot across reboot. Preservation of state across
             reboot is only supported on select platforms.

             enable_slot enables the addition of hardware to this
             slot for hot plugging and at boot time.

             disable_slot disables the addition  of  hardware  to
             this  slot for hot plugging and at boot time. When a
             slot is disabled its condition is shown as unusable.


         enable_autoconfig | disable_autoconfig

             Change the ability to autoconfigure the occupant  of
             the  slot.  Only  platforms that support auto confi-
             guration support this feature.

             enable_autoconfig enables the ability to autoconfig-
             ure the slot.

             diable_autoconfig disables the ability  to  autocon-
             figure the slot.

             Autoconfiguration is done through the attention but-
             ton  on  the  PCI  Express platforms and through the
             injector/ejector latch on the CompactPCI  platforms.
             When  autoconfiguration  is  disabled, the attention
             button or latch mechanism cannot be used to  config-
             ure the occupant of the slot.


         led=[led_sub_arg],mode=[mode_sub_arg]

             Without sub-arguments, print a list of  the  current
             LED  settings. With sub-arguments, set the mode of a
             specific LED for a slot.

             Specify  led_sub_arg  as  fault,  power,  attn,   or
             active.

             Specify mode_sub_arg as on, off or blink.

             Changing the state of the LED does  not  change  the
             state  of  the receptacle or occupant. Normally, the
             LEDs are controlled by the hot plug  controller,  no
             user intervention is necessary. Use this command for
             testing purposes.

             Caution:  Changing  the  state  of   the   LED   can
             misrepresent       the state of occupant or recepta-
             cle.

             The following command prints the values of LEDs:

               example#  cfgadm -x led pci0:hpc0_slot1
               Ap_Id             Led
               pci0:hpc0_slot1   power=on,fault=off,active=off,attn=off


             The following command turns on the Fault LED:

               example# cfgadm -x led=fault,mode=on pci0:hpc0_slot1


             The following command turns off the Power LED:

               example# cfgadm -x led=power,mode=off pci0:hpc0_slot0


             The following command sets the active LED  to  blink
             to indicate the location of the slot:

               example# cfgadm -x led=active,mode=on pci0:hpc0_slot3


EXAMPLES
     Example 1 Printing out the Value of Each Slot


     The following command prints out the values of each slot:


       example# cfgadm -l
       Ap_Id            Type         Receptacle   Occupant       Condition
       c0               scsi-bus     connected    configured     unknown
       c1               scsi-bus     connected    unconfigured   unknown
       c2               scsi-bus     connected    unconfigured   unknown
       cpci_slot1       stpci/fhs    connected    configured     ok
       cpci_slot2       unknown      empty        unconfigured   unknown
       cpci_slot4       stpci/fhs    connected    configured     ok
       cpci_slot5       stpci/fhs    connected    configured     ok


     Example 2 Replacing a Card


     The  following  command  lists  all  DR-capable   attachment
     points:


       example# cfgadm


       Type             Receptacle   Occupant     Condition
       c0               scsi-bus     connected    configured     unknown
       c1               scsi-bus     connected    unconfigured   unknown
       c2               scsi-bus     connected    unconfigured   unknown
       cpci_slot1       stpci/fhs    connected    configured     ok
       cpci_slot2       unknown      empty        unconfigured   unknown
       cpci_slot4       stpci/fhs    connected    configured     ok
       cpci_slot5       stpci/fhs    connected    configured     ok


     The following command unconfigures and electrically  discon-
     nects the card:


       example# cfgadm -c disconnect cpci_slot4




     The change can be verified by entering  the  following  com-
     mand:


       example# cfgadm cpci_slot4


       Ap_Id                   Type         Receptacle   Occupant     Condition
       cpci_slot4              unknown      disconnected unconfigured unknown


     Now the card can be swapped. The following command  electri-
     cally connects and configures the card:


       example# cfgadm -c configure cpci_slot4


     The change can be verifed by entering the following command:


       example# cfgadm cpci_slot4


       Ap_Id                   Type         Receptacle   Occupant     Condition
       cpci_slot4              stpcipci/fhs connected    configured   ok


FILES
     /usr/lib/cfgadm/pci.so.1

         Hardware specific library for PCI hot plugging.


ATTRIBUTES
     See attributes(5) for descriptions of the  following  attri-
     butes:

     ____________________________________________________________
    |       ATTRIBUTE TYPE        |       ATTRIBUTE VALUE       |
    |_____________________________|_____________________________|
    | Availability                | SUNWcsl                     |
    |_____________________________|_____________________________|


SEE ALSO
     cfgadm(1M), cfgadm_shp(1M), config_admin(3CFGADM), libcfgadm(3LIB),
     attributes(5)


--Boundary_(ID_FOVzSpfwRJe8qLHLlv3kzA)
Content-type: text/x-patch; name=cfgadm_pci.1m.txt.diff
Content-transfer-encoding: 7BIT
Content-disposition: inline; filename=cfgadm_pci.1m.txt.diff

*** cfgadm_pci.txt.orig	Thu Aug 20 17:09:06 2009
--- cfgadm_pci.txt	Thu Aug 20 17:37:49 2009
***************
*** 6,13 ****
  
  
  NAME
!      cfgadm_pci  -  PCI,  CompactPCI,  and  PCI  Express  Hotplug
!      hardware specific commands for cfgadm
  
  SYNOPSIS
       /usr/sbin/cfgadm [-f] [-y | -n] [-v]
--- 6,13 ----
  
  
  NAME
!      cfgadm_pci  -  PCI and CompactPCI Hotplug hardware specific
!      commands for cfgadm
  
  SYNOPSIS
       /usr/sbin/cfgadm [-f] [-y | -n] [-v]
***************
*** 32,43 ****
  
  DESCRIPTION
       The PCI hardware specific library, /usr/lib/cfgadm/pci.so.1,
!      provides  the  support for hot plugging PCI, CompactPCI, and
!      PCI Express adapter cards into the respective hot  pluggable
!      slots  in  a  system  that  is hot plug capable, through the
!      cfgadm command (see  cfgadm(1M)).  Hot  plug  administrative
!      models  between PCI, CompactPCI, and  PCI Express remain the
!      same except where noted in this document.
  
  
       For PCI Hot Plug, each hot plug slot on a specific  PCI  bus
--- 32,45 ----
  
  DESCRIPTION
       The PCI hardware specific library, /usr/lib/cfgadm/pci.so.1,
!      provides  the  support for hot plugging PCI and CompactPCI 
!      adapter cards into the respective hot  pluggable slots  in
!      a  system  that  is hot plug capable, through the cfgadm 
!      command (see  cfgadm(1M)). This library doesn't include
!      support for PCI Express Hotplug or Standard PCI Hotplug adapter
!      cards, which are provided by a different library (see cfgadm_shp(1M)).
!      Hot plug administrative models between PCI, CompactPCI remain
!      the same except where noted in this document.
  
  
       For PCI Hot Plug, each hot plug slot on a specific  PCI  bus
***************
*** 85,298 ****
       See the  for a detailed description of  the  hot  plug  pro-
       cedure.
  
-   PCI Express ap_id naming
-      For attachment points located in  a  PCI  Express  hierarchy
-      (that  is,  the  parent or an ancestor is a PCI Express dev-
-      ice), including attachment points which are not PCI  Express
-      devices themselves, the following naming scheme is used:
- 
-        Grammar:
-           APID : absolute-slot-path
- 
-           absolute-slot-path : slot-path[:slot-path[:slotpath ...]]
- 
-           slot-path : [fru-id.]slot-id
-                   where fru-id indicates the chassis FRU, if any,
-                   containing the slot-id
- 
-           fru-id : fru-type[serialid#]
-                   where fru-type is "iob" for PCI Express expansion
-                   chassis, followed by its serial number serialid#,
-                   if available
- 
-            slot-id: slot-name | device-type physical-slot# |\
-                    nexus-driver-name nexus-driver-instance.\
-                    device-type pci-device-number
- 
- 
- 
- 
-      where slot-name is  a  name  assigned  by  the  platform  or
-      hardware itself; device-type is either "pcie"for PCI Express
-      devices or "pci" for PCI devices; nexus-driver-name  is  the
-      driver  name for the device component; physical-slot# is the
-      hardware slot number; and pci-device-number is the PCI  dev-
-      ice number in standard PCI nomenclature.
- 
- 
-      First, an absolute-slot-path is constructed that attempts to
-      describe the attachment point's topological location in more
-      physically identifiable terms for the user . This  absolute-
-      slot-path consists of slot-path components each seperated by
-      a ":" (colon). The leaf  or  left-most  slot-path  component
-      describes  the  device  of the attachment point itself while
-      its right adjacent slot-path component up to  the  right  or
-      top-most  slot-path component describes the parent up to the
-      root devices, respectively.
- 
- 
-      Each slot-path consists of a slot-id optionally preceded  by
-      an  fru-id,  which indicates an expansion chassis containing
-      the device described by  slot-id  (detailed  below).  fru-id
-      consists  of  fru-type  followed  by  an optional serialid#.
-      fru-type is "iob" for PCI Express expansion  chassis  types,
-      while  serialid# is either a 64-bit hexadecimal number indi-
-      cating a raw  serial  number  obtained  from  the  expansion
-      chassis hardware, or a 4 upper-case ASCII character sequence
-      for Sun branded expansion chassis.
- 
- 
-      Each slot-id consists of one of three possible forms:
- 
-      slot-id form (1)
- 
-          slot-names
- 
- 
-      slot-id form (2)
- 
-          device-type physical-slot#
- 
- 
-      slot-id form (3)
- 
-          nexus-driver-name   nexus-driver-instance.   device-type
-          pci-device-number
- 
- 
- 
-      The precedence of which form to select flows from the lowest
-      form  number to the highest form number, or from top to bot-
-      towm as described above. If a form  cannot  be  successfully
-      constructed,  then  the  next  numerically  higher  form  is
-      attempted.
- 
- 
-      The slot-names in "slot-id  form  (1)"  is  taken  from  the
-      "slot-names"  property of the corresponding node in the dev-
-      ice tree and is a name assigned by hardware or the platform.
-      This format is not predefined or established.
- 
- 
-      In "slot-id form (2)", device-type indicates the device type
-      of  the  component's  slot,  and  is  either  "pcie" for PCI
-      Express or "pci" for PCI, while  physical-slot#,  take  from
-      the  "physical-slot#"  property  of its corresponding device
-      node, indicates the hardware slot number of the component.
- 
- 
-      "slot-id form (3)" is used when all other forms cannot  suc-
-      cessfully  be  constructed,  and  is  considered  to  be the
-      default form. nexus-driver-name is  the  component's  driver
-      name;   nexus-driver-instance  is  such  driver's  instance;
-      device-type is the same  as  described  in  form  (2);  pci-
-      device-type  is  the PCI device number as described and used
-      for device configuration cycles in  standard  PCI  nomencla-
-      ture.
- 
- 
-      In  summary  of  the  slot-path  component,  expanding   the
-      optional  FRU  component that may precede it, slot-path will
-      consist one of the following forms in order:
- 
-        (1) [ iob[serialid#]. ] slot-names
-        (2) [ iob[serialid#]. ] device_type physical_slot#
-        (2) [ iob[serialid#]. ]
-                  nexus-driver-name nexus-driver-instance.
-                  device_type pci-device-number
- 
- 
- 
- 
-      Lastly, the final form of the  actual  ap_id  name  used  in
-      cfgadm  is  decided  as  follows, specified in order of pre-
-      cedence:
- 
-      ap_id form (1)
- 
-          if the  absolute-slot-path  can  fit  within  the  fixed
-          length  limit  of  cfgadm's  ap_id field, then absolute-
-          slot-path itself is used
- 
- 
-      ap_id form (2)
- 
-          (absolute-slot-path exceeds the ap_id length  limit)  if
-          the  last  slot_path  component  is  contained within an
-          expansion chassis, and it contains a serialid#, then the
-          last  slot_path component is used. The requirement for a
-          serialid# in this form is to ensure  a  globally  unique
-          ap_id.
- 
- 
-      ap_id form (3)
- 
-          (absolute-slot-path exceeds the ap_id length limit)  the
-          default  form, "slot-id form (3)", of the last slot_path
-          component is used
- 
- 
- 
-      Whichever final ap_id name is used,  the  absolute-slot-path
-      is  stored  in  the  Information ("info") field which can be
-      displayed using the -s or -voptions. This information can be
-      used to physically locate any ap_ids named using "ap_id form
-      (2)" or "ap_id form (3)". The  absolute-slot-path  is  tran-
-      formed slightly when stored in the information field, by the
-      replacement of a colon (":") with forward slashes  ("/")  to
-      more  closely  denote  a  topological context. The absolute-
-      slot-path can include slot-path components that are not hot-
-      pluggable  above  the leaf or right-most slot-path component
-      up to the onboard host slot.
- 
- 
-      See the EXAMPLES section for a list  of  hotpluggable  exam-
-      ples.
- 
  OPTIONS
       The following options are supported:
  
*** 384,411 ****
  
! 
!          including  any  hardware  or  platform specific labeling
!          information for each component in the  slot  path.  Each
!          component  in  the  slot path will be seperated by a "/"
!          (foward slash). See the PCI Express  ap_id  naming  sec-
!          tion.  For PCI Hot Plug attachment points not located in
           a PCI Express hieararchy, the Information field will  be
           the  slot's  system  label,  if any. This string will be
           obtained from the slot-name property of the  slot's  bus
--- 149,157 ----
  
           When the -v option is  used  with  the  -l  option,  the
           cfgadm  command outputs information about the attachment
!          point. For PCI Hotplug attachment points located in a PCI
!          PCI Express hieararchy, see cfgadm_shp(1M) for details.
!          For PCI Hot Plug attachment points not located in
           a PCI Express hieararchy, the Information field will  be
           the  slot's  system  label,  if any. This string will be
           obtained from the slot-name property of the  slot's  bus
  
--- 201,206 ----
***************
*** 514,538 ****
  
               Specify mode_sub_arg as on, off or blink.
  
-              For PCI Express, only the power and  attn  LEDs  are
-              valid  and  only  the  state  of the attn LED can be
-              changed.
- 
--- 281,286 ----
***************
*** 584,609 ****
         cpci_slot2       unknown      empty        unconfigured   unknown
         cpci_slot4       stpci/fhs    connected    configured     ok
         cpci_slot5       stpci/fhs    connected    configured     ok
-        pcie7            etherne/hp   connected    configured     ok
-        pcie8            unknown      empty        unconfigured   unknown
-        pcie9            fibre/hp     connected    configured     ok
- 
       Example 2 Replacing a Card
  
  
--- 297,304 ----
***************
*** 622,634 ****
         cpci_slot2       unknown      empty        unconfigured   unknown
         cpci_slot4       stpci/fhs    connected    configured     ok
         cpci_slot5       stpci/fhs    connected    configured     ok
-        pcie7            etherne/hp   connected    configured     ok
-        pcie8            unknown      empty        unconfigured   unknown
-        pcie9            fibre/hp     connected    configured     ok
- 
       The following command unconfigures and electrically  discon-
       nects the card:
  
--- 346,351 ----
***************
*** 684,973 ****
         cpci_slot4              stpcipci/fhs connected    configured   ok
  
  
- 
-      Example 3 Interpreting ApIds for devices in  a  PCI  Express
-      topology
- 
- 
-      The following command shows a listing for  a  topology  with
-      both  PCI Express and PCI attachment points in I/O expansion
-      chassis connected to hotpluggable slots at the host level:
- 
- 
-        example# cfgadm -s cols=ap_id:info
- 
- 
-        Ap_Id                          Information
-        iou#0-pci#0                    Location: iou#0-pci#0
-        iou#0-pci#1                    Location: iou#0-pci#1
-        iou#0-pci#1:iob.pci3           Location: iou#0-pci#1/iob.pci3
-        iou#0-pci#1:iob.pci4           Location: iou#0-pci#1/iob.pci4
-        iou#0-pci#2                    Location: iou#0-pci#2
-        iou#0-pci#2:iob58071.pcie1     Location: iou#0-pci#2/iob58071.pcie1
-        iou#0-pci#2:iob58071.special   Location: iou#0-pci#2/iob58071.special
-        iou#0-pci#3                    Location: iou#0-pci#3
-        iou#0-pci#3:iobBADF.pcie1      Location: iou#0-pci#3/iobBADF.pcie1
-        iou#0-pci#3:iobBADF.pcie2      Location: iou#0-pci#3/iobBADF.pcie2
-        iou#0-pci#3:iobBADF.pcie3      Location: iou#0-pci#3/iobBADF.pcie3
-        iou#0-pci#3:iobBADF.pci1       Location: iou#0-pci#3/iobBADF.pci1
-        iou#0-pci#3:iobBADF.pci2       Location: iou#0-pci#3/iobBADF.pci2
- 
- 
- 
- 
-      In this example, the "iou#0-pci#[0-3]" represents  the  top-
-      most  hotpluggable  slots in the system. Since the "iou#<n>-
-      pci#<n>" form does not match any of the forms stated in  the
-      grammar  specification  section  described  earilier, we can
-      infer that such a name for the base component in  this  hot-
-      plug  topology  is  derived  from  the  platform through the
-      "slot-names" property.
- 
- 
-      Slot iou#0-pci#0
- 
-          this slot is empty or its occupant is unconfigured
- 
- 
-      Slot iou#0-pci#1
- 
-          this slot contains an expansion chassis  with  two  hot-
-          pluggable  slots,  "pci3"  and "pci4". "pci3" and "pci4"
-          represent two PCI slots contained within that  expansion
-          chassis with physical slot numbers 3 and 4 respectively.
-          The expansion chassis in this  case  does  not  have  or
-          exports a serial-id.
- 
- 
-      Slot iou#0-pci#2
- 
-          this slot contains a third party expansion chassis  with
-          a  hexadecimal serial-id of 58071. Within that expansion
-          chassis are two hotpluggable slots,  "pcie1"  and  "spe-
-          cial". "pcie1" represents a PCI Express slot with physi-
-          cal slot number 1. The slot "special" has a label  which
-          is derived from the platform, hardware or firmware.
- 
- 
-      Slot iou#0-pci#3
- 
-          this slot contains a Sun expansion chassis with  an  FRU
-          identifier  of  "BADF".  This expansion chassis contains
-          three PCI Express slots, "pcie1", "pcie2",  and  "pcie3"
-          with physical slot numbers 1, 2, and 3 respectively; and
-          two PCI slots, "pci1"  and  "pci2"  with  physical  slot
-          numbers 1 and 2, respectively.
- 
- 
- 
-      The following command shows a listing for  a  topology  with
-      both  PCI Express and PCI attachment points in I/O expansion
-      chassis connected  hotpluggable  and  non-hotpluggable  host
-      slots:
- 
- 
-        example# cfgadm -s cols=ap_id:info
- 
- 
-        Ap_Id                          Information
-        Slot1                          Location: Slot1
-        Slot2:iob4ffa56.pcie1          Location: Slot2/iob4ffa56.pcie1
-        Slot2:iob4ffa56.pcie2          Location: Slot2/iob4ffa56.pcie2
-        Slot5:iob3901.pci1             Location: Slot2/iob3901.pci1
-        Slot5:iob3901.pci2             Location: Slot2/iob3901.pci2
- 
- 
- 
- 
-      In this example, the host system only has  one  hotpluggable
-      slot, "Slot1". We can infer that "Slot2" and "Slot5" are not
-      hotpluggable slots because they do not appear as  attachment
-      points  themselves  in  cfgadm. However, "Slot2" and "Slot5"
-      each contains a third party expansion chassis with hotplugg-
-      able slots.
- 
- 
- 
-      The following command shows a listing for  a  topology  with
-      attachment points that are lacking in certain device proper-
-      ties:
- 
- 
-        example# cfgadm -s cols=ap_id:info
- 
-        Ap_Id                          Information
-        px_pci7.pcie0                  Location: px_pci7.pcie0
-        px_pci11.pcie0                 Location: px_pci11.pcie0
-        px_pci11.pcie0:iob.pcie1       Location: px_pci11.pcie0/iob.pcie1
-        px_pci11.pcie0:iob.pcie2       Location: px_pci11.pcie0/iob.pcie2
-        px_pci11.pcie0:iob.pcie3       Location: px_pci11.pcie0/iob.pcie3
- 
- 
- 
- 
-      In this example, the host system contains  two  hotpluggable
-      slots,  "px_pci7.pcie0"  and "px_pci11.pcie0". In this case,
-      it uses "slot-id form (3)" ( the default form) for the  base
-      slot-path  component  in  the absolute-slot-path because the
-      framework could not obtain  enough  information  to  produce
-      other more descriptive forms of higher precedence.
- 
- 
- 
-      Interpreting right-to-left, attachment point "px_pci7.pcie0"
-      represents  a  PCI  Express  slot  with  PCI device number 0
-      (which does not imply a physical slot number of  the  same),
-      bound  to  nexus  driver  "px_pci",  instance  7.  Likewise,
-      attachment point "px_pci11.pcie0" represents a  PCI  Express
-      slot with PCI device number 0 bound to driver instance 11 of
-      px_pci.
- 
- 
-      Under "px_pci11.pcie0" is a third  party  expansion  chassis
-      without  a serial-id and with three hotpluggable PCI Express
-      slots.
- 
- 
- 
-      The following command shows a listing for  a  topology  with
-      attachment  point  paths  exceeding  the  ApId  field length
-      limit:
- 
- 
-        example# cfgadm -s cols=ap_id:info
- 
-        Ap_Id                          Information
-        pcie4                          Location: pcie4
-        pcie4:iobSUNW.pcie1            Location: pcie4/iobSUNW.pcie1
-        pcie4:iobSUNW.pcie2            Location: pcie4/iobSUNW.pcie2
-        iob8879c3f3.pci1
-                           Location: pcie4/iobSUNW.pcie2/iob8879c3f3.pci1
-        iob8879c3f3.pci2
-                           Location: pcie4/iobSUNW.pcie2/iob8879c3f3.pci2
-        iob8879c3f3.pci3
-                           Location: pcie4/iobSUNW.pcie2/iob8879c3f3.pci3
- 
- 
- 
- 
-      In this  example,  there  is  only  one  hotpluggable  slot,
-      "pcie4" in the host. Connected under "pcie4" is a SUN expan-
-      sion chassis with FRU identifier "SUNW".  Nested  under  PCI
-      Express   slot  "pcie2"  of  that  expansion  chassis  (ApId
-      pcie4:iobSUNW.pcie2) lies  another  expansion  chassis  with
-      three hotpluggable PCI slots.
- 
- 
- 
-      Because  the  length  of  the  absolute-slot-path  form   of
-      "pcie4/iobSUNW.pcie2/iob8879c3f3.pci1...3"  exceeds the ApId
-      field length limit, and the leaf slot-path component is glo-
-      bally  unique,  "ap_id  form  (2)"  is  used, where the leaf
-      slot-path component in the absolute-slot-path is used as the
-      final ApId.
- 
- 
- 
-      The following command shows a listing for  a  topology  with
-      attachment point paths exceeding the ApId field length limit
-      and lacking enough information to uniquely identify the leaf
-      slot-id on its own (for instance, missing the serial-id):
- 
- 
-        example# cfgadm -s cols=ap_id:info
- 
- 
-        Ap_Id                          Information
-        pcie4                          Location: pcie4
-        pcie4:iob4567812345678.pcie3   Location: pcie4/iob4567812345678.pcie3
-        px_pci20.pcie0
-                           Location: pcie4/iob4567812345678.pcie3/iob.pcie1
-        px_pci21.pcie0
-                           Location: pcie4/iob4567812345678.pcie3/iob.pcie2
- 
- 
- 
- 
-      In this  example,  there  is  only  one  hotpluggable  slot,
-      "pcie4"  in  the  host.  Connected  under "pcie4" is a third
-      party   expansion   chassis   with   hexadecimal   serial-id
-      4567812345678.  Nested under the PCI Express slot "pcie3" of
-      that expansion chassis (ApId  pcie4:iob4567812345678.pcie3),
-      lies  another third part expansion chassis without a serial-
-      id and with two hotpluggable PCI Express slots.
- 
- 
- 
-      Because  the  length  of  the  absolute-slot-path  form   of
-      "pcie4/iob4567812345678.pcie3/iob.pcie1...2"   exceeds   the
-      ApId field length limit, and the leaf slot-path component is
-      not  globally  unique, "ap_id form (3)" is used. "ap_id form
-      (2)" is where slot-id form (3) (default form)  of  the  leaf
-      slot-path component in the absolute-slot-path is used as the
-      final ApId.
- 
- 
- 
-      The default form or "slot-id form (3)" of the leaf component
-      ".../iob.pcie1"represents  a  PCI  Express  slot with device
-      number 0, bound to driver instance 20 of "px_pci". Likewise,
-      the  default  form  of  the  leaf  component ".../iob.pcie2"
-      represents a  PCI Express slot with device number  0,  bound
-      to driver instance 21 of "px_pci"
- 
- 
  FILES
       /usr/lib/cfgadm/pci.so.1
  
--- 366,371 ----
***************
*** 1003,1056 ****
  
  SEE ALSO
!      cfgadm(1M), config_admin(3CFGADM),  libcfgadm(3LIB),  attri-
!      butes(5)
  
--- 374,379 ----
  
  SEE ALSO
!      cfgadm(1M), cfgadm_shp(1M), config_admin(3CFGADM), libcfgadm(3LIB),
!      attributes(5)
  

--Boundary_(ID_FOVzSpfwRJe8qLHLlv3kzA)--

From Phi.Tran@sun.com Thu Sep  3 20:19:20 2009
Received: from sunmail4.singapore.sun.com (sunmail4.Singapore.Sun.COM [129.158.71.19])
	by sac.sfbay.sun.com (8.13.8+Sun/8.13.8) with ESMTP id n843JJnw010482
	for <psarc-ext@sac.sfbay.sun.com>; Thu, 3 Sep 2009 20:19:20 -0700 (PDT)
Received: from brm-avmta-1.central.sun.com (brm-avmta-1.Central.Sun.COM [129.147.4.11])
	by sunmail4.singapore.sun.com (8.13.4+Sun/8.13.3/ENSMAIL,v2.2) with ESMTP id n843JH0G021025
	for <@sunmail2sca.sfbay.sun.com:PSARC-ext@sun.com>; Fri, 4 Sep 2009 11:19:19 +0800 (SGT)
Received: from pmxchannel-daemon.brm-avmta-1.central.sun.com by
 brm-avmta-1.central.sun.com
 (Sun Java System Messaging Server 6.2-3.04 (built Jul 15 2005))
 id <0KPF00K05FW5QL00@brm-avmta-1.central.sun.com> for PSARC-ext@sun.com
 (ORCPT PSARC-ext@sun.com); Thu, 03 Sep 2009 21:19:17 -0600 (MDT)
Received: from sca-es-mail-2.sun.com ([192.18.43.133])
 by brm-avmta-1.central.sun.com
 (Sun Java System Messaging Server 6.2-3.04 (built Jul 15 2005))
 with ESMTP id <0KPF00814FW47L50@brm-avmta-1.central.sun.com> for
 PSARC-ext@sun.com (ORCPT PSARC-ext@sun.com); Thu,
 03 Sep 2009 21:19:17 -0600 (MDT)
Received: from fe-sfbay-09.sun.com ([192.18.43.129])
	by sca-es-mail-2.sun.com (8.13.7+Sun/8.12.9) with ESMTP id n843JGNK013013	for
 <PSARC-ext@sun.com>; Thu, 03 Sep 2009 20:19:16 -0700 (PDT)
Received: from conversion-daemon.fe-sfbay-09.sun.com by fe-sfbay-09.sun.com
 (Sun Java(tm) System Messaging Server 7u2-7.04 64bit (built Jul  2 2009))
 id <0KPF00J00FT25F00@fe-sfbay-09.sun.com> for PSARC-ext@sun.com
 (ORCPT PSARC-ext@sun.com); Thu, 03 Sep 2009 20:19:16 -0700 (PDT)
Received: from [129.153.2.14] ([unknown] [129.153.2.14])
 by fe-sfbay-09.sun.com (Sun Java(tm) System Messaging Server 7u2-7.04 64bit
 (built Jul  2 2009)) with ESMTPSA id <0KPF00MPOFW3NHA0@fe-sfbay-09.sun.com> for
 PSARC-ext@sun.com (ORCPT PSARC-ext@sun.com); Thu,
 03 Sep 2009 20:19:16 -0700 (PDT)
Date: Thu, 03 Sep 2009 20:19:15 -0700
From: Phi Tran <Phi.Tran@sun.com>
Subject: Opinion for review: PSARC/2008/181 Solaris Hotplug Framework
Sender: Phi.Tran@sun.com
To: PSARC-ext@sun.com
Message-id: <4AA08733.9030405@Sun.COM>
MIME-version: 1.0
Content-type: multipart/mixed; boundary="Boundary_(ID_Ei1w9dxMFk6xEFYZHMrEkw)"
X-PMX-Version: 5.4.1.325704
User-Agent: Thunderbird 2.0.0.21 (X11/20090311)
Status: RO
Content-Length: 18617

This is a multi-part message in MIME format.

--Boundary_(ID_Ei1w9dxMFk6xEFYZHMrEkw)
Content-type: text/plain; CHARSET=US-ASCII; format=flowed
Content-transfer-encoding: 7BIT

Please review the attached draft opinion by Thurs. 9/10/09.  Thanks.

Phi

--Boundary_(ID_Ei1w9dxMFk6xEFYZHMrEkw)
Content-type: text/plain; name=opinion.txt
Content-transfer-encoding: 7BIT
Content-disposition: inline; filename=opinion.txt


 sun
   microsystems              Systems Architecture Committee

_________________________________________________________________

Subject:       Solaris Hotplug Framework

Submitted by:  Colin Zou

File:          PSARC/2008/181/opinion.ms

Date:          September 3rd, 2009

Committee:     Garrett  D'Amore  (opinion  written  by   Phi
               Tran), Sebastien Roy.

Product Approval Committee:

               Solaris PAC
               solaris-pac-opinion@sun.com

1.  Summary

The main goal of this project is to deliver a generic common
hotplug framework -- a foundation which can support the hot-
plug functionality for any hotpluggable  bus  and  also,  to
support  device  migration  functionality  in  a virtualized
environment through virtual hotplug.

2.  Decision & Precedence Information

The project is approved as specified  in  references  [1]  -
[3].

The project may be delivered in a minor and/or patch release
of the ON consolidation.

3.  Interfaces

The project exports the following interfaces.

_______________________________________________________________________________
|                             Interfaces Exported                             |
|_________________________|_______________________|___________________________|
|Interface                |  Classification       |  Comments                 |
|_________________________|_______________________|___________________________|
|MODHPOPS                 |  Project Private      |  Modctl command for       |
|                         |                       |  hotplug operations       |
|MODHPOPS_CHANGE_STATE    |  Project Private      |  Modctl sub-command for   |
|                         |                       |  changing hotplug state   |
|MODHPOPS_CREATE_PORT     |  Project Private      |  Modctl sub-command for   |
|_________________________|_______________________|___________________________|

PSARC/2008/181                  Copyright 2009 Sun Microsyst

                           - 2 -

_______________________________________________________________________________
|                             Interfaces Exported                             |
|_________________________|_______________________|___________________________|
|Interface                |  Classification       |  Comments                 |
|_________________________|_______________________|___________________________|
|                         |                       |  creating a port          |
|MODHPOPS_REMOVE_PORT     |  Project Private      |  Modctl sub-command for   |
|                         |                       |  removing a port          |
|MODHPOPS_BUS_SET         |  Project Private      |  Modctl sub-command for   |
|                         |                       |  setting bus specific     |
|                         |                       |  hotplug properties.      |
|MODHPOPS_BUS_GET         |  Project Private      |  Modctl sub-command for   |
|                         |                       |  getting bus specific     |
|                         |                       |  hotplug properties.      |
|ddi_hp_property_t        |  Project Private      |  Structure used to get/set|
|                         |                       |  bus specific hotplug     |
|                         |                       |  properties.              |
|ndi_hp_register()        |  Consolidation Private|  Register a connection to |
|                         |                       |  hotplug framework        |
|ndi_hp_unregister()      |  Consolidation Private|  Unregister a connection  |
|                         |                       |  from hotplug framework   |
|ndi_hp_state_change_req()|  Consolidation Private|  Submit a state change    |
|                         |                       |  request to hotplug       |
|                         |                       |  framework                |
|ndi_hp_walk_cn()         |  Consolidation Private|  Walk the connections     |
|                         |                       |  linked to a device       |
|                         |                       |  node                     |
|ddi_hp_cn_info_t         |  Consolidation Private|  Structure for the        |
|                         |                       |  information of a         |
|                         |                       |  connection               |
|ddi_hp_cn_state_t        |  Consolidation Private|  enum for the hotplug     |
|                         |                       |  states of a connection   |
|BUSO_REV_10              |  Consolidation Private|  bus_ops busops_rev       |
|bus_hp_op()              |  Consolidation Private|  Add a bus_ops entry for  |
|                         |                       |  hotplug operations       |
|ddi_hp_op_t              |  Consolidation Private|  Hotplug operations       |
|pcicfg_configure()       |  Consolidation Private|  Update the existing      |
|                         |                       |  interface for probing and|
|                         |                       |  configuring a connection.|
|pcicfg_unconfigure()     |  Consolidation Private|  Update the existing      |
|                         |                       |  interface for unprobing  |
|                         |                       |  and unconfiguring a      |
|                         |                       |  connection.              |
|pcicfg_flags_t           |  Consolidation Private|  New flags for the        |
|                         |                       |  argument to              |
|                         |                       |  pcicfg_configure() and   |
|                         |                       |  pcicfg_unconfigure().    |
|_________________________|_______________________|___________________________|

PSARC/2008/181                  Copyright 2009 Sun Microsyst

                           - 3 -

______________________________________________________________________________
|                            Interfaces Exported                             |
|__________________________|_______________________|_________________________|
|Interface                 |  Classification       |  Comments               |
|__________________________|_______________________|_________________________|
|/usr/sbin/hotplug         |  Committed            |  hotplug(1M) CLI        |
|/usr/lib/hotplugd         |  Project Private      |  hotplugd(1M) daemon    |
|/usr/lib/cfgadm/shp.so.1  |  Uncommitted          |  cfgadm_shp(1M) plugin  |
|/lib/libhotplug.so.1      |  Consolidation Private|  libhotplug(3LIB)       |
|/var/run/hotplugd_door    |  Project Private      |  Door file, hotplugd(1M)|
|Hotplug Management        |  Uncommitted          |  Rights Prof.           |
|solaris.hotplug.          |  Uncommitted          |  Hierarchy              |
|solaris.hotplug.modify    |  Uncommitted          |  Modify Auth.           |
|solaris.smf.manage.hotplug|  Uncommitted          |  SMF Auth.              |
|__________________________|_______________________|_________________________|

_______________________________________________________________________________
|                             Interfaces Exported                             |
|____________________________________________________|_____________|__________|
|Interface                                           |  Class.     |  Comments|
|____________________________________________________|_____________|__________|
|/usr/lib/help/auths/locale/HotplugHeader.html       |  Uncommitted|  Help    |
|                                                    |             |  Files   |
|/usr/lib/help/auths/locale/HotplugModify.html       |  Uncommitted|  ""      |
|/usr/lib/help/auths/locale/SmfManageHotplug.html    |  Uncommitted|  ""      |
|/usr/lib/help/auths/locale/C/HotplugHeader.html     |  Uncommitted|  ""      |
|/usr/lib/help/auths/locale/C/HotplugModify.html     |  Uncommitted|  ""      |
|/usr/lib/help/auths/locale/C/SmfManageHotplug.html  |  Uncommitted|  ""      |
|/usr/lib/help/profiles/locale/RtHotplugMngmnt.html  |  Uncommitted|  ""      |
|/usr/lib/help/profiles/locale/C/RtHotplugMngmnt.html|  Uncommitted|  ""      |
|svc:/system/hotplug                                 |  Committed  |  FMRI    |
|/var/svc/manifest/system/hotplug.xml                |  Proj. Priv.|  Service |
|                                                    |             |  Manifest|
|/lib/svc/method/svc-hotplug                         |  Proj. Priv.|  Method  |
|                                                    |             |  Script  |
|____________________________________________________|_____________|__________|

_____________________________________________________________________
|                        Interfaces Exported                        |
|___________________|________________|______________________________|
|Interface          |  Classification|  Comments                    |
|___________________|________________|______________________________|
|DINFOHP            |  Consol. Priv. |  Flag for di_init() to       |
|                   |                |  include hotplug information |
|                   |                |  in snapshot.                |
|DI_HP_NIL          |  Consol. Priv. |  A NULL di_hp_t structure.   |
|DI_HP_CONNECTOR    |  Consol. Priv. |  Flag for di_walk_hp()       |
|                   |                |  to traverse hotplug         |
|                   |                |  connectors.                 |
|DI_HP_PORT         |  Consol. Priv. |  Flag for di_walk_hp()       |
|                   |                |  to traverse hotplug         |
|                   |                |  ports.                      |
|___________________|________________|______________________________|

PSARC/2008/181                  Copyright 2009 Sun Microsyst

                           - 4 -

_____________________________________________________________________
|                        Interfaces Exported                        |
|___________________|________________|______________________________|
|Interface          |  Classification|  Comments                    |
|___________________|________________|______________________________|
|di_hp_t            |  Consol. Priv. |  Structure of a hotplug      |
|                   |                |  connector associated        |
|                   |                |  with a di_node_t.           |
|di_walk_hp()       |  Consol. Priv. |  Traverse hotplug            |
|                   |                |  connectors associated       |
|                   |                |  with a di_node_t.           |
|di_hp_next()       |  Consol. Priv. |  Get next di_hp_t            |
|                   |                |  in a list.                  |
|di_hp_name()       |  Consol. Priv. |  Get name of a               |
|                   |                |  di_hp_t connector.          |
|di_hp_state()      |  Consol. Priv. |  Get state of a              |
|                   |                |  di_hp_t connector.          |
|di_hp_last_change()|  Consol. Priv. |  Get timestamp of last       |
|                   |                |  state change of             |
|                   |                |  a di_hp_t connection.       |
|di_hp_type()       |  Consol. Priv. |  Return connection type.     |
|di_hp_description()|  Consol. Priv. |  Return description of the   |
|                   |                |  hotplug handle              |
|                   |                |  (e.g. "PCI Slot", etc.)     |
|di_hp_child()      |  Consol. Priv. |  Return child device         |
|                   |                |  node of a virtual           |
|                   |                |  hotplug port.               |
|di_hp_connection() |  Consol. Priv. |  Return connection number.   |
|di_hp_depends_on() |  Consol. Priv. |  Return depended upon        |
|                   |                |  connection number           |
|HP_NODE_DEVICE     |  Consol. Priv. |  Node type for a device      |
|                   |                |  node.                       |
|HP_NODE_CONNECTOR  |  Consol. Priv. |  Node type for physical      |
|                   |                |  connector                   |
|HP_NODE_PORT       |  Consol. Priv. |  Node type for virtual       |
|                   |                |  port.                       |
|HP_NODE_USAGE      |  Consol. Priv. |  Node type for usage         |
|                   |                |  record.                     |
|hp_node_t          |  Consol. Priv. |  Structure of a node         |
|                   |                |  in snapshot.                |
|hp_init()          |  Consol. Priv. |  Initialize a hotplug        |
|                   |                |  snapshot.                   |
|hp_fini()          |  Consol. Priv. |  Cleanup/Remove hotplug      |
|                   |                |  snapshot.                   |
|hp_traverse()      |  Consol. Priv. |  Traverse nodes in a         |
|                   |                |  snapshot.                   |
|hp_name()          |                |  Consol. Priv.               |
|hp_path()          |                |  Consol. Priv.               |
|hp_type()          |  Consol. Priv. |  Get a node's type.          |
|hp_description()   |  Consol. Priv. |  Get description of          |
|                   |                |  connector or port.          |
|hp_state()         |  Consol. Priv. |  Get a node's current state. |
|hp_last_change()   |  Consol. Priv. |  Get timestamp when a        |
|                   |                |  connector or port's         |
|___________________|________________|______________________________|

PSARC/2008/181                  Copyright 2009 Sun Microsyst

                           - 5 -

_____________________________________________________________________
|                        Interfaces Exported                        |
|___________________|________________|______________________________|
|Interface          |  Classification|  Comments                    |
|___________________|________________|______________________________|
|                   |                |  state was last changed.     |
|hp_usage()         |  Consol. Priv. |  Get a node's usage          |
|                   |                |  description.                |
|hp_parent()        |  Consol. Priv. |  Get a node's parent.        |
|hp_child()         |  Consol. Priv. |  Get a node's first child.   |
|hp_sibling()       |  Consol. Priv. |  Get a node's next sibling.  |
|hp_set_state()     |  Consol. Priv. |  Command to initiate         |
|                   |                |  state change.               |
|hp_set_private()   |  Consol. Priv. |  Bus specific 'set' function.|
|hp_get_private()   |  Consol. Priv. |  Bus specific 'get' function.|
|___________________|________________|______________________________|

The project imports the following interfaces.

________________________________________________________________
|                     Interfaces Imported                      |
|_________|_______________________|____________________________|
|Interface|  Classification       |  Comments                  |
|_________|_______________________|____________________________|
|pcicfg   |  Consolidation Private|  configure/unconfigure PCI |
|         |                       |  devices                   |
|modctl() |  See comments.        |  A system call with a      |
|         |                       |  long history.             |
|         |                       |  Unknown interface level,  |
|         |                       |  but recent modctl commands|
|         |                       |  are usually Consolidation |
|         |                       |  Private or Project        |
|         |                       |  Private.                  |
|ibdevinfo|  Committed            |  To access device and      |
|         |                       |  connection information.   |
|librcm   |  Consolidation Private|  To get RCM usage, and     |
|         |                       |  RCM offline.              |
|libsecdb |  Committed            |  To perform RBAC           |
|         |                       |  authorization checks.     |
|libbsm   |  Contract Private     |  To perform auditing.      |
|_________|_______________________|____________________________|

4.  Opinion

4.1.  DDI_HP_CN_TYPE

A member suggested that the  project  could  predefine  more
values  for  DDI_HP_CN_TYPE for devices such as USB, PCMCIA,
CARDBUS, FIREWIRE, SCSI, FC, IB, and  SDCARD.   The  project
team  responded  that they do not have enough information on
which  buses  will  be  supported   or   how   exactly   the

PSARC/2008/181                  Copyright 2009 Sun Microsyst

                           - 6 -

implementation  would  look.  An example given is that there
are different versions of USB and it is not  understood  yet
if one value or multiple values should be reserved.

4.2.  hotplug(1M) -o Option

A member noted that the hotplug(1M) man page  doesn't  docu-
ment the arguments that can be used with the -o option.  The
project team agreed to add a feature  that  will  allow  the
user  to get help about the supported options and their pos-
sible values through the hotplug(1M) command.

5.  Minority Opinion(s)

None.

6.  Advisory Information

None.

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/2008/181.

1.   20 Questions
     File: commitment2.materials/shp-proj-20q.txt

2.   Project Specification
     File: commitment2.materials/shp-overview.pdf

3.   Issues and Responses
     File: issues

4.   Man Page for hotplug commands
     File: commitment2.materials/hotplug.1m.txt

5.   Man Page for hotplug daemon
     File: commitment2.materials/hotplugd.1m.txt

PSARC/2008/181                  Copyright 2009 Sun Microsyst


--Boundary_(ID_Ei1w9dxMFk6xEFYZHMrEkw)--

From sac-owner Wed Sep 16 10:08:28 2009
Received: from newsunmail1brm.central.sun.com (newsunmail1brm.Central.Sun.COM [129.147.62.245])
	by sac.sfbay.sun.com (8.13.8+Sun/8.13.8) with ESMTP id n8GH8Sqw006411
	for <sac-review@sac.sfbay.sun.com>; Wed, 16 Sep 2009 10:08:28 -0700 (PDT)
Received: from nwk-avmta-1.SFBay.Sun.COM (nwk-avmta-1.SFBay.Sun.COM [129.146.11.74])
	by newsunmail1brm.central.sun.com (8.13.7+Sun/8.13.7/ENSMAIL,v2.2) with ESMTP id n8GH8SS3053583
	for <@sunmail2sca.sfbay.sun.com:sac-review@sun.com>; Wed, 16 Sep 2009 11:08:28 -0600 (MDT)
Received: from pmxchannel-daemon.nwk-avmta-1.sfbay.Sun.COM by
 nwk-avmta-1.sfbay.Sun.COM
 (Sun Java System Messaging Server 6.2-3.04 (built Jul 15 2005))
 id <0KQ200A09QA4ME00@nwk-avmta-1.sfbay.Sun.COM> for sac-review@sun.com
 (ORCPT sac-review@sun.com); Wed, 16 Sep 2009 10:08:28 -0700 (PDT)
Received: from sca-es-mail-2.sun.com ([192.18.43.133])
 by nwk-avmta-1.sfbay.Sun.COM
 (Sun Java System Messaging Server 6.2-3.04 (built Jul 15 2005))
 with ESMTP id <0KQ2009MWQA3NI10@nwk-avmta-1.sfbay.Sun.COM> for
 sac-review@sun.com (ORCPT sac-review@sun.com); Wed,
 16 Sep 2009 10:08:27 -0700 (PDT)
Received: from fe-sfbay-10.sun.com ([192.18.43.129])
	by sca-es-mail-2.sun.com (8.13.7+Sun/8.12.9) with ESMTP id n8GH8R2g028260	for
 <sac-review@sun.com>; Wed, 16 Sep 2009 10:08:27 -0700 (PDT)
Received: from conversion-daemon.fe-sfbay-10.sun.com by fe-sfbay-10.sun.com
 (Sun Java(tm) System Messaging Server 7u2-7.04 64bit (built Jul  2 2009))
 id <0KQ200C00PRDII00@fe-sfbay-10.sun.com> for sac-review@sun.com
 (ORCPT sac-review@sun.com); Wed, 16 Sep 2009 10:08:27 -0700 (PDT)
Received: from [129.153.2.14] ([unknown] [129.153.2.14])
 by fe-sfbay-10.sun.com (Sun Java(tm) System Messaging Server 7u2-7.04 64bit
 (built Jul  2 2009)) with ESMTPSA id <0KQ200JU5QA2DG80@fe-sfbay-10.sun.com> for
 sac-review@sun.com (ORCPT sac-review@sun.com); Wed,
 16 Sep 2009 10:08:27 -0700 (PDT)
Date: Wed, 16 Sep 2009 10:08:26 -0700
From: Phi Tran <Phi.Tran@sun.com>
Subject: Opinion for review: PSARC/2008/181 Solaris Hotplug Framework
Sender: Phi.Tran@sun.com
To: sac-review@sun.com
Message-id: <4AB11B8A.5080902@Sun.COM>
MIME-version: 1.0
Content-type: multipart/mixed; boundary="Boundary_(ID_NG60I5NkdUThr/Q6TZNLQw)"
X-PMX-Version: 5.4.1.325704
User-Agent: Thunderbird 2.0.0.21 (X11/20090311)
Status: RO
Content-Length: 18608

This is a multi-part message in MIME format.

--Boundary_(ID_NG60I5NkdUThr/Q6TZNLQw)
Content-type: text/plain; CHARSET=US-ASCII; format=flowed
Content-transfer-encoding: 7BIT

Please review the attached opinion by Wed 9/23/09.  Thanks.

Phi

--Boundary_(ID_NG60I5NkdUThr/Q6TZNLQw)
Content-type: text/plain; name=opinion.txt
Content-transfer-encoding: 7BIT
Content-disposition: inline; filename=opinion.txt


 sun
   microsystems              Systems Architecture Committee

_________________________________________________________________

Subject:       Solaris Hotplug Framework

Submitted by:  Colin Zou

File:          PSARC/2008/181/opinion.ms

Date:          September 3rd, 2009

Committee:     Garrett  D'Amore  (opinion  written  by   Phi
               Tran), Sebastien Roy.

Product Approval Committee:

               Solaris PAC
               solaris-pac-opinion@sun.com

1.  Summary

The main goal of this project is to deliver a generic common
hotplug framework -- a foundation which can support the hot-
plug functionality for any hotpluggable  bus  and  also,  to
support  device  migration  functionality  in  a virtualized
environment through virtual hotplug.

2.  Decision & Precedence Information

The project is approved as specified  in  references  [1]  -
[3].

The project may be delivered in a minor and/or patch release
of the ON consolidation.

3.  Interfaces

The project exports the following interfaces.

_______________________________________________________________________________
|                             Interfaces Exported                             |
|_________________________|_______________________|___________________________|
|Interface                |  Classification       |  Comments                 |
|_________________________|_______________________|___________________________|
|MODHPOPS                 |  Project Private      |  Modctl command for       |
|                         |                       |  hotplug operations       |
|MODHPOPS_CHANGE_STATE    |  Project Private      |  Modctl sub-command for   |
|                         |                       |  changing hotplug state   |
|MODHPOPS_CREATE_PORT     |  Project Private      |  Modctl sub-command for   |
|_________________________|_______________________|___________________________|

PSARC/2008/181                  Copyright 2009 Sun Microsyst

                           - 2 -

_______________________________________________________________________________
|                             Interfaces Exported                             |
|_________________________|_______________________|___________________________|
|Interface                |  Classification       |  Comments                 |
|_________________________|_______________________|___________________________|
|                         |                       |  creating a port          |
|MODHPOPS_REMOVE_PORT     |  Project Private      |  Modctl sub-command for   |
|                         |                       |  removing a port          |
|MODHPOPS_BUS_SET         |  Project Private      |  Modctl sub-command for   |
|                         |                       |  setting bus specific     |
|                         |                       |  hotplug properties.      |
|MODHPOPS_BUS_GET         |  Project Private      |  Modctl sub-command for   |
|                         |                       |  getting bus specific     |
|                         |                       |  hotplug properties.      |
|ddi_hp_property_t        |  Project Private      |  Structure used to get/set|
|                         |                       |  bus specific hotplug     |
|                         |                       |  properties.              |
|ndi_hp_register()        |  Consolidation Private|  Register a connection to |
|                         |                       |  hotplug framework        |
|ndi_hp_unregister()      |  Consolidation Private|  Unregister a connection  |
|                         |                       |  from hotplug framework   |
|ndi_hp_state_change_req()|  Consolidation Private|  Submit a state change    |
|                         |                       |  request to hotplug       |
|                         |                       |  framework                |
|ndi_hp_walk_cn()         |  Consolidation Private|  Walk the connections     |
|                         |                       |  linked to a device       |
|                         |                       |  node                     |
|ddi_hp_cn_info_t         |  Consolidation Private|  Structure for the        |
|                         |                       |  information of a         |
|                         |                       |  connection               |
|ddi_hp_cn_state_t        |  Consolidation Private|  enum for the hotplug     |
|                         |                       |  states of a connection   |
|BUSO_REV_10              |  Consolidation Private|  bus_ops busops_rev       |
|bus_hp_op()              |  Consolidation Private|  Add a bus_ops entry for  |
|                         |                       |  hotplug operations       |
|ddi_hp_op_t              |  Consolidation Private|  Hotplug operations       |
|pcicfg_configure()       |  Consolidation Private|  Update the existing      |
|                         |                       |  interface for probing and|
|                         |                       |  configuring a connection.|
|pcicfg_unconfigure()     |  Consolidation Private|  Update the existing      |
|                         |                       |  interface for unprobing  |
|                         |                       |  and unconfiguring a      |
|                         |                       |  connection.              |
|pcicfg_flags_t           |  Consolidation Private|  New flags for the        |
|                         |                       |  argument to              |
|                         |                       |  pcicfg_configure() and   |
|                         |                       |  pcicfg_unconfigure().    |
|_________________________|_______________________|___________________________|

PSARC/2008/181                  Copyright 2009 Sun Microsyst

                           - 3 -

______________________________________________________________________________
|                            Interfaces Exported                             |
|__________________________|_______________________|_________________________|
|Interface                 |  Classification       |  Comments               |
|__________________________|_______________________|_________________________|
|/usr/sbin/hotplug         |  Committed            |  hotplug(1M) CLI        |
|/usr/lib/hotplugd         |  Project Private      |  hotplugd(1M) daemon    |
|/usr/lib/cfgadm/shp.so.1  |  Uncommitted          |  cfgadm_shp(1M) plugin  |
|/lib/libhotplug.so.1      |  Consolidation Private|  libhotplug(3LIB)       |
|/var/run/hotplugd_door    |  Project Private      |  Door file, hotplugd(1M)|
|Hotplug Management        |  Uncommitted          |  Rights Prof.           |
|solaris.hotplug.          |  Uncommitted          |  Hierarchy              |
|solaris.hotplug.modify    |  Uncommitted          |  Modify Auth.           |
|solaris.smf.manage.hotplug|  Uncommitted          |  SMF Auth.              |
|__________________________|_______________________|_________________________|

_______________________________________________________________________________
|                             Interfaces Exported                             |
|____________________________________________________|_____________|__________|
|Interface                                           |  Class.     |  Comments|
|____________________________________________________|_____________|__________|
|/usr/lib/help/auths/locale/HotplugHeader.html       |  Uncommitted|  Help    |
|                                                    |             |  Files   |
|/usr/lib/help/auths/locale/HotplugModify.html       |  Uncommitted|  ""      |
|/usr/lib/help/auths/locale/SmfManageHotplug.html    |  Uncommitted|  ""      |
|/usr/lib/help/auths/locale/C/HotplugHeader.html     |  Uncommitted|  ""      |
|/usr/lib/help/auths/locale/C/HotplugModify.html     |  Uncommitted|  ""      |
|/usr/lib/help/auths/locale/C/SmfManageHotplug.html  |  Uncommitted|  ""      |
|/usr/lib/help/profiles/locale/RtHotplugMngmnt.html  |  Uncommitted|  ""      |
|/usr/lib/help/profiles/locale/C/RtHotplugMngmnt.html|  Uncommitted|  ""      |
|svc:/system/hotplug                                 |  Committed  |  FMRI    |
|/var/svc/manifest/system/hotplug.xml                |  Proj. Priv.|  Service |
|                                                    |             |  Manifest|
|/lib/svc/method/svc-hotplug                         |  Proj. Priv.|  Method  |
|                                                    |             |  Script  |
|____________________________________________________|_____________|__________|

_____________________________________________________________________
|                        Interfaces Exported                        |
|___________________|________________|______________________________|
|Interface          |  Classification|  Comments                    |
|___________________|________________|______________________________|
|DINFOHP            |  Consol. Priv. |  Flag for di_init() to       |
|                   |                |  include hotplug information |
|                   |                |  in snapshot.                |
|DI_HP_NIL          |  Consol. Priv. |  A NULL di_hp_t structure.   |
|DI_HP_CONNECTOR    |  Consol. Priv. |  Flag for di_walk_hp()       |
|                   |                |  to traverse hotplug         |
|                   |                |  connectors.                 |
|DI_HP_PORT         |  Consol. Priv. |  Flag for di_walk_hp()       |
|                   |                |  to traverse hotplug         |
|                   |                |  ports.                      |
|___________________|________________|______________________________|

PSARC/2008/181                  Copyright 2009 Sun Microsyst

                           - 4 -

_____________________________________________________________________
|                        Interfaces Exported                        |
|___________________|________________|______________________________|
|Interface          |  Classification|  Comments                    |
|___________________|________________|______________________________|
|di_hp_t            |  Consol. Priv. |  Structure of a hotplug      |
|                   |                |  connector associated        |
|                   |                |  with a di_node_t.           |
|di_walk_hp()       |  Consol. Priv. |  Traverse hotplug            |
|                   |                |  connectors associated       |
|                   |                |  with a di_node_t.           |
|di_hp_next()       |  Consol. Priv. |  Get next di_hp_t            |
|                   |                |  in a list.                  |
|di_hp_name()       |  Consol. Priv. |  Get name of a               |
|                   |                |  di_hp_t connector.          |
|di_hp_state()      |  Consol. Priv. |  Get state of a              |
|                   |                |  di_hp_t connector.          |
|di_hp_last_change()|  Consol. Priv. |  Get timestamp of last       |
|                   |                |  state change of             |
|                   |                |  a di_hp_t connection.       |
|di_hp_type()       |  Consol. Priv. |  Return connection type.     |
|di_hp_description()|  Consol. Priv. |  Return description of the   |
|                   |                |  hotplug handle              |
|                   |                |  (e.g. "PCI Slot", etc.)     |
|di_hp_child()      |  Consol. Priv. |  Return child device         |
|                   |                |  node of a virtual           |
|                   |                |  hotplug port.               |
|di_hp_connection() |  Consol. Priv. |  Return connection number.   |
|di_hp_depends_on() |  Consol. Priv. |  Return depended upon        |
|                   |                |  connection number           |
|HP_NODE_DEVICE     |  Consol. Priv. |  Node type for a device      |
|                   |                |  node.                       |
|HP_NODE_CONNECTOR  |  Consol. Priv. |  Node type for physical      |
|                   |                |  connector                   |
|HP_NODE_PORT       |  Consol. Priv. |  Node type for virtual       |
|                   |                |  port.                       |
|HP_NODE_USAGE      |  Consol. Priv. |  Node type for usage         |
|                   |                |  record.                     |
|hp_node_t          |  Consol. Priv. |  Structure of a node         |
|                   |                |  in snapshot.                |
|hp_init()          |  Consol. Priv. |  Initialize a hotplug        |
|                   |                |  snapshot.                   |
|hp_fini()          |  Consol. Priv. |  Cleanup/Remove hotplug      |
|                   |                |  snapshot.                   |
|hp_traverse()      |  Consol. Priv. |  Traverse nodes in a         |
|                   |                |  snapshot.                   |
|hp_name()          |                |  Consol. Priv.               |
|hp_path()          |                |  Consol. Priv.               |
|hp_type()          |  Consol. Priv. |  Get a node's type.          |
|hp_description()   |  Consol. Priv. |  Get description of          |
|                   |                |  connector or port.          |
|hp_state()         |  Consol. Priv. |  Get a node's current state. |
|hp_last_change()   |  Consol. Priv. |  Get timestamp when a        |
|                   |                |  connector or port's         |
|___________________|________________|______________________________|

PSARC/2008/181                  Copyright 2009 Sun Microsyst

                           - 5 -

_____________________________________________________________________
|                        Interfaces Exported                        |
|___________________|________________|______________________________|
|Interface          |  Classification|  Comments                    |
|___________________|________________|______________________________|
|                   |                |  state was last changed.     |
|hp_usage()         |  Consol. Priv. |  Get a node's usage          |
|                   |                |  description.                |
|hp_parent()        |  Consol. Priv. |  Get a node's parent.        |
|hp_child()         |  Consol. Priv. |  Get a node's first child.   |
|hp_sibling()       |  Consol. Priv. |  Get a node's next sibling.  |
|hp_set_state()     |  Consol. Priv. |  Command to initiate         |
|                   |                |  state change.               |
|hp_set_private()   |  Consol. Priv. |  Bus specific 'set' function.|
|hp_get_private()   |  Consol. Priv. |  Bus specific 'get' function.|
|___________________|________________|______________________________|

The project imports the following interfaces.

________________________________________________________________
|                     Interfaces Imported                      |
|_________|_______________________|____________________________|
|Interface|  Classification       |  Comments                  |
|_________|_______________________|____________________________|
|pcicfg   |  Consolidation Private|  configure/unconfigure PCI |
|         |                       |  devices                   |
|modctl() |  See comments.        |  A system call with a      |
|         |                       |  long history.             |
|         |                       |  Unknown interface level,  |
|         |                       |  but recent modctl commands|
|         |                       |  are usually Consolidation |
|         |                       |  Private or Project        |
|         |                       |  Private.                  |
|ibdevinfo|  Committed            |  To access device and      |
|         |                       |  connection information.   |
|librcm   |  Consolidation Private|  To get RCM usage, and     |
|         |                       |  RCM offline.              |
|libsecdb |  Committed            |  To perform RBAC           |
|         |                       |  authorization checks.     |
|libbsm   |  Contract Private     |  To perform auditing.      |
|_________|_______________________|____________________________|

4.  Opinion

4.1.  DDI_HP_CN_TYPE

A member suggested that the  project  could  predefine  more
values  for  DDI_HP_CN_TYPE for devices such as USB, PCMCIA,
CARDBUS, FIREWIRE, SCSI, FC, IB, and  SDCARD.   The  project
team  responded  that they do not have enough information on
which  buses  will  be  supported   or   how   exactly   the

PSARC/2008/181                  Copyright 2009 Sun Microsyst

                           - 6 -

implementation  would  look.  An example given is that there
are different versions of USB and it is not  understood  yet
if one value or multiple values should be reserved.

4.2.  hotplug(1M) -o Option

A member noted that the hotplug(1M) man page  doesn't  docu-
ment the arguments that can be used with the -o option.  The
project team agreed to add a feature  that  will  allow  the
user  to get help about the supported options and their pos-
sible values through the hotplug(1M) command.

5.  Minority Opinion(s)

None.

6.  Advisory Information

None.

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/2008/181.

1.   20 Questions
     File: commitment2.materials/shp-proj-20q.txt

2.   Project Specification
     File: commitment2.materials/shp-overview.pdf

3.   Issues and Responses
     File: issues

4.   Man Page for hotplug commands
     File: commitment2.materials/hotplug.1m.txt

5.   Man Page for hotplug daemon
     File: commitment2.materials/hotplugd.1m.txt

PSARC/2008/181                  Copyright 2009 Sun Microsyst


--Boundary_(ID_NG60I5NkdUThr/Q6TZNLQw)--

From sac-owner Wed Sep 23 23:47:00 2009
Received: from newsunmail1brm.central.sun.com (newsunmail1brm.Central.Sun.COM [129.147.62.245])
	by sac.sfbay.sun.com (8.13.8+Sun/8.13.8) with ESMTP id n8O6kxfZ005594
	for <sac-opinion@sac.eng.sun.com>; Wed, 23 Sep 2009 23:46:59 -0700 (PDT)
Received: from newsunmail1brm.central.sun.com (localhost [127.0.0.1])
	by newsunmail1brm.central.sun.com (8.13.7+Sun/8.13.7/ENSMAIL,v2.2) with ESMTP id n8O6kxAK065180
	for <sac-opinion-not-2b-used-directly@newsunmail1brm.central.sun.com>; Thu, 24 Sep 2009 00:46:59 -0600 (MDT)
Received: (from noaccess@localhost)
	by newsunmail1brm.central.sun.com (8.13.7+Sun/8.13.7/Submit) id n8O6kwiL065177
	for sac-opinion-not-2b-used-directly; Thu, 24 Sep 2009 00:46:58 -0600 (MDT)
Received: from brm-avmta-1.central.sun.com (brm-avmta-1.Central.Sun.COM [129.147.4.11])
	by newsunmail1brm.central.sun.com (8.13.7+Sun/8.13.7/ENSMAIL,v2.2) with ESMTP id n8O6kw0E065169
	for <@sunmail2sca.sfbay.sun.com:sac-opinion@sun.com>; Thu, 24 Sep 2009 00:46:58 -0600 (MDT)
Received: from pmxchannel-daemon.brm-avmta-1.central.sun.com by
 brm-avmta-1.central.sun.com
 (Sun Java System Messaging Server 6.2-3.04 (built Jul 15 2005))
 id <0KQG00C03QU8J100@brm-avmta-1.central.sun.com> for sac-opinion@sun.com
 (ORCPT sac-opinion@sun.com); Thu, 24 Sep 2009 00:46:56 -0600 (MDT)
Received: from sca-es-mail-1.sun.com ([192.18.43.132])
 by brm-avmta-1.central.sun.com
 (Sun Java System Messaging Server 6.2-3.04 (built Jul 15 2005))
 with ESMTP id <0KQG003PIQU8RAD0@brm-avmta-1.central.sun.com> for
 sac-opinion@sun.com (ORCPT sac-opinion@sun.com); Thu,
 24 Sep 2009 00:46:56 -0600 (MDT)
Received: from fe-sfbay-09.sun.com ([192.18.43.129])
	by sca-es-mail-1.sun.com (8.13.7+Sun/8.12.9) with ESMTP id n8O6kuMJ005990	for
 <sac-opinion@sun.com>; Wed, 23 Sep 2009 23:46:56 -0700 (PDT)
Received: from conversion-daemon.fe-sfbay-09.sun.com by fe-sfbay-09.sun.com
 (Sun Java(tm) System Messaging Server 7u2-7.04 64bit (built Jul  2 2009))
 id <0KQG00D00QHBA900@fe-sfbay-09.sun.com> for sac-opinion@sun.com
 (ORCPT sac-opinion@sun.com); Wed, 23 Sep 2009 23:46:56 -0700 (PDT)
Received: from [129.153.2.14] ([unknown] [129.153.2.14])
 by fe-sfbay-09.sun.com (Sun Java(tm) System Messaging Server 7u2-7.04 64bit
 (built Jul  2 2009)) with ESMTPSA id <0KQG00J0SQU7GT30@fe-sfbay-09.sun.com>;
 Wed, 23 Sep 2009 23:46:55 -0700 (PDT)
Date: Wed, 23 Sep 2009 23:46:55 -0700
From: Phi Tran <Phi.Tran@sun.com>
Subject: Opinion: PSARC/2008/181 Solaris Hotplug Framework
Sender: Phi.Tran@sun.com
To: sac-opinion@sun.com
Cc: sfsc-opinion@scs.sun.com
Message-id: <4ABB15DF.9090509@Sun.COM>
MIME-version: 1.0
Content-type: multipart/mixed; boundary="Boundary_(ID_Ikhu3nHgXhuUpvK2YiOl4A)"
X-PMX-Version: 5.4.1.325704
User-Agent: Thunderbird 2.0.0.21 (X11/20090311)
Status: RO
Content-Length: 18637

This is a multi-part message in MIME format.

--Boundary_(ID_Ikhu3nHgXhuUpvK2YiOl4A)
Content-type: text/plain; CHARSET=US-ASCII; format=flowed
Content-transfer-encoding: 7BIT

The review for the opinion has been completed and the case is marked 
"closed approved".

Phi

--Boundary_(ID_Ikhu3nHgXhuUpvK2YiOl4A)
Content-type: text/plain; name=opinion.txt
Content-transfer-encoding: 7BIT
Content-disposition: inline; filename=opinion.txt


 sun
   microsystems              Systems Architecture Committee

_________________________________________________________________

Subject:       Solaris Hotplug Framework

Submitted by:  Colin Zou

File:          PSARC/2008/181/opinion.ms

Date:          September 3rd, 2009

Committee:     Garrett  D'Amore  (opinion  written  by   Phi
               Tran), Sebastien Roy.

Product Approval Committee:

               Solaris PAC
               solaris-pac-opinion@sun.com

1.  Summary

The main goal of this project is to deliver a generic common
hotplug framework -- a foundation which can support the hot-
plug functionality for any hotpluggable  bus  and  also,  to
support  device  migration  functionality  in  a virtualized
environment through virtual hotplug.

2.  Decision & Precedence Information

The project is approved as specified  in  references  [1]  -
[3].

The project may be delivered in a minor and/or patch release
of the ON consolidation.

3.  Interfaces

The project exports the following interfaces.

_______________________________________________________________________________
|                             Interfaces Exported                             |
|_________________________|_______________________|___________________________|
|Interface                |  Classification       |  Comments                 |
|_________________________|_______________________|___________________________|
|MODHPOPS                 |  Project Private      |  Modctl command for       |
|                         |                       |  hotplug operations       |
|MODHPOPS_CHANGE_STATE    |  Project Private      |  Modctl sub-command for   |
|                         |                       |  changing hotplug state   |
|MODHPOPS_CREATE_PORT     |  Project Private      |  Modctl sub-command for   |
|_________________________|_______________________|___________________________|

PSARC/2008/181               Copyright 2009 Sun Microsystems

                           - 2 -

_______________________________________________________________________________
|                             Interfaces Exported                             |
|_________________________|_______________________|___________________________|
|Interface                |  Classification       |  Comments                 |
|_________________________|_______________________|___________________________|
|                         |                       |  creating a port          |
|MODHPOPS_REMOVE_PORT     |  Project Private      |  Modctl sub-command for   |
|                         |                       |  removing a port          |
|MODHPOPS_BUS_SET         |  Project Private      |  Modctl sub-command for   |
|                         |                       |  setting bus specific     |
|                         |                       |  hotplug properties.      |
|MODHPOPS_BUS_GET         |  Project Private      |  Modctl sub-command for   |
|                         |                       |  getting bus specific     |
|                         |                       |  hotplug properties.      |
|ddi_hp_property_t        |  Project Private      |  Structure used to get/set|
|                         |                       |  bus specific hotplug     |
|                         |                       |  properties.              |
|ndi_hp_register()        |  Consolidation Private|  Register a connection to |
|                         |                       |  hotplug framework        |
|ndi_hp_unregister()      |  Consolidation Private|  Unregister a connection  |
|                         |                       |  from hotplug framework   |
|ndi_hp_state_change_req()|  Consolidation Private|  Submit a state change    |
|                         |                       |  request to hotplug       |
|                         |                       |  framework                |
|ndi_hp_walk_cn()         |  Consolidation Private|  Walk the connections     |
|                         |                       |  linked to a device       |
|                         |                       |  node                     |
|ddi_hp_cn_info_t         |  Consolidation Private|  Structure for the        |
|                         |                       |  information of a         |
|                         |                       |  connection               |
|ddi_hp_cn_state_t        |  Consolidation Private|  enum for the hotplug     |
|                         |                       |  states of a connection   |
|BUSO_REV_10              |  Consolidation Private|  bus_ops busops_rev       |
|bus_hp_op()              |  Consolidation Private|  Add a bus_ops entry for  |
|                         |                       |  hotplug operations       |
|ddi_hp_op_t              |  Consolidation Private|  Hotplug operations       |
|pcicfg_configure()       |  Consolidation Private|  Update the existing      |
|                         |                       |  interface for probing and|
|                         |                       |  configuring a connection.|
|pcicfg_unconfigure()     |  Consolidation Private|  Update the existing      |
|                         |                       |  interface for unprobing  |
|                         |                       |  and unconfiguring a      |
|                         |                       |  connection.              |
|pcicfg_flags_t           |  Consolidation Private|  New flags for the        |
|                         |                       |  argument to              |
|                         |                       |  pcicfg_configure() and   |
|                         |                       |  pcicfg_unconfigure().    |
|_________________________|_______________________|___________________________|

PSARC/2008/181               Copyright 2009 Sun Microsystems

                           - 3 -

______________________________________________________________________________
|                            Interfaces Exported                             |
|__________________________|_______________________|_________________________|
|Interface                 |  Classification       |  Comments               |
|__________________________|_______________________|_________________________|
|/usr/sbin/hotplug         |  Committed            |  hotplug(1M) CLI        |
|/usr/lib/hotplugd         |  Project Private      |  hotplugd(1M) daemon    |
|/usr/lib/cfgadm/shp.so.1  |  Uncommitted          |  cfgadm_shp(1M) plugin  |
|/lib/libhotplug.so.1      |  Consolidation Private|  libhotplug(3LIB)       |
|/var/run/hotplugd_door    |  Project Private      |  Door file, hotplugd(1M)|
|Hotplug Management        |  Uncommitted          |  Rights Prof.           |
|solaris.hotplug.          |  Uncommitted          |  Hierarchy              |
|solaris.hotplug.modify    |  Uncommitted          |  Modify Auth.           |
|solaris.smf.manage.hotplug|  Uncommitted          |  SMF Auth.              |
|__________________________|_______________________|_________________________|

_______________________________________________________________________________
|                             Interfaces Exported                             |
|____________________________________________________|_____________|__________|
|Interface                                           |  Class.     |  Comments|
|____________________________________________________|_____________|__________|
|/usr/lib/help/auths/locale/HotplugHeader.html       |  Uncommitted|  Help    |
|                                                    |             |  Files   |
|/usr/lib/help/auths/locale/HotplugModify.html       |  Uncommitted|  ""      |
|/usr/lib/help/auths/locale/SmfManageHotplug.html    |  Uncommitted|  ""      |
|/usr/lib/help/auths/locale/C/HotplugHeader.html     |  Uncommitted|  ""      |
|/usr/lib/help/auths/locale/C/HotplugModify.html     |  Uncommitted|  ""      |
|/usr/lib/help/auths/locale/C/SmfManageHotplug.html  |  Uncommitted|  ""      |
|/usr/lib/help/profiles/locale/RtHotplugMngmnt.html  |  Uncommitted|  ""      |
|/usr/lib/help/profiles/locale/C/RtHotplugMngmnt.html|  Uncommitted|  ""      |
|svc:/system/hotplug                                 |  Committed  |  FMRI    |
|/var/svc/manifest/system/hotplug.xml                |  Proj. Priv.|  Service |
|                                                    |             |  Manifest|
|/lib/svc/method/svc-hotplug                         |  Proj. Priv.|  Method  |
|                                                    |             |  Script  |
|____________________________________________________|_____________|__________|

_____________________________________________________________________
|                        Interfaces Exported                        |
|___________________|________________|______________________________|
|Interface          |  Classification|  Comments                    |
|___________________|________________|______________________________|
|DINFOHP            |  Consol. Priv. |  Flag for di_init() to       |
|                   |                |  include hotplug information |
|                   |                |  in snapshot.                |
|DI_HP_NIL          |  Consol. Priv. |  A NULL di_hp_t structure.   |
|DI_HP_CONNECTOR    |  Consol. Priv. |  Flag for di_walk_hp()       |
|                   |                |  to traverse hotplug         |
|                   |                |  connectors.                 |
|DI_HP_PORT         |  Consol. Priv. |  Flag for di_walk_hp()       |
|                   |                |  to traverse hotplug         |
|                   |                |  ports.                      |
|___________________|________________|______________________________|

PSARC/2008/181               Copyright 2009 Sun Microsystems

                           - 4 -

_____________________________________________________________________
|                        Interfaces Exported                        |
|___________________|________________|______________________________|
|Interface          |  Classification|  Comments                    |
|___________________|________________|______________________________|
|di_hp_t            |  Consol. Priv. |  Structure of a hotplug      |
|                   |                |  connector associated        |
|                   |                |  with a di_node_t.           |
|di_walk_hp()       |  Consol. Priv. |  Traverse hotplug            |
|                   |                |  connectors associated       |
|                   |                |  with a di_node_t.           |
|di_hp_next()       |  Consol. Priv. |  Get next di_hp_t            |
|                   |                |  in a list.                  |
|di_hp_name()       |  Consol. Priv. |  Get name of a               |
|                   |                |  di_hp_t connector.          |
|di_hp_state()      |  Consol. Priv. |  Get state of a              |
|                   |                |  di_hp_t connector.          |
|di_hp_last_change()|  Consol. Priv. |  Get timestamp of last       |
|                   |                |  state change of             |
|                   |                |  a di_hp_t connection.       |
|di_hp_type()       |  Consol. Priv. |  Return connection type.     |
|di_hp_description()|  Consol. Priv. |  Return description of the   |
|                   |                |  hotplug handle              |
|                   |                |  (e.g. "PCI Slot", etc.)     |
|di_hp_child()      |  Consol. Priv. |  Return child device         |
|                   |                |  node of a virtual           |
|                   |                |  hotplug port.               |
|di_hp_connection() |  Consol. Priv. |  Return connection number.   |
|di_hp_depends_on() |  Consol. Priv. |  Return depended upon        |
|                   |                |  connection number           |
|HP_NODE_DEVICE     |  Consol. Priv. |  Node type for a device      |
|                   |                |  node.                       |
|HP_NODE_CONNECTOR  |  Consol. Priv. |  Node type for physical      |
|                   |                |  connector                   |
|HP_NODE_PORT       |  Consol. Priv. |  Node type for virtual       |
|                   |                |  port.                       |
|HP_NODE_USAGE      |  Consol. Priv. |  Node type for usage         |
|                   |                |  record.                     |
|hp_node_t          |  Consol. Priv. |  Structure of a node         |
|                   |                |  in snapshot.                |
|hp_init()          |  Consol. Priv. |  Initialize a hotplug        |
|                   |                |  snapshot.                   |
|hp_fini()          |  Consol. Priv. |  Cleanup/Remove hotplug      |
|                   |                |  snapshot.                   |
|hp_traverse()      |  Consol. Priv. |  Traverse nodes in a         |
|                   |                |  snapshot.                   |
|hp_name()          |                |  Consol. Priv.               |
|hp_path()          |                |  Consol. Priv.               |
|hp_type()          |  Consol. Priv. |  Get a node's type.          |
|hp_description()   |  Consol. Priv. |  Get description of          |
|                   |                |  connector or port.          |
|hp_state()         |  Consol. Priv. |  Get a node's current state. |
|hp_last_change()   |  Consol. Priv. |  Get timestamp when a        |
|                   |                |  connector or port's         |
|___________________|________________|______________________________|

PSARC/2008/181               Copyright 2009 Sun Microsystems

                           - 5 -

_____________________________________________________________________
|                        Interfaces Exported                        |
|___________________|________________|______________________________|
|Interface          |  Classification|  Comments                    |
|___________________|________________|______________________________|
|                   |                |  state was last changed.     |
|hp_usage()         |  Consol. Priv. |  Get a node's usage          |
|                   |                |  description.                |
|hp_parent()        |  Consol. Priv. |  Get a node's parent.        |
|hp_child()         |  Consol. Priv. |  Get a node's first child.   |
|hp_sibling()       |  Consol. Priv. |  Get a node's next sibling.  |
|hp_set_state()     |  Consol. Priv. |  Command to initiate         |
|                   |                |  state change.               |
|hp_set_private()   |  Consol. Priv. |  Bus specific 'set' function.|
|hp_get_private()   |  Consol. Priv. |  Bus specific 'get' function.|
|___________________|________________|______________________________|

The project imports the following interfaces.

________________________________________________________________
|                     Interfaces Imported                      |
|_________|_______________________|____________________________|
|Interface|  Classification       |  Comments                  |
|_________|_______________________|____________________________|
|pcicfg   |  Consolidation Private|  configure/unconfigure PCI |
|         |                       |  devices                   |
|modctl() |  See comments.        |  A system call with a      |
|         |                       |  long history.             |
|         |                       |  Unknown interface level,  |
|         |                       |  but recent modctl commands|
|         |                       |  are usually Consolidation |
|         |                       |  Private or Project        |
|         |                       |  Private.                  |
|ibdevinfo|  Committed            |  To access device and      |
|         |                       |  connection information.   |
|librcm   |  Consolidation Private|  To get RCM usage, and     |
|         |                       |  RCM offline.              |
|libsecdb |  Committed            |  To perform RBAC           |
|         |                       |  authorization checks.     |
|libbsm   |  Contract Private     |  To perform auditing.      |
|_________|_______________________|____________________________|

4.  Opinion

4.1.  DDI_HP_CN_TYPE

A member suggested that the  project  could  predefine  more
values  for  DDI_HP_CN_TYPE for devices such as USB, PCMCIA,
CARDBUS, FIREWIRE, SCSI, FC, IB, and  SDCARD.   The  project
team  responded  that they do not have enough information on
which  buses  will  be  supported   or   how   exactly   the

PSARC/2008/181               Copyright 2009 Sun Microsystems

                           - 6 -

implementation  would  look.  An example given is that there
are different versions of USB and it is not  understood  yet
if one value or multiple values should be reserved.

4.2.  hotplug(1M) -o Option

A member noted that the hotplug(1M) man page  doesn't  docu-
ment the arguments that can be used with the -o option.  The
project team agreed to add a feature  that  will  allow  the
user  to get help about the supported options and their pos-
sible values through the hotplug(1M) command.

5.  Minority Opinion(s)

None.

6.  Advisory Information

None.

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/2008/181.

1.   20 Questions
     File: commitment2.materials/shp-proj-20q.txt

2.   Project Specification
     File: commitment2.materials/shp-overview.pdf

3.   Issues and Responses
     File: issues

4.   Man Page for hotplug commands
     File: commitment2.materials/hotplug.1m.txt

5.   Man Page for hotplug daemon
     File: commitment2.materials/hotplugd.1m.txt

PSARC/2008/181               Copyright 2009 Sun Microsystems


--Boundary_(ID_Ikhu3nHgXhuUpvK2YiOl4A)--

From gww@sac.sfbay.sun.com Thu Oct 29 16:33:06 2009
Received: from sunmail4.singapore.sun.com (sunmail4.Singapore.Sun.COM [129.158.71.19])
	by sac.sfbay.sun.com (8.13.8+Sun/8.13.8) with ESMTP id n9TNX4ou009360
	for <psarc-ext@sac.sfbay.sun.com>; Thu, 29 Oct 2009 16:33:05 -0700 (PDT)
Received: from nwk-avmta-1.SFBay.Sun.COM (nwk-avmta-1.SFBay.Sun.COM [129.146.11.74])
	by sunmail4.singapore.sun.com (8.13.4+Sun/8.13.3/ENSMAIL,v2.2) with ESMTP id n9TNX37P024501
	for <@sunmail2sca.sfbay.sun.com:psarc-ext@sun.com>; Fri, 30 Oct 2009 07:33:04 +0800 (SGT)
Received: from pmxchannel-daemon.nwk-avmta-1.sfbay.Sun.COM by
 nwk-avmta-1.sfbay.Sun.COM
 (Sun Java System Messaging Server 6.2-3.04 (built Jul 15 2005))
 id <0KSA00G0DUR2VZ00@nwk-avmta-1.sfbay.Sun.COM> for psarc-ext@sun.com
 (ORCPT psarc-ext@sun.com); Thu, 29 Oct 2009 16:33:02 -0700 (PDT)
Received: from dm-sfbay-02.sfbay.sun.com ([129.146.11.31])
 by nwk-avmta-1.sfbay.Sun.COM
 (Sun Java System Messaging Server 6.2-3.04 (built Jul 15 2005))
 with ESMTP id <0KSA00BXCUR2RI30@nwk-avmta-1.sfbay.Sun.COM> for
 psarc-ext@sun.com (ORCPT psarc-ext@sun.com); Thu,
 29 Oct 2009 16:33:02 -0700 (PDT)
Received: from sac.sfbay.sun.com (sac.SFBay.Sun.COM [129.146.226.132])
	by dm-sfbay-02.sfbay.sun.com (8.13.8+Sun/8.13.8/ENSMAIL,v2.4)
 with ESMTP id n9TNX06Q021124; Thu, 29 Oct 2009 16:33:00 -0700 (PDT)
Received: from sac.sfbay.sun.com (localhost [127.0.0.1])
	by sac.sfbay.sun.com (8.13.8+Sun/8.13.8) with ESMTP id n9TNWwQb009358; Thu,
 29 Oct 2009 16:32:58 -0700 (PDT)
Received: (from gww@localhost)	by sac.sfbay.sun.com (8.13.8+Sun/8.13.8/Submit)
 id n9TNWv51009357; Thu, 29 Oct 2009 16:32:57 -0700 (PDT)
Date: Thu, 29 Oct 2009 16:32:57 -0700 (PDT)
From: Gary Winiger <gww@sac.sfbay.sun.com>
Subject: contract for 2008/181 Hotplug Framework to use 2000/517 audit
 interfaces and 2003/397
To: psarc-ext@sun.com
Cc: Anup.Sekhar@sun.com, Michelle.Lei@sun.com, Scott.Carter@sun.com
Message-id: <200910292332.n9TNWv51009357@sac.sfbay.sun.com>
Content-transfer-encoding: 7BIT
X-PMX-Version: 5.4.1.325704
Status: RO
Content-Length: 244

I've executed and recorded 2000/517-19 for PSARC/2008/181 Hotplug Framework
to use the project private interfaces described in the prototype contract
approved in 2003/397.  2003/397 and 2008/181 have a symlink to the executed
contract.

Gary..

