26.09.2014 Views

Server Management Command Line Protocol Specification - DMTF

Server Management Command Line Protocol Specification - DMTF

Server Management Command Line Protocol Specification - DMTF

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

1<br />

2<br />

3<br />

4<br />

Document Number: DSP0214<br />

Date: 2007-03-07<br />

Version: 1.0.2<br />

5<br />

6<br />

<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong><br />

(SM CLP) <strong>Specification</strong><br />

7<br />

8<br />

9<br />

Document Type: <strong>Specification</strong><br />

Document Status: Final Standard<br />

Document Language: E


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

10<br />

11<br />

Copyright notice<br />

Copyright © 2007 Distributed <strong>Management</strong> Task Force, Inc. (<strong>DMTF</strong>). All rights reserved.<br />

12<br />

13<br />

14<br />

15<br />

16<br />

17<br />

18<br />

19<br />

20<br />

21<br />

22<br />

23<br />

24<br />

25<br />

26<br />

27<br />

28<br />

29<br />

<strong>DMTF</strong> is a not-for-profit association of industry members dedicated to promoting enterprise and systems<br />

management and interoperability. Members and non-members may reproduce <strong>DMTF</strong> specifications and<br />

documents for uses consistent with this purpose, provided that correct attribution is given. As <strong>DMTF</strong><br />

specifications may be revised from time to time, the particular version and release date should always be<br />

noted.<br />

Implementation of certain elements of this standard or proposed standard may be subject to third party<br />

patent rights, including provisional patent rights (herein "patent rights"). <strong>DMTF</strong> makes no representations<br />

to users of the standard as to the existence of such rights, and is not responsible to recognize, disclose,<br />

or identify any or all such third party patent right, owners or claimants, nor for any incomplete or<br />

inaccurate identification or disclosure of such rights, owners or claimants. <strong>DMTF</strong> shall have no liability to<br />

any party, in any manner or circumstance, under any legal theory whatsoever, for failure to recognize,<br />

disclose, or identify any such third party patent rights, or for such party’s reliance on the standard or<br />

incorporation thereof in its product, protocols or testing procedures. <strong>DMTF</strong> shall have no liability to any<br />

party implementing such standard, whether such implementation is foreseeable or not, nor to any patent<br />

owner or claimant, and shall have no liability or responsibility for costs or losses incurred if a standard is<br />

withdrawn or modified after publication, and shall be indemnified and held harmless by any party<br />

implementing the standard from any and all claims of infringement by a patent owner for such<br />

implementations.<br />

2 Version 1.0.2


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

30<br />

CONTENTS<br />

31<br />

32<br />

33<br />

34<br />

35<br />

36<br />

37<br />

38<br />

39<br />

40<br />

41<br />

42<br />

43<br />

44<br />

45<br />

46<br />

47<br />

48<br />

49<br />

50<br />

51<br />

52<br />

53<br />

54<br />

55<br />

56<br />

57<br />

58<br />

59<br />

60<br />

61<br />

62<br />

63<br />

64<br />

65<br />

66<br />

67<br />

68<br />

69<br />

70<br />

71<br />

72<br />

73<br />

74<br />

75<br />

76<br />

77<br />

78<br />

Foreword ....................................................................................................................................................... 5<br />

Introduction ................................................................................................................................................... 6<br />

<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong> ..................................................... 11<br />

1 Scope .................................................................................................................................................. 11<br />

2 Normative References......................................................................................................................... 11<br />

3 Terms and Definitions ......................................................................................................................... 12<br />

4 Symbols and Abbreviated Terms ........................................................................................................ 16<br />

5 <strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong> ............................................. 18<br />

5.1 Semantics ................................................................................................................................. 18<br />

5.2 Syntax ....................................................................................................................................... 28<br />

6 SM CLP Verbs..................................................................................................................................... 51<br />

6.1 Requirements for Supporting CVS .............................................Error! Bookmark not defined.<br />

6.2 cd .............................................................................................................................................. 52<br />

6.3 create ........................................................................................................................................ 56<br />

6.4 delete ........................................................................................................................................ 60<br />

6.5 dump ......................................................................................................................................... 66<br />

6.6 exit............................................................................................................................................. 71<br />

6.7 help ........................................................................................................................................... 73<br />

6.8 load ........................................................................................................................................... 75<br />

6.9 reset .......................................................................................................................................... 78<br />

6.10 set ............................................................................................................................................. 81<br />

6.11 show.......................................................................................................................................... 89<br />

6.12 start ......................................................................................................................................... 117<br />

6.13 stop ......................................................................................................................................... 120<br />

6.14 version .................................................................................................................................... 124<br />

7 Standard <strong>Command</strong> Options............................................................................................................. 126<br />

7.1 all............................................................................................................................................. 129<br />

7.2 destination............................................................................................................................... 129<br />

7.3 display..................................................................................................................................... 130<br />

7.4 examine .................................................................................................................................. 132<br />

7.5 force ........................................................................................................................................ 133<br />

7.6 help ......................................................................................................................................... 133<br />

7.7 keep ........................................................................................................................................ 134<br />

7.8 level......................................................................................................................................... 134<br />

7.9 output ...................................................................................................................................... 135<br />

7.10 source ..................................................................................................................................... 140<br />

7.11 version .................................................................................................................................... 140<br />

7.12 wait.......................................................................................................................................... 141<br />

8 SM CLP Session ............................................................................................................................... 141<br />

8.1 Authentication, Authorization, and Audit................................................................................. 141<br />

8.2 CLP Session .......................................................................................................................... 142<br />

8.3 Transport................................................................................................................................. 148<br />

Annex A (normative) SM CLP <strong>Command</strong> Grammar in ABNF Notation (RFC2234)............................... 150<br />

Annex B (informative) W3C Universal Resource Identifiers (URI).......................................................... 156<br />

Annex C (informative) W3C Extensible Markup Language (XML) ......................................................... 157<br />

Annex D (informative) POSIX Utility Conventions .................................................................................. 158<br />

Annex E (informative) Conventions ........................................................................................................ 160<br />

Annex F (informative) Notation ............................................................................................................... 161<br />

Version 1.0.2 3


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

79<br />

80<br />

81<br />

82<br />

Annex G (informative) Change History ................................................................................................... 162<br />

Annex H (informative) Acknowledgements............................................................................................. 163<br />

Annex I (informative) Bibliography .......................................................................................................... 164<br />

83<br />

84<br />

85<br />

86<br />

87<br />

88<br />

Figures<br />

Figure 1 – Session Establishment Sequence ........................................................................................... 144<br />

Figure 2 – <strong>Command</strong> Interaction Sequences ........................................................................................... 145<br />

Figure 3 – Session Switching Sequences................................................................................................. 146<br />

Figure 4 – Session Termination Sequences............................................................................................. 147<br />

89<br />

90<br />

91<br />

92<br />

93<br />

94<br />

95<br />

96<br />

97<br />

98<br />

99<br />

100<br />

101<br />

102<br />

103<br />

104<br />

105<br />

106<br />

107<br />

108<br />

109<br />

Tables<br />

Table 1 – CLP Reserved Characters and Character Sequences............................................................... 28<br />

Table 2 – Common Output Keywords......................................................................................................... 36<br />

Table 3 – <strong>Command</strong> Status Keywords ....................................................................................................... 37<br />

Table 4 – <strong>Command</strong> Status Values and Tags ............................................................................................ 37<br />

Table 5 – Message Keywords..................................................................................................................... 37<br />

Table 6 – Processing Error Values and Tags ............................................................................................. 38<br />

Table 7 – Job Error Keywords .................................................................................................................... 39<br />

Table 8 – Error Type Values and Descriptions ........................................................................................... 39<br />

Table 9 – CIM Status Code Values and Descriptions................................................................................. 40<br />

Table 10 – Severity Values and Descriptions ............................................................................................. 41<br />

Table 11 – Probable Cause Values and Descriptions ................................................................................ 42<br />

Table 12 – Verb Support Requirements ..................................................................................................... 51<br />

Table 13 – Data Element Types and all Option ....................................................................................... 92<br />

Table 14 – Standard <strong>Command</strong> Options .................................................................................................. 127<br />

Table 15 – Verb and Option Support ........................................................................................................ 128<br />

Table 16 – Output Option Arguments ....................................................................................................... 135<br />

Table 17 – Output Options for Controlling <strong>Command</strong> Status Output ....................................................... 140<br />

Table 18 – <strong>Command</strong> Authorizations for CLP Groups ............................................................................. 142<br />

Table 19 – Telnet Transport Support Requirements ................................................................................ 148<br />

4 Version 1.0.2


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

110<br />

Foreword<br />

111<br />

112<br />

113<br />

114<br />

115<br />

116<br />

117<br />

118<br />

The <strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong> (DSP0214) was prepared by<br />

the <strong>Server</strong> <strong>Management</strong> Working Group. This document was prepared in accordance with ISO/IEC<br />

Directives, Part 2: Rules for the structure and drafting of International Standards.<br />

The <strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong> specifies a common command<br />

line syntax and message protocol semantics for managing computer resources in Internet, enterprise,<br />

and service provider environments.<br />

<strong>DMTF</strong> is a not-for-profit association of industry members dedicated to promoting enterprise and systems<br />

management and interoperability.<br />

Version 1.0.2 5


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

119<br />

Introduction<br />

120<br />

121<br />

122<br />

123<br />

124<br />

125<br />

126<br />

127<br />

128<br />

129<br />

130<br />

131<br />

132<br />

133<br />

134<br />

135<br />

136<br />

137<br />

138<br />

139<br />

140<br />

141<br />

142<br />

143<br />

144<br />

145<br />

146<br />

147<br />

148<br />

149<br />

150<br />

151<br />

152<br />

153<br />

154<br />

155<br />

156<br />

157<br />

This section contains an overview of the <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (CLP). This includes the goals behind<br />

creating the CLP and the specific problems that it attempts to resolve. In addition, this section lays the<br />

groundwork for the sections that follow by detailing the background and assumptions of the CLP. This<br />

includes the architecture assumed in the design of the CLP and the components within that architecture.<br />

Problem Statement<br />

The fundamental problem that is the impetus behind this specification is the growing need to rely on multivendor,<br />

out-of-band hardware and software management solutions as core components of an<br />

interoperable, heterogeneous, enterprise-wide management solution. By extending the <strong>DMTF</strong><br />

specifications to include a CIM-based command line protocol for managing systems and devices, the<br />

<strong>DMTF</strong> comes closer to realizing its vision of enabling end-to-end, multi-vendor interoperability in<br />

management systems.<br />

Principal Goals<br />

The principal goal of this specification is to define a light-weight, human-oriented command line protocol<br />

that is also suitable for scripting environments. This includes a direct mapping to a subset of the CIM<br />

Schema. The command line protocol specifies the syntax and semantics used to allow the manipulation<br />

of the Managed Elements and Associations within servers, as collections or individually.<br />

Solution<br />

The solution proposed in this document is a command line protocol (CLP), which is transmitted and<br />

received over a text message-based transport protocol. The CLP is defined as a character-based<br />

message protocol and not as an interface, in a fashion similar to Simple Mail Transfer <strong>Protocol</strong><br />

(3RFC2821).<br />

The CLP is a command/response protocol, which means that a text command message is transmitted<br />

from the Client over the transport protocol to the Manageability Access Point (MAP). The MAP receives<br />

the command and processes it. A text response message is then transmitted from the MAP back to the<br />

Client.<br />

The CLP is designed to work over existing character-oriented transports. The specification contains<br />

mappings to Telnet and SSHv2, but any transport capable of carrying command/response message data<br />

of the type specified herein may be suitable for use as a transport.<br />

The CLP enables internationalization by providing a mechanism for the Client to indicate to the MAP the<br />

language desired by the Client. Provided the MAP supports the requested language, output data will be<br />

presented to the user with the appropriate translations. This version of the CLP does not support specific<br />

internationalization of user account names and passwords because they can be in any specific language.<br />

In addition, the CLP input (commands and syntax) is not translated because CLP syntax is itself its own<br />

language.<br />

The CLP allows for extensibility through four different mechanisms: verbs, options and option argument<br />

terms, command target terms, and target property terms. The conventions contained herein allow for<br />

implementers to extend the interface in a non-conflicting mechanism that allows for differentiation and<br />

experimentation without encroaching on the standard CLP syntax and semantics.<br />

6 Version 1.0.2


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

158<br />

159<br />

160<br />

161<br />

162<br />

163<br />

164<br />

165<br />

166<br />

167<br />

168<br />

169<br />

170<br />

171<br />

172<br />

173<br />

174<br />

175<br />

176<br />

177<br />

178<br />

179<br />

180<br />

181<br />

182<br />

183<br />

184<br />

185<br />

186<br />

187<br />

188<br />

189<br />

190<br />

191<br />

192<br />

193<br />

194<br />

195<br />

196<br />

197<br />

198<br />

199<br />

General Syntax<br />

The general syntax for the CLP is of the form:<br />

[] [] []<br />

The verb term refers to the specific command or action taking place. These are covered in detail in<br />

Clause 6. The list of verbs includes those that establish and retrieve data ("set" and "show"), create and<br />

remove records or instances ("create" and "delete"), change the state of a given target ("reset",<br />

"start", and "stop"), manage the current session ("cd", "version", and "exit"), and provide<br />

command information ("help").<br />

The target term indicates the address or path of the target of the command. The format of this term is<br />

discussed in the <strong>Server</strong> <strong>Management</strong> Managed Element (SM ME) Addressing <strong>Specification</strong> (5DSP0215).<br />

This term can be an individual Managed Element, such as a disk, a NIC, the MAP itself, or even a<br />

service, such as the transport. This term can also be a collection of Managed Elements supported by the<br />

MAP, such as a system. It can also be an Association. There can be only one target term specified per<br />

command.<br />

<strong>Command</strong> options always modify the action or behavior of the verb. Options may appear immediately<br />

after the verb on the <strong>Command</strong> <strong>Line</strong> and shall be preceded by a hyphen ("-"). They provide features such<br />

as changing the output format, allowing the command to apply to nested levels, requesting that the<br />

version of the command be displayed, and requesting help. Note that there may be zero or more option<br />

terms per command. For more information, see Clause 111H7.<br />

<strong>Command</strong> target properties are attributes that may contain values associated with a target that are<br />

needed to process the command. <strong>Command</strong> target properties identify properties of the target’s class that<br />

are to be retrieved or modified by the command. Valid command target property names are documented<br />

in the MOF file that defines the class. Implementations shall use the property name defined in the MOF<br />

file to identify the property of the class.<br />

The properties themselves are manipulated with the commands in Clause 112H6. If a value is to be assigned<br />

to a property, the syntax shall be of the form "=". There may be zero or more<br />

property terms per command.<br />

Architectural Assumptions<br />

There is an underlying assumption that the architecture the CLP is built upon, or is an interface into, is a<br />

CIM <strong>Server</strong> implementation. The CLP is organized around management tasks mapped to operations on<br />

CIM instances. It does this by retrieving or changing properties and invoking methods established in<br />

instances of the CIM Schema. The mapping of CLP commands to CIM elements is documented in the<br />

CLP-to-CIM Mapping <strong>Specification</strong> (113H32HDSP0216) to aid implementers and consumers of this specification.<br />

The CLP consists of a set of specific functions intended for operational control of the server hardware and<br />

rudimentary control of the operating system. It is not intended to be a complete interface into managing<br />

the operating system. Therefore, the CLP contains the commands necessary to operate on a proper<br />

subset of the CIM Schema as defined in 114H32HDSP0216.<br />

The CLP is also architected to work over existing transports. It is assumed that the transports will provide<br />

the authentication and encryption necessary for the protocol. Role-based command use authorization is<br />

included in the CLP, but the architecture assumes that the CLP relies on the underlying transport for any<br />

access security and authentication. The CLP architecture is documented in the SM Architecture White<br />

Paper (115H26HDSP2001).<br />

Version 1.0.2 7


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

200<br />

201<br />

202<br />

203<br />

204<br />

205<br />

206<br />

207<br />

208<br />

209<br />

210<br />

211<br />

212<br />

213<br />

214<br />

215<br />

216<br />

217<br />

218<br />

219<br />

220<br />

221<br />

222<br />

223<br />

224<br />

225<br />

226<br />

227<br />

228<br />

229<br />

230<br />

231<br />

232<br />

233<br />

234<br />

235<br />

236<br />

237<br />

238<br />

239<br />

240<br />

241<br />

242<br />

Architectural Concepts of the SM CLP<br />

The following sections describe some of the key concepts of the SM CLP. A detailed statement of the<br />

architecture of the SM CLP is available in 116H26HDSP2001. An implementation of the CLP service is modeled<br />

using the <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (CLP) Service Profile (117H7HDSP1005).<br />

Physical Connection<br />

The physical connection and media between the Client and the MAP are outside the scope of this<br />

specification. Any physical connection that is capable of running one of the supported transports is<br />

assumed to be able to support the CLP. Because the supported transports themselves can run over IP, it<br />

is safe to assume that the CLP can be transmitted and received over any media or physical connection<br />

that supports IP. However, this does not limit support for the CLP to physical media or connections that<br />

support IP. In fact, it is reasonable for an implementation to be created in which the protocol never leaves<br />

the managed server.<br />

Transport <strong>Management</strong><br />

This specification includes sections detailing the mapping of the CLP over two transport protocols: Telnet<br />

and SSHv2. The CLP is designed to be transport independent, but mappings to transports other than<br />

these two are outside the scope of this specification.<br />

The Client is the terminus of one end of the connection; the CLP Service implementation is the other.<br />

CLP Service implementations manage the transport and the sessions that occur over the transport as<br />

required by 118H7HDSP1005.<br />

Authentication, Authorization, and Encryption<br />

The CLP Service does not perform any authentication or encryption. It relies entirely on the transport to<br />

perform these functions. Session transport requirements are documented in 119H8.3.<br />

To accommodate a single basis for user authorization, the user account database required by the<br />

transport is expected to share the user information with the CLP Service once the user is logged in. For<br />

more information, see 120H8.3.<br />

The CLP Service authorizes commands through the use of authorization groups. Each CLP User shall be<br />

a member of at least one CLP Group. For more information, see 121H8.1.<br />

The CLP contains commands for the creation, removal, and modification of user accounts, including<br />

authorization and access rights. For more information, see Clause 122H6.<br />

Sessions<br />

Sessions between a Client and a CLP Service are established over a transport protocol. After the session<br />

has been authenticated, the Client can begin to submit commands using the CLP Service. Each session<br />

has a unique context within the MAP. Within this context, the CLP Service keeps track of session<br />

characteristics. Implementations will maintain a session context and session characteristics as required<br />

by 123H7HDSP1005. Examples of these characteristics include the Current Default Target, currently selected<br />

output mode, current output language, and the current user and session identifier. <strong>Command</strong>s for<br />

manipulating the session characteristics are included in the CLP. For more information, see 124H8.2.2.<br />

Input Editing<br />

The CLP is a command/response protocol. CLP implementations shall receive and parse an entire<br />

<strong>Command</strong> <strong>Line</strong>, complete with verb, command target term, options, and properties. The CLP Service<br />

shall not allow any interactive input or data editing. This does not preclude a vendor from providing such<br />

capability associated with the Client implementation, but any such capability is outside of the scope of this<br />

specification.<br />

8 Version 1.0.2


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

243<br />

244<br />

245<br />

246<br />

247<br />

248<br />

249<br />

250<br />

251<br />

252<br />

253<br />

254<br />

255<br />

256<br />

257<br />

258<br />

259<br />

260<br />

261<br />

262<br />

263<br />

264<br />

265<br />

266<br />

267<br />

268<br />

269<br />

270<br />

271<br />

272<br />

273<br />

274<br />

275<br />

276<br />

277<br />

278<br />

279<br />

280<br />

<strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> Service<br />

The CLP Service is responsible for providing and enforcing the syntax and semantics of the CLP.<br />

Implementations will support being managed as required by 125H7HDSP1005. This includes starting, stopping,<br />

and changing the attributes of the service.<br />

CLP Service Access Point<br />

The transport session is established to the CLP Service Access Point (SAP). The access point represents<br />

the physical and logical communication mechanism through which the CLP Service receives incoming<br />

connection requests. The CLP provides the mechanisms necessary to enable, disable, and configure the<br />

SAP. Implementations will support managing the supporting protocol stacks as required by 126H7HDSP1005.<br />

Operation <strong>Management</strong><br />

All commands submitted through the CLP Service create jobs within the MAP. There is one and only one<br />

global job queue within the MAP. Implementations shall track all jobs using this single job queue.<br />

Operations follow the CIM_Job schema, as defined in later sections. The CLP supports commands to<br />

query jobs, retrieve the interim status of jobs, retrieve the final status of jobs, and delete jobs. Operations<br />

are covered further in 127H5.1.6.<br />

Use Cases<br />

This section describes the intended features, functions, and uses of the CLP. Note that the CLP is not<br />

limited to these functions, but these are the specific uses for which the CLP was intended.<br />

The CLP is designed to apply to a number of server topologies. This includes, but is not limited to, standalone<br />

servers, rack-mounted servers, blades, partitioned servers, and Telco servers. It is also suitable to<br />

manage any necessary enterprise components, enclosures, chassis, racks, and power supplies<br />

necessary to utilize servers.<br />

The CLP provides the ability to enumerate and configure server hardware. This includes discovery of the<br />

current hardware configuration and properties, system settings, and local IO devices. The CLP provides<br />

some amount of configuration for local disk drives, including local arrays. The intention of providing this<br />

support is to allow initial logical unit creation for installation, provisioning, or both. It is not intended that<br />

the CLP Service be the primary interface for managing mass storage, because these standards and<br />

access points exist in the industry.<br />

The CLP also includes the ability to select, control, and initiate the transfer of images. Also provided is the<br />

ability to control the boot configuration of any supported server. In addition, support for heartbeat and<br />

operating-system-status information is included.<br />

<strong>Server</strong> state control is included in the CLP. This includes power control, intervention capability (to halt,<br />

reset, or shut down a server), and mechanisms to initiate a dump of the operating system.<br />

Access to some system resources is also included in the CLP. This includes access and manipulation of<br />

any accessible logs; the ability to view and set remote status displays, LEDs, and alarms; the ability to<br />

configure alert destinations; and the ability to initiate a session with a remote text-based console device.<br />

The CLP also supports normal expected user session functions such as help, version information, and<br />

the ability to exit or terminate a session.<br />

Version 1.0.2 9


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

281<br />

282<br />

283<br />

284<br />

285<br />

286<br />

287<br />

288<br />

289<br />

290<br />

291<br />

Known Limitations<br />

First and foremost, while CLP commands are mapped to CIM methods and operations, the CLP is not<br />

intended to be a complete mapping to every CIM method, property, or operation. The CLP supports a<br />

sufficient subset of CIM <strong>Server</strong> features to enable the CLP to be the primary locus of interaction for server<br />

management, regardless of server type, physical connection, or operating system state.<br />

Another known limitation pertains to the intended Client. The CLP is primarily focused on an interactive<br />

experience with a human user or simple script. It is not intended to be the primary interface for advanced<br />

server management software to use to manage hardware. Consequently, the format of the commands<br />

and their responses, as well as the CIM methods, properties, and operations supported, are not always<br />

sufficient for the CLP Service Access Point to be the primary interface for advanced server management<br />

software.<br />

10 Version 1.0.2


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

292<br />

293<br />

294<br />

295<br />

296<br />

297<br />

298<br />

299<br />

300<br />

301<br />

302<br />

303<br />

304<br />

305<br />

306<br />

307<br />

308<br />

309<br />

310<br />

311<br />

312<br />

313<br />

314<br />

315<br />

316<br />

317<br />

318<br />

319<br />

320<br />

321<br />

322<br />

323<br />

324<br />

<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

1 Scope<br />

This document lays out the general framework for the <strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM<br />

CLP). This specification is intended to guide developers of implementations of the SM CLP and optionally<br />

be used as a reference by system administrators and other users of SM CLP implementations.<br />

The following subjects are within the scope of this document:<br />

• <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> syntax and semantics<br />

• input format and output format<br />

• accessing and traversing the target address space<br />

• error handling and semantics<br />

• session management, including mapping to supported transports<br />

• session characteristics<br />

• operation processing and reporting<br />

The following subjects are outside the scope of this document:<br />

• control command verbs, such as loop control, conditionals, or prompting<br />

• regular expressions, such as mathematical or logical expressions<br />

• command editor environment<br />

• Client's shell environment<br />

• physical interconnects<br />

• complex data, data types, or objects<br />

• operation error precedence<br />

2 Normative References<br />

The following referenced documents are indispensable for the application of this document. For dated<br />

references, only the edition cited applies.<br />

<strong>DMTF</strong>, 4HCommon Information Model (CIM) Schema, version 2.12, April 20, 2006<br />

<strong>DMTF</strong>, 5HDSP0215, <strong>Server</strong> <strong>Management</strong> Managed Element (SM ME) Addressing <strong>Specification</strong> v1.0,<br />

November 10, 2006<br />

<strong>DMTF</strong>, 6HDSP0224, <strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Command</strong> Response XML<br />

Schema, v1.0, 2006<br />

<strong>DMTF</strong>, 7HDSP1005, <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (CLP) Service Profile, v1.0, October 10, 2006<br />

IETF, 8HRFC2234, Augmented BNF for Syntax <strong>Specification</strong>s: ABNF, November 1997<br />

IETF, 9HRFC2396, Uniform Resource Identifiers (URI): Generic Syntax, August 1998<br />

10HISO 639-2, Codes for the Representation of Names of Languages Part 2: Alpha-3 Code, March 2002<br />

Version 1.0.2 11


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

325<br />

326<br />

327<br />

328<br />

329<br />

330<br />

331<br />

332<br />

333<br />

334<br />

335<br />

336<br />

337<br />

338<br />

339<br />

340<br />

341<br />

342<br />

343<br />

344<br />

345<br />

346<br />

347<br />

348<br />

349<br />

350<br />

351<br />

352<br />

353<br />

354<br />

355<br />

356<br />

357<br />

358<br />

359<br />

360<br />

361<br />

362<br />

363<br />

364<br />

365<br />

ISO, 11HISO/IEC Directives, Part 2: Rules for the structure and drafting of International Standards, Fifth<br />

edition, 2004<br />

3 Terms and Definitions<br />

For the purposes of this document, the following terms and definitions apply.<br />

3.1<br />

Absolute Target Address<br />

a designation of target address that begins at the root of the containment hierarchy<br />

3.2<br />

Addressing Associations<br />

an association instance that is used by the MAP to construct the UFiP to an instance referenced by the<br />

association instance<br />

3.3<br />

Admin Domain<br />

the set of Managed Elements, Logical Devices, and Services for which the MAP has management<br />

responsibilities<br />

3.4<br />

Association<br />

a relationship between two Managed Elements, which is itself a manageable entity within the Admin<br />

Domain<br />

3.5<br />

Association Class<br />

identifies the CIM Class of an Association<br />

3.6<br />

Client<br />

any system that acts in the role of a client to a MAP<br />

3.7<br />

CLP Service<br />

the logical entity within a MAP that implements the CLP<br />

3.8<br />

CLP Target<br />

a Managed Element or Association whose properties, behavior, UFcT, and so on are wholly defined by<br />

the profiles approved for use with the CLP<br />

3.9<br />

<strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong><br />

CLP<br />

the human-oriented command line protocol defined by the System <strong>Management</strong> Architecture for <strong>Server</strong><br />

Hardware, used for managing systems<br />

3.10<br />

<strong>Command</strong> or <strong>Command</strong> <strong>Line</strong><br />

a text message containing the complete expression of a management action, including a command verb,<br />

an optional command target, options and option arguments, and properties and values<br />

12 Version 1.0.2


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

366<br />

367<br />

368<br />

369<br />

370<br />

371<br />

372<br />

373<br />

374<br />

375<br />

376<br />

377<br />

378<br />

379<br />

380<br />

381<br />

382<br />

383<br />

384<br />

385<br />

386<br />

387<br />

388<br />

389<br />

390<br />

391<br />

392<br />

393<br />

394<br />

395<br />

396<br />

397<br />

398<br />

399<br />

400<br />

401<br />

402<br />

403<br />

404<br />

405<br />

406<br />

407<br />

3.11<br />

<strong>Command</strong> Processor<br />

the logical entity within a MAP responsible for parsing, interpreting, and executing incoming commands<br />

and returning responses<br />

3.12<br />

<strong>Command</strong> Response<br />

response returned by the CLP Service to a Client when a <strong>Command</strong> is issued<br />

The <strong>Command</strong> Response consists of <strong>Command</strong> Status and <strong>Command</strong> Results.<br />

3.13<br />

<strong>Command</strong> Results<br />

the actual results of a successful command returned as part of the <strong>Command</strong> Response<br />

3.14<br />

<strong>Command</strong> Status<br />

information returned by the CLP Service to a Client describing the overall status of a <strong>Command</strong><br />

3.15<br />

<strong>Command</strong> Status Data<br />

detailed information returned by the CLP Service to a Client describing the status of the <strong>Command</strong> as<br />

part of the <strong>Command</strong> Response<br />

3.16<br />

Core Properties<br />

properties for which the profile that owns the definition of the class does not stipulate any behavioral<br />

requirements<br />

However, the properties are defined in the MOF.<br />

3.17<br />

Current Default Target<br />

CDT<br />

the CLP session environment setting that establishes a default base address for all command targets that<br />

are expressed as a Relative Target Address and is used as the command target if a target term is not<br />

specified in a command entered<br />

3.18<br />

Implicit <strong>Command</strong> Target<br />

target acted upon that is inherent to the command being executed<br />

The command does not act upon either the Current Default Target or a target specified as part of the<br />

command. The cd command is an example of a command that acts upon an Implicit <strong>Command</strong> Target.<br />

3.19<br />

Keyword<br />

a text-string token that is recognized and reserved by the CLP to have a specified meaning when used in<br />

command output and input<br />

3.20<br />

Local Addressing Service<br />

the entity responsible for discovering, enumerating, and determining the addresses of Managed Elements<br />

and Associations within the Admin Domain<br />

Version 1.0.2 13


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

408<br />

409<br />

410<br />

411<br />

412<br />

413<br />

414<br />

415<br />

416<br />

417<br />

418<br />

419<br />

420<br />

421<br />

422<br />

423<br />

424<br />

425<br />

426<br />

427<br />

428<br />

429<br />

430<br />

431<br />

432<br />

433<br />

434<br />

435<br />

436<br />

437<br />

438<br />

439<br />

440<br />

441<br />

442<br />

443<br />

444<br />

445<br />

446<br />

447<br />

448<br />

449<br />

450<br />

451<br />

3.21<br />

Manageability Access Point<br />

MAP<br />

a service of a system that provides management in accordance with specifications of the <strong>DMTF</strong> System<br />

<strong>Management</strong> Architecture for <strong>Server</strong> Hardware<br />

3.22<br />

Managed Element<br />

ME<br />

the finest granularity of addressing, which can be the target of commands or messages, or a collection<br />

thereof<br />

3.23<br />

Managed Element Access Method<br />

the method by which a Managed Element performs a unit of work<br />

3.24<br />

Managed System<br />

a collection of Managed Elements that compose a computer system for which the MAP has management<br />

responsibilities<br />

3.25<br />

<strong>Management</strong> Service Core<br />

the logical entity that contains the core services set of the MAP<br />

3.26<br />

Non-addressing Association<br />

an association instance that is not used by the MAP in constructing the UFiP to any instances referenced<br />

by the association instance<br />

3.27<br />

OEM Properties<br />

properties added to instances of a class by an OEM vendor<br />

3.28<br />

OEM Target<br />

a Managed Element or Association whose properties, behavior, UFcT, and so on are outside the scope of<br />

this specification and are vendor dependent<br />

3.29<br />

OEM Verbs<br />

verbs defined by an OEM vendor that are outside the scope of this specification<br />

3.30<br />

Operation<br />

an identifiable activity of a MAP<br />

3.31<br />

Option<br />

a term of the <strong>Command</strong> <strong>Line</strong> that selects a particular behavior of a command verb<br />

3.32<br />

Option Argument<br />

input data passed to the command verb in relation to an option that selects a particular value for that<br />

option<br />

14 Version 1.0.2


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

452<br />

453<br />

454<br />

455<br />

456<br />

457<br />

458<br />

459<br />

460<br />

461<br />

462<br />

463<br />

464<br />

465<br />

466<br />

467<br />

468<br />

469<br />

470<br />

471<br />

472<br />

473<br />

474<br />

475<br />

476<br />

477<br />

478<br />

479<br />

480<br />

481<br />

482<br />

483<br />

484<br />

485<br />

486<br />

487<br />

488<br />

489<br />

490<br />

491<br />

492<br />

493<br />

3.33<br />

Property<br />

an attribute of the command target<br />

3.34<br />

Relative Target Address<br />

a designation of target address in relation to the Current Default Target as opposed to an Absolute Target<br />

Address<br />

3.35<br />

Required Properties<br />

properties for which the profile that owns the definition of the class requires that instances of the class<br />

have values<br />

3.36<br />

Reserved String<br />

a text-string token that is recognized and reserved by the CLP to have a specified meaning when used as<br />

an option argument, argument value, or property value<br />

3.37<br />

Reserved Target<br />

a valid value for a target term that has a special meaning defined by this specification<br />

The meaning of a Reserved Target cannot be changed by a user nor can additional Reserved Targets be<br />

created.<br />

3.38<br />

Resultant Address<br />

the Target Address after applying the target address precedence rules<br />

3.39<br />

Resultant Target<br />

the effective target for a command after applying the target address precedence rules<br />

3.40<br />

Service Access Point<br />

SAP<br />

the representation of the endpoint or interface into a service, such as the CLP<br />

3.41<br />

SM CLP Verb<br />

a verb defined by this specification<br />

3.42<br />

Target<br />

the Managed Element or Association upon which a command acts<br />

3.43<br />

Target Address<br />

a string value used as the target term in a <strong>Command</strong> <strong>Line</strong> to identify the target for a command<br />

3.44<br />

Target Class Addressing<br />

a method of selecting Managed Elements within a container based on the UFcT of the element<br />

Version 1.0.2 15


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

494<br />

495<br />

496<br />

497<br />

498<br />

499<br />

500<br />

501<br />

502<br />

503<br />

504<br />

505<br />

506<br />

507<br />

508<br />

509<br />

510<br />

511<br />

512<br />

513<br />

514<br />

515<br />

516<br />

517<br />

518<br />

519<br />

520<br />

521<br />

522<br />

523<br />

524<br />

525<br />

526<br />

527<br />

528<br />

529<br />

530<br />

531<br />

532<br />

533<br />

534<br />

3.45<br />

Text Session or Text-Based Session<br />

an active connection to a service whereby the user can enter text-based messages and receive textbased<br />

data<br />

Examples of commonly used text sessions are Telnet and Secure Shell.<br />

3.46<br />

Transport<br />

the layers of the communication stack responsible for reliable transportation of commands and messages<br />

between the Client and the MAP<br />

3.47<br />

User-Friendly instance Tag<br />

UFiT<br />

user-friendly identifier for a specific instance of a CIM class<br />

A User-Friendly instance Tag is constructed by concatenating an integer suffix to the UFcT for the CIM<br />

class.<br />

3.48<br />

User-Friendly selection Tag<br />

UFsT<br />

short-hand notation for selecting all instances of a given class<br />

A User-Friendly selection Tag is constructed by concatenating the UFcT for a class with the character *.<br />

3.49<br />

User-Friendly class Tag<br />

UFcT<br />

a short, user-friendly alias for a CIM class name<br />

It has the same properties and methods as the CIM class it represents.<br />

3.50<br />

User-Friendly instance Path<br />

UFiP<br />

the unique path to an instance formed by concatenating the UFiTs of each instance from the root instance<br />

to the terminating instance<br />

3.51<br />

Verb<br />

the string name of a command, used as the first term of a <strong>Command</strong> <strong>Line</strong><br />

4 Symbols and Abbreviated Terms<br />

The following symbols and abbreviations are used in this document.<br />

4.1<br />

CDT<br />

Current Default Target<br />

4.2<br />

CIM<br />

Common Information Model<br />

16 Version 1.0.2


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

535<br />

536<br />

537<br />

538<br />

539<br />

540<br />

541<br />

542<br />

543<br />

544<br />

545<br />

546<br />

547<br />

548<br />

549<br />

550<br />

551<br />

552<br />

553<br />

554<br />

555<br />

556<br />

557<br />

558<br />

559<br />

560<br />

561<br />

562<br />

563<br />

564<br />

565<br />

566<br />

567<br />

568<br />

569<br />

570<br />

571<br />

572<br />

573<br />

4.3<br />

CLP<br />

<strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong><br />

4.4<br />

MAP<br />

Manageability Access Point<br />

4.5<br />

ME<br />

Managed Element<br />

4.6<br />

NIC<br />

Network Interface Card<br />

4.7<br />

NVT<br />

Network Virtual Terminal<br />

4.8<br />

OEM<br />

Original Equipment Manufacturer<br />

4.9<br />

SMASH<br />

System <strong>Management</strong> Architecture for <strong>Server</strong> Hardware<br />

4.10<br />

SSHv2<br />

Secure Shell Version 2<br />

4.11<br />

UFcT<br />

User-Friendly class Tag<br />

4.12<br />

UFiT<br />

User-Friendly instance Tag<br />

4.13<br />

UFiP<br />

User-Friendly instance Path<br />

4.14<br />

UFsT<br />

User-Friendly selection Tag<br />

4.15<br />

WBEM<br />

Web Based Enterprise <strong>Management</strong><br />

Version 1.0.2 17


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

574<br />

575<br />

576<br />

577<br />

578<br />

579<br />

580<br />

581<br />

582<br />

583<br />

584<br />

585<br />

586<br />

587<br />

588<br />

589<br />

590<br />

591<br />

592<br />

593<br />

594<br />

595<br />

596<br />

597<br />

598<br />

599<br />

600<br />

601<br />

602<br />

603<br />

604<br />

605<br />

606<br />

607<br />

608<br />

609<br />

610<br />

611<br />

612<br />

5 <strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP)<br />

<strong>Specification</strong><br />

The following clauses detail the requirements for the SM CLP.<br />

5.1 Semantics<br />

The <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (CLP) defines the form and content of messages transmitted from and<br />

responses received by a Client within the context of a text-based session between that Client and the<br />

CLP Service for a Manageability Access Point (MAP).<br />

The CLP consists of a set of command verbs that manipulate command targets representing Managed<br />

Elements (ME) that are within the scope of access by a MAP.<br />

Each CLP interaction consists of a <strong>Command</strong> <strong>Line</strong> transmitted to the CLP Service and a subsequent<br />

response transmitted back to the Client. Each command transmitted generates one and only one<br />

response data transmission to the Client.<br />

5.1.1 <strong>Command</strong> Verb<br />

A CLP command verb retrieves information about a target or initiates a state change of the target. A CLP<br />

interaction shall consist of one and only one command verb.<br />

5.1.2 <strong>Command</strong> Options<br />

CLP command options control the behavior of the command verb. All CLP option names are standard<br />

across the CLP command verb set. Implementations of the CLP shall not redefine the usage of a CLP<br />

option name across different CLP command verbs.<br />

5.1.3 <strong>Command</strong> Target<br />

This clause details requirements related to the usage and interpretation of a command target.<br />

5.1.3.1 General<br />

The command target identifies the specific Managed Element or Association that is to be affected by the<br />

command verb. All CLP commands have a command target, whether explicitly or implicitly identified. An<br />

explicitly identified target is a target address path that is included in the <strong>Command</strong> <strong>Line</strong> entered. An<br />

implicitly identified target is a target that is not identified in the <strong>Command</strong> <strong>Line</strong> entered but either is<br />

dictated by the command verb itself or is referenced from the session environment variable "Current<br />

Default Target". Implementations shall interpret command verbs submitted to the CLP only for the<br />

Resultant Target. The CLP also defines Reserved Targets. Reserved Targets are strings whose<br />

interpretation is defined by this specification. Reserved Targets can be used to construct the command<br />

target term. Implementations shall not define Reserved Targets beyond the ones defined in this<br />

specification. Implementations shall interpret Reserved Targets in accordance with the meaning assigned<br />

to them by this specification.<br />

This version of the SM CLP <strong>Specification</strong> supports the <strong>Server</strong> <strong>Management</strong> Managed Element (SM ME)<br />

Addressing <strong>Specification</strong> v1.0 (128H5HDSP0215).<br />

5.1.3.2 Current Default Target<br />

A Current Default Target address shall always be in effect during a CLP session. This target is used by<br />

the <strong>Command</strong> Processor to determine the Resultant Target for the command according to the rules of<br />

target address precedence defined in 129H5.1.3.3.<br />

18 Version 1.0.2


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

613<br />

614<br />

615<br />

616<br />

617<br />

618<br />

619<br />

620<br />

621<br />

622<br />

623<br />

624<br />

625<br />

626<br />

627<br />

628<br />

629<br />

630<br />

631<br />

632<br />

633<br />

634<br />

635<br />

636<br />

637<br />

638<br />

639<br />

640<br />

641<br />

642<br />

643<br />

644<br />

645<br />

646<br />

647<br />

648<br />

649<br />

650<br />

651<br />

652<br />

653<br />

654<br />

655<br />

656<br />

657<br />

A session’s Current Default Target is only modified if set explicitly by a user. The rules for establishing<br />

and maintaining a session’s Current Default Target are as follows:<br />

• Implementations shall set the Current Default Target to the instance address of the root of the<br />

address space of the MAP upon CLP session activation. Implementations shall use the same<br />

initial value for the CDT for all users and shall not allow the initial value to be configurable by a<br />

user.<br />

– Therefore, Current Default Target is never at CLP session start.<br />

– If a user sets the CDT to another target address and then ends the session, on the next<br />

login by the user to a CLP session of the same MAP, the implementation shall set the CDT<br />

to the UFiP of the Managed Element that represents the root of address space of the MAP.<br />

• The <strong>Command</strong> Processor shall not allow the user to explicitly set the Current Default Target to<br />

an invalid target address during the session.<br />

• If the user attempts to set the Current Default Target to a target address for a Managed Element<br />

that is not responding or is not recognized as being in the scope of the MAP, then the attempt<br />

fails, and the implementation shall not change the Current Default Target and shall return a<br />

<strong>Command</strong> Status of COMMAND EXECUTION FAILED and a CIM Status of<br />

CIM_ERR_NOT_FOUND.<br />

• If a Managed Element becomes unresponsive at some point after it has been set as the Current<br />

Default Target, then the implementation shall return an appropriate error code and shall keep<br />

the Current Default Target address set to its current value until the user explicitly changes it to a<br />

different, valid target address. This prevents spurious drops in communication with the Current<br />

Default Target from causing an automatic change in the Current Default Target. Because<br />

unpredictable, undesired results would occur if the Current Default Target is automatically<br />

changed, the <strong>Command</strong> Processor shall not automatically change the value of the Current<br />

Default Target, for any reason.<br />

EXAMPLE A user sets the CDT to "/system1/disk3". Some time later, /system1/disk3 becomes<br />

unresponsive. As long as the user does not target the CDT with a command, there is no impact on the user’s<br />

current session. If the user decides to target /system1/disk3 by omitting the target term of the current command,<br />

the CLP implementation would discover that the target ME, /system1/disk3, is unresponsive and return an error<br />

code.<br />

5.1.3.3 Target Address Precedence<br />

The implementation shall determine the Resultant Target of a command in the order that follows:<br />

1) If the command verb has an Implicit <strong>Command</strong> Target, then the Implicit <strong>Command</strong> Target shall<br />

be selected as the Resultant Target.<br />

2) If a command target term is specified in the <strong>Command</strong> <strong>Line</strong>, the implementation shall apply the<br />

Target Address Evaluation Rules to derive the Resultant Target. These rules are detailed in<br />

130H5.2.1.3.6.<br />

3) If the <strong>Command</strong> <strong>Line</strong> did not include a command target term, the implementation shall select<br />

the CDT as the Resultant Target.<br />

If the Resultant Target is determined by the implementation to be invalid, then the implementation shall<br />

not execute the command and shall return a <strong>Command</strong> Status of COMMAND EXECUTION FAILED and<br />

a CIM Status of CIM_ERR_NOT_FOUND in the <strong>Command</strong> Response data. CLP commands that have an<br />

Implicit <strong>Command</strong> Target may still accept a command target term (for example, the cd command) or may<br />

not accept a command target term (for example, the exit command). Each command’s use of the<br />

command target term is documented in the subclause of Clause 131H6 devoted to the command.<br />

Version 1.0.2 19


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

658<br />

659<br />

660<br />

661<br />

662<br />

663<br />

664<br />

665<br />

666<br />

667<br />

668<br />

669<br />

670<br />

671<br />

672<br />

673<br />

674<br />

675<br />

676<br />

677<br />

678<br />

679<br />

680<br />

681<br />

682<br />

683<br />

684<br />

685<br />

686<br />

687<br />

688<br />

689<br />

690<br />

691<br />

692<br />

693<br />

694<br />

695<br />

696<br />

697<br />

698<br />

699<br />

700<br />

5.1.3.4 Target Managed Element Object Model and Semantics<br />

The CLP is designed for administrators and scripts that manage systems. At the same time, the CLP<br />

conforms to the object model described by the 132H4HCommon Information Model (CIM) Schema, version<br />

2.12.<br />

The CLP defines a set of general command verbs used to manipulate Managed Elements. In many<br />

cases, CLP verbs relate directly to typical object interactions, such as "set property value", "read property<br />

value", "put into a particular state", and so on. In other cases, CLP verbs are interpreted in the context of<br />

the Managed Element and map to particular methods of that Managed Element’s class.<br />

The CLP verb definitions in Clause 133H6 describe each CLP command verb in detail.<br />

134H32HDSP0216 describes the full mapping of the CLP to the CIM. For each CIM class, 135H32HDSP0216 describes the<br />

behavior of commands applied to a target instance of the class. The specification also describes the<br />

property names of those targets that are referenced or manipulated by the command.<br />

In the CLP, Managed Elements have the following aspects:<br />

• Properties<br />

These are properties of the Managed Element itself and are described in more detail in 136H5.1.4.<br />

• Contained Targets<br />

This is the set of Managed Elements immediately contained in the Managed Element according<br />

to the rules of instance containment described in 137H5.1.3.5.<br />

• Associations<br />

This is the set of associations that reference the Managed Element. They are described in more<br />

detail in 138H5.1.5.<br />

• Verbs<br />

This is the set of commands that are applicable to the Managed Element. The SM CLP verbs<br />

are described in Clause 139H6.<br />

5.1.3.5 Target Addressing<br />

CLP target addressing is defined by 140H5HDSP0215. CLP implementations shall operate only on command<br />

target terms that adhere to 141H5HDSP0215 or to the rules for identifying OEM targets described in 142H5.2.6.<br />

The specific arrangements of Managed Elements that a MAP may expose are documented in 143H5HDSP0215<br />

and SMASH Implementation Requirements (144H33HDSP0217). The SM CLP separates Managed Elements into<br />

two categories of targets: CLP Targets and OEM Targets. CLP Targets are Managed Elements whose<br />

properties, behavior, UFcT, and so on are wholly defined by the profiles approved for use with the CLP.<br />

OEM Targets are Managed Elements whose properties, behavior, UFcT, and so on are outside the scope<br />

of the profiles approved for use with the CLP and are vendor dependent.<br />

5.1.3.6 Aggregated Targets<br />

<strong>Command</strong> targets may be an aggregation of underlying components. These underlying components may<br />

be visible in the address space of the MAP. When the command target is composed of aggregated parts,<br />

the <strong>Command</strong> Processor shall interpret the command for the aggregated target as a single job and return<br />

a <strong>Command</strong> Response accordingly.<br />

The implementation may rely on the target Managed Element to implement the aggregated command<br />

function. One example of an aggregated target is an operating system. When a user issues a stop to an<br />

operating system instance, a single job is spawned. The operating system may attempt to shut down<br />

applications running within it. This action taken by the operating system is not modeled with jobs, and the<br />

results for individual applications are not displayed in the <strong>Command</strong> Results.<br />

20 Version 1.0.2


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

701<br />

702<br />

703<br />

704<br />

705<br />

706<br />

707<br />

708<br />

709<br />

710<br />

711<br />

712<br />

713<br />

714<br />

715<br />

716<br />

717<br />

718<br />

719<br />

720<br />

721<br />

722<br />

723<br />

724<br />

725<br />

726<br />

727<br />

728<br />

729<br />

730<br />

731<br />

732<br />

733<br />

734<br />

735<br />

736<br />

737<br />

738<br />

739<br />

740<br />

741<br />

742<br />

743<br />

744<br />

5.1.3.7 Target Grouping by Class<br />

"Grouping" describes the ability of a user to explicitly select more than one target for a command at the<br />

time the command is issued. The only method defined by the CLP for addressing multiple targets with a<br />

single command is Target Class Addressing.<br />

If the final term of the command target term is a UFsT, in general the <strong>Command</strong> Processor interprets the<br />

command target term as a selector for all Managed Elements of the class specified that are in the<br />

immediate container.<br />

Implementations shall support Target Class Addressing for the show command. Implementations may<br />

support Target Class Addressing for the create and delete commands. Implementations shall not<br />

support Target Class Addressing for CLP commands other than the show, create, and delete<br />

commands. When Target Class Addressing is utilized for a command, the implementation shall select the<br />

instances to be the target of the command by using the Rules for Selecting Instances by UFcT defined in<br />

145H5HDSP0215, where the Selection UFcT is the UFcT identified by the UFsT specified in the command target<br />

term.<br />

EXAMPLE The command target term "/system3/disk*" instructs the <strong>Command</strong> Processor to issue the<br />

command for all targets with an UFcT of "disk" in the container "/system3".<br />

5.1.4 <strong>Command</strong> Target Properties<br />

Target properties are identifying and descriptive information related to and defined by the target. Target<br />

properties are identified by property names. Each class of target defines a set of valid property names.<br />

Valid property names are found in the CIM Schema Managed Object Files (MOFs). Vendors may support<br />

vendor-specific property names according to the rules defined in 146H5.2.6 of this specification. The SM CLP<br />

recognizes three categories of properties:<br />

• Required Properties are properties that the profile defining the class of the target deems<br />

required for compliance with the profile. These properties will be present for the instance across<br />

implementations.<br />

• Core Properties are properties that are defined for the class of the target in the CIM schema.<br />

The profile that defines the class does not require these properties; however, they may be used<br />

because they are defined in the MOF. Note that this includes any deprecated properties which<br />

are still defined in the MOF. They may be present across implementations.<br />

• OEM Properties are properties defined by an OEM vendor for a target. These properties will not<br />

be consistent across different vendors’ implementations.<br />

5.1.5 Associations<br />

147H5HDSP0215 specifies the Association Classes that may be used to construct paths to address any Managed<br />

Element appearing within the scope of the MAP. 148H5HDSP0215 identifies these as Addressing Associations.<br />

Additional associations that are not used for addressing may exist and express relationships between<br />

Managed Elements. 149H5HDSP0215 identifies these as Non-addressing Associations. Associations represent a<br />

special type of target. Association instances are not assigned UFiTs. For a given association class,<br />

instances are uniquely identified by the Managed Element instances they reference. They can be<br />

addressed using an extension of the target addressing syntax. 150H5.2.1.3.5 describes how to use the<br />

association separator "=>" to address association instances. 151H6.10 and 152H6.11 illustrate the use of the set<br />

and show commands, respectively. Associations have properties which follow the rules for <strong>Command</strong><br />

Target Properties as identified in 153H5.1.4.<br />

5.1.6 <strong>Command</strong> Processing<br />

This clause states the requirements for the processing of a CLP <strong>Command</strong> <strong>Line</strong>.<br />

Version 1.0.2 21


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

745<br />

746<br />

747<br />

748<br />

749<br />

750<br />

751<br />

752<br />

753<br />

754<br />

755<br />

756<br />

757<br />

758<br />

759<br />

760<br />

761<br />

762<br />

763<br />

764<br />

765<br />

766<br />

767<br />

768<br />

769<br />

770<br />

771<br />

772<br />

773<br />

774<br />

775<br />

776<br />

777<br />

778<br />

779<br />

780<br />

781<br />

782<br />

783<br />

784<br />

785<br />

786<br />

787<br />

788<br />

789<br />

790<br />

791<br />

792<br />

793<br />

794<br />

5.1.6.1 General<br />

Implementations of the CLP shall return a <strong>Command</strong> Status of COMMAND PROCESSING FAILED and a<br />

Processing Error of COMMAND SYNTAX ERROR if a completely formed command is not contained in a<br />

single text message transmission of the underlying transport protocol. Implementations shall validate<br />

every <strong>Command</strong> <strong>Line</strong> against the clp-command-line production of the grammar specified in<br />

154HAnnex A. When a <strong>Command</strong> <strong>Line</strong> does not comply with the clp-command-line production of the<br />

grammar defined in 155HAnnex A, the implementation shall return a <strong>Command</strong> Status of COMMAND<br />

PROCESSING ERROR and a Processing Error of COMMAND SYNTAX ERROR. There are error<br />

conditions identified by this specification that can be detected by validation against the grammar for which<br />

this specification identifies specific values for Processing Error that are required to be returned instead.<br />

When specified, the requirement to return specific values supersedes the requirement to return the<br />

general COMMAND SYNTAX ERROR.<br />

EXAMPLE The create command requires a command target term to be specified. The specific Processing<br />

Error of MISSING REQUIRED TARGET is required to be returned if the command target term is not included.<br />

The grammar also requires that a command target term be specified in the create-cmd production. Thus, if a<br />

command target term is not specified, the <strong>Command</strong> <strong>Line</strong> will fail validation against the grammar and a<br />

COMMAND SYNTAX ERROR would be appropriate. However, this general Processing Error is superseded by<br />

the specific Processing Error specified for the error condition.<br />

5.1.6.2 Job Visibility<br />

A command is processed by the <strong>Command</strong> Processor component of the SM architecture. The <strong>Command</strong><br />

Processor returns a response and control to the Client for each command received. <strong>Command</strong>s and the<br />

subordinate activities generated when processing commands are tracked by the implementation. A job is<br />

defined as an identifiable activity of a MAP. The implementation spawns and manages jobs for a<br />

command and any subsequent actions that are taken to carry out the command request. When an<br />

implementation receives a command, the command becomes a job. The command job may generate<br />

additional subordinate Managed Element jobs in order to complete the task requested by the command<br />

verb, but the implementation shall not expose these jobs through the CLP. The command job shall<br />

continue to exist until any and all jobs spawned by the command have completed, a <strong>Command</strong> Response<br />

has been returned to the Client, and the Time Before Removal has not expired.<br />

By default, the implementation shall return a <strong>Command</strong> Response and session control to the Client within<br />

a reasonable period of time, regardless of the status of command execution. Returning a response and<br />

control prevents the CLP session from blocking indefinitely if a command takes an unreasonable amount<br />

of time. The definition of "a reasonable period of time" is implementation specific. Any mechanisms for<br />

modifying this value are outside the scope of this specification and are implementation specific.<br />

When the implementation returns a <strong>Command</strong> Response synchronous with completion of the command<br />

job, the <strong>Command</strong> Response shall contain the <strong>Command</strong> Status and the complete <strong>Command</strong> Results.<br />

When the implementation returns a <strong>Command</strong> Response before the command job completes, the<br />

<strong>Command</strong> Response shall contain the <strong>Command</strong> Status of COMMAND SPAWNED and the Job Identifier<br />

for the continuing command job.<br />

The implementation shall manage the command job until it completes and persist the <strong>Command</strong> Status<br />

when complete, identified by the Job Identifier. The implementation is not required to maintain the<br />

<strong>Command</strong> Results for the command. Implementations shall recognize the Job Identifier as an identifier<br />

used to obtain status information about the continuing command and to retrieve the <strong>Command</strong> Status<br />

when the command job is complete. The Job Identifier shall be the Instance Suffix for the UFiT of the<br />

instance of CIM_ConcreteJob used to represent the job in the job queue. After the <strong>Command</strong> Status<br />

holding time has expired, the corresponding job is deleted and the Job Identifier is released.<br />

Implementations shall also implement a user-controlled holding time for <strong>Command</strong> Status, controlled by a<br />

per-command option. Use of this option is documented in Error! Reference source not found.. Every<br />

command job has a Time Before Removal associated with it. The Time Before Removal indicates the<br />

amount of time that a command job is managed by the MAP after completion. The command job itself is<br />

22 Version 1.0.2


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

795<br />

796<br />

797<br />

798<br />

799<br />

800<br />

801<br />

802<br />

803<br />

804<br />

805<br />

806<br />

807<br />

808<br />

809<br />

810<br />

811<br />

812<br />

813<br />

814<br />

815<br />

816<br />

817<br />

818<br />

819<br />

820<br />

821<br />

822<br />

823<br />

824<br />

825<br />

826<br />

827<br />

828<br />

829<br />

830<br />

831<br />

832<br />

833<br />

834<br />

835<br />

represented with an instance of CIM_ConcreteJob. The Time Before Removal of the command job is<br />

modeled with the TimeBeforeRemoval property of the CIM_ConcreteJob instance.<br />

Jobs are themselves Managed Elements of the system; therefore, the implementation shall support<br />

display of information about a job and the ability to request a job to stop before completion using CLP<br />

commands. If the implementation is unable to start a job to execute a command, the implementation shall<br />

return a <strong>Command</strong> Status of COMMAND PROCESSING FAILED and a Processing Error of QUEUE<br />

FULL.<br />

5.1.6.3 Error Handling<br />

The CLP Service checks CLP commands for syntax and semantic errors. When a command is formed<br />

incorrectly or the command cannot be executed for the specified target because the target is not in an<br />

appropriate state, the implementation shall return an error/exception status in the <strong>Command</strong> Status data<br />

and no <strong>Command</strong> Results.<br />

When a command is syntactically correct and semantically appropriate, the implementation shall attempt<br />

to perform the appropriate operations for the command target. If one or more operations fail, the<br />

implementation shall return a <strong>Command</strong> Response containing both a <strong>Command</strong> Status and <strong>Command</strong><br />

Results, including any error/exception information generated by the command target.<br />

Implementations shall include all detected syntax errors first in the <strong>Command</strong> Status data.<br />

Implementations shall include all detected semantic errors in the <strong>Command</strong> Status data.<br />

If the <strong>Command</strong> Processor detects a syntax error, the implementation shall report an error and the<br />

implementation shall not alter the state of the Target. If the <strong>Command</strong> Processor detects a semantic error,<br />

the implementation shall report an error and should not alter the state of the Target.<br />

<strong>Command</strong> Status output is defined by the CLP and is documented in 156H5.2.2.<br />

<strong>Command</strong> Results output is defined for each CLP command and is documented in Clause 157H6.<br />

5.1.7 SESSION Reserved Target<br />

Sessions with the CLP Service are represented as Managed Elements within the address space of the<br />

MAP. This enables users of the CLP to manage attributes of the session using standard CLP commands.<br />

Users will frequently wish to manage attributes of their own session with the CLP Service. To simplify<br />

accessing the Managed Element that represents the user’s session, the CLP defines a reserved keyword<br />

"SESSION". Implementations shall interpret the keyword "SESSION" as the fully qualified path to the<br />

Managed Element that represents the session of the user issuing the command.<br />

5.1.8 UFiT Assignment<br />

Individual Managed Elements within the address space of the map are identified by a UFiT. The UFiT is<br />

constructed by concatenating an integer suffix to the UFcT for the class of the Managed Element. The<br />

rules for assigning and maintaining UFiTs are defined in 158H5HDSP0215.<br />

5.1.9 Input Data<br />

This clause states requirements for the handling of input data.<br />

5.1.9.1 General<br />

Implementations of the CLP shall not allow inclusion of input data embedded in the text session<br />

(sometimes referred to as "streaming"). A data file or stream can be selected for input to a CLP command<br />

by reference only using a command-specific option.<br />

EXAMPLE To input a firmware image for reloading firmware, the option –source is used.<br />

Version 1.0.2 23


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

836<br />

837<br />

838<br />

839<br />

840<br />

841<br />

842<br />

843<br />

844<br />

845<br />

846<br />

847<br />

848<br />

849<br />

850<br />

851<br />

852<br />

853<br />

854<br />

855<br />

856<br />

857<br />

858<br />

859<br />

860<br />

861<br />

862<br />

863<br />

864<br />

865<br />

866<br />

867<br />

868<br />

869<br />

870<br />

871<br />

872<br />

873<br />

874<br />

875<br />

876<br />

877<br />

878<br />

879<br />

880<br />

5.1.9.2 Data Passed in on <strong>Command</strong> <strong>Line</strong><br />

Data may be provided as input to a command through an option argument, option argument value, or a<br />

property value. Each command verb defines the options and option arguments that it accepts. The class<br />

of command target defines the properties that are accepted by the command. Implementations shall<br />

enforce a maximum length of 255 characters for any single term in a command. If a single term exceeds a<br />

maximum length of 255 characters, the implementation shall not execute the command and shall return a<br />

<strong>Command</strong> Status of COMMAND PROCESSING FAILED and a Processing Error of COMMAND SYNTAX<br />

ERROR.<br />

5.1.10 Output Data<br />

This clause states requirements related to output data.<br />

5.1.10.1 General<br />

The semantics of CLP command output data are defined by the CLP output data schema. The CLP<br />

output data schema defines the attributes and organization of the data elements returned in response to a<br />

CLP command. When a command is issued, in the absence of transport errors, the implementation shall<br />

return a <strong>Command</strong> Response data element as the response before any other text that is appended.<br />

Implementations shall include a <strong>Command</strong> Status data element in the <strong>Command</strong> Response data element<br />

and may include a <strong>Command</strong> Results data element. Implementations shall always return <strong>Command</strong><br />

Status data first in a <strong>Command</strong> Response.<br />

The CLP syntax defines the keywords and value specifications (data types and ranges or domains) that<br />

are used to document CLP command output.<br />

CLP output data is rendered in character form according to the rules set forth in 159H5.2.4 and 160H5.2.1.1. By<br />

default, a CLP session renders all output data in an output format called "text". Text output format is<br />

defined to be human-readable text that is not suitable for machine-parsing and will vary across<br />

implementations. In order to parse output data according to the CLP output data schema, selection of one<br />

of the CLP’s structured output formats is recommended. These formats are "keyword" and "clpxml".<br />

Implementations shall use the attribute keywords consistently to identify output data elements in each of<br />

the output formats. For example, the keyword "status" is rendered as a keyword in a "keyword=value"<br />

expression in "keyword" format and as an XML tag in "clpxml" format.<br />

Text mode output is optimized for human readability and is likely to vary from implementation to<br />

implementation and in situation to situation. For example, when in text output mode, <strong>Command</strong> Status<br />

Data may not display the numeric value of the status code when the command is successful but instead<br />

simply describe the resulting condition of the target after the command has completed. For example,<br />

when the command "stop system1" completes successfully, the text mode output may simply state<br />

"system1 stopped". By contrast, when a structured output mode is selected, the implementation shall<br />

include all of the required and supported optional elements of the <strong>Command</strong> Status Data in the output.<br />

The CLP Output Data Schema is documented in 161H5.2.2.<br />

The following clauses contain data definitions for the output data elements in the CLP Output Data<br />

Schema.<br />

5.1.10.2 <strong>Command</strong> Status Data Elements<br />

This clause states requirements related to <strong>Command</strong> Status Data Elements.<br />

5.1.10.2.1 General<br />

<strong>Command</strong> Status data elements communicate the status of the command to the Client. Depending on the<br />

command verb and user-selected options, a command may continue to run after returning a response<br />

and control to the Client. In this case, the <strong>Command</strong> Status data also includes a Job Identifier that can be<br />

used to display the status of the command job at a later time.<br />

24 Version 1.0.2


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

881<br />

882<br />

883<br />

884<br />

885<br />

886<br />

887<br />

888<br />

889<br />

890<br />

891<br />

892<br />

893<br />

894<br />

895<br />

896<br />

897<br />

898<br />

899<br />

900<br />

901<br />

902<br />

903<br />

904<br />

905<br />

906<br />

907<br />

908<br />

909<br />

910<br />

911<br />

912<br />

913<br />

914<br />

915<br />

916<br />

917<br />

918<br />

919<br />

920<br />

921<br />

The implementation shall return the <strong>Command</strong> Status data element as the first data element in a<br />

<strong>Command</strong> Response. Implementations shall not include any data elements or properties in the <strong>Command</strong><br />

Status data element other than those defined here.<br />

The <strong>Command</strong> Status data element includes<br />

• a Status property<br />

• a Status Tag property<br />

• a Processing Error property<br />

• a Processing Error Tag property<br />

• one or more Message data elements<br />

• a Job data element<br />

The Status property describes the outcome of the command. The <strong>Command</strong> Status documents the<br />

disposition of the command from the perspective of the CLP Session protocol. Status for each command<br />

is one of four values: COMMAND COMPLETED, COMMAND SPAWNED, COMMAND PROCESSING<br />

FAILED, or COMMAND EXECUTION FAILED. If the command fails, then the Client can examine the<br />

subsequent <strong>Command</strong> Status data element to determine the cause of the failure. The Status Tag<br />

property is the descriptive string corresponding to the numeric value of the Status property. The complete<br />

list of Status and Status Tag values are listed in 162HTable 4.<br />

Processing Errors are conditions detected by the <strong>Command</strong> Processor prior to creating a job to execute<br />

the command. These are generally syntax-related errors. Two properties are defined for a Processing<br />

Error. The Processing Error property identifies the specific error that occurred when processing the<br />

command. The Processing Error Tag property is the descriptive string corresponding to the numeric value<br />

of the Processing Error property. The complete list of Processing Errors is in 163HTable 6.<br />

Implementations may support the Status Tag and Processing Error Tag properties.<br />

5.1.10.2.2 Message Data Elements<br />

The Message element is a text message that describes the disposition of the command. By default, the<br />

status message is presented in English text.<br />

The Message data element includes<br />

• a Message property<br />

• an Owning Entity property<br />

• a Message Id property<br />

• one or more Message Argument properties<br />

When the Message data element is included in a <strong>Command</strong> Response, the implementation shall include<br />

the Message, Owning Entity, and Message Id properties, and may include one or more Message<br />

Argument properties. Implementations shall ensure that the value of the Message Id property together<br />

with the value of the Owning Entity property is unique. The Client can use these values to identify<br />

corresponding language translations of the <strong>Command</strong> Status message.<br />

To guarantee uniqueness, the Owning Entity property shall include a prefix string that uniquely identifies<br />

the entity that owns and defines the Owning Entity value. The prefix string shall include a copyrighted,<br />

trademarked, or otherwise unique name that is owned by the business entity or standards body defining<br />

the owning entity string. The implementation shall not return a status message that exceeds 256<br />

characters. Implementations may support the Message data element.<br />

Version 1.0.2 25


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

922<br />

923<br />

924<br />

925<br />

926<br />

927<br />

928<br />

929<br />

930<br />

931<br />

932<br />

933<br />

934<br />

935<br />

936<br />

937<br />

938<br />

939<br />

940<br />

941<br />

942<br />

943<br />

944<br />

945<br />

946<br />

947<br />

948<br />

949<br />

950<br />

951<br />

952<br />

953<br />

954<br />

955<br />

956<br />

957<br />

958<br />

959<br />

960<br />

961<br />

962<br />

5.1.10.2.3 Job Data Elements<br />

The Job data element describes the job created to execute the command.<br />

The Job data element includes<br />

• a Job Identifier property<br />

• a Job Error data element<br />

The Job Identifier is used to identify the MAP job that represents the command execution. The Job<br />

Identifier is used to query for <strong>Command</strong> Status at a later time. The value of the Job Identifier property is<br />

the Job Identifier for the job spawned by the MAP to process a command. The implementation shall<br />

include the Job Identifier property whenever it returns a Job data element in a <strong>Command</strong> Response.<br />

Job Errors are conditions that are detected by the implementation or by the Managed Element target of<br />

the command. These errors are detected after a job is created to execute the command. The Job Error<br />

properties provide details of the cause of the command failure. The Job Error data element includes<br />

• an Execution Error property<br />

• an Execution Error Tag property<br />

• one or more Message data elements<br />

• a CIM Status property<br />

• a CIM Status Description property<br />

• a Severity property<br />

• a Severity Description property<br />

• a Probable Cause property<br />

• a Probable Cause Description property<br />

• one or more Recommended Action properties<br />

• an Error Source property<br />

• an Error Source Form property<br />

• an Error Source Form Description property<br />

When the Job Error data element is included in a <strong>Command</strong> Response, the implementation shall include<br />

the Execution Error, CIM Status, and Severity properties. When the Job Error data element is included in<br />

a <strong>Command</strong> Response, the implementation may include Message data elements and may include any<br />

other properties of the Job Error data element not explicitly required. A complete description of Job Error<br />

properties and values is found in 164H5.2.3.2.<br />

The implementation shall include the Status property in the <strong>Command</strong> Status data element.<br />

Implementations may include the Status Tag property and may include the Message data element. The<br />

implementation shall not include the Processing Error or Processing Error Tag properties in the<br />

<strong>Command</strong> Status data element unless the <strong>Command</strong> Status is COMMAND PROCESSING FAILED.<br />

When the <strong>Command</strong> Status is COMMAND PROCESSING FAILED, the implementation shall include the<br />

Processing Error property in the <strong>Command</strong> Status data element.<br />

When the <strong>Command</strong> Status is COMMAND EXECUTION FAILED, the implementation shall include the<br />

Job data element in the <strong>Command</strong> Status data element and shall include the Job Error data element in<br />

the Job data element.<br />

When the <strong>Command</strong> Status is COMMAND PROCESSING FAILED, the implementation shall not include<br />

the Job data element in the <strong>Command</strong> Status data element.<br />

26 Version 1.0.2


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

963<br />

964<br />

965<br />

966<br />

967<br />

968<br />

969<br />

970<br />

971<br />

972<br />

973<br />

974<br />

975<br />

976<br />

977<br />

978<br />

979<br />

980<br />

981<br />

982<br />

983<br />

984<br />

985<br />

986<br />

987<br />

988<br />

989<br />

990<br />

991<br />

992<br />

993<br />

994<br />

995<br />

996<br />

997<br />

998<br />

999<br />

1000<br />

1001<br />

1002<br />

When the <strong>Command</strong> Status is COMMAND SPAWNED, the implementation shall include the Job data<br />

element in the <strong>Command</strong> Status data element and shall not include the Job Error data element in the Job<br />

data element.<br />

When the <strong>Command</strong> Status is COMMAND COMPLETED, the implementation shall include the Job data<br />

element in the <strong>Command</strong> Status data element and shall not include the Job Error data element in the Job<br />

data element. When the <strong>Command</strong> Status is Completed, the implementation shall include the <strong>Command</strong><br />

Results data element in the <strong>Command</strong> Response.<br />

5.1.10.3 <strong>Command</strong> Results Data Elements<br />

The output data elements for <strong>Command</strong> Results are defined by command verb-specific <strong>Command</strong><br />

Results schema.<br />

<strong>Command</strong> Results data elements include<br />

• command-specific output data elements as defined by the command verb’s specification<br />

• target-specific data elements as defined by the SM Profiles<br />

The specification for each CLP command verb documents the applicable <strong>Command</strong> Results schema for<br />

that command. See Clause 165H6 for command specifications and their corresponding <strong>Command</strong> Result<br />

schema.<br />

In addition, CLP commands return output data that is relevant to the particular Managed Elements or<br />

Associations that were identified as the command target. Target-specific data elements are returned in<br />

the <strong>Command</strong> Results data.<br />

See 166H32HDSP0216 for the keywords and value specifications that are relevant to each class of the target<br />

Managed Element.<br />

5.1.11 Session Prompt<br />

CLP session output shall include a session prompt. The CLP defines a specific output format and<br />

character string that are used to delineate the session prompt.<br />

CLP session output shall be of the following form:<br />

<br />

where<br />

• OUTPUT is the <strong>Command</strong> Response. The <strong>Command</strong> Response shall be formatted<br />

according to one of the CLP-defined output formats.<br />

• IMP PROMPT is the implementation’s optional prompt string, which shall not contain the<br />

CLP PROMPT string.<br />

• CLP PROMPT is the CLP standard prompt string, "-> ". The CLP prompt string shall<br />

appear after each <strong>Command</strong> Response.<br />

Implementations shall include the CLP prompt string, "-> " (hyphen, greater than, space) after every<br />

<strong>Command</strong> Response returned to the Client. Implementations shall not return any text after the prompt.<br />

Implementations may omit an implementation-provided prompt string. If the implementation provides an<br />

implementation prompt string, the implementation shall insert the prompt string after the CLP <strong>Command</strong><br />

Response data and before the CLP prompt string.<br />

Implementations may vary the implementation prompt string from <strong>Command</strong> Response to <strong>Command</strong><br />

Response. The implementation is not required to maintain a consistent prompt string.<br />

Version 1.0.2 27


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

1003<br />

1004<br />

1005<br />

1006<br />

1007<br />

1008<br />

1009<br />

1010<br />

1011<br />

1012<br />

1013<br />

1014<br />

1015<br />

1016<br />

1017<br />

1018<br />

1019<br />

1020<br />

1021<br />

1022<br />

1023<br />

1024<br />

1025<br />

1026<br />

1027<br />

1028<br />

1029<br />

1030<br />

1031<br />

1032<br />

1033<br />

The CLP is a command-response text-based message protocol. An implementation of the CLP Service<br />

shall return a response to each command presented by the Client. Implementations of the CLP Service<br />

shall not accept any further commands from the Client until after the implementation returns a <strong>Command</strong><br />

Response for the currently outstanding command.<br />

Because the CLP is primarily for use by a human user, the CLP Service shall return a <strong>Command</strong><br />

Response within a "reasonable amount of time". The CLP Service shall be capable of spawning any<br />

commands that it determines to be long running. When commands are spawned, the CLP Service shall<br />

return an interim <strong>Command</strong> Response containing the Job Identifier that is to be used by the Client to<br />

retrieve the <strong>Command</strong> Status and results when the command completes.<br />

5.1.12 Extending the <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong><br />

The CLP can be extended by a vendor in one of the following ways:<br />

• supplying vendor-specific command verbs, options, target addresses, or properties<br />

• adding vendor-specific information to standard CLP command verb output<br />

Vendor extensions are conspicuously named as described in 167H5.2.6 so that the user is aware that the use<br />

of the extension is non-standard. The syntax clause of this document defines areas of vendor extensibility<br />

and the requirements in effect for those extensions.<br />

5.2 Syntax<br />

The CLP implements a small and easily remembered set of verbs (Clause 168H6) that apply across the entire<br />

target address space (169H5.1.3). This allows users to quickly understand the function available to them and<br />

then apply that knowledge across a wide variety of environments. These verbs provide a consistent set of<br />

output (170H5.1.10), which further simplifies understanding by both the new and experienced user as they<br />

move from implementation to implementation and from simple to complex behaviors. As users become<br />

more experienced and sophisticated, they can further refine the behavior of these verbs using a set of<br />

<strong>Command</strong> <strong>Line</strong> options that are also standard across the entire CLP verb space (Clause 171H7).<br />

5.2.1 Basic <strong>Command</strong> Syntax<br />

The SM CLP basic command syntax is described in the following clauses.<br />

5.2.1.1 Character Set, Delimiters, Special, and Reserved Characters<br />

All implementations of the CLP shall interpret the characters provided by the transport as UTF8<br />

representation of the characters, including those in 172HTable 1, and shall interpret the characters in 173HTable 1<br />

according to the description included in 174HTable 1.<br />

Table 1 – CLP Reserved Characters and Character Sequences<br />

Character or<br />

Sequence Name Description / Uses<br />

" " space <strong>Command</strong> line term separator.<br />

` escape character Escape character (the backquote character), used in front of<br />

reserved characters to instruct the command parser to use the<br />

reserved character without special meaning. When the escape<br />

character is not followed by a reserved character, it is treated as a<br />

normal character in the string that contains it.<br />

<br />

<br />

<br />

end-of-line<br />

Each of these sequences is accepted as an end-of-line indicator.<br />

28 Version 1.0.2


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

Character or<br />

Sequence Name Description / Uses<br />

<br />

line continuation<br />

An escape character placed immediately before the end-of-line<br />

sequence indicates that the current line is continued to the<br />

following line. The following line will be appended to the current<br />

line.<br />

, comma Delimits items in an option argument term that is to be interpreted<br />

as a list of option arguments. Also delimits values for an option<br />

argument.<br />

= assignment operator A single equal sign '=' is used to separate a property name from a<br />

desired value for the property when used with verbs that modify or<br />

create an instance. It will not have a space before or after it in an<br />

expression of a property and its value.<br />

== equivalence operator Two consecutive equal signs "==" without white space between<br />

them are used to separate a property name from a desired value<br />

when filtering instances for which results are returned.<br />

- hyphen When preceded by a space, the hyphen is the CLP option<br />

indicator.<br />

/<br />

address term<br />

Separates the UFiT terms of a target address.<br />

\<br />

separator<br />

=> association separator Used to separate an association from the portions of the command<br />

target term that identify the instances the association references.<br />

. dot Recognized as a special target address token meaning "this<br />

container".<br />

.. dot-dot Recognized as a special target address token meaning "the<br />

container of this container".<br />

( ) parentheses In an option argument term that is a comma-separated list,<br />

delineates the values of an argument from the next option<br />

argument.<br />

" double quote Delineates a string of text that may contain the CLP term separator<br />

(space) so that the CLP <strong>Command</strong> Processor will treat the<br />

delineated text as one string.<br />

"-> " CLP PROMPT Literal representation of the CLP prompt.<br />

(hyphen, greaterthan,<br />

space)<br />

SESSION SESSION Reserved target representing the current session.<br />

1034<br />

1035<br />

1036<br />

1037<br />

1038<br />

1039<br />

1040<br />

1041<br />

1042<br />

1043<br />

1044<br />

1045<br />

1046<br />

5.2.1.2 Case Sensitivity<br />

The general CLP <strong>Command</strong> <strong>Line</strong> syntax is not case sensitive. <strong>Command</strong> verb, option, target, and<br />

property names may be expressed in any combination of uppercase and lowercase characters.<br />

Implementations shall accept command verb, option, option argument, target, and property names<br />

expressed in any combination of uppercase and lowercase characters.<br />

EXAMPLE "show", "Show", and "SHOW" are all valid expressions of the CLP verb "show". "-o<br />

Format=clpxml", "-O format=clpxml", and "-OUTPUT FORMAT=clpxml" are all valid expressions of the output<br />

option and format argument.<br />

For readability, this specification documents all verb, option, target, and property names in lowercase.<br />

The CLP places no restrictions on case sensitivity for the interpretation of property values. Interpretation<br />

of property values (including case sensitivity) is determined by the profile that defines the target to which<br />

the property belongs. Requirements for the input format of common property types are specified in<br />

175H32HDSP0216.<br />

Version 1.0.2 29


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

1047<br />

1048<br />

1049<br />

1050<br />

1051<br />

1052<br />

1053<br />

1054<br />

1055<br />

1056<br />

1057<br />

1058<br />

1059<br />

1060<br />

1061<br />

1062<br />

1063<br />

1064<br />

1065<br />

1066<br />

1067<br />

1068<br />

1069<br />

1070<br />

1071<br />

1072<br />

1073<br />

1074<br />

1075<br />

1076<br />

1077<br />

1078<br />

1079<br />

1080<br />

1081<br />

1082<br />

1083<br />

1084<br />

1085<br />

1086<br />

1087<br />

1088<br />

1089<br />

1090<br />

1091<br />

1092<br />

1093<br />

1094<br />

5.2.1.3 <strong>Command</strong> <strong>Line</strong> Terms<br />

This clause details the requirements for <strong>Command</strong> <strong>Line</strong> Terms.<br />

5.2.1.3.1 General<br />

A CLP <strong>Command</strong> <strong>Line</strong> consists of four types of terms: verbs, options and option argument terms,<br />

command target terms, and target property terms. Each term on the <strong>Command</strong> <strong>Line</strong> is separated from<br />

other terms by the CLP command term separator character, " " (space). (See 176H5.2.1.1 for the list of CLP<br />

special and reserved characters.) Implementations shall recognize the CLP command term separator<br />

character, beginning of line, and end of line as delimiting terms on the <strong>Command</strong> <strong>Line</strong>.<br />

Implementations shall recognize the end-of-line character as terminating a single <strong>Command</strong> <strong>Line</strong> unless it<br />

is preceded by the CLP escape character.<br />

A single <strong>Command</strong> <strong>Line</strong> may be continued across end-of-line by using the CLP escape character<br />

immediately before the end-of-line character. The implementation shall not initiate command processing<br />

until after the complete command has been received by the CLP. If an implementation receives a<br />

<strong>Command</strong> <strong>Line</strong> that contains zero characters or consists entirely of the command term separator<br />

character, implementations shall return a <strong>Command</strong> Response that contains exactly zero characters. The<br />

effect of this requirement is such that a blank line is not reported as an error and instead results in a CLP<br />

prompt being returned.<br />

5.2.1.3.2 Verb<br />

The implementation shall expect the command verb to be the first term in a command. The<br />

implementation will expect the command verb to be one of the specified CLP command verbs listed in<br />

Clause 177H6 or an OEM command line extended form as defined in 178H5.2.6.3.3. Implementations shall not<br />

support any verbs other than the CLP verbs defined in this specification and any command verbs<br />

identified as OEM verbs according to 179H5.2.6.3.3. When the first term in a <strong>Command</strong> <strong>Line</strong> is not a CLP verb<br />

and is not identified as an OEM verb according to the rules in 180H5.2.6.3.3, the implementation shall not<br />

execute the command and shall return a <strong>Command</strong> Status of COMMAND PROCESSING FAILED and a<br />

Processing Error of COMMAND NOT RECOGNIZED.<br />

5.2.1.3.3 Options and Option Arguments<br />

<strong>Command</strong> options may be included immediately after the command verb. <strong>Command</strong> options are<br />

recognized by the option indicator character, "-" (single hyphen). If options are specified in a command,<br />

the options and their arguments shall occur immediately after the command verb and before the optional<br />

command target term and target properties.<br />

<strong>Command</strong> options either require an argument or require no argument.<br />

Options that require no argument are separated from the subsequent options, command target term, or<br />

target property names by the command term separator character. Options that require arguments are<br />

separated from their option argument term by the command term separator character. An option<br />

argument will be one or more argument names or argument/value pairs. The comma is used to delimit<br />

arguments and argument/value pairs within the option argument term. The comma is also used to delimit<br />

values within an argument value. Using the comma for two types of tokenization within the option<br />

argument term could result in ambiguity when parsing an option argument term. To eliminate the potential<br />

for ambiguity, parentheses are used to enclose argument values which can be comma-delimited lists.<br />

When processing an option argument term, implementations will tokenize the option argument term using<br />

the comma as a delimiter unless the comma is enclosed in parentheses, in which case the<br />

implementation will ignore it. Implementations shall interpret a "," (comma) as delimiting arguments in the<br />

option argument term unless the comma is preceded by a left parenthesis "(", in which case the<br />

implementation shall ignore any commas that occur prior to a matching right parenthesis ")". If while<br />

parsing a <strong>Command</strong> <strong>Line</strong> an implementation encounters an option it does not recognize, the<br />

implementation shall not execute the command and shall return a <strong>Command</strong> Status of COMMAND<br />

PROCESSING FAILED and a Processing Error of INVALID OPTION.<br />

30 Version 1.0.2


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

1095<br />

1096<br />

1097<br />

1098<br />

1099<br />

1100<br />

1101<br />

1102<br />

1103<br />

1104<br />

1105<br />

1106<br />

1107<br />

1108<br />

1109<br />

1110<br />

1111<br />

1112<br />

1113<br />

1114<br />

1115<br />

1116<br />

1117<br />

1118<br />

1119<br />

1120<br />

1121<br />

1122<br />

1123<br />

1124<br />

1125<br />

1126<br />

1127<br />

1128<br />

1129<br />

1130<br />

1131<br />

1132<br />

1133<br />

1134<br />

1135<br />

1136<br />

1137<br />

1138<br />

5.2.1.3.4 Target Address<br />

A Target Address is a string that follows the Target Address Syntax and is used to identify the target of a<br />

command. The SM CLP supports several types of target addressing. It supports individual instance<br />

addressing as defined in 181H5HDSP0215. Instance addressing is extended to include support for Relative<br />

Target Addresses. It adds support for addressing instances of a particular class and support for<br />

addressing an instance or instances of an association relative to target instances that the association<br />

references.<br />

Implementations shall require that if the command target term is included in the <strong>Command</strong> <strong>Line</strong>, the<br />

command target term is the first term that is not an option after the command verb. Implementations shall<br />

require that when the command target term is included in the command, the command target term<br />

appears before any target property names.<br />

The implementation shall observe the following ordered rules for determining if the first non-option or<br />

option argument term after the verb is treated as a command target term:<br />

• If the first non-option or option argument term after the verb contains one of the following CLP<br />

reserved addressing terms ("." [dot], ".." [dot dot], address term separator, "=>" [association<br />

separator], or SESSION) and the term is unescaped, the implementation shall interpret the term<br />

as a command target term.<br />

• If the first non-option or option argument term after the verb ends in an integer or an "*"<br />

(asterisk) and does not contain an unescaped assignment operator or equivalence operator, the<br />

implementation shall interpret the term as a command target term.<br />

• When the <strong>Command</strong> Processor discovers that the first non-option or option argument term after<br />

the verb is not a command target term, the <strong>Command</strong> Processor shall assume that the term,<br />

and any subsequent terms, are target property terms.<br />

These rules enable a Client wishing to ensure consistent results when specifying a command target term<br />

to do so through the inclusion of one of the CLP reserved addressing terms. When the implementation<br />

determines that a command target term has been specified, the implementation shall validate the<br />

command target term against the all-legal-targets production of the grammar specified in 182HAnnex A. If the<br />

command target term is invalid, the implementation shall return a <strong>Command</strong> Status of COMMAND<br />

PROCESSING FAILED and a Processing Error of INVALID TARGET.<br />

The order of precedence for determining the Resultant Target of a command is defined in 183H5.1.3.<br />

5.2.1.3.5 Target Address Syntax<br />

Target addresses in the SM CLP are composed of the following parts:<br />

• UFiT—A UFcT concatenated with an integer suffix. Selects a specific Managed Element in a<br />

given container.<br />

• UFsT—A UFcT concatenated with an asterisk. Selects all instances of the type specified by the<br />

UFcT within a given container.<br />

• address term separator (/ or \)—When located at the beginning of a command target term,<br />

represents the root of the address space. When used to separate two UFiTs in an address,<br />

represents an Addressing Association between them.<br />

• association separator (=>)—Delimits an Association Class within a target address. The portion<br />

of the target address preceding, and optionally following, the Association Class identifies one, or<br />

both, Managed Elements referenced by the target Association instance.<br />

• dot (.)—Reserved term meaning "this target"<br />

• dot dot (..)—Reserved term meaning "the container of this target"<br />

Version 1.0.2 31


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

1139<br />

1140<br />

1141<br />

1142<br />

1143<br />

1144<br />

1145<br />

1146<br />

1147<br />

1148<br />

1149<br />

1150<br />

1151<br />

1152<br />

1153<br />

1154<br />

1155<br />

1156<br />

1157<br />

1158<br />

1159<br />

1160<br />

1161<br />

1162<br />

1163<br />

1164<br />

1165<br />

1166<br />

1167<br />

1168<br />

1169<br />

1170<br />

1171<br />

1172<br />

1173<br />

1174<br />

1175<br />

1176<br />

1177<br />

1178<br />

1179<br />

1180<br />

1181<br />

1182<br />

1183<br />

1184<br />

1185<br />

1186<br />

1187<br />

Each UFiT is a short, text string identifier of a Managed Element in the address space of the MAP. A UFiT<br />

is of the form "UFcT" where the first component is a short, text string tag that<br />

identifies the class of Managed Element and the second component is an integer suffix that uniquely<br />

identifies the Managed Element in its container.<br />

An instance address is a sequence of Managed Element tags, or UFiTs, separated by the slash<br />

character. Any UFiT that is followed by a slash character indicates that the remaining target address path<br />

is contained within that Managed Element. A UFiP is an Absolute Target Address that references exactly<br />

one Managed Element and does not contain any of the CLP addressing extensions (dot, dot dot, or<br />

SESSION). The CLP <strong>Command</strong> <strong>Line</strong> grammar is formally defined in 184HAnnex A.<br />

The general syntax of an instance address is as follows (in ABNF form):<br />

[ ] *[ ( "." / ".." / ) ]<br />

<br />

By successively interpreting each term of the command target term and performing any substitutions<br />

necessary, it is possible to create a UFiP identifying the Managed Element that is the target of the<br />

command.<br />

Some SM CLP commands can be invoked against a UFsT. When the target address path terminates in a<br />

UFsT, the <strong>Command</strong> Processor interprets the command to be targeted to all Managed Elements of that<br />

class within that container or uses the class tag as a selector for the action specified by the verb. The<br />

general syntax of a target address path of this type is as follows:<br />

[] *[ ( "." / ".." / ) ]<br />

<br />

As mentioned previously, the SM CLP supports addressing an instance or instances of an association.<br />

The general syntax for targeting an association is as follows:<br />

[[] *[ ( "." / ".." / ) ]<br />

] "=>"["=>" [*( ) ] ]<br />

The target address terms leading up to the first occurrence of "=>" are used in accordance with the rules<br />

for generating an instance address path. This instance address path identifies one of the Managed<br />

Elements referenced by the target association. Following these rules, if no target address terms precede<br />

the first "=>", the CDT will be selected as the referenced instance. The <br />

identifies the Association Class that will be searched for instances. The second occurrence of "=>" and<br />

following additional target address terms are optional. The second "=>" is the ending delimiter of the<br />

. The target address terms which follow are used to construct an instance<br />

address path identifying the other Managed Element referenced by the association. If the second set of<br />

address terms is omitted, the implementation will return all instances of the Association Class that<br />

reference the instance addressed on the left-hand side.<br />

Using the target notation, the following example target addresses can be constructed:<br />

/<br />

/system1<br />

\system1<br />

system1<br />

/system1/alarm3<br />

alarm3<br />

../rack3<br />

hw1/./../../rack3<br />

..<br />

.<br />

/system1=>AssociatedPower<strong>Management</strong>Service=>/system1/service24<br />

../system1/cpu1=>SystemDevice=>/system1<br />

32 Version 1.0.2


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

1188<br />

1189<br />

1190<br />

1191<br />

1192<br />

1193<br />

1194<br />

1195<br />

1196<br />

1197<br />

1198<br />

1199<br />

1200<br />

1201<br />

1202<br />

1203<br />

1204<br />

1205<br />

1206<br />

1207<br />

1208<br />

1209<br />

1210<br />

1211<br />

1212<br />

1213<br />

1214<br />

1215<br />

1216<br />

1217<br />

1218<br />

1219<br />

1220<br />

1221<br />

1222<br />

1223<br />

1224<br />

1225<br />

1226<br />

1227<br />

1228<br />

1229<br />

1230<br />

1231<br />

1232<br />

../system1/cpu1=>SystemDevice<br />

5.2.1.3.6 Target Address Evaluation<br />

CLP commands fall into two categories: commands that accept a command target term and commands<br />

that do not. Not all commands that accept a command target require one to be included. The rules of<br />

precedence that govern choosing among an Implicit <strong>Command</strong> Target, the CDT, and a command target<br />

term are detailed in 185H5.1.3.3. This clause describes the rules for evaluating the command target term if it is<br />

specified.<br />

The command target term can be either a Relative Target Address or an Absolute Target Address. The<br />

command target term will identify a specific Managed Element, a set of Managed Elements identified by<br />

their class, a specific association, or the associations of a particular Association Class which reference a<br />

specific Managed Element.<br />

5.2.1.3.6.1 Rules for Addressing a Specific Association<br />

If the command target term includes exactly two occurrences of the association separator, the<br />

implementation shall evaluate the command target term according to the following rules:<br />

• The implementation shall interpret the characters between the two occurrences of the<br />

association separator as identifying the Association Class.<br />

• The implementation shall interpret all characters prior to the first occurrence of the association<br />

separator as a single token. The implementation shall evaluate the token according to the<br />

"Rules for Addressing a Target Instance" (186H5.2.1.3.6.4).<br />

• The implementation shall interpret all characters after the second occurrence of the association<br />

separator as a single token. The implementation shall evaluate the token according to the<br />

"Rules for Addressing a Target Instance" (187H5.2.1.3.6.4).<br />

The implementation shall set the Resultant Target for the command to the association instance of the<br />

type specified by the Association Class such that the association references the Managed Element<br />

identified by the instance address preceding the first association separator and the association references<br />

the Managed Element identified by the instance address following the second occurrence of the<br />

association separator.<br />

5.2.1.3.6.2 Rules for Addressing Instances of an Association<br />

If the command target term includes exactly one occurrence of the association separator, the command<br />

target term is assumed to be targeting all instances of a particular Association Class that reference a<br />

Managed Element instance, and the implementation shall evaluate the command target term according to<br />

the following rules:<br />

• The implementation shall interpret the characters between the occurrence of the association<br />

separator and the <strong>Command</strong> <strong>Line</strong> term separator as identifying the Association Class.<br />

• The implementation shall interpret all characters prior to the first occurrence of the association<br />

separator as a single instance address. The implementation shall evaluate the instance address<br />

according to the "Rules for Addressing a Target Instance" (188H5.2.1.3.6.4).<br />

The implementation shall set the Resultant Target to the set of associations such that for each<br />

association in the set, the association is of the type specified by the Association Class and references the<br />

Managed Element identified by the instance address preceding the first occurrence of the association<br />

separator in the command target term.<br />

5.2.1.3.6.3 Rules for Addressing a Target Instance/Class<br />

If the command target term does not include any occurrences of the association separator, the<br />

implementation shall evaluate the command target term according to the "Rules for Addressing a Target<br />

Instance" (189H5.2.1.3.6.4).<br />

Version 1.0.2 33


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

1233<br />

1234<br />

1235<br />

1236<br />

1237<br />

1238<br />

1239<br />

1240<br />

1241<br />

1242<br />

1243<br />

1244<br />

1245<br />

1246<br />

1247<br />

1248<br />

1249<br />

1250<br />

1251<br />

1252<br />

1253<br />

1254<br />

1255<br />

1256<br />

1257<br />

1258<br />

1259<br />

1260<br />

1261<br />

1262<br />

1263<br />

1264<br />

1265<br />

1266<br />

1267<br />

1268<br />

1269<br />

1270<br />

1271<br />

1272<br />

1273<br />

1274<br />

1275<br />

1276<br />

1277<br />

5.2.1.3.6.4 Rules for Addressing a Target Instance<br />

Implementations shall evaluate instance address terms according to the following rules:<br />

• If the instance address term begins with the address term separator, the instance address term<br />

is considered to be an Absolute Target Address. The implementation shall interpret an Absolute<br />

Target Address as relative to the Managed Element instance that is the root of the MAP’s<br />

address space.<br />

• If the instance address term does not begin with the address term separator, the instance<br />

address term is considered a Relative Target Address. The implementation shall interpret a<br />

Relative Target Address as relative to the Current Default Target and shall prepend the instance<br />

address term with the UFiP of the Current Default Target and an address term separator prior to<br />

evaluating the instance address term.<br />

• Implementations shall evaluate the instance address term from left to right as follows, using the<br />

address term separator as a token delimiter:<br />

– If the token is a "." (dot), remove the token from the instance address term.<br />

– If the token is a ".." (dot dot), remove the token from the instance address term and<br />

remove the preceding UFiT, if a preceding UFiT is present.<br />

– If the token is a UFiT, leave it in the instance address term.<br />

– If the token is a UFsT, leave it in the instance address term.<br />

After evaluating the instance address term using the preceding rules, the instance address term will be a<br />

UFiP and is the Resultant Address produced by applying the rules for addressing a target instance. Note<br />

that after applying these rules, it is possible that the Resultant Address will consist of a single address<br />

term separator character. Implementations shall interpret this Resultant Address as equivalent to the<br />

UFiP of the Managed Element that is the root of the address space.<br />

5.2.1.3.7 Target Properties<br />

This clause specifies constraints for target properties.<br />

5.2.1.3.7.5 General<br />

Many CLP verbs accept target property terms as input to the command. Target property terms always<br />

contain a target property name and optionally contain the assignment or equivalence operator followed by<br />

a property value. Implementations shall interpret terms appearing in the <strong>Command</strong> <strong>Line</strong> after the<br />

command target term as target property terms. Implementations shall interpret target property names in a<br />

case-insensitive manner.<br />

When the command target term is omitted, implementations shall interpret any non-option name terms as<br />

target property terms.<br />

When a structured output is specified, the implementation shall return string values for each property<br />

name and property value such that the implementation will accept the property name and property value<br />

as input when they are specified according to the rules in "Rules for Specifying Target Property Values"<br />

(190H5.2.1.3.7.1). There are three types of target property terms: terms that include the assignment operator,<br />

terms that include the equivalence operator, and terms that do not include either. Terms that include the<br />

assignment operator are used to indicate a desired value to assign to a property and are interpreted<br />

according to "Using the Assignment Operator" (191H5.2.1.3.7.3). Terms that include an equivalence operator<br />

are used to indicate a property name and desired value for the property when filtering for an instance with<br />

that property and are interpreted according to the rules in "Using the Equivalence Operator" (192H5.2.1.3.7.4).<br />

5.2.1.3.7.1 Rules for Specifying Target Property Values<br />

A CLP implementation will accept target property values as part of a target property term. They can be<br />

used with some CLP verbs (create and set) to specify a value to assign to a property or with some<br />

34 Version 1.0.2


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

1278<br />

1279<br />

1280<br />

1281<br />

1282<br />

1283<br />

1284<br />

1285<br />

1286<br />

1287<br />

1288<br />

1289<br />

1290<br />

1291<br />

1292<br />

1293<br />

1294<br />

1295<br />

1296<br />

1297<br />

1298<br />

1299<br />

1300<br />

1301<br />

1302<br />

1303<br />

1304<br />

1305<br />

1306<br />

1307<br />

1308<br />

1309<br />

1310<br />

1311<br />

1312<br />

1313<br />

1314<br />

1315<br />

1316<br />

1317<br />

1318<br />

1319<br />

1320<br />

1321<br />

1322<br />

CLP verbs and options (show and display) to filter results based on a property/value match. When a<br />

user specifies a target property value on the <strong>Command</strong> <strong>Line</strong>, the implementation shall enforce the<br />

following syntax:<br />

If the property value contains a CLP reserved character, the value is enclosed in quotes. If the<br />

property value includes a " (double quote) character, the " (double quote) is escaped using the CLP<br />

escape character.<br />

The specific format of the value for a property is defined in 193H32HDSP0216. Note that in the case of a property<br />

that is a Value/ValueMap, the string supplied as a value to the property for assignment could be the string<br />

representation of the numeric value or the actual value mapped string constant.<br />

5.2.1.3.7.2 Rules for Specifying Array Properties<br />

Some properties on Managed Elements are arrays. The CLP provides two methods for dealing with array<br />

properties. Implementations shall support both methods. The first method allows individual positions<br />

within an array property to be addressed by index using bracket notation. Bracket notation consists of a<br />

property name followed by an opening bracket ('['), followed by one or more characters specifying the<br />

desired index, followed by a closing bracket (']'). Note that no white space occurs anywhere between the<br />

property name and the closing bracket. When a property target term includes a '[' character, followed by<br />

a ']' character, the implementation shall interpret the characters that occur between the two brackets as<br />

specifying the index of the position within the array property that is being addressed. For each array<br />

property, legal values for the index are defined by the MOF (194H4HCommon Information Model (CIM)<br />

Schema, version 2.12) that defines the class to which the property belongs. The syntax for addressing a<br />

position within an array property is as follows:<br />

"[""]"<br />

This syntax is supported wherever a property name/value is accepted by the CLP.<br />

The alternate approach is supported only for the assignment of values to an array property. It is<br />

documented in the following clause. If a client uses array notation with a property that is not an array<br />

property, the implementation will return an error.<br />

5.2.1.3.7.3 Using the Assignment Operator<br />

The assignment operator is used to indicate a desired value to be assigned to a property. The syntax for<br />

using the assignment operator in a target property term is as follows:<br />

=<br />

When the property name contains the bracket notation defined in "Rules for Specifying Array Properties"<br />

(195H5.2.1.3.7.2), the implementation shall assign the property value to the array position identified by the<br />

index delimited by the brackets.<br />

If the property is multi-valued (an array), multiple array positions can be assigned using a commadelimited<br />

list of values. When the target property value of a target property term is a comma-delimited list,<br />

the implementations shall interpret each comma-delimited token in the target property value as the value<br />

to be assigned to the corresponding array position of the property. When the comma-delimited token is a<br />

zero-length string, the implementation shall not assign a value to the corresponding array position. When<br />

identifies an array property, and neither of the two methods for managing array<br />

properties is used, the implementation shall attempt to assign to the first position in<br />

the array.<br />

5.2.1.3.7.4 Using the Equivalence Operator<br />

The equivalence operator is used to indicate that an implementation filters results for instances that have<br />

a property with the specified name and value. The syntax for using the equivalence operator is as follows:<br />

==<br />

Version 1.0.2 35


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

1323<br />

1324<br />

1325<br />

1326<br />

1327<br />

1328<br />

1329<br />

1330<br />

1331<br />

1332<br />

1333<br />

1334<br />

1335<br />

1336<br />

1337<br />

1338<br />

1339<br />

1340<br />

1341<br />

When the property name contains the bracket notation defined in "Rules for Specifying Array Properties"<br />

(196H5.2.1.3.7.2), the implementation shall compare the property value to the value of the array position<br />

identified by the index delimited by the brackets. When identifies an array property,<br />

and the bracket notation defined in "Rules for Specifying Array Properties" is not used, the<br />

implementation shall compare to all array positions in the property.<br />

5.2.2 Output Data Schema<br />

This clause describes valid data elements and associated values for inclusion in a <strong>Command</strong> Response.<br />

5.2.2.1 <strong>Command</strong> Response Organization<br />

In the absence of communication errors or session termination, every CLP command will result in a<br />

<strong>Command</strong> Response being returned to the Client. A <strong>Command</strong> Response consists of <strong>Command</strong> Status<br />

data and <strong>Command</strong> Results data. The <strong>Command</strong> Response data is ordered as follows:<br />

• <strong>Command</strong> Status data (for example, successful or errors/exceptions)<br />

• <strong>Command</strong> Results data (for example, information generated from/by the command)<br />

See 197H5.1.10 for full descriptions of the data elements. CLP command options described in Clause 198H7 control<br />

the content and format of output data.<br />

5.2.2.2 Common Output Keywords<br />

Common output keywords (199HTable 2) are those data elements that may appear in any response data.<br />

Common keywords are used for data organization purposes—identification, grouping, sorting, and so on.<br />

Table 2 – Common Output Keywords<br />

Keyword<br />

association<br />

endgroup<br />

group<br />

property,<br />

properties<br />

target<br />

targets<br />

ufct<br />

ufit<br />

ufip<br />

verb, verbs<br />

endoutput<br />

Definition<br />

Indicates that the data is a target association.<br />

Indicates the end of a group of output data elements.<br />

Indicates the beginning of a new group of output data elements that are to be<br />

interpreted as a group.<br />

Indicates that the data is a target property name.<br />

Indicates that the data is a Managed Element that may contain other Managed<br />

Elements.<br />

Indicates that the data lists targets contained in an element.<br />

Indicates that the data is a User-Friendly class Tag.<br />

Indicates that the data is a User-Friendly instance Tag.<br />

Indicates that the data is a User-Friendly instance Path (fully qualified path).<br />

Indicates that the data is a command verb name.<br />

Indicates the end of a "keyword" <strong>Command</strong> Response.<br />

1342<br />

1343<br />

1344<br />

1345<br />

1346<br />

5.2.3 <strong>Command</strong> Status Data Elements<br />

The following clauses describe the constraints on each of the <strong>Command</strong> Status data elements.<br />

5.2.3.1 <strong>Command</strong> Status Keywords<br />

A <strong>Command</strong> Response includes <strong>Command</strong> Status data elements.<br />

200HTable 3 lists the keywords used to identify properties of the <strong>Command</strong> Status data elements.<br />

36 Version 1.0.2


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

1347<br />

Table 3 – <strong>Command</strong> Status Keywords<br />

Keyword<br />

Definition<br />

status The Status property. This is one of the values defined in 201HTable 4.<br />

status_tag The status_tag property. This is one of the values defined in 202HTable 4.<br />

error<br />

The Processing Error property detected by the CLP Service. This is one of the integer<br />

values in 203HTable 6.<br />

error_tag The error_tag property. This is the string value in 204HTable 6.<br />

1348<br />

1349<br />

1350<br />

1351<br />

1352<br />

The <strong>Command</strong> Status indicates the processing disposition of the command entered. When the status<br />

keyword is returned, implementations shall assign it one of the values listed in 205HTable 4. When the<br />

status_tag keyword is returned, implementations shall assign it the value in 206HTable 4 that corresponds<br />

to the value of the status keyword.<br />

Table 4 – <strong>Command</strong> Status Values and Tags<br />

status status_tag Description<br />

0 COMMAND COMPLETED Status = Completed. The command and any associated jobs<br />

have completed successfully. The command and any ME jobs<br />

completed within command execution. No job remains in-flight<br />

and no job ID is active for this command.<br />

1 COMMAND SPAWNED Status = Spawned. The command returned an interim<br />

response to the Client but continues to run as a spawned job.<br />

The Job ID of the spawned command may be used to retrieve<br />

the <strong>Command</strong> Status.<br />

2 COMMAND PROCESSING FAILED Status = COMMAND PROCESSING FAILED. No job was<br />

created. No job remains in-flight and no job ID is active for this<br />

command.<br />

3 COMMAND EXECUTION FAILED Status = COMMAND EXECUTION FAILED. The command and<br />

any associated jobs ran to completion and failed. The command<br />

and any ME jobs completed within command execution.<br />

1353<br />

1354<br />

1355<br />

1356<br />

1357<br />

1358<br />

207HTable 5 lists the keywords used to identify properties of the Message data element. Each message_arg<br />

identifies a string value for insertion into the message text. If an implementation supports message<br />

argument insertion into message text, the implementation shall identify each insertion location in the<br />

message text using the character sequence {n}. Implementations shall interpret the value of n as<br />

identifying the index of the message argument to insert.<br />

Table 5 – Message Keywords<br />

Keyword<br />

message<br />

message_id<br />

message_arg<br />

owningentity<br />

Definition<br />

Message data element—A free-form text explanation of the <strong>Command</strong> Status or error.<br />

Message Id data element—A unique text string identifier for the status or error<br />

message that can be used by the Client to locate any translations of the message in other<br />

languages.<br />

Message Argument data element—Substitution value for insertion into a message.<br />

Owning Entity data element—A unique string identifier for the owner of the<br />

message identifier. The owning entity and message id combine to form a unique key for<br />

looking up message text translations.<br />

Version 1.0.2 37


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

1359<br />

1360<br />

1361<br />

1362<br />

208HTable 6 lists the valid values for the error and error_tag keywords. When an implementation includes<br />

the error and error_tag keywords in a <strong>Command</strong> Response, the implementation shall assign them<br />

values from 209HTable 6.<br />

Table 6 – Processing Error Values and Tags<br />

error error_tag Description<br />

255 COMMAND ERROR –<br />

UNSPECIFIED<br />

Unspecified command error; used only when other command<br />

errors are not applicable.<br />

254 COMMAND NOT SUPPORTED The command is recognized as a CLP command verb but is not<br />

supported by this implementation.<br />

253 COMMAND NOT RECOGNIZED The command is syntactically correct, but the implementation does<br />

not recognize the first term in the command as a verb (that is,<br />

cannot report "not supported" because the verb is unknown to the<br />

implementation).<br />

252 COMMAND SYNTAX ERROR The command is recognized as a CLP command verb, but the<br />

syntax has not been correctly followed.<br />

251 INVALID OPTION The command is recognized as a CLP command verb, the syntax<br />

is correct, but an option is not valid.<br />

250 INVALID ARGUMENT The command is recognized as a CLP command verb, the syntax<br />

is correct, but an argument value for an option is not valid.<br />

249 OUTPUT FORMAT NOT<br />

SUPPORTED<br />

The user selected an output format that is not supported by this<br />

implementation.<br />

248 MISSING ARGUMENT The command is recognized as a CLP command verb, the syntax<br />

is correct, but an argument value for an option is missing.<br />

247 OPTION NOT SUPPORTED The command is recognized as a CLP command verb, the syntax<br />

is correct, but an option is not supported.<br />

246 INVALID TARGET The first non-option or option argument term after the verb<br />

contained a CLP addressing character but did not adhere to the<br />

CLP command target term syntax.<br />

245 REQUIRED OPTION MISSING The specified command requires an option that was not supplied.<br />

244 QUEUE FULL A job cannot be started to execute the command.<br />

243 UNRECOGNIZED OEM<br />

EXTENSION<br />

The <strong>Command</strong> <strong>Line</strong> includes an OEM Extension Name String that<br />

is unrecognized by the implementation.<br />

242 MISSING REQUIRED TARGET The command verb requires that a command target term be<br />

specified to identify a specific target for the command, and a<br />

command target term was not included in the <strong>Command</strong> <strong>Line</strong>.<br />

241 FUNCTION NOT SUPPORTED The command syntax is valid but included a request for optional<br />

behavior that is not supported by this implementation.<br />

1363<br />

1364<br />

1365<br />

1366<br />

1367<br />

1368<br />

1369<br />

1370<br />

1371<br />

1372<br />

When an error occurs processing a command prior to creating a job to execute the command and this<br />

specification does not identify a specific Processing Error to use to indicate the error condition, the<br />

implementation shall return a <strong>Command</strong> Status of COMMAND PROCESSING FAILED and a Processing<br />

Error of COMMAND ERROR – UNSPECIFIED.<br />

5.2.3.2 Job Error Keywords<br />

When the <strong>Command</strong> Status is COMMAND EXECUTION FAILED, a Job Error will follow the <strong>Command</strong><br />

Status to describe the details of the failure. 210HTable 7 defines the valid keywords and values for the Job<br />

data element. The accepted values and corresponding descriptions for each value are provided in the<br />

tables that follow. For each keyword, implementations shall return data that conforms to the restrictions<br />

specified for the keyword in 211HTable 7.<br />

38 Version 1.0.2


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

1373<br />

Table 7 – Job Error Keywords<br />

Keyword<br />

job_id<br />

errtype<br />

errtype_desc<br />

cimstat<br />

cimstat_desc<br />

severity<br />

severity_desc<br />

probcause<br />

probcause_desc<br />

recmdaction<br />

errsource<br />

errsourceform<br />

errsourceform_desc<br />

Definition<br />

Job Identifier—An integer value in the range [1, 65535] inclusive.<br />

Execution Error—Provides the primary classification of the error.<br />

Execution Error Tag—The character string tag corresponding to the Execution<br />

Error.<br />

CIM Status—A value that describes the error as it relates to the CIM <strong>Server</strong>.<br />

An enumerated string, corresponding to the value of cimstat.<br />

A value that describes the severity of the error from the notifier's point of view.<br />

An enumerated string, corresponding to the value of severity.<br />

A value that describes the probable cause of the error.<br />

An enumerated string, corresponding to the value of probcause.<br />

A free-form string that describes a recommended action. Zero or more<br />

recommended actions appear per Job Error occurrence.<br />

A string that identifies the Managed Element generating this Job Error instance.<br />

A value that identifies the format of the error source string identifier.<br />

A free-form string describing and corresponding to the error source format.<br />

1374<br />

1375<br />

1376<br />

1377<br />

1378<br />

1379<br />

1380<br />

The Execution Error property communicates the primary category of the Job Error. If an implementation<br />

includes the errtype keyword in a <strong>Command</strong> Response, the implementation shall assign the keyword<br />

one of the values from 212HTable 8. If an implementation includes the errtype_desc keyword in a<br />

<strong>Command</strong> Response, the implementation shall assign the keyword the value from 213HTable 8 that<br />

corresponds to the value assigned to the errtype keyword. The values for errtype and<br />

errtype_desc correspond to the ValueMap and Values for the ErrorType property of CIM_Error.<br />

Table 8 – Error Type Values and Descriptions<br />

errtype errtype_desc Description<br />

0 Unknown None<br />

1 Other None<br />

2 Communications Error The command or operation cannot be initiated because the<br />

ME is not responding.<br />

or<br />

The job is terminated because the target ME is not<br />

responsive and the MAP cannot determine the progress of<br />

the operation. Note that the state change activity may still<br />

be in-progress at the ME but the implementation cannot<br />

communicate with the ME to determine the status.<br />

3 Quality of Service Error None<br />

4 Software Error None<br />

5 Hardware Error None<br />

6 Environmental Error None<br />

7 Security Error None<br />

8 Oversubscription Error None<br />

9 Unavailable Resource Error CLP Service cannot acquire needed internal resources to<br />

process the command.<br />

10 Unsupported Operation Error None<br />

Version 1.0.2 39


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

1381<br />

1382<br />

1383<br />

1384<br />

1385<br />

1386<br />

1387<br />

1388<br />

1389<br />

1390<br />

The CIM Status property communicates any management layer or instrumentation layer errors<br />

encountered by the CLP Service in its attempt to initiate the requested operations for the specified<br />

targets. Errors that occur when attempting to set the value for a property result in one of the errors listed<br />

in 214HTable 9 being returned. If an implementation includes the cimstat keyword in a <strong>Command</strong> Response,<br />

the implementation shall assign the keyword one of the values from 215HTable 9. If an implementation<br />

includes the cimstat_desc keyword in a <strong>Command</strong> Response, the implementation shall assign the<br />

cimstat_desc keyword the value from 216HTable 9 that corresponds to the value assigned to the cimstat<br />

keyword. The values for cimstat and cimstat_desc correspond to the ValueMap and Values for the<br />

CIMStatusCode property of CIM_Error.<br />

Table 9 – CIM Status Code Values and Descriptions<br />

cimstat cimstat_desc Description<br />

1 CIM_ERR_FAILED A general, unspecified error occurred.<br />

2 CIM_ERR_ACCESS_DENIED The user does not have proper<br />

authorization to use the command.<br />

or<br />

The command was authorized for the user,<br />

but the user is not authorized to perform a<br />

resulting operation on this or a dependent<br />

target ME.<br />

or<br />

The user does not have access to a CIM<br />

resource.<br />

3 CIM_ERR_INVALID_NAMESPACE The target namespace does not exist.<br />

4 CIM_ERR_INVALID_PARAMETER The verb is recognized, the command<br />

syntax is correct, option names are correct,<br />

but an option argument value is not valid.<br />

One or more target property values or<br />

option argument values that specify target<br />

properties are invalid.<br />

5 CIM_ERR_INVALID_CLASS The class indicated by the UFcT or the<br />

Association Class does not exist in the<br />

scope of the command.<br />

6 CIM_ERR_NOT_FOUND The command target is not found.<br />

The requested UFiT could not be found or<br />

was unresponsive.<br />

7 CIM_ERR_NOT_SUPPORTED The command is valid but the target<br />

specified does not support the necessary<br />

operation or operations needed to carry out<br />

the command.<br />

OR<br />

The user has requested an operation that<br />

is not supported by this target ME.<br />

8 CIM_ERR_CLASS_HAS_CHILDREN The operation cannot be carried out on this<br />

class because it has subclasses with<br />

instances.<br />

9 CIM_ERR_CLASS_HAS_INSTANCES The operation cannot be carried out on this<br />

class because it has instances.<br />

10 CIM_ERR_INVALID_SUPERCLASS The operation cannot be carried out<br />

because the superclass does not exist.<br />

11 CIM_ERR_ALREADY_EXISTS The operation cannot be carried out<br />

because the specified UFiT already exists.<br />

40 Version 1.0.2


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

cimstat cimstat_desc Description<br />

12 CIM_ERR_NO_SUCH_PROPERTY The specified Property does not exist for<br />

the command target.<br />

13 CIM_ERR_TYPE_MISMATCH The value supplied for a property is<br />

incompatible with the property’s data type.<br />

14 CIM_ERR_QUERY_LANGUAGE_NOT_SUPPORTED (RESERVED FOR FUTURE USE)<br />

15 CIM_ERR_INVALID_QUERY (RESERVED FOR FUTURE USE)<br />

16 CIM_ERR_METHOD_NOT_AVAILABLE The extrinsic Method could not be<br />

executed for the command target.<br />

or<br />

An operation currently executing on the<br />

Target is performing an internal function<br />

such that the requested operation cannot<br />

be concurrently executed.<br />

or<br />

The target ME is in use by another session.<br />

17 CIM_ERR_METHOD_NOT_FOUND The user has requested an operation that<br />

is not recognized by the target ME.<br />

The specified extrinsic method could not be<br />

found for the command target.<br />

18 CIM_ERR_UNEXPECTED_RESPONSE The returned response from the target was<br />

unexpected.<br />

or<br />

The job spawned by the previous<br />

command has ended prematurely and<br />

failed. For example, a firmware update may<br />

abort if retrieval of an image from a URI<br />

times out.<br />

19 CIM_ERR_INVALID_RESPONSE_DESTINATION (RESERVED FOR FUTURE USE)<br />

20 CIM_ERR_NAMESPACE_NOT_EMPTY (RESERVED FOR FUTURE USE)<br />

1391<br />

1392<br />

1393<br />

1394<br />

1395<br />

1396<br />

1397<br />

1398<br />

The Severity property communicates the urgency of the error, from the MAP’s perspective. If an<br />

implementation includes the severity keyword in a <strong>Command</strong> Response, the implementation shall<br />

assign the keyword one of the values from 217HTable 10. If an implementation includes the severity_desc<br />

keyword in a <strong>Command</strong> Response, the implementation shall assign the severity_desc keyword the<br />

value from 218HTable 10 that corresponds to the value assigned to the severity keyword. The values for<br />

severity and severity_desc correspond to the ValueMap and Values for the PerceivedSeverity<br />

property of CIM_Error. "1" is not specified in the ValueMap and therefore is reserved by the CLP.<br />

Table 10 – Severity Values and Descriptions<br />

severity severity_desc Description<br />

0 Unknown The severity is unknown or unassigned by the implementation.<br />

1 Reserved This value is reserved and should not be used.<br />

2 Low Used for non-critical issues such as invalid parameters, incorrect usage, and<br />

unsupported functionality.<br />

3 Medium Used to indicate action is needed, but the situation is not serious at this time.<br />

4 High Used to indicate action is needed immediately.<br />

5 Fatal Used to indicate a loss of data or unrecoverable system or service failure.<br />

Version 1.0.2 41


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

1399<br />

1400<br />

1401<br />

1402<br />

1403<br />

1404<br />

1405<br />

1406<br />

1407<br />

The Probable Cause and Probable Cause Description properties identify the probable cause of an<br />

execution error. Any errors generated by the Managed Element itself are characterized in the Probable<br />

Cause property, described in 219HTable 11. If an implementation includes the probcause keyword in a<br />

<strong>Command</strong> Response, the implementation shall assign the keyword one of the values from 220HTable 11. If an<br />

implementation includes the probcause_desc keyword in a <strong>Command</strong> Response, the implementation<br />

shall assign the probcause_desc keyword the value from 221HTable 11 that corresponds to the value<br />

assigned to the probcause keyword. The values for probcause and probcause_desc correspond to<br />

the ValueMap and Values for the ProbableCause property of CIM_Error.<br />

Table 11 – Probable Cause Values and Descriptions<br />

probcause probcause_desc<br />

0 Unknown<br />

1 Other<br />

2 Adapter/Card Error<br />

3 Application Subsystem Failure<br />

4 Bandwidth Reduced<br />

5 Connection Establishment Error<br />

6 Communications <strong>Protocol</strong> Error<br />

7 Communications Subsystem Failure<br />

8 Configuration/Customization Error<br />

9 Congestion<br />

10 Corrupt Data<br />

11 CPU Cycles Limit Exceeded<br />

12 Dataset/Modem Error<br />

13 Degraded Signal<br />

14 DTE-DCE Interface Error<br />

15 Enclosure Door Open<br />

16 Equipment Malfunction<br />

17 Excessive Vibration<br />

18 File Format Error<br />

19 Fire Detected<br />

20 Flood Detected<br />

21 Framing Error<br />

22 HVAC Problem<br />

23 Humidity Unacceptable<br />

24 I/O Device Error<br />

25 Input Device Error<br />

26 LAN Error<br />

27 Non-Toxic Leak Detected<br />

28 Local Node Transmission Error<br />

29 Loss of Frame<br />

30 Loss of Signal<br />

31 Material Supply Exhausted<br />

32 Multiplexer Problem<br />

33 Out of Memory<br />

42 Version 1.0.2


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

probcause probcause_desc<br />

34 Output Device Error<br />

35 Performance Degraded<br />

36 Power Problem<br />

37 Pressure Unacceptable<br />

38 Processor Problem (Internal Machine Error)<br />

39 Pump Failure<br />

40 Queue Size Exceeded<br />

41 Receive Failure<br />

42 Receiver Failure<br />

43 Remote Node Transmission Error<br />

44 Resource at or Nearing Capacity<br />

45 Response Time Excessive<br />

46 Retransmission Rate Excessive<br />

47 Software Error<br />

48 Software Program Abnormally Terminated<br />

49 Software Program Error (Incorrect Results)<br />

50 Storage Capacity Problem<br />

51 Temperature Unacceptable<br />

52 Threshold Crossed<br />

53 Timing Problem<br />

54 Toxic Leak Detected<br />

55 Transmit Failure<br />

56 Transmitter Failure<br />

57 Underlying Resource Unavailable<br />

58 Version Mismatch<br />

59 Previous Alert Cleared<br />

60 Login Attempts Failed<br />

61 Software Virus Detected<br />

62 Hardware Security Breached<br />

63 Denial of Service Detected<br />

64 Security Credential Mismatch<br />

65 Unauthorized Access<br />

66 Alarm Received<br />

67 Loss of Pointer<br />

68 Payload Mismatch<br />

69 Transmission Error<br />

70 Excessive Error Rate<br />

71 Trace Problem<br />

72 Element Unavailable<br />

73 Element Missing<br />

74 Loss of Multi Frame<br />

75 Broadcast Channel Failure<br />

76 Invalid Message Received<br />

Version 1.0.2 43


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

probcause probcause_desc<br />

77 Routing Failure<br />

78 Backplane Failure<br />

79 Identifier Duplication<br />

80 Protection Path Failure<br />

81 Sync Loss or Mismatch<br />

82 Terminal Problem<br />

83 Real Time Clock Failure<br />

84 Antenna Failure<br />

85 Battery Charging Failure<br />

86 Disk Failure<br />

87 Frequency Hopping Failure<br />

88 Loss of Redundancy<br />

89 Power Supply Failure<br />

90 Signal Quality Problem<br />

91 Battery Discharging<br />

92 Battery Failure<br />

93 Commercial Power Problem<br />

94 Fan Failure<br />

95 Engine Failure<br />

96 Sensor Failure<br />

97 Fuse Failure<br />

98 Generator Failure<br />

99 Low Battery<br />

100 Low Fuel<br />

101 Low Water<br />

102 Explosive Gas<br />

103 High Winds<br />

104 Ice Buildup<br />

105 Smoke<br />

106 Memory Mismatch<br />

107 Out of CPU Cycles<br />

108 Software Environment Problem<br />

109 Software Download Failure<br />

110 Element Reinitialized<br />

111 Timeout<br />

112 Logging Problems<br />

113 Leak Detected<br />

114 Protection Mechanism Failure<br />

115 Protecting Resource Failure<br />

116 Database Inconsistency<br />

117 Authentication Failure<br />

118 Breach of Confidentiality<br />

119 Cable Tamper<br />

44 Version 1.0.2


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

probcause probcause_desc<br />

120 Delayed Information<br />

121 Duplicate Information<br />

122 Information Missing<br />

123 Information Modification<br />

124 Information Out of Sequence<br />

125 Key Expired<br />

126 Non-Repudiation Failure<br />

127 Out of Hours Activity<br />

128 Out of Service<br />

129 Procedural Error<br />

130 Unexpected Information<br />

1408<br />

1409<br />

1410<br />

1411<br />

1412<br />

1413<br />

1414<br />

1415<br />

1416<br />

1417<br />

1418<br />

1419<br />

1420<br />

1421<br />

1422<br />

1423<br />

1424<br />

1425<br />

1426<br />

1427<br />

1428<br />

1429<br />

1430<br />

1431<br />

1432<br />

1433<br />

1434<br />

1435<br />

5.2.4 Output Data Formats<br />

The CLP specifies the following named, selectable formats for output data: "text", "keyword", and<br />

"clpxml". These data formats are defined in the following clauses.<br />

5.2.4.1 General<br />

Implementations shall support "text" format and shall provide "text" format output as the default output<br />

setting. When other output data formats are supported, implementations shall allow the user to override<br />

the format on a per-command basis using the command option output. Implementations shall also<br />

provide an environment setting to control output format for all commands, unless overridden by the user.<br />

If an implementation supports at least one output format other than "text", the implementation shall<br />

support the "clpxml" output format.<br />

5.2.4.2 Text Format<br />

The output format "text" is the default format for output. Output in "text" format is not recommended to be<br />

parsed by an automated agent. This format is suitable only to be read by a person. Text output format will<br />

vary from implementation to implementation.<br />

When "text" output format is selected, implementations may use any output text wording that is deemed<br />

appropriate to convey the <strong>Command</strong> Response data elements to the user. When the <strong>Command</strong><br />

Response is presented in "text" format, the implementation may provide execution status data as part of<br />

the text description of the <strong>Command</strong> Results or, if the command is successful, the implementation may<br />

not include an explicit statement of execution status in the <strong>Command</strong> Response.<br />

5.2.4.3 Structured Outputs<br />

This clause details requirements related to structured output.<br />

5.2.4.3.1 General<br />

The CLP specification defines two structured output formats: "keyword" and "clpxml". When returning a<br />

<strong>Command</strong> Response formatted according to a structured output, the implementation shall use the specific<br />

keywords and values identified in 222H5.2.3.1 and 223H5.2.3.2 for each data element included in the <strong>Command</strong><br />

Status data element.<br />

For information about the rules governing the use of the output option to select an output format, see<br />

Error! Reference source not found..<br />

Version 1.0.2 45


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

1436<br />

1437<br />

1438<br />

1439<br />

1440<br />

1441<br />

1442<br />

1443<br />

1444<br />

1445<br />

1446<br />

1447<br />

1448<br />

1449<br />

1450<br />

1451<br />

1452<br />

1453<br />

1454<br />

1455<br />

1456<br />

1457<br />

1458<br />

1459<br />

1460<br />

1461<br />

1462<br />

1463<br />

1464<br />

1465<br />

1466<br />

1467<br />

1468<br />

1469<br />

1470<br />

1471<br />

1472<br />

1473<br />

1474<br />

1475<br />

1476<br />

1477<br />

1478<br />

1479<br />

1480<br />

1481<br />

1482<br />

1483<br />

1484<br />

1485<br />

1486<br />

1487<br />

1488<br />

1489<br />

1490<br />

5.2.4.3.2 Keyword=Value Format<br />

The "keyword" output format requests the command to format the output in a "keyword=value" format. To<br />

select "keyword" format explicitly, the implementations shall accept "keyword" as the argument value for<br />

the format argument to the output option.<br />

In "keyword" output format, output data element items appear in sequence as "="<br />

items separated by the end-of-line character sequence. Implementations shall use double quotes around<br />

any value that contains the end-of-line sequence.<br />

Implementations shall specify a group of "keyword" items that are to be interpreted as a single item or<br />

collection by using the "begingroup" keyword and a value identifying the type of data. Implementations<br />

shall terminate a group by using the "endgroup" keyword. When a "begingroup" keyword appears in the<br />

output, all keywords that follow are interpreted as part of a group until the next "endgroup" keyword.<br />

Implementations shall indicate the end of the <strong>Command</strong> Response by using the "endoutput" keyword.<br />

Implementations may include blank lines or lines that have an # character (octothorp) in the first character<br />

position in the output. If an implementation includes blank lines or lines that have an # character<br />

(octothorp) in the first character position in the output, the implementation shall not impart a meaning to<br />

the blank lines.<br />

The general form of the "keyword" output format is as follows:<br />

commandline=the commandline that was processed<br />

status=Integer job status code<br />

status_tag=String job status<br />

error=integer processing error code, if there is one<br />

error_tag=string description of processing error<br />

begingroup=message<br />

owningentity=organization owning a message<br />

message_id=string identifier for the message, unique with the value of owningentity<br />

message=message text<br />

message_arg=Insertion value 1 for the message<br />

.<br />

.<br />

.<br />

message_arg=Insertion value n for the message<br />

endgroup<br />

job_id=Identifier for the job created to execute the command<br />

errtype=Integer code for the high level category of execution error<br />

errtype_desc=string description of the execution error<br />

cimstat=integer code for the CIM error<br />

cimstat_desc=string description of the CIM error<br />

severity=integer code indicating the severity of the error<br />

severity_desc=description corresponding to the severity code<br />

probcause=integer code indicating the probable cause of the execution error<br />

probcause_desc=description corresponding to the probable cause code<br />

errsource=Target Address of error source<br />

errsourceform=SMA Target Address<br />

errsourceform_desc=SM Target Address<br />

recmdaction=Free-form string describing action to take to resolve the error<br />

begingroup=message<br />

owningentity=organization owning a message<br />

message_id=string identifier for the message, unique with the value of owningentity<br />

message=message text<br />

message_arg=Insertion value 1 for the message<br />

.<br />

.<br />

.<br />

message_arg=Insertion value n for the message<br />

endgroup<br />

46 Version 1.0.2


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

1491<br />

1492<br />

1493<br />

1494<br />

1495<br />

1496<br />

1497<br />

1498<br />

1499<br />

1500<br />

1501<br />

1502<br />

1503<br />

1504<br />

1505<br />

1506<br />

1507<br />

1508<br />

1509<br />

1510<br />

1511<br />

1512<br />

1513<br />

1514<br />

1515<br />

1516<br />

1517<br />

1518<br />

1519<br />

1520<br />

1521<br />

1522<br />

1523<br />

1524<br />

1525<br />

1526<br />

1527<br />

1528<br />

1529<br />

1530<br />

1531<br />

1532<br />

1533<br />

1534<br />

1535<br />

1536<br />

1537<br />

1538<br />

1539<br />

.<br />

.<br />

.<br />

command=<br />

.<br />

.<br />

.<br />

Verb and target-specific keywords<br />

.<br />

.<br />

.<br />

endoutput<br />

If an implementation includes OEM output for a command issued with a CLP verb, the implementation<br />

shall return the OEM output after the standard output for the command and before the final "endoutput"<br />

keyword. If an implementation includes OEM defined keywords for inclusion in the output, the<br />

implementation shall define each keyword using the convention for OEM name extensions defined in<br />

224H5.2.6.2.<br />

If an implementation is returning "keyword" output for an OEM <strong>Command</strong> Form command, the<br />

implementation shall return the <strong>Command</strong> Status using the standard keyword structure and shall<br />

substitute the "command" keyword and subsequent output with the keyword "oemcommand" followed by<br />

the vendor-defined output.<br />

5.2.4.3.3 XML Format<br />

The output format "clpxml" requests the command to format the output in an XML document format. To<br />

select "clpxml" format explicitly, implementations shall accept "clpxml" as the value for the format<br />

argument to the option option.<br />

In "clpxml" output format, the output data is a well-formed XML document. The XML document schema<br />

(tags and so on) is defined per command. An outline of the XML document specific to each CLP verb is<br />

located in the "XML Output" subclause for that verb in Clause 225H6.<br />

The XML schema defining the <strong>Command</strong> Response data element is defined using XSD in <strong>Server</strong><br />

<strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Command</strong> Response XML Schema v1.0 (226H6HDSP0224).<br />

The XML schema is intended to address the requirements of users of the CLP for a simple, parsable<br />

schema to represent CLP output. It is not intended as a data exchange format to fully represent a CIM<br />

instance or class. If an implementation returns <strong>Command</strong> Response data as an XML document, the<br />

implementation shall ensure that the document default namespace is:<br />

"http://schemas.dmtf.org/smash/commandresponse/1.0.0/dsp0224.xsd"<br />

OEM vendors may extend the <strong>Command</strong> Response schema. If OEM vendors extend the <strong>Command</strong><br />

Response schema, the implementation shall place the OEM extensions into a distinct namespace and<br />

shall define a namespace prefix that follows the convention for OEM name extensions defined in 227H5.2.6.2.<br />

5.2.5 Internationalization/Localization<br />

This clause outlines the support for internationalization and localization provided for by the CLP<br />

specification. For the purposes of the CLP specification, internationalization is interpreted to mean the<br />

substitution of strings in one language for strings having equivalent meaning in another language.<br />

Localization refers to the formatting of information for conformance with the norms of a particular locale.<br />

5.2.5.1 <strong>Command</strong> Input<br />

CLP implementations shall not provide support for internationalization of <strong>Command</strong> <strong>Line</strong> terms. CLP<br />

implementations may provide support for localization of input data. Furthermore, a CLP implementation<br />

shall not support alternative strings for CLP command verbs, option names, and target property names<br />

except as OEM extensions (see 228H5.2.6). <strong>Command</strong>s written using alternative strings for these <strong>Command</strong><br />

<strong>Line</strong> terms will not be portable from implementation to implementation.<br />

Version 1.0.2 47


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

1540<br />

1541<br />

1542<br />

1543<br />

1544<br />

1545<br />

1546<br />

1547<br />

1548<br />

1549<br />

1550<br />

1551<br />

1552<br />

1553<br />

1554<br />

1555<br />

1556<br />

1557<br />

1558<br />

1559<br />

1560<br />

1561<br />

1562<br />

1563<br />

1564<br />

1565<br />

1566<br />

1567<br />

1568<br />

1569<br />

1570<br />

1571<br />

1572<br />

1573<br />

1574<br />

1575<br />

1576<br />

1577<br />

1578<br />

1579<br />

5.2.5.2 <strong>Command</strong> Output<br />

This clause details requirements related to localized command output.<br />

5.2.5.2.1 CLP Service-Side Localization<br />

CLP implementations may support localized CLP command output. If the implementation supports<br />

localized output, the implementation shall support the language session setting and follow the described<br />

use of the setting as given in Error! Reference source not found..<br />

5.2.5.2.2 Client-Side Localization<br />

It is possible that a CLP implementation will support localization of CLP command output by the Client. To<br />

support localization of output data at the Client, a CLP implementation could support the following<br />

capabilities:<br />

• at least one of the structured output modes (see 229H5.2.4.3)<br />

• capability to report a Message Owner and Message Identifier for each translatable message<br />

when a structured output mode is selected (see 230H5.2.2)<br />

5.2.5.3 Locale<br />

The CLP does not specify a mechanism for setting a locale in the environment in order to perform<br />

translations of units of data. Implementations are expected to manage establishment of data units<br />

(measures, date and time, and so on) through Managed Element settings.<br />

Implementations shall include the appropriate units designation in "text" and structured output formats for<br />

each Managed Element property returned. This provides the Client the information needed to perform any<br />

translation of units locally.<br />

OEMs may provide extensions to the standard unit designations per the OEM extensions described in the<br />

next clause.<br />

5.2.6 OEM Extensions<br />

The CLP allows an OEM to add support for vendor-unique commands and output data. This clause<br />

details requirements related to OEM extensions to the CLP.<br />

5.2.6.1 General<br />

A vendor may extend the CLP in the following ways:<br />

• by providing OEM commands that conform to one of the specified CLP Extended Forms<br />

• by providing OEM output keywords<br />

5.2.6.2 OEM Extension Name Strings<br />

Implementations shall identify any OEM Extension Name Strings used for CLP <strong>Command</strong> <strong>Line</strong> terms with<br />

the CLP standard prefix "OEM" followed by a vendor-unique identification string so that they will exist in a<br />

namespace separate from those that are specified by this document. Conversely, implementations shall<br />

not support any other command verbs other than those specified in this specification or those identified as<br />

vendor-specific using an OEM Extension Name String as documented here.<br />

Implementations shall use a value for the OEM string portion of the prefix that uniquely identifies the<br />

entity that owns and defines the command. The string shall include a copyrighted, trademarked, or<br />

otherwise unique name that is owned by the business entity or standards body defining the command.<br />

Implementations shall interpret and recognize the standard portion of the string, "OEM", and the vendor<br />

identifier string as case insensitive.<br />

48 Version 1.0.2


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

1580<br />

1581<br />

1582<br />

1583<br />

1584<br />

1585<br />

1586<br />

1587<br />

1588<br />

1589<br />

1590<br />

1591<br />

1592<br />

1593<br />

1594<br />

1595<br />

1596<br />

1597<br />

1598<br />

1599<br />

1600<br />

1601<br />

1602<br />

1603<br />

1604<br />

1605<br />

1606<br />

1607<br />

1608<br />

1609<br />

1610<br />

1611<br />

1612<br />

1613<br />

1614<br />

1615<br />

1616<br />

1617<br />

1618<br />

EXAMPLE ("OEM"=="oem"=="Oem" and "VENDOR"=="vendor"=="Vendor"), where the term "vendor" is not<br />

taken to be a literal and instead is a value such as "Acme".<br />

5.2.6.3 <strong>Command</strong> Extension Forms<br />

The CLP recognizes two forms of command extension:<br />

• CLP Verb Extended Form<br />

• OEM <strong>Command</strong> <strong>Line</strong> Extended Form<br />

5.2.6.3.1 General<br />

If a <strong>Command</strong> <strong>Line</strong> contains an OEM Extension Name String that is not supported by the implementation,<br />

the implementation shall return a <strong>Command</strong> Status of COMMAND PROCESSING FAILED and a<br />

Processing Error of UNRECOGNIZED OEM EXTENSION.<br />

5.2.6.3.2 CLP Verb Extended Form<br />

The CLP Verb Extended Form requires that a standard CLP command verb appear as the first term on<br />

the <strong>Command</strong> <strong>Line</strong>.<br />

5.2.6.3.2.1 General<br />

A vendor may define vendor-specific <strong>Command</strong> <strong>Line</strong> terms for options, option arguments, option<br />

argument values, target addresses, and target properties, as long as those terms follow the semantics<br />

defined in the CLP specification.<br />

5.2.6.3.2.2 Terms<br />

• CLP Verb/Options and/or Option Arguments<br />

• OEM Options and/or Option Argument(s)<br />

• OEM Target Addresses and/or Property Names<br />

5.2.6.3.2.3 Syntax<br />

*["-" [OEM]] `<br />

*[-OEM [OEM]] `<br />

OEM<br />

`<br />

*(OEM)<br />

5.2.6.3.2.4 Rules<br />

The CLP specification defines the behavior of the verb and associated CLP options when the option is<br />

specified with a CLP-defined argument.<br />

• OEM Arguments to SM CLP options and property names and values shall observe CLP syntax<br />

and delimiter rules.<br />

• The implementation shall not support OEM option arguments or option argument values that are<br />

inconsistent with the behavior of the CLP option. The behavior of the OEM-defined argument is<br />

vendor specific. For example, an OEM argument to the display option cannot be used to<br />

modify the targets of a command.<br />

• Implementations shall not accept a short form for an OEM Option.<br />

• Implementations of OEM targets/properties shall observe/adhere to the specified CLP<br />

verb/option behaviors.<br />

Version 1.0.2 49


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

1619<br />

1620<br />

1621<br />

1622<br />

1623<br />

1624<br />

1625<br />

1626<br />

1627<br />

1628<br />

1629<br />

1630<br />

1631<br />

1632<br />

1633<br />

1634<br />

1635<br />

1636<br />

1637<br />

1638<br />

1639<br />

1640<br />

1641<br />

1642<br />

1643<br />

1644<br />

1645<br />

1646<br />

1647<br />

1648<br />

1649<br />

1650<br />

1651<br />

1652<br />

1653<br />

1654<br />

1655<br />

1656<br />

1657<br />

• When defining OEM target name addresses, implementations shall observe the CLP command<br />

delimiter characters and may follow CLP target naming addressing syntax or semantics.<br />

The behavior of OEM-defined options is outside the scope of this specification. Vendors are free to define<br />

the format of arguments to OEM options as their needs dictate. This specification places no restrictions<br />

on whether options are separated from their arguments by a delimiter, whether options conditionally<br />

accept arguments, and so on. Therefore, when an OEM-defined option is included in a command, it is<br />

likely to be necessary to have a priori knowledge of the option in order to deterministically parse the<br />

<strong>Command</strong> <strong>Line</strong>.<br />

5.2.6.3.3 OEM <strong>Command</strong> <strong>Line</strong> Extended Form<br />

OEM <strong>Command</strong> <strong>Line</strong> Extended Form, or OEM <strong>Command</strong> Form, allows a vendor to provide access to<br />

vendor-specific commands and command formats. OEM <strong>Command</strong> Form is indicated by an OEM<br />

Extension Name String as the first term on the <strong>Command</strong> <strong>Line</strong>. This term signals a fully OEM-defined<br />

command format. Other than this requirement, the commands specified in OEM commands space,<br />

arguments, and so on are suggested to remain in line with those presented in the CLP specification, but<br />

are not controlled or defined in any way by this document.<br />

5.2.6.3.3.1 Terms<br />

• Full OEM-specified command format<br />

• Includes form where an OEM extension appears in every CLP <strong>Command</strong> <strong>Line</strong> term position<br />

5.2.6.3.3.2 Syntax<br />

OEM <br />

OEM <br />

Note the CLP term separator after the first term.<br />

5.2.6.3.3.3 Rules<br />

The vendor completely defines the command syntax, behavior, target addressing, and so on that appear<br />

after the first term, where the first term is prefixed by "OEM".<br />

5.2.6.4 Output Extensions<br />

This clause details requirements related to vendor extensions to the CLP output.<br />

5.2.6.4.1 Vendor-Specific Keywords<br />

A vendor may supply additional output data elements in the response to any CLP command. An<br />

implementation may support vendor-supplied keyword names. The implementation shall define any<br />

vendor-supplied keyword names such that they comply with the rules for defining OEM Extension Name<br />

Strings defined in 231H5.2.6.2.<br />

EXAMPLE If vendor "ZYX" introduced an output data element keyword "foobar", the resulting keyword would<br />

be "OEMZYXfoobar".<br />

5.2.6.4.2 Vendor-Specific Messages and Message Files<br />

Vendors may define and identify vendor-specific messages using the standard SM CLP message<br />

keywords message_id, message_arg, and owningentity as defined in 232H5.2.2.<br />

While the keywords and schema for command output are defined by SM CLP, the format of any message<br />

files local to the Client is outside the scope of this specification.<br />

50 Version 1.0.2


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

1658<br />

1659<br />

1660<br />

1661<br />

1662<br />

1663<br />

1664<br />

1665<br />

1666<br />

1667<br />

1668<br />

1669<br />

1670<br />

1671<br />

6 SM CLP Verbs<br />

This clause gives a listing of all the verbs supported by the CLP, requirements for support by<br />

implementations, and a short description of their basic functionality. The subclauses further define the<br />

behavior of each verb.<br />

The documentation for each verb includes a statement of the command line syntax, a description of<br />

applicable targets of the verb, and a definition of the command output content, including output keywords<br />

to be included in structured forms of output. Where the effect of a supported option is unique to the verb,<br />

it will also be explicitly described. For a complete list of options, including which verbs they are supported<br />

with, see Clause 233H7.<br />

Examples are for information only. If an example contradicts specification text elsewhere in the document,<br />

the specification text is the authority. General rules and requirements for the <strong>Command</strong> Response are<br />

specified in 234H5.1.10. See 235HAnnex E for the conventions used in the examples.<br />

6.1 Verb Support Requirements<br />

The requirements in 236HTable 12 are interpreted as follows:<br />

1672<br />

1673<br />

1674<br />

1675<br />

1676<br />

1677<br />

shall<br />

PROFILE<br />

If the "Requirement" column in 237HTable 12 contains "shall", implementations shall support<br />

the verb specified in the "<strong>Command</strong>" column of that row.<br />

If the "Requirement" column in 238HTable 12 contains "PROFILE", implementations will<br />

support the verb specified in the "<strong>Command</strong>" column of that row when the<br />

implementations support a profile that defines a mapping for the verb. Specific<br />

by-target requirements are found in 239H32HDSP0216.<br />

1678<br />

1679<br />

1680<br />

1681<br />

1682<br />

1683<br />

1684<br />

1685<br />

1686<br />

1687<br />

1688<br />

The SM CLP syntax and semantics can be comprehended by a human user without intimate knowledge<br />

of the CIM Schema. The command verbs, options, targets, and properties are described in a traditional<br />

"man page" format, complete with command execution status and output data element descriptions.<br />

However, in order to implement a CLP Service, a developer needs to know the mapping of CLP verb<br />

option/target/property combinations to the CIM Schema. This mapping information is not included in this<br />

specification but is collected in a separate specification as noted above.<br />

If a CLP verb is specified as the first term of a <strong>Command</strong> <strong>Line</strong> and the implementation does not support<br />

any profiles which require that the verb be supported, the implementation shall not execute the command<br />

and the implementation shall return a <strong>Command</strong> Status of COMMAND PROCESSING FAILED and a<br />

Processing Error of COMMAND NOT SUPPORTED.<br />

Table 12 – Verb Support Requirements<br />

<strong>Command</strong> Requirement Definition and Usage<br />

cd shall Used to set the Current Default Target (navigate the target address space of the<br />

MAP).<br />

create PROFILE Used to create new instances and associations in the address space of the MAP.<br />

This command is allowed only for specific target object types as defined by the<br />

profiles and specific MAP implementation.<br />

delete PROFILE Used to destroy instances in the address space of the MAP. This command is<br />

allowed only for specific target object types as defined by the profiles and specific<br />

MAP implementation.<br />

dump PROFILE Used to move a binary image from the MAP to a URI.<br />

exit shall Used to terminate a CLP session.<br />

help shall Used to get context-sensitive help.<br />

load PROFILE Used to move a binary image to the MAP from a URI.<br />

Version 1.0.2 51


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

<strong>Command</strong> Requirement Definition and Usage<br />

reset PROFILE Used to cause a target with power/process control to cycle states from enabled to<br />

disabled and back to enabled.<br />

set shall Used to set a property or set of properties to a specific value.<br />

show shall Used to show values of a property or contents of a collection/target.<br />

start PROFILE Used to cause a target with power/process control to change states to a higher<br />

run level.<br />

stop PROFILE Used to cause a target with power/process control to change states to a lower run<br />

level.<br />

version shall Used to query the version of the CLP implementation (by default) and other CLP<br />

elements (when specified).<br />

1689<br />

1690<br />

1691<br />

1692<br />

1693<br />

1694<br />

1695<br />

1696<br />

1697<br />

1698<br />

1699<br />

1700<br />

1701<br />

1702<br />

1703<br />

1704<br />

1705<br />

1706<br />

1707<br />

1708<br />

1709<br />

1710<br />

1711<br />

1712<br />

1713<br />

1714<br />

1715<br />

1716<br />

1717<br />

1718<br />

1719<br />

1720<br />

6.2 cd<br />

The general form of the cd command is:<br />

cd [] []<br />

6.2.1 General<br />

For the cd command, implementations shall support the syntax defined for the cd-cmd term in the CLP<br />

grammar defined in 240HAnnex A.<br />

The cd (change default target) command is used to navigate the target address space of the<br />

implementation. The command changes the Current Default Target for the session. The new target<br />

address path is specified on the <strong>Command</strong> <strong>Line</strong> using the standard CLP target syntax and evaluated<br />

using the target address evaluation rules. An implementation shall accept a command target term that is<br />

either an Absolute Target Address or a Relative Target Address. As a result, the command supports both<br />

relative and absolute path changes. If a command target term is specified, implementations of the cd<br />

command shall evaluate the command target term to a UFiP, validate that the UFiP references a<br />

Managed Element in the address space of the MAP, and assign the CDT property of the Managed<br />

Element referenced by SESSION to the UFiP. If the command target term does not evaluate to a UFiP<br />

according to the rules defined in 241H5.1.3.5, implementations shall not change the Current Default Target and<br />

shall return a <strong>Command</strong> Status of COMMAND PROCESSING ERROR and a Processing Error of<br />

INVALID TARGET.<br />

Implementations of the cd command shall support usage without an argument. If no arguments appear<br />

on the <strong>Command</strong> <strong>Line</strong>, the command shall not change the Current Default Target, the implementation<br />

shall not attempt to validate that the CDT addresses a valid Managed Element, and the implementation<br />

shall return the Current Default Target path as output.<br />

Because the CLP supports relative addressing using the reserved character sequence "..", it is possible<br />

to construct a target address that nominally references a point beyond the beginning of the session’s root<br />

administration domain. Applying the command target term evaluation rules defined in 242H5.2.1.3.6 will result<br />

in the command target term being resolved to the root of the session’s address space. Thus an attempt to<br />

use the cd command to change the Current Default Target to a point beyond the beginning of address<br />

space will result in the CDT being assigned to the session’s root administration domain.<br />

6.2.2 Valid Targets<br />

Implementations of the cd command will accept an Absolute or a Relative Target Address for the<br />

command target term. The cd command has an Implicit <strong>Command</strong> Target, which is the session to which<br />

the SESSION Reserved Target will resolve.<br />

52 Version 1.0.2


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

1721<br />

1722<br />

1723<br />

1724<br />

1725<br />

1726<br />

1727<br />

1728<br />

1729<br />

1730<br />

1731<br />

1732<br />

1733<br />

1734<br />

1735<br />

1736<br />

1737<br />

1738<br />

1739<br />

1740<br />

1741<br />

1742<br />

1743<br />

1744<br />

1745<br />

1746<br />

1747<br />

1748<br />

1749<br />

1750<br />

1751<br />

1752<br />

1753<br />

6.2.3 Options<br />

Implementations of the cd command support the options specified in Error! Reference source not<br />

found..<br />

6.2.4 Output<br />

This clause details the requirements for output of the cd verb.<br />

6.2.4.1 Text Format<br />

The <strong>Command</strong> Results data shall include the Current Default Target that is in effect when the command<br />

completes.<br />

If the implementation cannot determine the current target address (due to error), the implementation shall<br />

return text indicating that the Current Default Target is invalid.<br />

6.2.4.2 Structured Format<br />

This clause details requirements for structured output formats for the cd verb.<br />

6.2.4.2.1 General<br />

The returned data shall include any status data in the standard format at the top of the response.<br />

6.2.4.2.2 XML Output<br />

The implementation shall return the cd element in the response element as defined in the <strong>Command</strong><br />

Response schema in 243H6HDSP0224.<br />

<br />

User Friendly instance Path of the CDT <br />

<br />

6.2.4.2.3 Keyword<br />

Implementations shall use the following form when returning <strong>Command</strong> Results for the cd command in<br />

"keyword" format.<br />

command=cd<br />

ufip=User Friendly instance Path of the CDT<br />

endoutput<br />

6.2.5 Examples<br />

The following examples assume that the user is on a four-CPU system and each command starts with the<br />

Current Default Target set to /system1/cpu2.<br />

EXAMPLE 1: Returns the Current Default Target and does not change it. No validation of the CDT is performed<br />

by the implementation.<br />

-> cd<br />

/system1/cpu2<br />

1754<br />

1755<br />

1756<br />

1757<br />

EXAMPLE 2:<br />

Returns the Current Default Target and does not change it. The CDT is validated and appropriate<br />

<strong>Command</strong> Response data is returned if it is no longer valid.<br />

-> cd .<br />

/system1/cpu2<br />

Version 1.0.2 53


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

1758<br />

1759<br />

1760<br />

1761<br />

1762<br />

1763<br />

1764<br />

1765<br />

1766<br />

1767<br />

1768<br />

1769<br />

1770<br />

1771<br />

1772<br />

1773<br />

1774<br />

1775<br />

1776<br />

1777<br />

1778<br />

1779<br />

1780<br />

1781<br />

1782<br />

1783<br />

1784<br />

1785<br />

1786<br />

1787<br />

1788<br />

1789<br />

1790<br />

1791<br />

1792<br />

1793<br />

1794<br />

1795<br />

1796<br />

1797<br />

1798<br />

1799<br />

1800<br />

1801<br />

1802<br />

1803<br />

1804<br />

1805<br />

EXAMPLE 3:<br />

EXAMPLE 4:<br />

EXAMPLE 5:<br />

EXAMPLE 6:<br />

EXAMPLE 7:<br />

EXAMPLE 8:<br />

EXAMPLE 9:<br />

Moves to the parent (container) of the Current Default Target (up the tree) one level.<br />

-> cd ..<br />

/system1<br />

Moves up the containment tree two levels.<br />

-> cd ../..<br />

/<br />

Changes the Current Default Target to the (absolute) target /system1/cpu1.<br />

-> cd /system1/cpu1<br />

/system1/cpu1<br />

Changes the Current Default Target to /system1/cpu2/temp1 (assuming a target named with<br />

a UFiT of temp1 exists within /system1/cpu2).<br />

-> cd temp1<br />

/system1/cpu2/temp1<br />

Moves to the session’s Current Default Target’s parent and then to cpu1.<br />

-> cd ../cpu1<br />

/system1/cpu1<br />

Returns the error (the target does not resolve) and then returns the current target.<br />

-> cd cpu1<br />

No such target found<br />

/system1/cpu2<br />

Returns the error (the target does not resolve) and then returns the current target.<br />

-> cd –o format=clpxml /cpu1<br />

<br />

<br />

<br />

cd -o format=clpxml /cpu1<br />

<br />

<br />

3<br />

COMMAND EXECUTION FAILED<br />

<br />

243<br />

<br />

1<br />

6<br />

CIM_ERR_NOT_FOUND<br />

2<br />

<br />

<br />

<br />

<br />

/system1<br />

<br />

<br />

54 Version 1.0.2


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

1806<br />

1807<br />

1808<br />

1809<br />

1810<br />

1811<br />

1812<br />

1813<br />

1814<br />

1815<br />

1816<br />

1817<br />

1818<br />

1819<br />

1820<br />

1821<br />

1822<br />

1823<br />

1824<br />

1825<br />

1826<br />

1827<br />

1828<br />

1829<br />

1830<br />

1831<br />

1832<br />

1833<br />

1834<br />

1835<br />

1836<br />

1837<br />

1838<br />

1839<br />

1840<br />

1841<br />

1842<br />

1843<br />

1844<br />

1845<br />

1846<br />

1847<br />

1848<br />

1849<br />

1850<br />

1851<br />

1852<br />

1853<br />

1854<br />

1855<br />

1856<br />

1857<br />

1858<br />

EXAMPLE 10:<br />

EXAMPLE 11:<br />

EXAMPLE 12:<br />

EXAMPLE 13:<br />

Changes Current Default Target to /system1/cpu3.<br />

-> cd –o format=clpxml /system1/cpu3<br />

<br />

<br />

<br />

cd -o format=clpxml /system1/cpu3<br />

<br />

<br />

0<br />

COMMAND COMPLETED<br />

<br />

3<br />

<br />

<br />

<br />

/system1/cpu3<br />

<br />

<br />

Changes Current Default Target to /system1/cpu3.<br />

-> cd –o format=keyword /system1/cpu3<br />

commandline=cd –o format=keyword /system1/cpu3<br />

status=0<br />

status_tag=COMMAND COMPLETED<br />

job_id=3<br />

command=cd<br />

ufip=/system1/cpu3<br />

endoutput<br />

Attempts to change Current Default Target to system3, and system3 is currently unresponsive.<br />

-> cd –o format=keyword /system3<br />

commandline=cd –o format=keyword /system3<br />

status=3<br />

status_tag=COMMAND EXECUTION FAILED<br />

job_id=3<br />

errtype=2<br />

cimstat=6<br />

severity=2<br />

command=cd<br />

ufip=/system3<br />

endoutput<br />

Bad syntax on command target term.<br />

-> cd –output format=keyword //system3<br />

commandline=cd –output format=keyword //system3<br />

status=2<br />

status_tag=COMMAND PROCESSING FAILED<br />

error=246<br />

error_tag=INVALID TARGET<br />

command=cd<br />

ufip=/system3<br />

endoutput<br />

Version 1.0.2 55


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

1859<br />

1860<br />

1861<br />

EXAMPLE 14:<br />

Changes Current Default Target to SESSION.<br />

-> cd SESSION<br />

/map1/settings1/setting5<br />

1862<br />

6.3 create<br />

1863<br />

1864<br />

1865<br />

1866<br />

1867<br />

1868<br />

1869<br />

1870<br />

1871<br />

1872<br />

1873<br />

1874<br />

1875<br />

1876<br />

1877<br />

1878<br />

1879<br />

1880<br />

1881<br />

1882<br />

1883<br />

1884<br />

1885<br />

1886<br />

1887<br />

1888<br />

1889<br />

1890<br />

1891<br />

1892<br />

1893<br />

1894<br />

1895<br />

1896<br />

1897<br />

1898<br />

1899<br />

1900<br />

1901<br />

1902<br />

The general form of the create command is:<br />

create [] [=] [=]<br />

6.3.1 General<br />

For the create command, implementations shall support the syntax defined for the create-cmd term in<br />

the CLP grammar defined in 244HAnnex A.<br />

The create command is used to create new target objects in the target address space of the<br />

implementation. The create command is supported only in certain specific target profiles. This<br />

command will be supported on any implementation capable of creating new target objects. An example is<br />

log records. The exact support will be determined by the profiles supported on that implementation.<br />

When creating a new instance, the command target is the object to be created. The class of the object<br />

being created is determined by the class tag section of the target address passed to the command. If the<br />

final term of the Resultant Address is a specific UFiT, the implementation shall create an instance with the<br />

specific UFiT if possible or return an error if creation is not possible. If the Resultant Target terminates in<br />

a UFsT, the path up to and including the penultimate term determines the effective target container where<br />

the implementation shall create an instance of the class identified by the UFcT specified by the UFsT, if<br />

possible, or return an error if it is not possible.<br />

The create command does not support usage without <strong>Command</strong> <strong>Line</strong> parameters. When a command<br />

target term is not included in the <strong>Command</strong> <strong>Line</strong>, the implementation shall not execute the command and<br />

shall return a <strong>Command</strong> Status of COMMAND PROCESSING ERROR and a Processing Error of<br />

MISSING REQUIRED TARGET. The create command can either be used with property name and<br />

value pairs or with the source option. When property name and value pairs are specified as target<br />

property terms, the implementation will attempt to assign each named property the associated value. If<br />

there are additional properties on the instance, the implementation will provide default values. If the<br />

implementation cannot assign default values to unspecified properties, it will return an error. The required<br />

properties, default values, and so on are documented in the CLP-to-CIM mapping for the profile that<br />

defines the target. When the create verb is specified without the source option, or at least one target<br />

property term, the implementation will return a Processing Error of COMMAND SYNTAX ERROR. When<br />

the source option and at least one target property term are both specified in a command, the<br />

implementation will return a Processing Error of COMMAND SYNTAX ERROR. The number of options<br />

and properties required will vary depending on the command and the target. Specific per-target required<br />

options and properties are documented in 245H32HDSP0216.<br />

6.3.2 Valid Targets<br />

This command is supported when it is specified in a target mapping ( 246H32HDSP0216) for a profile that the<br />

implementation supports. For all targets that do not support the use of the create command,<br />

implementations shall not show the create command in a command listing as being available. The<br />

behavior of this command does change on a per-target basis. Implementations of the create command<br />

will accept an Absolute or a Relative Target Address for the command target term. If the Resultant<br />

Address is not a UFiP and does not terminate in a UFsT, implementations shall return a <strong>Command</strong> Status<br />

of COMMAND PROCESSING ERROR and a Processing Error of INVALID TARGET.<br />

56 Version 1.0.2


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

1903<br />

1904<br />

1905<br />

6.3.3 Options<br />

Implementations of the create command support the options specified in Error! Reference source not<br />

found.. The use of the source option is as follows:<br />

1906<br />

1907<br />

1908<br />

1909<br />

1910<br />

-source<br />

6.3.4 Output<br />

The source option is used to identify a Managed Element or other data source that will<br />

provide initial values for the instance to be created. Examples include a Managed<br />

Element that will be cloned or settings to use. When this option is supported for use<br />

with a particular target, it is defined in the CLP-to-CIM mapping for that target.<br />

1911<br />

1912<br />

1913<br />

1914<br />

1915<br />

1916<br />

1917<br />

1918<br />

1919<br />

1920<br />

1921<br />

1922<br />

1923<br />

1924<br />

1925<br />

1926<br />

1927<br />

1928<br />

1929<br />

1930<br />

1931<br />

1932<br />

1933<br />

1934<br />

1935<br />

1936<br />

1937<br />

1938<br />

1939<br />

1940<br />

1941<br />

1942<br />

1943<br />

This clause details the requirements for output of the create verb.<br />

6.3.4.1 Text Format<br />

If an object was created, the implementation shall return information about the created object appropriate<br />

to the output modifiers selected by the command. If no object was created, the implementation shall<br />

indicate this result.<br />

6.3.4.2 Structured Format<br />

This clause details requirements for structured output formats for the create verb.<br />

6.3.4.2.1 General<br />

The returned data shall include any status data in the standard format at the top of the response. The<br />

create command shall then return a list of the created objects with the keyword "instance". If the<br />

implementation cannot create any objects, it should not return any additional data or keywords.<br />

6.3.4.2.2 XML Output<br />

The implementation shall return the create element in the response element in the returned XML<br />

document as defined in the <strong>Command</strong> Response schema in 247H6HDSP0224.<br />

<br />

<br />

User Friendly instance Path identifying target <br />

Properties of the Managed Element.<br />

A property of Managed Element. Each property element is defined<br />

per the xsd.<br />

A property of Managed Element. Each property element is defined<br />

per the xsd.<br />

<br />

<br />

<br />

6.3.4.2.3 Keyword<br />

Implementations shall use the following form when returning <strong>Command</strong> Results for the create command<br />

in "keyword" format:<br />

command=create<br />

begingroup=instance<br />

ufip=User Friendly instance Path of created instance<br />

endgroup<br />

endoutput<br />

Version 1.0.2 57


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

1944<br />

1945<br />

1946<br />

1947<br />

1948<br />

1949<br />

1950<br />

1951<br />

1952<br />

1953<br />

1954<br />

1955<br />

1956<br />

6.3.5 Examples<br />

The following examples try to create a log entry in a log.<br />

EXAMPLE 1: Successfully creates a record log.<br />

-> create log1/record* event="The dummy test ran" `<br />

probablecause="Running a dummy test" `<br />

recommendedactions="Don’t run dummy test" `<br />

severity=unknown source=me<br />

Event = The dummy test ran<br />

RecordID = 75<br />

ProbableCause = Running a dummy test<br />

RecommendedActions = Don’t run dummy test<br />

Severity = unknown<br />

Source = me<br />

1957<br />

1958<br />

1959<br />

1960<br />

1961<br />

1962<br />

1963<br />

1964<br />

1965<br />

1966<br />

1967<br />

1968<br />

1969<br />

1970<br />

1971<br />

1972<br />

1973<br />

1974<br />

1975<br />

1976<br />

1977<br />

1978<br />

1979<br />

1980<br />

1981<br />

1982<br />

1983<br />

1984<br />

1985<br />

1986<br />

1987<br />

1988<br />

1989<br />

1990<br />

1991<br />

1992<br />

1993<br />

1994<br />

EXAMPLE 2:<br />

EXAMPLE 3:<br />

EXAMPLE 4:<br />

Fails to create a log record due to missing properties.<br />

-> create log1/record*<br />

Create failed—-missing required properties.<br />

Fails to create a log record due to missing properties.<br />

-> create –output format=clpxml log1/record*<br />

<br />

<br />

<br />

create -output format=clpxml log1/record*<br />

<br />

<br />

3<br />

COMMAND EXECUTION FAILED<br />

<br />

89<br />

<br />

1<br />

Unknown<br />

4<br />

CIM_ERR_INVALID_PARAMETER<br />

2<br />

<br />

<br />

<br />

<br />

<br />

Fails to create a log record due to missing properties.<br />

-> create –output format=keyword log1/record*<br />

commandline=create -output format=keyword log1/record*<br />

status=3<br />

status_tag=COMMAND EXECUTION FAILED<br />

job_id=89<br />

errtype=1<br />

58 Version 1.0.2


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

1995<br />

1996<br />

1997<br />

1998<br />

1999<br />

2000<br />

2001<br />

2002<br />

2003<br />

2004<br />

2005<br />

2006<br />

2007<br />

2008<br />

2009<br />

2010<br />

2011<br />

2012<br />

2013<br />

2014<br />

2015<br />

2016<br />

2017<br />

2018<br />

2019<br />

2020<br />

2021<br />

2022<br />

2023<br />

2024<br />

2025<br />

2026<br />

2027<br />

2028<br />

2029<br />

2030<br />

2031<br />

2032<br />

2033<br />

2034<br />

2035<br />

2036<br />

2037<br />

2038<br />

2039<br />

2040<br />

2041<br />

EXAMPLE 5:<br />

errtype_desc=unknown<br />

cimstat=4<br />

cimstat_desc=CIM_ERROR_INVALID_PARAMETER<br />

severity=2<br />

command=create<br />

endoutput<br />

Successfully creates a new user account on the MAP.<br />

-> create –o format=clpxml /map1/user* userid=someuser<br />

password=somepassword<br />

<br />

<br />

<br />

create -o format=clpxml /map1/user* userid=someuser<br />

password=somepassword<br />

<br />

<br />

0<br />

<br />

45<br />

<br />

<br />

<br />

<br />

user4<br />

/map1/user4<br />

<br />

<br />

userid<br />

<br />

someuser<br />

<br />

<br />

<br />

password<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

Version 1.0.2 59


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

2042<br />

2043<br />

2044<br />

2045<br />

2046<br />

2047<br />

2048<br />

2049<br />

2050<br />

2051<br />

2052<br />

2053<br />

EXAMPLE 6:<br />

Successfully creates a new user account on the MAP.<br />

-> create –o format=keyword /map1/user* userid=someuser<br />

password=somepassword<br />

commandline=create –o format=keyword /map1/user userid=someuser<br />

password=somepassword<br />

status=0<br />

job_id=45<br />

command=create<br />

begingroup=instance<br />

ufip=/map1/user4<br />

endgroup<br />

endoutput<br />

2054<br />

6.4 delete<br />

2055<br />

2056<br />

2057<br />

2058<br />

2059<br />

2060<br />

2061<br />

2062<br />

2063<br />

2064<br />

2065<br />

2066<br />

2067<br />

2068<br />

2069<br />

2070<br />

2071<br />

2072<br />

2073<br />

2074<br />

2075<br />

2076<br />

2077<br />

2078<br />

2079<br />

2080<br />

The general form of the delete command is:<br />

delete [] <br />

6.4.1 General<br />

For the delete command, implementations shall support the syntax defined for the delete-cmd term in<br />

the CLP grammar defined in 248HAnnex A.<br />

The delete command is used to remove a target. The delete command is supported only in certain<br />

specific target profiles. This command shall be supported on any implementation capable of deleting<br />

target objects. The exact support on a MAP will be determined by the profiles supported in that<br />

implementation.<br />

This command can be used with and without <strong>Command</strong> <strong>Line</strong> options. If the Resultant Target terminates in<br />

a UFsT, the path up to and including the penultimate term determines the target of the command. The<br />

implementation shall delete all instances of the type specified by the UFcT indicated by the UFsT that are<br />

immediately contained in the target or return an error.<br />

Even if the target for the delete command is such that executing the command will result in deleting the<br />

Managed Element indicated by the CDT, the implementation shall delete all of the referenced targets in<br />

the scope, including the target referenced by the CDT. It is possible that the CDT will then refer to a target<br />

that has been deleted. The user will discover that the CDT is invalid the next time the Resultant Target for<br />

a command is the same as the value of the CDT.<br />

6.4.2 Valid Targets<br />

This command is supported when it is specified in a target mapping ( 249H32HDSP0216) for a profile that the<br />

implementation supports. For all targets that do not support the use of the delete command,<br />

implementations shall not show the delete command in a command listing as being available. The<br />

behavior of this command does not change on a per-target basis. Implementations of the delete<br />

command will accept an Absolute or a Relative Target Address for the command target term. If the<br />

Resultant Address is not a UFiP and does not terminate in a UFsT, implementations shall return a<br />

<strong>Command</strong> Status of COMMAND PROCESSING ERROR and a Processing Error of INVALID TARGET.<br />

60 Version 1.0.2


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

2081<br />

2082<br />

2083<br />

2084<br />

6.4.3 Options<br />

Implementations of the delete command will support the options specified in Error! Reference source<br />

not found.. The implementation will support other options for the command as specified in the specific<br />

target profile.<br />

2085<br />

2086<br />

2087<br />

2088<br />

2089<br />

-f, -force<br />

6.4.4 Output<br />

The force option allows objects to be deleted, ignoring any policy that might<br />

cause the implementation to normally not execute the command. When this option<br />

is used, the implementation shall execute this deletion if at all possible, without<br />

regard to consequences.<br />

2090<br />

2091<br />

2092<br />

2093<br />

2094<br />

2095<br />

2096<br />

2097<br />

2098<br />

2099<br />

2100<br />

2101<br />

2102<br />

2103<br />

2104<br />

2105<br />

2106<br />

2107<br />

2108<br />

2109<br />

2110<br />

2111<br />

2112<br />

2113<br />

2114<br />

2115<br />

2116<br />

2117<br />

2118<br />

2119<br />

2120<br />

2121<br />

2122<br />

2123<br />

This clause details the requirements for output of the delete verb.<br />

6.4.4.1 Text Format<br />

Implementations shall return <strong>Command</strong> Result data that includes a list of deleted targets when the<br />

verbose argument is included with the output option, and implementations may specify the list of<br />

deleted targets using range notation. If no targets are deleted, the implementation shall indicate that no<br />

targets were deleted. For example, the implementation could return the string "No targets deleted" or an<br />

appropriate translation.<br />

6.4.4.2 Structured Format<br />

This clause details requirements for structured output formats for the delete verb.<br />

6.4.4.2.1 General<br />

The returned data shall include any status data in the standard format at the top of the response. The<br />

delete command shall then return a list of the deleted objects.<br />

6.4.4.2.2 XML Output<br />

The implementation shall return the delete element in the response element as defined in the<br />

<strong>Command</strong> Response schema in 250H6HDSP0224.<br />

<br />

<br />

<br />

<br />

UFiP identifying target.<br />

<br />

<br />

<br />

Recursive target elements representing Managed Elements contained in<br />

the initial target.<br />

<br />

.<br />

.<br />

.<br />

<br />

.<br />

.<br />

.<br />

<br />

Version 1.0.2 61


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

2124<br />

2125<br />

2126<br />

2127<br />

2128<br />

2129<br />

2130<br />

2131<br />

2132<br />

2133<br />

2134<br />

2135<br />

2136<br />

2137<br />

2138<br />

6.4.4.2.3 Keyword<br />

Implementations shall use the following form when returning <strong>Command</strong> Results for the delete command<br />

in "keyword" format:<br />

command=delete<br />

ufip= UFiP of deleted instance<br />

.<br />

.<br />

.<br />

ufip= UFiP of deleted instance<br />

endoutput<br />

6.4.5 Examples<br />

The following examples delete a single log entry on a MAP that supports log deletion. For additional<br />

examples, see the target profiles that implement this command. Note that in the following examples, if no<br />

output format is specified, the default output format is in effect. For these examples, the default output<br />

format is text.<br />

2139<br />

2140<br />

2141<br />

2142<br />

2143<br />

2144<br />

2145<br />

2146<br />

2147<br />

2148<br />

2149<br />

2150<br />

2151<br />

2152<br />

2153<br />

2154<br />

2155<br />

2156<br />

2157<br />

2158<br />

2159<br />

2160<br />

2161<br />

2162<br />

2163<br />

2164<br />

2165<br />

2166<br />

2167<br />

2168<br />

2169<br />

EXAMPLE 1:<br />

EXAMPLE 2:<br />

EXAMPLE 3:<br />

EXAMPLE 4:<br />

EXAMPLE 5:<br />

EXAMPLE 6:<br />

Deletes the specific log record record1 contained in log1.<br />

-> delete log1/record1<br />

log1/record1 deleted.<br />

Deletes all instances of record contained in log1 (that is, clears the event log).<br />

-> delete –o verbose log1/record*<br />

record1 deleted.<br />

record2 deleted.<br />

record3 deleted.<br />

record4 deleted.<br />

record5 deleted.<br />

5 records successfully deleted.<br />

Deletes all instances of record contained in log1 (that is, clears the event log). Displays all of the<br />

results in reverse order.<br />

-> delete –o verbose,end,order=reverse log1/record*<br />

record5 deleted.<br />

record4 deleted.<br />

record3 deleted.<br />

record2 deleted.<br />

record1 deleted.<br />

5 records successfully deleted.<br />

Deletes all instances of record contained in log1.<br />

-> delete –o terse log1/record*<br />

5 records successfully deleted.<br />

Successfully deletes record3 in log1 in system34. Requests error-only output, so nothing is<br />

returned.<br />

-> delete –o error log1/record3<br />

Deletes record3 in log1 in system34.<br />

-> delete –o error,format=clpxml /system34/log1/record3<br />

<br />


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

2170<br />

2171<br />

2172<br />

2173<br />

2174<br />

2175<br />

2176<br />

2177<br />

2178<br />

2179<br />

2180<br />

2181<br />

2182<br />

2183<br />

2184<br />

2185<br />

2186<br />

2187<br />

2188<br />

2189<br />

2190<br />

2191<br />

2192<br />

2193<br />

2194<br />

2195<br />

2196<br />

2197<br />

2198<br />

2199<br />

2200<br />

2201<br />

2202<br />

2203<br />

2204<br />

2205<br />

2206<br />

2207<br />

2208<br />

2209<br />

2210<br />

2211<br />

2212<br />

2213<br />

2214<br />

2215<br />

2216<br />

2217<br />

2218<br />

2219<br />

2220<br />

2221<br />

2222<br />

EXAMPLE 7:<br />

EXAMPLE 8:<br />

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"<br />

xsi:schemaLocation="http://schemas.dmtf.org/smash/commandresponse/1.0.0<br />

/dsp0224.xsd smclp_command_response.xsd"><br />

<br />

delete -o error,format=clpxml<br />

/system34/log1/record3<br />

<br />

<br />

0<br />

COMMAND COMPLETED<br />

<br />

45<br />

<br />

<br />

<br />

<br />

<br />

record3<br />

/system34/log1/record3<br />

<br />

<br />

<br />

<br />

Deletes record3 in log1 in system34.<br />

-> delete –o format=keyword log1/record3<br />

commandline=delete –o format=keyword log1/record3<br />

status=0<br />

status_tag=COMMAND COMPLETED<br />

job_id=45<br />

command=delete<br />

ufip=/system34/log1/record3<br />

endoutput<br />

Attempts to delete a record that does not exist.<br />

-> delete –o format=clpxml log1/record334<br />

<br />

<br />

<br />

delete -o format=clpxml log1/record334<br />

<br />

<br />

3<br />

COMMAND EXECUTION FAILED<br />

<br />

5349<br />

<br />

1<br />

Other<br />

6<br />

CIM_ERR_NOT_FOUND<br />

Version 1.0.2 63


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

2223<br />

2224<br />

2225<br />

2226<br />

2227<br />

2228<br />

2229<br />

2230<br />

2231<br />

2232<br />

2233<br />

2234<br />

2235<br />

2236<br />

2237<br />

2238<br />

2239<br />

2240<br />

2241<br />

2242<br />

2243<br />

2244<br />

2245<br />

2246<br />

2247<br />

2248<br />

2249<br />

2250<br />

2251<br />

2252<br />

2253<br />

2254<br />

2255<br />

2256<br />

2257<br />

2258<br />

2259<br />

2260<br />

2261<br />

2262<br />

2263<br />

2264<br />

2265<br />

2266<br />

2267<br />

2268<br />

2269<br />

2270<br />

2271<br />

2272<br />

2273<br />

EXAMPLE 9:<br />

EXAMPLE 10:<br />

2<br />

Low<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

Attempts to delete individual records, but this operation is not supported by this implementation.<br />

-> delete –o format=clpxml log3/record334<br />

<br />

<br />

<br />

delete -o format=clpxml log3/record334<br />

<br />

<br />

3<br />

COMMAND EXECUTION FAILED<br />

<br />

2359<br />

<br />

1<br />

Other<br />

7<br />

CIM_ERR_NOT_SUPPORTED<br />

2<br />

Low<br />

<br />

<br />

<br />

<br />

<br />

Attempts to delete individual records, but this operation is not supported by this implementation.<br />

-> delete –o format=keyword log3/record334<br />

commandline=delete –o format=keyword log3/record334<br />

status=3<br />

status_tag=COMMAND EXECUTION FAILED<br />

job_id=2359<br />

errtype=1<br />

errtype_desc=Other<br />

cimstat=7<br />

cimstat_desc=CIM_ERR_NOT_SUPPORTED<br />

severity=2<br />

severity_desc=Low<br />

command=delete<br />

endoutput<br />

64 Version 1.0.2


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

2274<br />

2275<br />

2276<br />

2277<br />

2278<br />

2279<br />

2280<br />

2281<br />

2282<br />

2283<br />

2284<br />

2285<br />

2286<br />

2287<br />

2288<br />

2289<br />

2290<br />

2291<br />

2292<br />

2293<br />

2294<br />

2295<br />

2296<br />

2297<br />

2298<br />

2299<br />

2300<br />

2301<br />

2302<br />

2303<br />

2304<br />

2305<br />

2306<br />

2307<br />

2308<br />

2309<br />

2310<br />

2311<br />

2312<br />

2313<br />

2314<br />

2315<br />

2316<br />

2317<br />

2318<br />

2319<br />

2320<br />

2321<br />

2322<br />

2323<br />

2324<br />

2325<br />

EXAMPLE 11:<br />

EXAMPLE 12:<br />

EXAMPLE 13:<br />

Deletes all of the users in the current target.<br />

-> delete user*<br />

user[1-20] successfully deleted.<br />

Deletes all records in log1 (only four exist).<br />

-> delete –o format=clpxml log1/record*<br />

<br />

<br />

<br />

delete -o format=clpxml log1/record* <br />

<br />

<br />

0<br />

COMMAND COMPLETED<br />

<br />

45<br />

<br />

<br />

<br />

<br />

<br />

record1<br />

/system34/log1/record1<br />

<br />

<br />

<br />

<br />

record2<br />

/system34/log1/record2<br />

<br />

<br />

<br />

<br />

record3<br />

/system34/log1/record3<br />

<br />

<br />

<br />

<br />

record4<br />

/system34/log1/record4<br />

<br />

<br />

<br />

<br />

Deletes all records in log1 (only four exist).<br />

-> delete –o format=keyword /system34/log1/record*<br />

commandline=delete –o format=keyword /system34/log1/record*<br />

status=0<br />

Version 1.0.2 65


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

2326<br />

2327<br />

2328<br />

2329<br />

2330<br />

2331<br />

2332<br />

2333<br />

status_tag=COMMAND COMPLETED<br />

job_id=45<br />

command=delete<br />

ufip=/system34/log1/record1<br />

ufip=/system34/log1/record2<br />

ufip=/system34/log1/record3<br />

ufip=/system34/log1/record4<br />

endoutput<br />

2334<br />

2335<br />

2336<br />

2337<br />

2338<br />

2339<br />

2340<br />

2341<br />

2342<br />

2343<br />

2344<br />

2345<br />

2346<br />

2347<br />

2348<br />

2349<br />

2350<br />

2351<br />

2352<br />

2353<br />

2354<br />

2355<br />

2356<br />

2357<br />

2358<br />

2359<br />

2360<br />

2361<br />

2362<br />

2363<br />

2364<br />

2365<br />

2366<br />

6.5 dump<br />

The general form of the dump command is:<br />

dump -destination [] []<br />

6.5.1 General<br />

For the dump command, implementations shall support the syntax defined for the dump-cmd term in the<br />

CLP grammar defined in 251HAnnex A.<br />

The dump command is used to take a binary image from an ME and send it to a specific location<br />

(specified as a URI). This command is supported only on certain specific target profiles. This command<br />

shall be supported on any implementation that manages binary images. The exact support on a MAP will<br />

be determined by the profiles supported on that implementation.<br />

If the destination option is not supplied by the Client, the implementation shall not execute the<br />

command and shall return a <strong>Command</strong> Status of COMMAND PROCESSING FAILED and a Processing<br />

Error of REQUIRED OPTION MISSING.<br />

6.5.2 Valid Targets<br />

This command is supported when it is specified in a target mapping ( 252H32HDSP0216) for a profile that the<br />

implementation supports. For all targets that do not support the use of the dump command,<br />

implementations shall not show the dump command in a command listing as being available.<br />

Implementations of the dump command will accept an Absolute or a Relative Target Address for the<br />

command target term. If the Resultant Address is not a UFiP, implementations shall return a <strong>Command</strong><br />

Status of COMMAND PROCESSING ERROR and a Processing Error of INVALID TARGET.<br />

6.5.3 Options<br />

Following are valid options for the dump command in addition to those specified in Error! Reference<br />

source not found.:<br />

-destination <br />

The destination option tells the implementation the target to which it will transfer the binary image.<br />

The destination option is required on the <strong>Command</strong> <strong>Line</strong> every time this verb is executed.<br />

The URI specified can contain a scheme that indicates the explicit service and location to be used to<br />

capture the dumped data.<br />

6.5.4 Output<br />

This clause details the requirements for output of the dump verb.<br />

6.5.4.1 Text Format<br />

Implementations shall include the source and target addresses in the <strong>Command</strong> Results data and shall<br />

indicate whether the operation was successful.<br />

66 Version 1.0.2


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

2367<br />

2368<br />

2369<br />

2370<br />

EXAMPLE 1:<br />

EXAMPLE 2:<br />

If the command was successful, an implementation could return the following string:<br />

transferred to <br />

If the file is not transferred, the implementation could return the following string:<br />

not transferred<br />

2371<br />

2372<br />

2373<br />

2374<br />

2375<br />

2376<br />

2377<br />

2378<br />

2379<br />

2380<br />

2381<br />

2382<br />

2383<br />

2384<br />

2385<br />

2386<br />

2387<br />

2388<br />

2389<br />

2390<br />

2391<br />

2392<br />

2393<br />

2394<br />

2395<br />

2396<br />

2397<br />

2398<br />

2399<br />

2400<br />

2401<br />

2402<br />

2403<br />

2404<br />

2405<br />

2406<br />

6.5.4.2 Structured Format<br />

This clause details requirements for structured output formats for the dump verb.<br />

6.5.4.2.1 General<br />

The returned data shall include any status data in the standard format at the top of the response. The<br />

dump command shall then return the target address with the keyword source and the destination URI<br />

with the keyword destination. If the destination is an address within the MAP address space, the<br />

implementation shall identify the destination using the keyword ufip. If the destination is a URI, the<br />

implementation shall identify the destination using the keyword uri. The Client will need to check the<br />

<strong>Command</strong> Status to determine whether the transfer was successful.<br />

6.5.4.2.2 XML Output<br />

The implementation shall return the dump element in the response element as defined in the <strong>Command</strong><br />

Response schema in 253H6HDSP0224. A portion of the schema is illustrated below. Note that an implementation<br />

will return either the or element as appropriate for the format of the source and destination of<br />

the command.<br />

<br />

<br />

Full path of source of dump <br />

<br />

<br />

Full path of destination of dump <br />

<br />

<br />

6.5.4.2.3 Keyword<br />

Implementations shall use the following form when returning <strong>Command</strong> Results for the dump command in<br />

"keyword" format. If the destination is local to the MAP, the ufip keyword shall be used instead of the<br />

uri keyword.<br />

command=dump<br />

begingroup=source<br />

ufip=UFiP of source<br />

endgroup<br />

begingroup=destination<br />

uri=URI of the destination<br />

endgroup<br />

endoutput<br />

6.5.5 Examples<br />

This clause details examples of the use of the dump verb.<br />

2407<br />

2408<br />

2409<br />

EXAMPLE 1:<br />

Transfers the binary image of memory1 to an FTP site.<br />

-> dump memory1 –destination ftp://myserver.com/pub/fwimage.img<br />

memory1 transferred to ftp://myserver.com/pub/fwimage.img.<br />

Version 1.0.2 67


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

2410<br />

2411<br />

2412<br />

2413<br />

2414<br />

2415<br />

2416<br />

2417<br />

2418<br />

2419<br />

2420<br />

2421<br />

2422<br />

2423<br />

2424<br />

2425<br />

2426<br />

2427<br />

2428<br />

2429<br />

2430<br />

2431<br />

2432<br />

2433<br />

2434<br />

2435<br />

2436<br />

2437<br />

2438<br />

2439<br />

2440<br />

2441<br />

2442<br />

2443<br />

2444<br />

2445<br />

2446<br />

2447<br />

2448<br />

2449<br />

2450<br />

2451<br />

2452<br />

2453<br />

2454<br />

2455<br />

2456<br />

2457<br />

2458<br />

2459<br />

2460<br />

2461<br />

2462<br />

2463<br />

2464<br />

EXAMPLE 2:<br />

EXAMPLE 3:<br />

Attempts to transfer a binary image of memory1 to an FTP site but the transfer fails because the<br />

userid/password for the destination is invalid.<br />

-> dump –destination `<br />

ftp://administrator:passw0rd@myserver.com/private/administrator/<br />

memory.dmp –o format=clpxml memory1<br />

<br />

<br />

<br />

dump -destination<br />

ftp://administrator:passw0rd@myserver.com/private/<br />

administrator/memory.dmp -o format=clpxml<br />

memory1<br />

<br />

<br />

3<br />

COMMAND EXECUTION FAILED<br />

<br />

234324<br />

<br />

1<br />

Other<br />

1<br />

CIM_ERR_FAILED<br />

2<br />

60<br />

Login Attempts Failed<br />

<br />

<br />

<br />

<br />

<br />

Transfer fails because the userid/password for the destination is invalid.<br />

-> dump –destination `<br />

ftp://administrator:passw0rd@myserver.com/private/administrator/memory.<br />

dmp –o format=keyword memory1<br />

commandline=dump -destination<br />

ftp://administrator:passw0rd@myserver.com/private/administrator/memory.<br />

dmp -o format=keyword memory1<br />

status=3<br />

status_tag=COMMAND EXECUTION FAILED<br />

job_id=234324<br />

errtype=1<br />

errtype_desc=Other<br />

cimstat=1<br />

cimstat_desc=CIM_ERR_FAILED<br />

severity=2<br />

severity_desc=Low<br />

probcause=60<br />

probcause_desc=Login Attempts Failed<br />

command=dump<br />

68 Version 1.0.2


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

2465<br />

2466<br />

2467<br />

2468<br />

2469<br />

2470<br />

2471<br />

2472<br />

2473<br />

2474<br />

2475<br />

2476<br />

2477<br />

2478<br />

2479<br />

2480<br />

2481<br />

2482<br />

2483<br />

2484<br />

2485<br />

2486<br />

2487<br />

2488<br />

2489<br />

2490<br />

2491<br />

2492<br />

2493<br />

2494<br />

2495<br />

2496<br />

2497<br />

2498<br />

2499<br />

2500<br />

2501<br />

2502<br />

2503<br />

2504<br />

2505<br />

2506<br />

2507<br />

2508<br />

2509<br />

2510<br />

2511<br />

2512<br />

2513<br />

2514<br />

2515<br />

2516<br />

2517<br />

EXAMPLE 4:<br />

EXAMPLE 5:<br />

EXAMPLE 6:<br />

endoutput<br />

Requests help for the dump command.<br />

-> dump –help –o format=clpxml<br />

<br />

<br />

<br />

dump -help -o format=clpxml<br />

<br />

<br />

0<br />

<br />

26210<br />

<br />

<br />

<br />

<br />

The dump command is used to take a binary image from<br />

an ME and transfer it to another location. This<br />

destination can be within the MAP and specified using a<br />

UFiP. The destination need not be within the MAP. If the<br />

destination is not within the MAP it can be specified<br />

using a URI.<br />

<br />

<br />

<br />

Requests help for the dump command.<br />

-> dump -help<br />

commandline=dump -help<br />

status=0<br />

job_id=26210<br />

command=dump<br />

help=The dump command is used to take a binary image from an ME and<br />

transfer it to another location. This destination can be within the MAP<br />

and specified using a UFiP. The destination need not be within the MAP.<br />

If the destination is not within the MAP it can be specified using a<br />

URI.<br />

endoutput<br />

Transfers memory1.<br />

-> dump –destination `<br />

ftp://administrator:passw0rd@myserver.com/private/administrator/memory.<br />

dmp –o format=clpxml memory1<br />

<br />

<br />

<br />

Version 1.0.2 69


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

2518<br />

2519<br />

2520<br />

2521<br />

2522<br />

2523<br />

2524<br />

2525<br />

2526<br />

2527<br />

2528<br />

2529<br />

2530<br />

2531<br />

2532<br />

2533<br />

2534<br />

2535<br />

2536<br />

2537<br />

2538<br />

2539<br />

2540<br />

2541<br />

2542<br />

2543<br />

2544<br />

2545<br />

2546<br />

2547<br />

2548<br />

2549<br />

2550<br />

2551<br />

2552<br />

2553<br />

2554<br />

2555<br />

2556<br />

2557<br />

2558<br />

2559<br />

2560<br />

2561<br />

2562<br />

2563<br />

2564<br />

2565<br />

2566<br />

2567<br />

2568<br />

2569<br />

2570<br />

2571<br />

2572<br />

EXAMPLE 7:<br />

EXAMPLE 8:<br />

dump –destination<br />

ftp://administrator:passw0rd@myserver.com/private/<br />

administrator/memory.dmp -o format=clpxml<br />

memory1<br />

<br />

<br />

0<br />

<br />

385<br />

<br />

<br />

<br />

<br />

/system1/memory1<br />

<br />

<br />

ftp://administrator:passw0rd@myserver.com/private/<br />

administrator/memory.dmp<br />

<br />

<br />

<br />

<strong>Command</strong> is missing the required destination option.<br />

-> dump –o format=clpxml memory1<br />

<br />

<br />

<br />

dump -o format=clpxml memory1<br />

<br />

<br />

2<br />

251<br />

REQUIRED OPTION MISSING<br />

<br />

<br />

<br />

Spawns a job to transfer memory1.<br />

-> dump –destination `<br />

ftp://administrator:passw0rd@myserver.com/private/administrator/memory.<br />

dmp –o format=clpxml memory1<br />

<br />

<br />

<br />

dump -destination<br />

ftp://administrator:passw0rd@myserver.com/private/administrator/<br />

memory.dmp -o format=clpxml memory1<br />

<br />

70 Version 1.0.2


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

2573<br />

2574<br />

2575<br />

2576<br />

2577<br />

2578<br />

2579<br />

2580<br />

2581<br />

2582<br />

2583<br />

2584<br />

2585<br />

2586<br />

2587<br />

2588<br />

2589<br />

2590<br />

2591<br />

2592<br />

2593<br />

2594<br />

2595<br />

2596<br />

2597<br />

2598<br />

2599<br />

2600<br />

2601<br />

2602<br />

2603<br />

2604<br />

2605<br />

2606<br />

2607<br />

EXAMPLE 9:<br />

6.6 exit<br />

<br />

1<br />

<br />

385<br />

<br />

<br />

<br />

<br />

/system1/memory1<br />

<br />

<br />

ftp://administrator:passw0rd@myserver.com/private/<br />

administrator/memory.dmp<br />

<br />

<br />

<br />

Spawns a job to transfer memory1.<br />

-> dump –destination `<br />

ftp://administrator:passw0rd@myserver.com/private/administrator/memory.<br />

dmp –o format=keyword memory1<br />

commandline=dump -destination<br />

ftp://administrator:passw0rd@myserver.com/private/administrator/memory.<br />

dmp memory1<br />

status=1<br />

job_id=385<br />

command=dump<br />

begingroup=source<br />

ufip=/system1/memory1<br />

endgroup<br />

begingroup=destination<br />

uri=ftp://administrator:passw0rd@myserver.com/private/administrator/mem<br />

ory.dmp<br />

endgroup<br />

endoutput<br />

2608<br />

2609<br />

2610<br />

2611<br />

2612<br />

2613<br />

2614<br />

2615<br />

2616<br />

2617<br />

The general form of the exit command is:<br />

exit []<br />

6.6.1 General<br />

For the exit command, implementations shall support the syntax defined for the exit-cmd term in the<br />

CLP grammar defined in 254HAnnex A.<br />

The exit command terminates the user’s current CLP session. This command shall be supported. When<br />

this command is received, implementations shall initiate a graceful shutdown of the underlying transport.<br />

Prior to initiating the shutdown, implementations shall return <strong>Command</strong> Response data indicating that the<br />

shutdown has been initiated and should wait for the message to be received by the Client prior to ending<br />

the session.<br />

Version 1.0.2 71


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

2618<br />

2619<br />

2620<br />

2621<br />

2622<br />

2623<br />

2624<br />

2625<br />

2626<br />

2627<br />

2628<br />

2629<br />

2630<br />

2631<br />

2632<br />

2633<br />

2634<br />

2635<br />

2636<br />

2637<br />

2638<br />

2639<br />

2640<br />

2641<br />

2642<br />

2643<br />

2644<br />

2645<br />

2646<br />

6.6.2 Valid Targets<br />

The exit command has an Implicit <strong>Command</strong> Target of the Managed Element representing the CLP<br />

session where the command is issued. If the <strong>Command</strong> <strong>Line</strong> includes a command target term, the<br />

implementation shall not execute the command and shall return a <strong>Command</strong> Status of COMMAND<br />

PROCESSING FAILED and a Processing Error of COMMAND SYNTAX ERROR in the <strong>Command</strong><br />

Response data.<br />

6.6.3 Options<br />

Implementations of the exit command will support the options specified in Error! Reference source not<br />

found..<br />

6.6.4 Output<br />

This clause describes requirements for CLP output for the exit verb.<br />

6.6.4.1 Text Format<br />

The <strong>Command</strong> Response data shall include <strong>Command</strong> Status.<br />

6.6.4.2 Structured Format<br />

This clause details requirements for structured output formats for the exit verb.<br />

6.6.4.2.1 General<br />

The returned data shall include any status data in the standard format at the top of the response.<br />

6.6.4.2.2 XML Output<br />

The implementation shall return the exit element in the response element as defined in the <strong>Command</strong><br />

Response schema in 255H6HDSP0224.<br />

<br />

<br />

6.6.4.2.3 Keyword<br />

Implementations shall use the following form when returning <strong>Command</strong> Results for the exit command in<br />

"keyword" format:<br />

command=exit<br />

endoutput<br />

6.6.5 Examples<br />

This clause provides examples of the use of the exit verb.<br />

2647<br />

2648<br />

2649<br />

2650<br />

2651<br />

2652<br />

2653<br />

EXAMPLE 1:<br />

EXAMPLE 2:<br />

Examines the effect of the exit command.<br />

-> exit –x<br />

If run without the examine option, this command will exit the<br />

current CLP session.<br />

Displays help for the exit command.<br />

-> exit -help<br />

The exit command is used to exit a CLP session.<br />

72 Version 1.0.2


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

2654<br />

2655<br />

2656<br />

2657<br />

2658<br />

2659<br />

2660<br />

2661<br />

2662<br />

2663<br />

2664<br />

2665<br />

2666<br />

2667<br />

2668<br />

2669<br />

2670<br />

2671<br />

2672<br />

2673<br />

EXAMPLE 3:<br />

6.7 help<br />

Exits the current session.<br />

-> exit –output format=clpxml<br />

<br />

<br />

<br />

exit -output format=clpxml<br />

<br />

<br />

0<br />

<br />

2332<br />

<br />

<br />

<br />

<br />

2674<br />

2675<br />

2676<br />

2677<br />

2678<br />

2679<br />

2680<br />

2681<br />

2682<br />

2683<br />

2684<br />

2685<br />

2686<br />

2687<br />

2688<br />

2689<br />

2690<br />

2691<br />

2692<br />

2693<br />

2694<br />

2695<br />

2696<br />

The general form of the help command is:<br />

help [] []<br />

6.7.1 General<br />

For the help command, implementations shall support the syntax defined for the help-cmd term in the<br />

CLP grammar defined in 256HAnnex A.<br />

The help command is used to request information related to the use of the CLP. The text that is returned<br />

by this command can be defined by an OEM as required for its specific market. The help command<br />

accepts zero or more options. The help command can be specified with zero or more tokens identifying<br />

topics for which the user is requesting help. Examples of possible tokens that an implementation could<br />

recognize include verb names, option names, target addresses, UFcTs, and target property names. The<br />

topics recognized and supported by an implementation are implementation specific. If the implementation<br />

recognizes a token as identifying a topic for which it can provide specific help text, the implementation<br />

may return help text specific to the topic identified by the token. Implementations of the help command<br />

shall implement the rules for recognizing and using option terms as specified in 257H5.2.1.3.3. The help<br />

command is an exception to the general rules regarding recognizing command target terms and target<br />

property terms.<br />

6.7.2 Valid Targets<br />

The help command is unique in that it does not operate against a target. An implementation may<br />

recognize a token as a target address and provide help specific to that target.<br />

6.7.3 Options<br />

Implementations of the help command will support the following options, in addition to those specified in<br />

Error! Reference source not found.. These option arguments may have no effect (return the same data<br />

as if they were not used) on some implementations.<br />

2697<br />

2698<br />

-output verbose<br />

-output terse<br />

Implementation should return extensive help text.<br />

Implementation should return a short form of help text.<br />

Version 1.0.2 73


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

2699<br />

2700<br />

2701<br />

2702<br />

2703<br />

2704<br />

2705<br />

2706<br />

2707<br />

2708<br />

2709<br />

2710<br />

2711<br />

2712<br />

2713<br />

2714<br />

2715<br />

2716<br />

2717<br />

2718<br />

2719<br />

2720<br />

2721<br />

2722<br />

2723<br />

2724<br />

2725<br />

2726<br />

6.7.4 Output<br />

This clause states requirements for CLP output for the help verb..<br />

6.7.4.1 Text Format<br />

The implementation should return text providing help to the user.<br />

6.7.4.2 Structured Format<br />

This clause details requirements for structured output formats for the help verb.<br />

6.7.4.2.1 General<br />

The returned data shall include any status data in the standard format at the top of the response. The<br />

help command shall then return an OEM-defined set of text describing the help for the target or<br />

command specified on the <strong>Command</strong> <strong>Line</strong>. The keyword "helptext" shall be used when returning this text.<br />

6.7.4.2.2 XML Output<br />

The implementation shall return the help element in the response element as defined in the <strong>Command</strong><br />

Response schema in 258H6HDSP0224.<br />

<br />

<br />

:<br />

Free-form text<br />

:<br />

<br />

<br />

6.7.4.2.3 Keyword<br />

Implementations shall use the following form when returning <strong>Command</strong> Results for the help command in<br />

"keyword" format:<br />

command=help<br />

help=The help text.<br />

Endoutput<br />

6.7.5 Examples<br />

This clause provides examples of the use of the help verb.<br />

2727<br />

2728<br />

2729<br />

2730<br />

2731<br />

2732<br />

2733<br />

2734<br />

2735<br />

2736<br />

2737<br />

2738<br />

2739<br />

2740<br />

EXAMPLE 1:<br />

EXAMPLE 2:<br />

Displays help for the log target.<br />

-> help log1<br />

log1 is a message log and has records in it.<br />

Uses the examine option with the help command.<br />

-> help –x –o format=clpxml /system1<br />

<br />

<br />

<br />

help -x -o format=clpxml /system1<br />

<br />

74 Version 1.0.2


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

2741<br />

2742<br />

2743<br />

2744<br />

2745<br />

2746<br />

2747<br />

2748<br />

2749<br />

2750<br />

2751<br />

2752<br />

2753<br />

2754<br />

2755<br />

2756<br />

2757<br />

2758<br />

2759<br />

EXAMPLE 3:<br />

<br />

0<br />

<br />

<br />

<br />

If run without the examine option, this command will<br />

return help about "/system1."<br />

<br />

<br />

<br />

Uses the examine option with the help command.<br />

-> help –x –o format=keyword /system1<br />

commandline=help –x –o format=keyword system1<br />

status=0<br />

job_id=989<br />

command=help<br />

examine=If run without the examine option, this command will return<br />

help about "/system1".<br />

endoutput<br />

2760<br />

6.8 load<br />

2761<br />

2762<br />

2763<br />

2764<br />

2765<br />

2766<br />

2767<br />

2768<br />

2769<br />

2770<br />

2771<br />

2772<br />

2773<br />

2774<br />

2775<br />

2776<br />

2777<br />

2778<br />

2779<br />

2780<br />

2781<br />

2782<br />

2783<br />

The general form of the load command is:<br />

load -source [] []<br />

6.8.1 General<br />

For the load command, implementations shall support the syntax defined for the load-cmd term in the<br />

CLP grammar defined in 259HAnnex A.<br />

The load command is used to take a binary image from a specific source location (specified as a URI)<br />

and place it at the specified target address. The exact behavior of the load command is profile and<br />

implementation specific. The profile dictates whether the desired action is a simple file transfer or whether<br />

it includes an implicit installation of the transferred image. In the case of an implicit installation, it is<br />

implementation dependent whether additional actions are required to complete the installation process.<br />

This command is supported only on certain specific target profiles. The load command will be supported<br />

on implementations that manage binary images. The exact support on a MAP will be determined by the<br />

profiles supported on that implementation.<br />

If the source option is not supplied by the Client, the implementation shall not execute the command<br />

and shall return a <strong>Command</strong> Status of COMMAND PROCESSING FAILED and a Processing Error of<br />

REQUIRED OPTION MISSING.<br />

6.8.2 Valid Targets<br />

This command is supported when it is specified in a target mapping ( 260H32HDSP0216) for a profile that the<br />

implementation supports. For all targets that do not support the use of the load command,<br />

implementations shall not show the load in a command listing as being available. Implementations of the<br />

load command will accept an Absolute or a Relative Target Address for the command target term. If the<br />

Resultant Address is not a UFiP, implementations shall return a <strong>Command</strong> Status of COMMAND<br />

PROCESSING ERROR and a Processing Error of INVALID TARGET.<br />

Version 1.0.2 75


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

2784<br />

2785<br />

2786<br />

6.8.3 Options<br />

Implementations of the load command support the following option, in addition to those specified in<br />

Error! Reference source not found.:<br />

2787<br />

2788<br />

-source <br />

This option tells the implementation the target from which it will transfer the<br />

binary image.<br />

2789<br />

2790<br />

2791<br />

2792<br />

2793<br />

2794<br />

2795<br />

The URI specified can contain a scheme that indicates the explicit service and location to be used to<br />

retrieve the binary image.<br />

6.8.4 Output<br />

This clause states the requirements for CLP output for the load verb.<br />

6.8.4.1 Text Format<br />

The <strong>Command</strong> Result data shall include the source URI and the target instance address, and shall<br />

indicate whether the command was successful.<br />

2796<br />

2797<br />

2798<br />

2799<br />

EXAMPLE 1:<br />

EXAMPLE 2:<br />

If the command was successful, an implementation could return the following string:<br />

transferred to <br />

If the image is not transferred successfully, the implementation could return the following string:<br />

not transferred<br />

2800<br />

2801<br />

2802<br />

2803<br />

2804<br />

2805<br />

2806<br />

2807<br />

2808<br />

2809<br />

2810<br />

2811<br />

2812<br />

2813<br />

2814<br />

2815<br />

2816<br />

2817<br />

2818<br />

2819<br />

2820<br />

2821<br />

6.8.4.2 Structured Format<br />

This clause details requirements for structured output formats for the load verb.<br />

6.8.4.2.1 General<br />

The returned data shall include any status data in the standard format at the top of the response. The<br />

load command shall then return the target address with the keyword destination and the source URI<br />

with the keyword source. If the image is not transferred, the implementation should return only the URI<br />

address (with the source keyword). If the source is an address within the MAP address space, the<br />

implementation shall identify the source using the keyword ufip. If the destination is a URI, the<br />

implementation shall identify the source using the keyword uri.<br />

6.8.4.2.2 XML Output<br />

The implementation shall return the load element in the response element as defined in the <strong>Command</strong><br />

Response schema in 261H6HDSP0224. A portion of the schema is illustrated below. Note that an implementation<br />

will either return the or element as appropriate for the format of the source and destination of<br />

the command.<br />

<br />

<br />

Full path of source of load <br />

<br />

<br />

Full path of destination of load <br />

<br />

<br />

76 Version 1.0.2


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

2822<br />

2823<br />

2824<br />

2825<br />

2826<br />

2827<br />

2828<br />

2829<br />

2830<br />

2831<br />

2832<br />

2833<br />

2834<br />

6.8.4.2.3 Keyword<br />

Implementations shall use the following form when returning <strong>Command</strong> Results for the load command in<br />

"keyword" format:<br />

command=load<br />

begingroup=source<br />

uri= URI of the source of the image to load<br />

endgroup<br />

begingroup=destination<br />

ufip= UFiP of the destination for the image<br />

endgroup<br />

endoutput<br />

6.8.5 Examples<br />

This clause provides examples of the use of the load verb.<br />

2835<br />

2836<br />

2837<br />

2838<br />

2839<br />

2840<br />

2841<br />

2842<br />

2843<br />

2844<br />

2845<br />

2846<br />

2847<br />

2848<br />

2849<br />

2850<br />

2851<br />

2852<br />

2853<br />

2854<br />

2855<br />

2856<br />

2857<br />

2858<br />

2859<br />

2860<br />

2861<br />

2862<br />

2863<br />

2864<br />

2865<br />

2866<br />

2867<br />

2868<br />

2869<br />

2870<br />

2871<br />

2872<br />

EXAMPLE 1:<br />

EXAMPLE 2:<br />

EXAMPLE 3:<br />

Loads firmware image from FTP site.<br />

-> load –source ftp://myserver.com/pub/fwimage.img ` firmwareimage<br />

ftp://myserver.com/pub/firmwareimage.img is transferred to<br />

firmwareimage.<br />

Loads firmware image from an authenticated FTP site.<br />

-> load –source ` 12Hftp://administrator:passw0rd@myserver.com/private/ `<br />

administrator/firmware.img –o format=clpxml softwareid1<br />

<br />

<br />

<br />

load -source<br />

ftp://administrator:passw0rd@myserver.com/private/<br />

administrator/firmware.img -o format=clpxml<br />

softwareid1<br />

<br />

<br />

0<br />

<br />

385<br />

<br />

<br />

<br />

<br />

ftp://administrator:passw0rd@myserver.com/private/<br />

administrator/firmware.img<br />

<br />

<br />

/system1/softwareid1<br />

<br />

<br />

<br />

Loads firmware image from an authenticated FTP site.<br />

-> load –source ` ftp://administrator:passw0rd@myserver.com/private`<br />

administrator/firmware.img –o format=keyword softwareid1<br />

Version 1.0.2 77


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

2873<br />

2874<br />

2875<br />

2876<br />

2877<br />

2878<br />

2879<br />

2880<br />

2881<br />

2882<br />

2883<br />

2884<br />

2885<br />

2886<br />

2887<br />

2888<br />

2889<br />

2890<br />

2891<br />

2892<br />

2893<br />

2894<br />

2895<br />

2896<br />

2897<br />

2898<br />

2899<br />

2900<br />

2901<br />

2902<br />

2903<br />

2904<br />

2905<br />

2906<br />

2907<br />

2908<br />

2909<br />

2910<br />

2911<br />

2912<br />

2913<br />

2914<br />

2915<br />

2916<br />

2917<br />

2918<br />

2919<br />

2920<br />

EXAMPLE 4:<br />

commandline=load -source<br />

ftp://administrator:passw0rd@myserver.com/private/administrator/<br />

firmware.img -o format=keyword softwareid1<br />

status=0<br />

job_id=385<br />

command=load<br />

begingroup=source<br />

uri=ftp://administrator:passw0rd@myserver.com/private/administrator/<br />

firmware.img<br />

endgroup<br />

begingroup=destination<br />

ufip=/system1/softwareid1<br />

endgroup<br />

endoutput<br />

Fails to load firmware image from an authenticated FTP site due to bad credentials.<br />

-> load –source ` ftp://administrator:passw0rd@myserver.com/private/`<br />

administrator/firmware.img –o format=clpxml softwareid1<br />

<br />

<br />

<br />

load -source<br />

ftp://administrator:passw0rd@myserver.com/private/<br />

administrator/firmware.img -o format=clpxml<br />

softwareid1<br />

<br />

<br />

2<br />

COMMAND EXECUTION FAILED<br />

<br />

234324<br />

<br />

1<br />

Other<br />

1<br />

CIM_ERR_FAILED<br />

2<br />

60<br />

Login Attempts Failed<br />

<br />

<br />

<br />

<br />

<br />

2921<br />

6.9 reset<br />

2922<br />

2923<br />

The general form of the reset command is:<br />

reset [] []<br />

78 Version 1.0.2


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

2924<br />

2925<br />

2926<br />

2927<br />

2928<br />

2929<br />

2930<br />

2931<br />

2932<br />

2933<br />

2934<br />

2935<br />

2936<br />

2937<br />

2938<br />

2939<br />

2940<br />

6.9.1 General<br />

For the reset command, implementations shall support the syntax defined for the reset-cmd term in<br />

the CLP grammar defined in 262HAnnex A.<br />

The reset command resets the target’s state. This behavior can be modified to take the target to a<br />

specific state through the use of options.<br />

This command can be used with and without <strong>Command</strong> <strong>Line</strong> options.<br />

6.9.2 Valid Targets<br />

This command is supported when it is specified in a target mapping ( 263H32HDSP0216) for a profile that the<br />

implementation supports. For all targets that do not support the use of the reset command,<br />

implementations shall not show the reset command in a command listing as being available.<br />

Implementations of the reset command will accept an Absolute or a Relative Target Address for the<br />

command target term. If the Resultant Address is not a UFiP, implementations shall return a <strong>Command</strong><br />

Status of COMMAND PROCESSING ERROR and a Processing Error of INVALID TARGET.<br />

The behavior of state-change commands for each UFcT is defined in 264H32HDSP0216.<br />

6.9.3 Options<br />

Following are valid options for the reset command in addition to those specified in Error! Reference<br />

source not found.:<br />

2941<br />

2942<br />

2943<br />

2944<br />

2945<br />

-f, -force<br />

6.9.4 Output<br />

Forces the implementation to reset the object, ignoring any policy that might<br />

cause the implementation to normally not execute the command. The<br />

implementation shall execute this reset if at all possible, without regard to<br />

consequences.<br />

2946<br />

2947<br />

2948<br />

2949<br />

2950<br />

2951<br />

2952<br />

2953<br />

2954<br />

2955<br />

2956<br />

2957<br />

2958<br />

2959<br />

2960<br />

2961<br />

This clause states requirements for output for the reset verb.<br />

6.9.4.1 Text Format<br />

Implementations shall return <strong>Command</strong> Result data that includes the target address that was reset (if<br />

any) and the time and date when the reset started. Implementations are free to return the time and date in<br />

any format that meets their needs. If no targets were reset, the implementation shall indicate this result.<br />

6.9.4.2 Structured Format<br />

This clause details requirements for structured output formats for the reset verb.<br />

6.9.4.2.1 General<br />

Implementations shall include any status data in the standard format at the top of the response. If the<br />

target was successfully reset, the implementation shall then return the target and the time the reset was<br />

initiated.<br />

6.9.4.2.2 XML Output<br />

The implementation shall return the reset element in the response element as defined in the<br />

<strong>Command</strong> Response schema in 265H6HDSP0224.<br />

<br />

Target address the command was invoked against <br />

Version 1.0.2 79


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

2962<br />

2963<br />

2964<br />

2965<br />

2966<br />

2967<br />

2968<br />

2969<br />

2970<br />

2971<br />

2972<br />

2973<br />

Time reset occurred if completed synchronously, returned in CIM<br />

datetime format <br />

<br />

6.9.4.2.3 Keyword<br />

Implementations shall use the following form when returning <strong>Command</strong> Results for the reset command<br />

in "keyword" format:<br />

command=reset<br />

ufip=User Friendly instance path of target of reset<br />

timestamp=Time reset occurred if completed synchronous to command<br />

endoutput<br />

6.9.5 Examples<br />

This clause provides examples of the use of the reset verb.<br />

2974<br />

2975<br />

2976<br />

2977<br />

2978<br />

2979<br />

2980<br />

2981<br />

2982<br />

2983<br />

2984<br />

2985<br />

2986<br />

2987<br />

2988<br />

2989<br />

2990<br />

2991<br />

2992<br />

2993<br />

2994<br />

2995<br />

2996<br />

2997<br />

2998<br />

2999<br />

3000<br />

3001<br />

3002<br />

3003<br />

3004<br />

3005<br />

3006<br />

3007<br />

3008<br />

EXAMPLE 1:<br />

EXAMPLE 2:<br />

EXAMPLE 3:<br />

Resets the operating system on system1.<br />

-> reset /system1<br />

/system1 reset at 10:40am 1/1/01.<br />

Fails to reset the operating system on system1.<br />

-> reset –o format=clpxml /system1/os1<br />

<br />

<br />

<br />

reset -o format=clpxml /system1/os1<br />

<br />

<br />

3<br />

<br />

4824<br />

<br />

2<br />

1<br />

2<br />

<br />

<br />

<br />

<br />

<br />

os1<br />

/system1/os1<br />

<br />

<br />

<br />

Fails to reset the operating system on system1.<br />

-> reset –o format=keyword /system1/os1<br />

commandline=reset –o format=keyword /system1/os1<br />

80 Version 1.0.2


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

3009<br />

3010<br />

3011<br />

3012<br />

3013<br />

3014<br />

3015<br />

3016<br />

3017<br />

3018<br />

3019<br />

3020<br />

3021<br />

3022<br />

3023<br />

3024<br />

3025<br />

3026<br />

3027<br />

3028<br />

3029<br />

3030<br />

3031<br />

3032<br />

3033<br />

3034<br />

3035<br />

3036<br />

3037<br />

3038<br />

3039<br />

3040<br />

3041<br />

3042<br />

3043<br />

3044<br />

3045<br />

3046<br />

3047<br />

3048<br />

3049<br />

3050<br />

3051<br />

EXAMPLE 4:<br />

EXAMPLE 5:<br />

6.10 set<br />

status=3<br />

job_id=4824<br />

errtype=2<br />

cimstat=1<br />

severity=2<br />

command=reset<br />

ufip=/system1/os1<br />

endoutput<br />

Resets the operating system on system1.<br />

-> reset –w –o format=clpxml /system1/os1<br />

<br />

<br />

<br />

reset -w -o format=clpxml /system1/os1<br />

<br />

<br />

0<br />

<br />

92341<br />

<br />

<br />

<br />

<br />

os1<br />

/system1/os1<br />

<br />

20050130145904.000000-300<br />

<br />

<br />

Resets the operating system on system1.<br />

-> reset -w –o format=keyword /system1/os1<br />

commandline=reset -w –o format=keyword /system1/os1<br />

status=0<br />

job_id=92341<br />

command=reset<br />

ufip=/system1/os1<br />

timestamp=20050130145904.000000-300<br />

endoutput<br />

3052<br />

3053<br />

3054<br />

3055<br />

3056<br />

The general form of the set command is:<br />

set [] [] =<br />

6.10.1 General<br />

For the set command, implementations shall support the syntax defined for the set-cmd term in the<br />

CLP grammar defined in 266HAnnex A.<br />

Version 1.0.2 81


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

3057<br />

3058<br />

3059<br />

3060<br />

3061<br />

3062<br />

3063<br />

3064<br />

3065<br />

3066<br />

3067<br />

3068<br />

3069<br />

3070<br />

3071<br />

3072<br />

3073<br />

3074<br />

3075<br />

3076<br />

3077<br />

3078<br />

3079<br />

3080<br />

3081<br />

3082<br />

3083<br />

3084<br />

3085<br />

3086<br />

3087<br />

3088<br />

3089<br />

3090<br />

3091<br />

3092<br />

3093<br />

The set command is used to set the value of one or more of a target’s properties. The command can<br />

accept a command target term and series of keyword=value pairs which it will try to apply.<br />

The implementation may allow the user to set multiple property values for a single target. The<br />

implementation may set the property values in the order of properties given on the <strong>Command</strong> <strong>Line</strong>.<br />

Implementations shall not allow the user to set properties on multiple targets with a single command.<br />

If an error occurs, the implementation may continue to attempt to set properties. For any property where<br />

the implementation fails to assign the user-supplied value, the implementation may set the property to a<br />

default value or the implementation may not change the value of the property at all. It is necessary for the<br />

user to check the command output or the target itself for the value of each property to determine which<br />

values were set. Applying properties one command at a time is a deterministic way to determine which<br />

properties get applied for any given command.<br />

It is possible that changing the value of a property specified by the user will result in the implementation<br />

changing the value of another property which was not specified by the user, in which case the<br />

implementation should return both properties and their values in the output.<br />

The set command requires <strong>Command</strong> <strong>Line</strong> arguments.<br />

6.10.2 Valid Targets<br />

The set command is valid for any target/property pair that is not read-only. For all targets that do not<br />

support the use of the set command, the set command shall not show up in a command listing as being<br />

available. Implementations of the set command will accept an Absolute or a Relative Target Address for<br />

the command target term. If the Resultant Address is not a UFiP, implementations shall return a<br />

<strong>Command</strong> Status of COMMAND PROCESSING ERROR and a Processing Error of INVALID TARGET.<br />

6.10.3 Options<br />

Implementations of the set command will support the options specified in Error! Reference source not<br />

found..<br />

6.10.4 Output<br />

This clause states requirements for output for the set verb.<br />

6.10.4.1 Text Format<br />

Implementations shall return <strong>Command</strong> Result data that includes each of the properties that were<br />

specified in the command and their current values. Note that the current value of a property may be<br />

different from that requested on the <strong>Command</strong> <strong>Line</strong> due to implementation constraints, policies, or vendor<br />

rules.<br />

6.10.4.2 Structured Format<br />

This clause details requirements for structured output formats for the set verb.<br />

6.10.4.2.1 General<br />

The returned data shall include any status data in the standard format at the top of the response. The set<br />

command shall then return a list of the properties that were set with the property name as the keyword<br />

and the value to which it was set as the value.<br />

82 Version 1.0.2


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

3094<br />

3095<br />

3096<br />

3097<br />

3098<br />

3099<br />

3100<br />

3101<br />

3102<br />

3103<br />

3104<br />

3105<br />

3106<br />

3107<br />

3108<br />

3109<br />

3110<br />

3111<br />

3112<br />

3113<br />

3114<br />

3115<br />

3116<br />

3117<br />

3118<br />

3119<br />

3120<br />

3121<br />

3122<br />

3123<br />

3124<br />

3125<br />

3126<br />

3127<br />

3128<br />

3129<br />

3130<br />

3131<br />

3132<br />

6.10.4.2.2 XML Output<br />

The implementation shall return the set element in the response element as defined in the <strong>Command</strong><br />

Response schema in 267H6HDSP0224.<br />

<br />

<br />

<br />

User Friendly instance Path identifying target<br />

<br />

<br />

<br />

A modified property of Managed Element. Each property element<br />

is defined per the xsd.<br />

<br />

<br />

<br />

<br />

6.10.4.2.3 Keyword<br />

Implementations shall use the following form when returning <strong>Command</strong> Results for the set command in<br />

"keyword" format:<br />

command=set<br />

begingroup=instance<br />

ufip=UFiP of Managed Element targeted by command<br />

begingroup=property<br />

property_name=Property name<br />

property_val=Property value<br />

[property_valstring=String corresponding to property value if value/valuemap]<br />

.<br />

Additional values if property is an array<br />

.<br />

property_val=Property value<br />

[property_valstring=String corresponding to property value if value/valuemap]<br />

endgroup<br />

.<br />

Additional property groups<br />

.<br />

endgroup<br />

endoutput<br />

6.10.5 Examples<br />

This clause provides examples of the use of the set verb.<br />

3133<br />

3134<br />

3135<br />

EXAMPLE 1:<br />

Sets the system’s name to sam.<br />

-> set /system1 name=sam<br />

name=sam<br />

3136<br />

3137<br />

3138<br />

EXAMPLE 2: Sets password to 12345.<br />

-> set /map1/user3 password=12345<br />

password=12345<br />

Version 1.0.2 83


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

3139<br />

3140<br />

3141<br />

3142<br />

3143<br />

3144<br />

3145<br />

3146<br />

3147<br />

3148<br />

3149<br />

3150<br />

3151<br />

3152<br />

3153<br />

3154<br />

3155<br />

3156<br />

3157<br />

3158<br />

3159<br />

3160<br />

3161<br />

3162<br />

3163<br />

3164<br />

3165<br />

3166<br />

3167<br />

3168<br />

3169<br />

3170<br />

3171<br />

3172<br />

3173<br />

3174<br />

3175<br />

3176<br />

3177<br />

3178<br />

3179<br />

3180<br />

3181<br />

3182<br />

3183<br />

3184<br />

3185<br />

3186<br />

3187<br />

3188<br />

3189<br />

3190<br />

EXAMPLE 3:<br />

EXAMPLE 4:<br />

EXAMPLE 5:<br />

EXAMPLE 6:<br />

EXAMPLE 7:<br />

Successfully sets a new userid and password.<br />

-> set /map1/user3 userid=joesmith password=passw0rd<br />

userid=joesmith<br />

password=passw0rd<br />

The password fails. Whether the userid is updated is implementation-specific behavior. This<br />

implementation updated the userid. It is also implementation specific whether the password is<br />

echoed to the screen.<br />

-> set /map1/user3 userid=joesmith password=12345<br />

Password 12345 does not meet password rules.<br />

userid=joesmith<br />

password=<br />

The password fails. Whether the userid is updated is implementation-specific behavior. This<br />

implementation did not update the userid. It is also implementation specific whether the password<br />

is echoed to the screen.<br />

-> set /map1/user3 userid=joesmith password=12345<br />

Password 12345 does not meet password rules.<br />

userid=olduserid<br />

password=<br />

Sets name to a string that contains spaces.<br />

-> set /system1 name="Human Resources <strong>Server</strong>"<br />

name="Human Resources <strong>Server</strong>"<br />

Fails to enable load balancing on Ethernet port 2 because teamed NIC is not configured. Notice<br />

that other values already exist for the property that could not be set, and these values are<br />

returned.<br />

-> set –o format=clpxml enetport2 enabledcapabilities=loadbalancing<br />

<br />

<br />

<br />

set -o format=clpxml enetport2<br />

enabledcapabilities=loadbalancing<br />

<br />

<br />

3<br />

<br />

4758<br />

<br />

1<br />

1<br />

2<br />

108<br />

Software Environment Problem<br />

Configure partner NIC prior to<br />

enabling.<br />

<br />

<br />

<br />

<br />

<br />

84 Version 1.0.2


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

3191<br />

3192<br />

3193<br />

3194<br />

3195<br />

3196<br />

3197<br />

3198<br />

3199<br />

3200<br />

3201<br />

3202<br />

3203<br />

3204<br />

3205<br />

3206<br />

3207<br />

3208<br />

3209<br />

3210<br />

3211<br />

3212<br />

3213<br />

3214<br />

3215<br />

3216<br />

3217<br />

3218<br />

3219<br />

3220<br />

3221<br />

3222<br />

3223<br />

3224<br />

3225<br />

3226<br />

3227<br />

3228<br />

3229<br />

3230<br />

3231<br />

3232<br />

3233<br />

3234<br />

3235<br />

3236<br />

3237<br />

3238<br />

3239<br />

3240<br />

3241<br />

3242<br />

3243<br />

3244<br />

3245<br />

3246<br />

3247<br />

EXAMPLE 8:<br />

EXAMPLE 9:<br />

enetport2<br />

/system78/enetport2<br />

<br />

<br />

enabledcapabilities<br />

<br />

<br />

3wakeonlan<br />

<br />

<br />

2alertonlan<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

Fails to enable load balancing on Ethernet port 2 because teamed NIC is not configured. Notice<br />

that other values already exist for the property that could not be set, and these values are<br />

returned.<br />

-> set –o format=keyword enetport2 enabledcapabilities=loadbalancing<br />

commandline=set –o format=keyword enetport2<br />

enabledcapabilities=loadbalancing<br />

status=3<br />

job_id=4758<br />

errtype=1<br />

cimstat=1<br />

severity=2<br />

probcause=108<br />

probcause_desc=Software Environment Problem<br />

recmdaction=Configure partner NIC prior to enabling.<br />

command=set<br />

begingroup=instance<br />

ufip=/system78/enetport2<br />

begingroup=property<br />

property_name=enabledcapabilities<br />

property_val=3<br />

property_valstring=wakeonlan<br />

property_val=2<br />

property_valstring=alertonlan<br />

endgroup<br />

endgroup<br />

endoutput<br />

Fails to enable load balancing on Ethernet port 2 because teamed NIC is not configured. Notice<br />

that this property currently does not have any values assigned.<br />

-> set –o format=clpxml enetport2 enabledcapabilities=loadbalancing<br />

<br />

<br />

<br />

set -o format=clpxml enetport2<br />

enabledcapabilities=loadbalancing<br />

<br />

Version 1.0.2 85


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

3248<br />

3249<br />

3250<br />

3251<br />

3252<br />

3253<br />

3254<br />

3255<br />

3256<br />

3257<br />

3258<br />

3259<br />

3260<br />

3261<br />

3262<br />

3263<br />

3264<br />

3265<br />

3266<br />

3267<br />

3268<br />

3269<br />

3270<br />

3271<br />

3272<br />

3273<br />

3274<br />

3275<br />

3276<br />

3277<br />

3278<br />

3279<br />

3280<br />

3281<br />

3282<br />

3283<br />

3284<br />

3285<br />

3286<br />

3287<br />

3288<br />

3289<br />

3290<br />

3291<br />

3292<br />

3293<br />

3294<br />

3295<br />

3296<br />

3297<br />

3298<br />

3299<br />

3300<br />

3301<br />

3302<br />

<br />

3<br />

<br />

4578<br />

<br />

1<br />

1<br />

2<br />

108<br />

Software Environment<br />

Problem<br />

Configure partner NIC prior to enabling.<br />

<br />

<br />

<br />

OEMxyz<br />

23<br />

NIC Team {2} could not be configured.<br />

NIC {1} must be configured prior to configuring NIC<br />

{3}<br />

<br />

<br />

1<br />

1<br />

<br />

<br />

2<br />

1<br />

<br />

<br />

3<br />

2<br />

<br />

<br />

<br />

OEMxyz<br />

1<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

enetport2<br />

/system78/enetport2<br />

<br />

<br />

enabledcapabilities<br />

<br />

<br />

<br />

<br />

<br />

<br />

86 Version 1.0.2


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

3303<br />

3304<br />

3305<br />

3306<br />

3307<br />

3308<br />

3309<br />

3310<br />

3311<br />

3312<br />

3313<br />

3314<br />

3315<br />

3316<br />

3317<br />

3318<br />

3319<br />

3320<br />

3321<br />

3322<br />

3323<br />

3324<br />

3325<br />

3326<br />

3327<br />

3328<br />

3329<br />

3330<br />

3331<br />

3332<br />

3333<br />

3334<br />

3335<br />

3336<br />

3337<br />

3338<br />

3339<br />

3340<br />

3341<br />

3342<br />

3343<br />

3344<br />

3345<br />

3346<br />

3347<br />

3348<br />

3349<br />

3350<br />

3351<br />

3352<br />

3353<br />

3354<br />

3355<br />

3356<br />

3357<br />

3358<br />

3359<br />

3360<br />

3361<br />

EXAMPLE 10:<br />

EXAMPLE 11:<br />

Fails to enable load balancing on Ethernet port 2 because teamed NIC is not configured. Notice<br />

that this property currently does not have any values assigned.<br />

-> set –o format=keyword enetport2 enabledcapabilities=loadbalancing<br />

commandline=set –o format=keyword enetport2<br />

enabledcapabilities=loadbalancing<br />

status=3<br />

job_id=4578<br />

errtype=1<br />

cimstat=1<br />

severity=2<br />

probcause=108<br />

probcause_desc=Software Environment Problem<br />

begingroup=message<br />

owningentity=OEMxyz<br />

message_id=23<br />

message=NIC Team {2} could not be configured, NIC {1} must be<br />

configured prior to configuring NIC {3}<br />

message_arg=1<br />

message_arg=1<br />

message_arg=2<br />

endgroup<br />

begingroup=message<br />

owningentity=OEMxyz<br />

message_id=001<br />

message=Please consult product documentation.message_arg=1<br />

endgroup<br />

recmdaction=Configure partner NIC prior to enabling.<br />

command=set<br />

begingroup<br />

ufip=/system78/enetport2<br />

begingroup<br />

property_name=enabledcapabilities<br />

endgroup<br />

endoutput<br />

Successfully enables failover and WakeOnLAN support on Ethernet port 2. Notice that multiple<br />

values are assigned.<br />

-> set –o format=clpxml enetport2<br />

enabledcapabilities=failover,wakeonlan<br />

<br />

<br />

set -o format=clpxml /system78/enetport2<br />

enabledcapabilities=failover,wakeonlan<br />

<br />

<br />

0<br />

<br />

7623<br />

<br />

<br />

<br />

<br />

enetport2<br />

/system78/enetport2<br />

<br />

<br />

Version 1.0.2 87


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

3362<br />

3363<br />

3364<br />

3365<br />

3366<br />

3367<br />

3368<br />

3369<br />

3370<br />

3371<br />

3372<br />

3373<br />

3374<br />

3375<br />

3376<br />

3377<br />

3378<br />

3379<br />

3380<br />

3381<br />

3382<br />

3383<br />

3384<br />

3385<br />

3386<br />

3387<br />

3388<br />

3389<br />

3390<br />

3391<br />

3392<br />

3393<br />

3394<br />

3395<br />

3396<br />

3397<br />

3398<br />

3399<br />

3400<br />

3401<br />

3402<br />

3403<br />

3404<br />

3405<br />

3406<br />

3407<br />

3408<br />

3409<br />

3410<br />

3411<br />

3412<br />

3413<br />

EXAMPLE 12:<br />

EXAMPLE 13:<br />

EXAMPLE 14:<br />

EXAMPLE 15:<br />

EXAMPLE 16:<br />

enabledcapabilities<br />

<br />

<br />

4<br />

failover<br />

<br />

<br />

3<br />

wakeonlan<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

Successfully enables failover and WakeOnLAN support on Ethernet port 2. Notice that multiple<br />

values are assigned.<br />

-> set –o format=keyword enetport2<br />

enabledcapabilities=failover,wakeonlan<br />

commandline=set /system78/enetport2<br />

enabledcapabilities=failover,wakeonlan<br />

status=0<br />

job_id=7632<br />

command=set<br />

begingroup=instance<br />

ufip=/system78/enetport2<br />

begingroup=property<br />

property_name=enabledcapabilities<br />

property_val=4<br />

property_valstring=failover<br />

property_val=3<br />

property_valstring=wakeonlan<br />

endgroup<br />

endgroup<br />

endoutput<br />

Sets the default output format to XML.<br />

-> set SESSION outputformat=clpxml<br />

/map1/sessions1/setting5<br />

Default output format set to XML.<br />

Changes the CDT by using the back door method.<br />

-> set SESSION cdt=/system5/cpu3<br />

/map1/sessions1/setting5<br />

Current Default Target is /system5/cpu3.<br />

Sets the OEM property OEMxyzpropertyA.<br />

-> set /system1 OEMxyzpropertyA=somevalue_<br />

/system1<br />

OEMxyzpropertyA equals somevalue.<br />

Sets a property. The vendor returns data outside the specification.<br />

-> set –o format=keyword /system1 PrimaryOwnerName=TheOwner<br />

commandline=set –o format=keyword /system1 PrimaryOwnerName=TheOwner<br />

status=0<br />

88 Version 1.0.2


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

3414<br />

3415<br />

3416<br />

3417<br />

3418<br />

3419<br />

3420<br />

3421<br />

3422<br />

3423<br />

3424<br />

3425<br />

3426<br />

3427<br />

3428<br />

3429<br />

3430<br />

3431<br />

3432<br />

3433<br />

3434<br />

3435<br />

3436<br />

3437<br />

3438<br />

3439<br />

3440<br />

3441<br />

3442<br />

3443<br />

3444<br />

3445<br />

3446<br />

3447<br />

3448<br />

3449<br />

3450<br />

3451<br />

3452<br />

EXAMPLE 17:<br />

EXAMPLE 18:<br />

EXAMPLE 19:<br />

EXAMPLE 20:<br />

EXAMPLE 21:<br />

EXAMPLE 22:<br />

6.11 show<br />

job_id=7632<br />

command=set<br />

begingroup=instance<br />

ufip=/system1<br />

begingroup=property<br />

property_name=PrimaryOwnerName<br />

property_val=TheOwner<br />

endgroup<br />

endgroup<br />

oemxyz_message=The Contact information may need to be updated.<br />

endoutput<br />

Enables software2 for memory1. The association is explicitly identified.<br />

-> set<br />

/system1/memory1=>ElementSoftwareIdentity=>/system1/swid1/software2<br />

IsCurrent=true<br />

software2 is now active for memory1<br />

Fails to change which software2 is current on memory1 because multiple instances of<br />

ElementSoftwareIdentity reference memory1.<br />

-> set /system1/memory1=>ElementSoftwareIdentity IsCurrent=true<br />

Failed to set property "IsCurrent". Both references to an Association<br />

are required when it is the target of a set command.<br />

Enables software2. Specifies both references.<br />

-> set<br />

/system1/swid1/software2=>ElementSoftwareIdentity=>/system1/memory1<br />

IsCurrent=true<br />

software2 is now active for memory1.<br />

Attempts to suspend a currently running job.<br />

-> set /map1/jobqueue1/job23 jobstate=suspend<br />

Failed to suspend job23. The targeted job does not support<br />

suspension.<br />

Stops traffic over nic1.<br />

-> set /system4/nic1 enabledstate=quiesce<br />

Traffic over nic1 has been quiesced.<br />

Enables SSHv1 for a session.<br />

-> set /system1/sshprotoendpt1 enabledsshversions[1]=sshv1<br />

/system1/sshprotoendpt1<br />

enabledsshversions[0] = SSHv2<br />

enabledsshversions[1] = SSHv1<br />

3453<br />

3454<br />

3455<br />

3456<br />

3457<br />

The general form of the show command is:<br />

show [] [] [] [== ]<br />

6.11.1 General<br />

For the show command, implementations shall support the syntax defined for the show-cmd term in the<br />

CLP grammar defined in 268HAnnex A.<br />

Version 1.0.2 89


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

3458<br />

3459<br />

3460<br />

3461<br />

3462<br />

3463<br />

3464<br />

3465<br />

3466<br />

3467<br />

3468<br />

3469<br />

3470<br />

3471<br />

3472<br />

3473<br />

3474<br />

3475<br />

3476<br />

3477<br />

3478<br />

3479<br />

3480<br />

3481<br />

3482<br />

3483<br />

3484<br />

3485<br />

3486<br />

3487<br />

3488<br />

3489<br />

3490<br />

3491<br />

3492<br />

3493<br />

3494<br />

3495<br />

3496<br />

3497<br />

3498<br />

3499<br />

3500<br />

3501<br />

3502<br />

The show command is used to display information about Managed Elements or Associations. It can be<br />

used to view information about a single Managed Element, a tree of Managed Elements, or Managed<br />

Elements matching a property value filter. When executed against a Resultant Address that ends in a<br />

UFiT without any other options, the show command will display information about the single instance<br />

identified by the Resultant Address. When executed against a Resultant Address that ends in a UFsT, the<br />

show command will display information about contained instances of the type specified by the UFcT<br />

specified in the UFsT. When used with the level option, the show command can be used to view a tree<br />

of Managed Elements.<br />

The <strong>Command</strong> Results for the show command is determined in the following order:<br />

1) Determine the Resultant Target for the command.<br />

2) Select Managed Element and Associations for which results will be returned from the<br />

containment hierarchy below the Resultant Target based on the value of the level option.<br />

3) Retrieve results for the selected Managed Elements and Associations.<br />

4) If the command target term terminated in a UFsT, apply the UFcT as a filter against the<br />

Managed Elements.<br />

5) If one or more property target terms that include the equivalence operator were specified, filter<br />

Managed Elements and Associations based on the property/value.<br />

6) If one or more target property terms that are property names were specified, filter the results to<br />

include only Managed Elements and Associations that have the properties, and for each<br />

Managed Element and Association, filter the results to include only the specified properties.<br />

7) If the display option was specified, apply its arguments to filter the results.<br />

If the Resultant Address terminates in a UFsT, the path up to and including the penultimate term of the<br />

Resultant Address determines the Resultant Target of the command. If the Resultant Address contains a<br />

single term that is a UFsT, the Resultant Target of the command will be the Managed Element that is the<br />

root of the address space. The implementation shall return each instance that is contained within the<br />

Resultant Target of the type specified by the UFcT specified in the UFsT. The implementation shall<br />

search the containment hierarchy below the Resultant Target for instances of the type specified by the<br />

UFcT specified in the UFsT to the depth specified by the level option. The implementation shall return<br />

information about the contained instances such that the information returned conforms with any<br />

restrictions or expansions specified by other options to the command. It is possible that zero instances<br />

are contained and thus there will not be any instances for which to return information. This is not an error<br />

and will be handled by implementations returning an appropriate representation of an empty result set.<br />

The show command can be specified with target property terms. Each target property term will either be a<br />

property name or contain a property name, equivalence operator, and property value. When specified, the<br />

target property terms affect the results returned by the show command. The show command can be used<br />

with target property terms as follows:<br />

• without target property terms<br />

• with target property terms that are property names<br />

• with target property terms that contain the equivalence operator<br />

• with a combination of target property terms that are just property names and others that contain<br />

the equivalence operator<br />

When the show command is used with one or more target property terms that are property names, the<br />

implementation shall restrict the results shown to include only Managed Elements or Associations that<br />

have the specified property and restrict the results for the Managed Element or Association to include<br />

only properties where the property name was specified as a target property term.<br />

90 Version 1.0.2


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

3503<br />

3504<br />

3505<br />

3506<br />

3507<br />

3508<br />

3509<br />

3510<br />

3511<br />

3512<br />

3513<br />

3514<br />

3515<br />

3516<br />

3517<br />

3518<br />

3519<br />

3520<br />

3521<br />

3522<br />

3523<br />

3524<br />

3525<br />

3526<br />

3527<br />

3528<br />

3529<br />

3530<br />

3531<br />

3532<br />

3533<br />

3534<br />

3535<br />

3536<br />

3537<br />

3538<br />

3539<br />

3540<br />

3541<br />

3542<br />

3543<br />

3544<br />

3545<br />

3546<br />

3547<br />

3548<br />

Implementations shall accept at least one target property term that contains the equivalence operator with<br />

the show command to use as a filter on the Managed Elements or Associations for which results are<br />

returned. Implementations may accept more than one target property term that contains an equivalence<br />

operator with the show command to use as a filter on the Managed Elements or Associations for which<br />

results will be returned. When an implementation accepts exactly one occurrence of a target property<br />

term that includes the equivalence operator and more than one occurrence of a target property term that<br />

includes the equivalence operator is specified on the <strong>Command</strong> <strong>Line</strong>, the implementation shall return a<br />

<strong>Command</strong> Status of COMMAND PROCESSING FAILED and a Processing Error of FUNCTION NOT<br />

SUPPORTED. For each target property term that includes the equivalence operator specified with the<br />

show command, the implementation shall restrict the Managed Elements or Associations for which<br />

results are shown to include only those Managed Elements or Associations that have a property with the<br />

specified name and the value of the property is equivalent to the value specified in the target property<br />

term.<br />

The display option can be used with the show command to control the information returned for an<br />

instance. Using the properties argument to the display option, with the show command a user can<br />

effectively search the address space (or a branch) for instances having a certain property or a<br />

property/value pair. When the show command and display option are used in this fashion, it effectively<br />

provides a query function. This display option can also be used to restrict the Managed Element<br />

instances and Association instances for which information will be returned by using the targets and<br />

associations arguments respectively. For more information on using the display option, see Error!<br />

Reference source not found..<br />

If the show command is specified without the display option, implementations will use the session<br />

default value for the display option. Use of the level option is supported only when the Resultant<br />

Address of the command is a UFiP. Regardless of whether the implementation supports the level<br />

option, when the show command is specified without the level option, the implementation shall behave<br />

as if the level option was specified with an argument of '1'. Note that this has no effect when the<br />

Resultant Target is an Association Class or Association instance.<br />

The command can be used with and without <strong>Command</strong> <strong>Line</strong> options.<br />

6.11.2 Valid Targets<br />

All targets and target/property combinations are valid for this command, and its behavior generally does<br />

not change based on target or property. In specific profiles, the behavior can be slightly different as<br />

defined in that profile. Implementations of the show command will accept an Absolute or a Relative<br />

Target Address for the command target term.<br />

6.11.3 Options<br />

Following are valid options for the show command in addition to those specified in Error! Reference<br />

source not found.:<br />

-l, -level <br />

Controls the target depth level for the containment hierarchy retrieval. The default<br />

for is "1" (that is, "the current target only"). Other values can retrieve<br />

"current target plus 'n-1' levels deep". To retrieve all levels recursively, the<br />

argument value all can be used with the level option.<br />

-d, -display <br />

Selects the category of information that is displayed about a target ME. Valid<br />

option argument values for this option include associations, targets,<br />

properties, verbs, and all. OEMs may also add values using the OEM_<br />

namespace as defined in the OEM extensions clause of this document. When<br />

Version 1.0.2 91


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

3549<br />

3550<br />

3551<br />

3552<br />

-a, -all<br />

this option is not specified, the show command behaves as if this option was<br />

included with an argument of all.<br />

Instructs the implementation to return all data element types subject to any<br />

filtering of categories by the display option.<br />

3553<br />

3554<br />

3555<br />

3556<br />

3557<br />

3558<br />

3559<br />

3560<br />

3561<br />

3562<br />

269HTable 13 lists each type of data element that is returned by the show command and indicates whether the<br />

type requires the all option to be specified in the <strong>Command</strong> <strong>Line</strong> in order to be included in the<br />

<strong>Command</strong> Results. A value of "yes" in a cell indicates that elements of the corresponding data element<br />

type will not be returned unless the all option is included with the show command. For each data<br />

element type listed in 270HTable 13 for which the column labeled "-all Required" includes a value of "yes",<br />

implementations shall return elements of the specified data element type if and only if the all option is<br />

specified. For each data element type listed in 271HTable 13 for which the column labeled "-all Required" is<br />

blank, implementations shall return elements of the specified data element type irrespective of whether<br />

the all option is specified.<br />

Table 13 – Data Element Types and all Option<br />

Data Element Type Corresponding Display Argument -all Required<br />

Required properties<br />

properties<br />

Core properties properties yes<br />

OEM properties properties yes<br />

SM CLP verbs<br />

verbs<br />

OEM verbs verbs yes<br />

Addressing associations<br />

associations<br />

Non-addressing associations<br />

associations<br />

SM CLP targets<br />

targets<br />

OEM targets targets yes<br />

3563<br />

3564<br />

3565<br />

3566<br />

3567<br />

3568<br />

3569<br />

3570<br />

3571<br />

3572<br />

3573<br />

3574<br />

3575<br />

3576<br />

3577<br />

3578<br />

3579<br />

An implementation shall include a verb supported by the implementation in the list of verbs for a Managed<br />

Element if a command that includes the verb will complete successfully when the Resultant Target of the<br />

command is the Managed Element. An implementation shall not include a verb in the list of verbs for a<br />

Managed Element if a command that includes the verb will not successfully complete when the Resultant<br />

Target of the command is the Managed Element.<br />

6.11.4 Output<br />

This clause states requirements for CLP output for the show verb.<br />

6.11.4.1 Text Format<br />

When contained targets are returned, the <strong>Command</strong> Results output shall include a list of contained<br />

targets. If the <strong>Command</strong> Results contain multiple targets, the implementation shall return results such that<br />

the target containment hierarchy is unambiguous. If properties are returned, the implementation shall<br />

return results such that the target to which the properties belong is unambiguous. If the command<br />

resulted in no data, the implementation should not return any data.<br />

6.11.4.2 Structured Format<br />

This clause details requirements for structured output formats for the show verb.<br />

6.11.4.2.1 General<br />

The returned data shall include any status data in the standard format at the top of the response.<br />

92 Version 1.0.2


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

3580<br />

3581<br />

3582<br />

3583<br />

3584<br />

3585<br />

3586<br />

3587<br />

3588<br />

3589<br />

3590<br />

3591<br />

3592<br />

3593<br />

3594<br />

3595<br />

3596<br />

3597<br />

3598<br />

3599<br />

3600<br />

3601<br />

3602<br />

3603<br />

3604<br />

3605<br />

3606<br />

3607<br />

3608<br />

3609<br />

3610<br />

3611<br />

3612<br />

3613<br />

3614<br />

3615<br />

3616<br />

3617<br />

3618<br />

3619<br />

3620<br />

3621<br />

3622<br />

3623<br />

3624<br />

3625<br />

3626<br />

3627<br />

3628<br />

3629<br />

6.11.4.2.2 XML Output<br />

The XML document fragment indicates the general form of XML-encoded <strong>Command</strong> Results for the show<br />

command. It is possible that multiple instances of the element will be returned. Target<br />

containment hierarchy is explicitly indicated through element nesting. The implementation shall<br />

return the show element in the response element as defined in the <strong>Command</strong> Response schema in<br />

272H6HDSP0224.<br />

<br />

<br />

<br />

<br />

User Friendly instance Path identifying target<br />

<br />

Properties of the Managed Element.<br />

A property of Managed Element. Each property element is<br />

defined per the xsd.<br />

A property of Managed Element. Each property element is<br />

defined per the xsd.<br />

<br />

<br />

<br />

Association class name<br />

User Friendly instance Path of other referenced Managed<br />

Element.<br />

<br />

<br />

<br />

CLP term separator delimited list of CLP verbs<br />

<br />

CLP term separator delimited list of OEM verbs<br />

<br />

<br />

Recursive target elements representing Managed Elements contained<br />

in initial target.<br />

<br />

<br />

6.11.4.2.3 Keyword<br />

It is possible that results for multiple Managed Elements will be returned for the show command. Each<br />

Managed Element is returned as a block starting with:<br />

begingroup=instance<br />

The target containment hierarchy is not indicated in the <strong>Command</strong> Results structure. Instead, the<br />

begingroup=instance keyword/value pair identifies that a listing of UFiPs of contained Managed<br />

Elements will follow if this target contains other targets.<br />

Implementations shall use the following form when returning <strong>Command</strong> Results for the show command in<br />

"keyword" format:<br />

command=show<br />

begingroup=instance<br />

ufip=UFiP of Managed Element results are for<br />

begingroup=property<br />

property_name=property name<br />

property_val=property value<br />

Version 1.0.2 93


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

3630<br />

3631<br />

3632<br />

3633<br />

3634<br />

3635<br />

3636<br />

3637<br />

3638<br />

3639<br />

3640<br />

3641<br />

3642<br />

3643<br />

3644<br />

3645<br />

3646<br />

3647<br />

3648<br />

3649<br />

3650<br />

3651<br />

3652<br />

3653<br />

3654<br />

3655<br />

3656<br />

3657<br />

3658<br />

3659<br />

3660<br />

3661<br />

3662<br />

3663<br />

3664<br />

3665<br />

3666<br />

3667<br />

3668<br />

3669<br />

3670<br />

3671<br />

3672<br />

3673<br />

3674<br />

endgroup<br />

.<br />

Additional property groups<br />

.<br />

begingroup=targets<br />

ufip=UFiP of contained target<br />

.<br />

Additional contained targets<br />

.<br />

endgroup<br />

begingroup=association<br />

ufct=UFcT of association<br />

ufip=UFiP on other end of association<br />

begingroup=property<br />

property_name=Name of Property of association<br />

property_val=value of property of association<br />

endgroup<br />

.<br />

Additional properties of the association<br />

.<br />

endgroup<br />

.<br />

Additional associations referencing this Managed Element<br />

.<br />

begingroup=verbs<br />

verb=<strong>Command</strong> applicable to this Managed Element<br />

.<br />

Additional commands applicable to this Managed Element<br />

.<br />

endgroup<br />

endgroup<br />

.<br />

Additional Managed Elements that are returned as results<br />

.<br />

endoutput<br />

6.11.5 Examples<br />

This clause provides examples of the use of the show verb.<br />

EXAMPLE 1: Shows all of the targets in the root of the address space.<br />

-> show –display targets /<br />

/<br />

Targets:<br />

map1<br />

system1<br />

system2<br />

hw1<br />

3675<br />

3676<br />

3677<br />

3678<br />

3679<br />

3680<br />

3681<br />

EXAMPLE 2:<br />

EXAMPLE 3:<br />

Shows the commands that apply to the root of the address space.<br />

-> show –display verbs /<br />

show<br />

cd<br />

Shows the value of the name property on system1.<br />

-> show –display properties=name /system1<br />

name = deadweight<br />

94 Version 1.0.2


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

3682<br />

3683<br />

3684<br />

3685<br />

3686<br />

3687<br />

3688<br />

3689<br />

3690<br />

3691<br />

3692<br />

3693<br />

3694<br />

3695<br />

3696<br />

3697<br />

3698<br />

3699<br />

3700<br />

3701<br />

3702<br />

3703<br />

3704<br />

3705<br />

3706<br />

3707<br />

3708<br />

3709<br />

3710<br />

3711<br />

3712<br />

3713<br />

3714<br />

3715<br />

3716<br />

3717<br />

3718<br />

3719<br />

3720<br />

3721<br />

3722<br />

3723<br />

3724<br />

3725<br />

3726<br />

3727<br />

3728<br />

3729<br />

3730<br />

3731<br />

3732<br />

3733<br />

3734<br />

3735<br />

EXAMPLE 4:<br />

Displays the physical containment hierarchy for chassis1.<br />

-> show –display targets –level all –o format=clpxml /hw1/chassis1<br />

<br />

<br />

<br />

show -display targets -level all -o format=clpxml<br />

/hw1/chassis1<br />

<br />

<br />

0<br />

COMMAND COMPLETED<br />

<br />

8734<br />

<br />

<br />

<br />

<br />

<br />

chassis1<br />

/chassis1<br />

<br />

<br />

<br />

board1<br />

/chassis1/board1<br />

<br />

<br />

<br />

card1<br />

/chassis1/board1/card1<br />

<br />

<br />

<br />

chip1<br />

/chassis1/board1/card1/chip1<br />

<br />

<br />

<br />

<br />

chip2<br />

/chassis1/board1/card1/chip2<br />

<br />

<br />

<br />

<br />

<br />

<br />

powerpkg1<br />

/chassis1/powerpkg1<br />

<br />

Version 1.0.2 95


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

3736<br />

3737<br />

3738<br />

3739<br />

3740<br />

3741<br />

3742<br />

3743<br />

3744<br />

3745<br />

3746<br />

3747<br />

3748<br />

3749<br />

3750<br />

3751<br />

3752<br />

3753<br />

3754<br />

3755<br />

3756<br />

3757<br />

3758<br />

3759<br />

3760<br />

3761<br />

3762<br />

3763<br />

3764<br />

3765<br />

3766<br />

3767<br />

3768<br />

3769<br />

3770<br />

3771<br />

3772<br />

3773<br />

3774<br />

3775<br />

3776<br />

3777<br />

3778<br />

3779<br />

3780<br />

3781<br />

3782<br />

3783<br />

3784<br />

3785<br />

3786<br />

3787<br />

3788<br />

3789<br />

EXAMPLE 5:<br />

<br />

<br />

<br />

powerpkg2<br />

/chassis1/powerpkg2<br />

<br />

<br />

<br />

<br />

fanpkg1<br />

/chassis1/fanpkg1<br />

<br />

<br />

<br />

<br />

fanpkg2<br />

/chassis1/fanpkg2<br />

<br />

<br />

<br />

<br />

fanpkg3<br />

/chassis1/fanpkg3<br />

<br />

<br />

<br />

<br />

fanpkg4<br />

/chassis1/fanpkg4<br />

<br />

<br />

<br />

<br />

<br />

Displays the associations that reference the target.<br />

-> show –display associations –o format=clpxml /system1/powersup3<br />

<br />

<br />

<br />

show -display associations -o format=clpxml<br />

/system1/powersup3<br />

<br />

<br />

0<br />

COMMAND COMPLETED<br />

<br />

129<br />

<br />

<br />

<br />

96 Version 1.0.2


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

3790<br />

3791<br />

3792<br />

3793<br />

3794<br />

3795<br />

3796<br />

3797<br />

3798<br />

3799<br />

3800<br />

3801<br />

3802<br />

3803<br />

3804<br />

3805<br />

3806<br />

3807<br />

3808<br />

3809<br />

3810<br />

3811<br />

3812<br />

3813<br />

3814<br />

3815<br />

3816<br />

3817<br />

3818<br />

3819<br />

3820<br />

3821<br />

3822<br />

3823<br />

3824<br />

3825<br />

3826<br />

3827<br />

3828<br />

3829<br />

3830<br />

3831<br />

3832<br />

3833<br />

3834<br />

3835<br />

3836<br />

3837<br />

3838<br />

3839<br />

3840<br />

3841<br />

3842<br />

3843<br />

3844<br />

<br />

<br />

powersup3<br />

/system1/powersup3<br />

<br />

<br />

suppliespower<br />

<br />

dependent<br />

<br />

system1<br />

/system1<br />

<br />

<br />

<br />

antecedent<br />

<br />

powersup3<br />

/system1/powersup3<br />

<br />

<br />

<br />

<br />

realizes<br />

<br />

antecedent<br />

<br />

powerpkg2<br />

/chassis23/powerpkg2<br />

<br />

<br />

<br />

dependent<br />

<br />

powersup3<br />

/system1/powersup3<br />

<br />

<br />

<br />

<br />

SystemDevice<br />

<br />

partcomponent<br />

<br />

powersup3<br />

/system1/powersup3<br />

<br />

<br />

<br />

groupcomponent<br />

Version 1.0.2 97


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

3845<br />

3846<br />

3847<br />

3848<br />

3849<br />

3850<br />

3851<br />

3852<br />

3853<br />

3854<br />

3855<br />

3856<br />

3857<br />

3858<br />

3859<br />

3860<br />

3861<br />

3862<br />

3863<br />

3864<br />

3865<br />

3866<br />

3867<br />

3868<br />

3869<br />

3870<br />

3871<br />

3872<br />

3873<br />

3874<br />

3875<br />

3876<br />

3877<br />

3878<br />

3879<br />

3880<br />

3881<br />

3882<br />

3883<br />

3884<br />

3885<br />

3886<br />

3887<br />

3888<br />

3889<br />

3890<br />

3891<br />

3892<br />

3893<br />

3894<br />

3895<br />

3896<br />

3897<br />

3898<br />

EXAMPLE 6:<br />

<br />

system1<br />

/system1<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

Displays the SuppliesPower and Realizes associations that reference the target.<br />

-> show –display associations=(SuppliesPower,Realizes) –o format=clpxml<br />

/system1/powersup3<br />

<br />

<br />

<br />

show -display associations=(suppliespower,realizes)<br />

/system1/powersup3<br />

<br />

<br />

0<br />

COMMAND COMPLETED<br />

<br />

129<br />

<br />

<br />

<br />

<br />

<br />

powersup3<br />

/system1/powersup3<br />

<br />

<br />

suppliespower<br />

<br />

dependent<br />

<br />

system1<br />

/system1<br />

<br />

<br />

<br />

antecedent<br />

<br />

powersup3<br />

98 Version 1.0.2


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

3899<br />

3900<br />

3901<br />

3902<br />

3903<br />

3904<br />

3905<br />

3906<br />

3907<br />

3908<br />

3909<br />

3910<br />

3911<br />

3912<br />

3913<br />

3914<br />

3915<br />

3916<br />

3917<br />

3918<br />

3919<br />

3920<br />

3921<br />

3922<br />

3923<br />

3924<br />

3925<br />

3926<br />

3927<br />

3928<br />

3929<br />

3930<br />

3931<br />

3932<br />

3933<br />

3934<br />

3935<br />

3936<br />

3937<br />

3938<br />

3939<br />

3940<br />

3941<br />

3942<br />

3943<br />

3944<br />

3945<br />

3946<br />

3947<br />

3948<br />

3949<br />

3950<br />

3951<br />

3952<br />

EXAMPLE 7:<br />

/system1/powersup3<br />

<br />

<br />

<br />

<br />

realizes<br />

<br />

antecedent<br />

<br />

powerpkg2<br />

/chassis23/powerpkg2<br />

<br />

<br />

<br />

dependent<br />

<br />

powersup3<br />

/system1/powersup3<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

Views the status of the spawned job above. In this example, the spawned job failed to run to<br />

completion.<br />

-> show –o format=clpxml –d properties /map1/job1/job385<br />

<br />

<br />

<br />

show -o format=clpxml /map1/job1/job385<br />

<br />

<br />

0<br />

<br />

892<br />

<br />

<br />

<br />

<br />

<br />

job385<br />

/map1/jobqueue1/job385<br />

<br />

<br />

Version 1.0.2 99


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

3953<br />

3954<br />

3955<br />

3956<br />

3957<br />

3958<br />

3959<br />

3960<br />

3961<br />

3962<br />

3963<br />

3964<br />

3965<br />

3966<br />

3967<br />

3968<br />

3969<br />

3970<br />

3971<br />

3972<br />

3973<br />

3974<br />

3975<br />

3976<br />

3977<br />

3978<br />

3979<br />

3980<br />

3981<br />

3982<br />

3983<br />

3984<br />

3985<br />

3986<br />

3987<br />

3988<br />

3989<br />

3990<br />

3991<br />

3992<br />

3993<br />

3994<br />

3995<br />

3996<br />

3997<br />

3998<br />

3999<br />

4000<br />

4001<br />

4002<br />

4003<br />

JobState<br />

<br />

10<br />

Exception<br />

<br />

<br />

<br />

TimeOfLastStateChange<br />

20050130145904.000000-<br />

300<br />

datetime<br />

<br />

<br />

TimeBeforeRemoval<br />

00000000000500.000000:000<br />

<br />

<br />

<br />

ElapsedTime<br />

00000000000034.000000:000<br />

<br />

<br />

<br />

StartTime<br />

20050130145830.000000-300<br />

<br />

<br />

<br />

TimeSubmitted<br />

20050130145830.000000-300<br />

<br />

<br />

<br />

TimeBeforeRemoval<br />

00000000000500.000000:000<br />

<br />

<br />

<br />

name<br />

<br />

dump –destination<br />

ftp://administrator:passw0rd@myserver.com/<br />

private/administrator/memory.dmp memory1<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

100 Version 1.0.2


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

4004<br />

4005<br />

4006<br />

4007<br />

4008<br />

4009<br />

4010<br />

4011<br />

4012<br />

4013<br />

4014<br />

4015<br />

4016<br />

4017<br />

4018<br />

4019<br />

4020<br />

4021<br />

4022<br />

4023<br />

4024<br />

4025<br />

4026<br />

4027<br />

4028<br />

4029<br />

4030<br />

4031<br />

4032<br />

4033<br />

4034<br />

4035<br />

4036<br />

4037<br />

4038<br />

4039<br />

4040<br />

4041<br />

4042<br />

4043<br />

4044<br />

4045<br />

4046<br />

4047<br />

4048<br />

4049<br />

4050<br />

4051<br />

4052<br />

4053<br />

4054<br />

4055<br />

4056<br />

4057<br />

EXAMPLE 8:<br />

EXAMPLE 9:<br />

Queries the value of the PrimaryOwnerName and ResetCapability properties by using –display<br />

properties=(ResetCapability,PrimaryOwnerName) as a filter on these results.<br />

-> show –display ` properties=(ResetCapability,PrimaryOwnerName)<br />

/system1<br />

/system1<br />

properties<br />

ResetCapability = Disabled (3)<br />

PrimaryOwnerName = Some guy<br />

Queries the value of the PrimaryOwnerName and ResetCapability properties using<br />

–display properties=(ResetCapability,PrimaryOwnerName) as a filter on these<br />

results.<br />

-> show –display ` properties=(ResetCapability,PrimaryOwnerName) –o<br />

format=clpxml /system1<br />

<br />

<br />

<br />

show –display<br />

properties=(ResetCapability,PrimaryOwnerName) -o<br />

format=clpxml /system1 <br />

<br />

<br />

0<br />

<br />

<br />

<br />

<br />

system1<br />

/system1<br />

<br />

<br />

ResetCapability<br />

<br />

3<br />

Disabled<br />

<br />

<br />

<br />

Dedicated<br />

<br />

<br />

4<br />

Router<br />

<br />

<br />

3<br />

Switch<br />

<br />

<br />

<br />

<br />

Version 1.0.2 101


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

4058<br />

4059<br />

4060<br />

4061<br />

4062<br />

4063<br />

4064<br />

4065<br />

4066<br />

4067<br />

4068<br />

4069<br />

4070<br />

4071<br />

4072<br />

4073<br />

4074<br />

4075<br />

4076<br />

4077<br />

4078<br />

4079<br />

4080<br />

4081<br />

4082<br />

4083<br />

4084<br />

4085<br />

4086<br />

4087<br />

4088<br />

4089<br />

4090<br />

4091<br />

4092<br />

4093<br />

4094<br />

4095<br />

4096<br />

4097<br />

4098<br />

4099<br />

4100<br />

4101<br />

4102<br />

4103<br />

4104<br />

4105<br />

4106<br />

4107<br />

4108<br />

4109<br />

4110<br />

4111<br />

EXAMPLE 10:<br />

EXAMPLE 11:<br />

<br />

<br />

<br />

<br />

Displays all of the commands applicable to system1.<br />

-> show –display verbs –all –o format=clpxml /system1<br />

<br />

<br />

<br />

show -display verbs -all -o format=clpxml<br />

/system1<br />

<br />

<br />

0<br />

<br />

2342<br />

<br />

<br />

<br />

<br />

<br />

system1<br />

/system1<br />

<br />

show start stop set reset<br />

help<br />

OEMxyzDoSomething<br />

<br />

<br />

<br />

<br />

<br />

Displays information about system1 and everything immediately contained within it.<br />

-> show –d all –level 2 –o format=clpxml /system1<br />

<br />

<br />

<br />

show –d all -level 1 -o format=clpxml<br />

/system1<br />

<br />

<br />

0<br />

COMMAND COMPLETED<br />

<br />

29345<br />

<br />

102 Version 1.0.2


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

4112<br />

4113<br />

4114<br />

4115<br />

4116<br />

4117<br />

4118<br />

4119<br />

4120<br />

4121<br />

4122<br />

4123<br />

4124<br />

4125<br />

4126<br />

4127<br />

4128<br />

4129<br />

4130<br />

4131<br />

4132<br />

4133<br />

4134<br />

4135<br />

4136<br />

4137<br />

4138<br />

4139<br />

4140<br />

4141<br />

4142<br />

4143<br />

4144<br />

4145<br />

4146<br />

4147<br />

4148<br />

4149<br />

4150<br />

4151<br />

4152<br />

4153<br />

4154<br />

4155<br />

4156<br />

4157<br />

4158<br />

4159<br />

4160<br />

4161<br />

4162<br />

4163<br />

4164<br />

4165<br />

<br />

<br />

<br />

<br />

system1<br />

/system1<br />

<br />

<br />

NameFormat<br />

<br />

IP<br />

<br />

<br />

<br />

ResetCapability<br />

<br />

5<br />

<br />

<br />

<br />

IdentifyingDescriptions<br />

<br />

<br />

mac address<br />

<br />

<br />

mac address<br />

<br />

<br />

<br />

<br />

OtherIdentifyingInfo<br />

<br />

<br />

0023342312<br />

<br />

<br />

0023342313<br />

<br />

<br />

<br />

<br />

Dedicated<br />

<br />

<br />

4<br />

Router<br />

<br />

<br />

5<br />

Switch<br />

<br />

<br />

<br />

Version 1.0.2 103


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

4166<br />

4167<br />

4168<br />

4169<br />

4170<br />

4171<br />

4172<br />

4173<br />

4174<br />

4175<br />

4176<br />

4177<br />

4178<br />

4179<br />

4180<br />

4181<br />

4182<br />

4183<br />

4184<br />

4185<br />

4186<br />

4187<br />

4188<br />

4189<br />

4190<br />

4191<br />

4192<br />

4193<br />

4194<br />

4195<br />

4196<br />

4197<br />

4198<br />

4199<br />

4200<br />

4201<br />

4202<br />

4203<br />

4204<br />

4205<br />

4206<br />

4207<br />

4208<br />

4209<br />

4210<br />

4211<br />

4212<br />

4213<br />

4214<br />

4215<br />

4216<br />

4217<br />

4218<br />

4219<br />

4220<br />

<br />

<br />

<br />

ComputerSystemPackage<br />

<br />

antecedent<br />

<br />

chassis3<br />

/hw1/chassis3<br />

<br />

<br />

<br />

dependent<br />

<br />

system1<br />

/system1<br />

<br />

<br />

<br />

<br />

PlatformGUID<br />

<br />

00992365293059103762850194833920<br />

<br />

<br />

<br />

<br />

<br />

<br />

SuppliesPower<br />

<br />

antecedent<br />

<br />

powersupply1<br />

/system1/powersupply1<br />

<br />

<br />

<br />

dependent<br />

<br />

cpu1<br />

/system1<br />

<br />

<br />

<br />

<br />

SuppliesPower<br />

<br />

antecedent<br />

<br />

powersupply2<br />

104 Version 1.0.2


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

4221<br />

4222<br />

4223<br />

4224<br />

4225<br />

4226<br />

4227<br />

4228<br />

4229<br />

4230<br />

4231<br />

4232<br />

4233<br />

4234<br />

4235<br />

4236<br />

4237<br />

4238<br />

4239<br />

4240<br />

4241<br />

4242<br />

4243<br />

4244<br />

4245<br />

4246<br />

4247<br />

4248<br />

4249<br />

4250<br />

4251<br />

4252<br />

4253<br />

4254<br />

4255<br />

4256<br />

4257<br />

4258<br />

4259<br />

4260<br />

4261<br />

4262<br />

4263<br />

4264<br />

4265<br />

4266<br />

4267<br />

4268<br />

4269<br />

4270<br />

4271<br />

4272<br />

4273<br />

/system1/powersupply2<br />

<br />

<br />

<br />

dependent<br />

<br />

cpu1<br />

/system1/cpu1<br />

<br />

<br />

<br />

<br />

AssociatedCooling<br />

<br />

antecedent<br />

<br />

fan1<br />

/system1/fan1<br />

<br />

<br />

<br />

dependent<br />

<br />

system1<br />

/system1<br />

<br />

<br />

<br />

<br />

AssociatedCooling<br />

<br />

antecedent<br />

<br />

system1<br />

/system1/fan2<br />

<br />

<br />

<br />

dependent<br />

<br />

system1<br />

/system1<br />

<br />

<br />

<br />

<br />

Realizes<br />

<br />

antecedent<br />

<br />

Version 1.0.2 105


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

4274<br />

4275<br />

4276<br />

4277<br />

4278<br />

4279<br />

4280<br />

4281<br />

4282<br />

4283<br />

4284<br />

4285<br />

4286<br />

4287<br />

4288<br />

4289<br />

4290<br />

4291<br />

4292<br />

4293<br />

4294<br />

4295<br />

4296<br />

4297<br />

4298<br />

4299<br />

4300<br />

4301<br />

4302<br />

4303<br />

4304<br />

4305<br />

4306<br />

4307<br />

4308<br />

4309<br />

4310<br />

4311<br />

4312<br />

4313<br />

4314<br />

4315<br />

4316<br />

4317<br />

4318<br />

4319<br />

4320<br />

4321<br />

4322<br />

4323<br />

4324<br />

4325<br />

4326<br />

4327<br />

4328<br />

ppowersupply1<br />

/hw1/chassis3/ppowersupply1<br />

<br />

<br />

<br />

dependent<br />

<br />

powersupply1<br />

/system1/powersupply1<br />

<br />

<br />

<br />

<br />

realizes<br />

<br />

dependent<br />

<br />

powersupply2<br />

/system1/powersupply2<br />

<br />

<br />

<br />

antecedent<br />

<br />

ppowersupply2<br />

/hw1/chassis3/ppowersupply2<br />

<br />

<br />

<br />

<br />

Realizes<br />

<br />

antecedent<br />

<br />

ppowersupply2<br />

/hw1/chassis3/ppowersupply2<br />

<br />

<br />

<br />

dependent<br />

<br />

powersupply2<br />

/system1/powersupply2<br />

<br />

<br />

<br />

<br />

<br />

106 Version 1.0.2


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

4329<br />

4330<br />

4331<br />

4332<br />

4333<br />

4334<br />

4335<br />

4336<br />

4337<br />

4338<br />

4339<br />

4340<br />

4341<br />

4342<br />

4343<br />

4344<br />

4345<br />

4346<br />

4347<br />

4348<br />

4349<br />

4350<br />

4351<br />

4352<br />

4353<br />

4354<br />

4355<br />

4356<br />

4357<br />

4358<br />

4359<br />

4360<br />

4361<br />

4362<br />

4363<br />

4364<br />

4365<br />

4366<br />

4367<br />

4368<br />

4369<br />

4370<br />

4371<br />

4372<br />

4373<br />

4374<br />

4375<br />

4376<br />

4377<br />

4378<br />

4379<br />

4380<br />

4381<br />

4382<br />

show set stop start<br />

reset<br />

<br />

<br />

<br />

<br />

cpu1<br />

/system1/cpu1<br />

<br />

<br />

Family<br />

<br />

1<br />

<br />

<br />

<br />

OtherFamilyDescription<br />

<br />

SuperSlow100<br />

<br />

<br />

<br />

MaxClockSpeed<br />

<br />

33<br />

<br />

Megahertz<br />

<br />

<br />

CPUStatus<br />

<br />

1<br />

<br />

<br />

<br />

<br />

show<br />

<br />

<br />

<br />

<br />

<br />

powersup1<br />

/system1/powersup1<br />

<br />

<br />

TotalOutputPower<br />

<br />

1200000<br />

<br />

milliwatts<br />

<br />

<br />

Version 1.0.2 107


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

4383<br />

4384<br />

4385<br />

4386<br />

4387<br />

4388<br />

4389<br />

4390<br />

4391<br />

4392<br />

4393<br />

4394<br />

4395<br />

4396<br />

4397<br />

4398<br />

4399<br />

4400<br />

4401<br />

4402<br />

4403<br />

4404<br />

4405<br />

4406<br />

4407<br />

4408<br />

4409<br />

4410<br />

4411<br />

4412<br />

4413<br />

4414<br />

4415<br />

4416<br />

4417<br />

4418<br />

4419<br />

4420<br />

4421<br />

4422<br />

4423<br />

4424<br />

4425<br />

4426<br />

4427<br />

4428<br />

4429<br />

4430<br />

4431<br />

4432<br />

4433<br />

4434<br />

4435<br />

4436<br />

4437<br />

<br />

<br />

SuppliesPower<br />

<br />

dependent<br />

<br />

system1<br />

/system1<br />

<br />

<br />

<br />

antecedent<br />

<br />

powersup1<br />

/system1/powersup1<br />

<br />

<br />

<br />

<br />

Realizes<br />

<br />

antecedent<br />

<br />

powerpkg1<br />

/hw1/chassis3/powerpkg1<br />

<br />

<br />

<br />

dependent<br />

<br />

powersup1<br />

/system1/powersup1<br />

<br />

<br />

<br />

<br />

<br />

show<br />

<br />

<br />

<br />

<br />

<br />

powersup2<br />

/system1/powersup2<br />

<br />

<br />

TotalOutputPower<br />

<br />

1200000<br />

108 Version 1.0.2


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

4438<br />

4439<br />

4440<br />

4441<br />

4442<br />

4443<br />

4444<br />

4445<br />

4446<br />

4447<br />

4448<br />

4449<br />

4450<br />

4451<br />

4452<br />

4453<br />

4454<br />

4455<br />

4456<br />

4457<br />

4458<br />

4459<br />

4460<br />

4461<br />

4462<br />

4463<br />

4464<br />

4465<br />

4466<br />

4467<br />

4468<br />

4469<br />

4470<br />

4471<br />

4472<br />

4473<br />

4474<br />

4475<br />

4476<br />

4477<br />

4478<br />

4479<br />

4480<br />

4481<br />

4482<br />

4483<br />

4484<br />

4485<br />

4486<br />

4487<br />

4488<br />

4489<br />

4490<br />

4491<br />

<br />

milliwatts<br />

<br />

<br />

<br />

<br />

SuppliesPower<br />

<br />

dependent<br />

<br />

system1<br />

/system1<br />

<br />

<br />

<br />

antecedent<br />

<br />

powersup2<br />

/system1/powersup2<br />

<br />

<br />

<br />

<br />

Realizes<br />

<br />

antecedent<br />

<br />

powerpkg2<br />

/hw1/chassis3/powerpkg2<br />

<br />

<br />

<br />

dependent<br />

<br />

powersup2<br />

/system1/powersup2<br />

<br />

<br />

<br />

<br />

<br />

show<br />

<br />

<br />

<br />

<br />

<br />

fan1<br />

/system1/fan1<br />

<br />

Version 1.0.2 109


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

4492<br />

4493<br />

4494<br />

4495<br />

4496<br />

4497<br />

4498<br />

4499<br />

4500<br />

4501<br />

4502<br />

4503<br />

4504<br />

4505<br />

4506<br />

4507<br />

4508<br />

4509<br />

4510<br />

4511<br />

4512<br />

4513<br />

4514<br />

4515<br />

4516<br />

4517<br />

4518<br />

4519<br />

4520<br />

4521<br />

4522<br />

4523<br />

4524<br />

4525<br />

4526<br />

4527<br />

4528<br />

4529<br />

4530<br />

4531<br />

4532<br />

4533<br />

4534<br />

4535<br />

4536<br />

4537<br />

4538<br />

4539<br />

4540<br />

4541<br />

4542<br />

4543<br />

4544<br />

4545<br />

<br />

VariableSpeed<br />

<br />

true<br />

<br />

<br />

<br />

DesiredSpeed<br />

<br />

3600<br />

<br />

Revolutions per minute<br />

<br />

<br />

ActiveCooling<br />

<br />

True<br />

<br />

<br />

<br />

<br />

<br />

AssociatedCooling<br />

<br />

dependent<br />

<br />

system1<br />

/system1<br />

<br />

<br />

<br />

antecedent<br />

<br />

fan1<br />

/system1/fan1<br />

<br />

<br />

<br />

<br />

<br />

show set<br />

<br />

<br />

<br />

<br />

<br />

fan2<br />

/system1/fan2<br />

<br />

<br />

VariableSpeed<br />

<br />

110 Version 1.0.2


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

4546<br />

4547<br />

4548<br />

4549<br />

4550<br />

4551<br />

4552<br />

4553<br />

4554<br />

4555<br />

4556<br />

4557<br />

4558<br />

4559<br />

4560<br />

4561<br />

4562<br />

4563<br />

4564<br />

4565<br />

4566<br />

4567<br />

4568<br />

4569<br />

4570<br />

4571<br />

4572<br />

4573<br />

4574<br />

4575<br />

4576<br />

4577<br />

4578<br />

4579<br />

4580<br />

4581<br />

4582<br />

4583<br />

4584<br />

4585<br />

4586<br />

4587<br />

4588<br />

4589<br />

4590<br />

4591<br />

4592<br />

4593<br />

4594<br />

4595<br />

4596<br />

4597<br />

4598<br />

4599<br />

4600<br />

4601<br />

4602<br />

4603<br />

EXAMPLE 12:<br />

true<br />

<br />

<br />

<br />

DesiredSpeed<br />

<br />

3600<br />

<br />

Revolutions per minute<br />

<br />

<br />

ActiveCooling<br />

<br />

True<br />

<br />

<br />

<br />

<br />

<br />

AssociatedCooling<br />

<br />

dependent<br />

<br />

system1<br />

/system1<br />

<br />

<br />

<br />

antecedent<br />

<br />

fan2<br />

/system1/fan2<br />

<br />

<br />

<br />

<br />

<br />

show set<br />

<br />

<br />

<br />

<br />

<br />

<br />

Displays information about system1 and everything immediately contained within it.<br />

-> show –d all –level 2 –o format=keyword /system1<br />

commandline=show –d all -level 2 –o format=keyword /system1<br />

status=0<br />

status_tag=COMMAND COMPLETED<br />

job_id=29345<br />

command=show<br />

begingroup=instance<br />

ufip=/system1<br />

begingroup=property<br />

property_name=NameFormat<br />

property_val=IP<br />

Version 1.0.2 111


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

112 Version 1.0.2<br />

endgroup<br />

4604<br />

begingroup=property<br />

4605<br />

property_name=ResetCapability<br />

4606<br />

property_val=5<br />

4607<br />

endgroup<br />

4608<br />

begingroup=property<br />

4609<br />

property_name=IdentifyingDescriptions<br />

4610<br />

property_val=mac address<br />

4611<br />

property_val=mac address<br />

4612<br />

endgroup<br />

4613<br />

begingroup=property<br />

4614<br />

property_name=OtherIdentifyingInfo<br />

4615<br />

property_val=0023342312<br />

4616<br />

property_val=0023342313<br />

4617<br />

endgroup<br />

4618<br />

begingroup=property<br />

4619<br />

property_name=Dedicated<br />

4620<br />

property_val=4<br />

4621<br />

property_valstring=Router<br />

4622<br />

property_val=5<br />

4623<br />

property_valstring=Switch<br />

4624<br />

endgroup<br />

4625<br />

begingroup=targets<br />

4626<br />

ufip=powersup1<br />

4627<br />

ufip=powersup2<br />

4628<br />

ufip=fan1<br />

4629<br />

ufip=fan2<br />

4630<br />

endgroup<br />

4631<br />

begingroup=association<br />

4632<br />

ufct=ComputerSystemPackage<br />

4633<br />

ufip=/hw1/chassis3<br />

4634<br />

begingroup=property<br />

4635<br />

property_name=PlatformGUID<br />

4636<br />

property_val=00992365293059103762850194833920<br />

4637<br />

endgroup<br />

4638<br />

endgroup<br />

4639<br />

begingroup=association<br />

4640<br />

ufct=SuppliesPower<br />

4641<br />

ufip=/system1/powersup1<br />

4642<br />

endgroup<br />

4643<br />

begingroup=association<br />

4644<br />

ufct=SuppliesPower<br />

4645<br />

ufip=/system1/powersup2<br />

4646<br />

endgroup<br />

4647<br />

begingroup=association<br />

4648<br />

ufct=AssociatedCooling<br />

4649<br />

ufip=/system1/fan1<br />

4650<br />

endgroup<br />

4651<br />

begingroup=association<br />

4652<br />

ufct=AssociatedCooling<br />

4653<br />

ufip=/system1/fan2<br />

4654<br />

endgroup<br />

4655<br />

begingroup=verbs<br />

4656<br />

verb=reset<br />

4657<br />

verb=start<br />

4658<br />

verb=stop<br />

4659<br />

verb=set<br />

4660<br />

verb=show<br />

4661<br />

endgroup<br />

4662<br />

endgroup<br />

4663<br />

begingroup=instance<br />

4664<br />

ufip=/system1/cpu1<br />

4665<br />

begingroup=property<br />

4666<br />

property_name=Family<br />

4667


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

Version 1.0.2 113<br />

property_val=1<br />

4668<br />

endgroup<br />

4669<br />

begingroup=instance<br />

4670<br />

property_name=OtherFamilyDescription<br />

4671<br />

property_val=SuperSlow100<br />

4672<br />

endgroup<br />

4673<br />

begingroup=instance<br />

4674<br />

property_name=MaxClockSpeed<br />

4675<br />

property_val=33<br />

4676<br />

units=Megahertz<br />

4677<br />

endgroup<br />

4678<br />

begingroup=instance<br />

4679<br />

property_name=CPUStatus<br />

4680<br />

property_val=1<br />

4681<br />

endgroup<br />

4682<br />

begingroup=verbs<br />

4683<br />

verb=show<br />

4684<br />

4685<br />

endgroup<br />

4686<br />

endgroup<br />

4687<br />

begingroup=instance<br />

4688<br />

ufip=/system1/powersup1<br />

4689<br />

begingroup=property<br />

4690<br />

property_name=TotalOutputPower<br />

4691<br />

property_val=1200000<br />

4692<br />

units=milliwatts<br />

4693<br />

begingroup=association<br />

4694<br />

ufct=Realizes<br />

4695<br />

ufip=/hw1/chassis3/powerpkg1<br />

4696<br />

endgroup<br />

4697<br />

begingroup=association<br />

4698<br />

ufct=SuppliesPower<br />

4699<br />

ufip=/system1<br />

4700<br />

endgroup<br />

4701<br />

begingroup=verbs<br />

4702<br />

verb=show<br />

4703<br />

endgroup<br />

4704<br />

begingroup=instance<br />

4705<br />

ufip=/system1/powersup2<br />

4706<br />

begingroup=property<br />

4707<br />

property_name=TotalOutputPower<br />

4708<br />

property_val=1200000<br />

4709<br />

units=milliwatts<br />

4710<br />

endgroup<br />

4711<br />

begingroup=association<br />

4712<br />

ufct=Realizes<br />

4713<br />

ufip=/hw1/chassis3/powerpkg2<br />

4714<br />

endgroup<br />

4715<br />

begingroup=association<br />

4716<br />

ufct=SuppliesPower<br />

4717<br />

ufip=/system1<br />

4718<br />

endgroup<br />

4719<br />

begingroup=verbs<br />

4720<br />

verb=show<br />

4721<br />

endgroup<br />

4722<br />

begingroup=instance<br />

4723<br />

ufip=/system1/fan1<br />

4724<br />

begingroup=property<br />

4725<br />

property_name=DesiredSpeed<br />

4726<br />

property_val=3600<br />

4727<br />

units=Revolutions per Minutes<br />

4728<br />

endgroup<br />

4729<br />

begingroup=property<br />

4730<br />

property_name=VariableSpeed<br />

4731


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

4732<br />

4733<br />

4734<br />

4735<br />

4736<br />

4737<br />

4738<br />

4739<br />

4740<br />

4741<br />

4742<br />

4743<br />

4744<br />

4745<br />

4746<br />

4747<br />

4748<br />

4749<br />

4750<br />

4751<br />

4752<br />

4753<br />

4754<br />

4755<br />

4756<br />

4757<br />

4758<br />

4759<br />

4760<br />

4761<br />

4762<br />

4763<br />

4764<br />

4765<br />

4766<br />

4767<br />

4768<br />

4769<br />

4770<br />

4771<br />

4772<br />

4773<br />

4774<br />

4775<br />

4776<br />

4777<br />

4778<br />

4779<br />

4780<br />

4781<br />

4782<br />

4783<br />

4784<br />

4785<br />

4786<br />

4787<br />

4788<br />

4789<br />

4790<br />

EXAMPLE 13:<br />

property_val=true<br />

property_name=ActiveCooling<br />

property_val=true<br />

endgroup<br />

begingroup=association<br />

ufct=AssociatedCooling<br />

ufip=/system1<br />

endgroup<br />

begingroup=verbs<br />

verb=show<br />

verb=set<br />

endgroup<br />

begingroup=instance<br />

ufip=/system1/fan2<br />

begingroup=property<br />

property_name=DesiredSpeed<br />

property_val=3600<br />

units=Revolutions per Minutes<br />

endgroup<br />

begingroup=property<br />

property_name=VariableSpeed<br />

property_val=true<br />

endgroup<br />

begingroup=property<br />

property_name=ActiveCooling<br />

property_val=true<br />

endgroup<br />

begingroup=association<br />

ufct=AssociatedCooling<br />

ufip=/system1<br />

endgroup<br />

begingroup=verbs<br />

verb=show<br />

verb=set<br />

endgroup<br />

endoutput<br />

Shows the OperationalStatus of components in system1.<br />

-> show –display properties=(OperationalStatus,Name) ` –level 2<br />

/system1<br />

/system1<br />

OperationalStatus is OK<br />

Name is webserver1<br />

/system1/cpu1<br />

OperationalStatus is OK<br />

Name is main processor 1<br />

/system1/cpu2<br />

OperationalStatus is OK<br />

Name is main processor 2<br />

/system1/cpu3<br />

OperationalStatus is OK<br />

Name is main processor 3<br />

/system1/cpu4<br />

OperationalStatus is Degraded<br />

Name is main processor 4<br />

/system1/powersup1<br />

OperationalStatus is Degraded<br />

Name is AC power 1<br />

/system1/powersup2<br />

OperationalStatus is OK<br />

114 Version 1.0.2


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

4791<br />

4792<br />

4793<br />

4794<br />

4795<br />

4796<br />

4797<br />

4798<br />

4799<br />

4800<br />

4801<br />

4802<br />

4803<br />

4804<br />

EXAMPLE 14:<br />

EXAMPLE 15:<br />

Name is AC power 2<br />

Shows all of the CPUs that have a bad operational status.<br />

-> show –display properties=(Name,OperationalStatus) ` /system1/cpu*<br />

OperationalStatus==Degraded<br />

/system1/cpu4<br />

Name is main processor 4<br />

OperationalStatus is Degraded<br />

Shows all of the components that have a bad operational status.<br />

-> show -level 2 –display properties=(OperationalStatus) ` /system1<br />

(OperationalStatus==Degraded)<br />

/system1/cpu4<br />

OperationalStatus is Degraded<br />

/system1/powersup1<br />

OperationalStatus is Degraded<br />

4805<br />

4806<br />

4807<br />

4808<br />

4809<br />

EXAMPLE 16: Shows all of the components that are named "main processor 4".<br />

-> show -level 2 –display properties=(Name) /system1 ` Name=="Main<br />

processor 4"<br />

/system1/cpu4<br />

Name is main processor 4<br />

4810<br />

4811<br />

4812<br />

4813<br />

4814<br />

4815<br />

4816<br />

4817<br />

4818<br />

4819<br />

4820<br />

4821<br />

4822<br />

4823<br />

4824<br />

4825<br />

4826<br />

4827<br />

4828<br />

4829<br />

EXAMPLE 17:<br />

EXAMPLE 18:<br />

EXAMPLE 19:<br />

EXAMPLE 20:<br />

Tries to filter using two property values.<br />

-> show -level 2 –display properties=(Name) /system1 'Name=="Main<br />

processor 4",OperationalStatus==Degraded<br />

Filtering with multiple properties is not supported.<br />

Shows just the operational status of the processors in system1.<br />

-> show /system1/cpu* OperationalStatus<br />

/system1/cpu1<br />

OperationalStatus = Degraded<br />

/system1/cpu2<br />

OperationalStatus = Ok<br />

Assuming the same system1 as the preceding example, shows the ElementName of all<br />

degraded processors in system1.<br />

-> show /system1/cpu* ElementName OperationalStatus==Degraded<br />

/system1/cpu1<br />

ElementName = "processor one"<br />

Assuming the same system1 as the preceding example, shows the OperationalStatus of all<br />

degraded processors in system1.<br />

-> show /system1/cpu* OperationalStatus ' OperationalStatus==Degraded<br />

/system1/cpu1<br />

OperationalStatus = Degraded<br />

Version 1.0.2 115


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

4830<br />

4831<br />

4832<br />

4833<br />

4834<br />

4835<br />

4836<br />

4837<br />

4838<br />

4839<br />

4840<br />

4841<br />

4842<br />

4843<br />

4844<br />

4845<br />

4846<br />

4847<br />

4848<br />

4849<br />

4850<br />

4851<br />

4852<br />

4853<br />

4854<br />

4855<br />

4856<br />

4857<br />

4858<br />

4859<br />

4860<br />

4861<br />

4862<br />

4863<br />

4864<br />

4865<br />

4866<br />

4867<br />

4868<br />

4869<br />

4870<br />

4871<br />

4872<br />

4873<br />

4874<br />

4875<br />

4876<br />

4877<br />

4878<br />

4879<br />

4880<br />

4881<br />

4882<br />

4883<br />

EXAMPLE 21:<br />

Shows the values for options that can have default values.<br />

-> show –display properties –o format=clpxml SESSION<br />

<br />

<br />

<br />

show -display properties -o format=clpxml<br />

SESSION<br />

<br />

<br />

0<br />

<br />

<br />

<br />

<br />

clpendpt5<br />

/map1/sessions1/clpendpt5<br />

<br />

<br />

cdt<br />

<br />

/system1/cpu4<br />

<br />

<br />

<br />

outputformat<br />

<br />

4xml<br />

<br />

<br />

<br />

outputverbosity<br />

<br />

terse<br />

1<br />

<br />

<br />

<br />

outputlanguage<br />

<br />

eng<br />

<br />

<br />

<br />

outputposition<br />

<br />

1<br />

begin<br />

<br />

<br />

<br />

116 Version 1.0.2


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

4884<br />

4885<br />

4886<br />

4887<br />

4888<br />

4889<br />

4890<br />

4891<br />

4892<br />

4893<br />

4894<br />

4895<br />

4896<br />

4897<br />

4898<br />

4899<br />

4900<br />

4901<br />

4902<br />

4903<br />

4904<br />

4905<br />

4906<br />

4907<br />

4908<br />

4909<br />

4910<br />

4911<br />

4912<br />

4913<br />

4914<br />

4915<br />

4916<br />

EXAMPLE 22:<br />

outputorder<br />

<br />

1<br />

default<br />

<br />

<br />

<br />

outputcount<br />

<br />

0<br />

<br />

<br />

<br />

keep<br />

<br />

300<br />

<br />

<br />

<br />

wait<br />

<br />

false<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

Shows information about the processors in system1.<br />

-> show –display properties=(Name),targets=cpu Name=="Main processor 4"<br />

/system1/cpu4<br />

Name is main processor 4<br />

4917<br />

6.12 start<br />

4918<br />

4919<br />

4920<br />

4921<br />

4922<br />

4923<br />

4924<br />

4925<br />

4926<br />

4927<br />

4928<br />

The general form of the start command is:<br />

start [] []<br />

6.12.1 General<br />

For the start command, implementations shall support the syntax defined for the start-cmd term in<br />

the CLP grammar defined in 273HAnnex A.<br />

The start command starts the target. If the target is already started, an error might or might not be<br />

returned. The precise behavior is profile specific.<br />

This command can be used with and without <strong>Command</strong> <strong>Line</strong> options.<br />

6.12.2 Valid Targets<br />

This command is supported when it is specified in a target mapping ( 274H32HDSP0216) for a profile that the<br />

implementation supports. For all targets that do not support the use of the start command,<br />

Version 1.0.2 117


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

4929<br />

4930<br />

4931<br />

4932<br />

4933<br />

4934<br />

4935<br />

4936<br />

implementations shall not show the start command in a command listing as being available.<br />

Implementations of the start command will accept an Absolute or a Relative Target Address for the<br />

command target term. If the Resultant Address is not a UFiP, implementations shall return a <strong>Command</strong><br />

Status of COMMAND PROCESSING ERROR and a Processing Error of INVALID TARGET.<br />

The behavior of state-change commands for each UFcT is defined in 275H32HDSP0216.<br />

6.12.3 Options<br />

Following are valid options for the start command in addition to those specified in Error! Reference<br />

source not found.:<br />

4937<br />

4938<br />

4939<br />

4940<br />

4941<br />

-f, -force<br />

6.12.4 Output<br />

Forces the implementation to start the object, ignoring any policy that might<br />

cause the implementation to normally not execute the command. The<br />

implementation shall execute this start if at all possible, without regard to<br />

consequences.<br />

4942<br />

4943<br />

4944<br />

4945<br />

4946<br />

4947<br />

4948<br />

4949<br />

4950<br />

4951<br />

4952<br />

4953<br />

4954<br />

4955<br />

4956<br />

4957<br />

4958<br />

4959<br />

4960<br />

4961<br />

4962<br />

4963<br />

4964<br />

4965<br />

4966<br />

4967<br />

4968<br />

This clause details requirements for CLP output for the start verb.<br />

6.12.4.1 Text Format<br />

Implementations shall return <strong>Command</strong> Result data that includes the target address that was started (if<br />

any) and the time and date when the start was initiated. Implementations may return the time/date<br />

information in any applicable format that meets their needs. If the implementation did not start the target,<br />

the implementation shall return <strong>Command</strong> Response data indicating that no target was started.<br />

6.12.4.2 Structured Format<br />

This clause details requirements for structured output formats for the start verb.<br />

6.12.4.2.1 General<br />

Implementations shall include any status data in the standard format at the top of the response. If the<br />

target was successfully started, the start command shall then return the target started and the time the<br />

start completed.<br />

6.12.4.2.2 XML Output<br />

The implementation shall return the start element in the response element as defined in the<br />

<strong>Command</strong> Response schema in 276H6HDSP0224.<br />

<br />

UFiP of target to start<br />

Time reset occurred if completed synchronously, returned in CIM<br />

datetime format<br />

<br />

6.12.4.2.3 Keyword<br />

Implementations shall use the following form when returning <strong>Command</strong> Results for the start command<br />

in "keyword" format:<br />

command=start<br />

ufip=User Friendly instance path of the Managed Element<br />

timestamp= Time reset occurred if completed synchronously, returned in CIM datetime<br />

format<br />

118 Version 1.0.2


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

4969<br />

4970<br />

4971<br />

4972<br />

4973<br />

4974<br />

endoutput<br />

6.12.5 Examples<br />

This clause provides examples of the use of the start verb.<br />

EXAMPLE 1: Sends system1 to its default enabled state.<br />

-> start /system1<br />

/system1 started at 10:40am 1/1/01<br />

4975<br />

4976<br />

4977<br />

4978<br />

4979<br />

4980<br />

4981<br />

4982<br />

4983<br />

4984<br />

4985<br />

4986<br />

4987<br />

4988<br />

4989<br />

4990<br />

4991<br />

4992<br />

4993<br />

4994<br />

4995<br />

4996<br />

4997<br />

4998<br />

4999<br />

5000<br />

5001<br />

5002<br />

5003<br />

5004<br />

5005<br />

5006<br />

5007<br />

5008<br />

5009<br />

5010<br />

5011<br />

5012<br />

5013<br />

5014<br />

EXAMPLE 2:<br />

EXAMPLE 3:<br />

Fails to start cpu2 because this command is not supported on the target.<br />

-> start –o format=clpxml /system1/cpu2<br />

<br />

<br />

<br />

start -o format=clpxml /system1/cpu2<br />

<br />

<br />

3<br />

<br />

234<br />

<br />

1<br />

7<br />

2<br />

<br />

<br />

<br />

<br />

<br />

cpu2<br />

/system1/cpu2<br />

<br />

<br />

<br />

Fails to start cpu2 because this command is not supported on the target.<br />

-> start –o format=keyword /system1/cpu1<br />

commandline=start –o format=keyword /system1/cpu2<br />

status=3<br />

job_id=234<br />

errtype=1<br />

cimstat=7<br />

severity=2<br />

command=start<br />

ufip=/system1/cpu2<br />

endoutput<br />

Version 1.0.2 119


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

5015<br />

5016<br />

5017<br />

5018<br />

5019<br />

5020<br />

5021<br />

5022<br />

5023<br />

5024<br />

5025<br />

5026<br />

5027<br />

5028<br />

5029<br />

5030<br />

5031<br />

5032<br />

5033<br />

5034<br />

5035<br />

5036<br />

5037<br />

5038<br />

5039<br />

5040<br />

5041<br />

5042<br />

5043<br />

5044<br />

5045<br />

5046<br />

5047<br />

EXAMPLE 4:<br />

EXAMPLE 5:<br />

Starts system1 and waits for the job to complete.<br />

-> start –o format=clpxml –w /system1<br />

<br />

<br />

<br />

start -o format=clpxml -w /system1<br />

<br />

<br />

3<br />

<br />

234<br />

<br />

<br />

<br />

<br />

system1<br />

/system1<br />

<br />

20050130145904.000000-300<br />

<br />

<br />

Starts system1 and waits for the job to complete.<br />

-> start –w –o format=keyword /system1<br />

commandline=start -w –o format=keyword /system1<br />

status=0<br />

command=start<br />

ufip=/system1<br />

timestamp=20050130145904.000000-300<br />

endoutput<br />

5048<br />

6.13 stop<br />

5049<br />

5050<br />

5051<br />

5052<br />

5053<br />

5054<br />

5055<br />

5056<br />

The general form of the stop command is:<br />

stop [] []<br />

6.13.1 General<br />

For the stop command, implementations shall support the syntax defined for the stop-cmd term in the<br />

CLP grammar defined in 277HAnnex A.<br />

The stop command stops the target. If the target is already stopped, an error might or might not be<br />

returned. The precise behavior is profile specific.<br />

This command can be used with and without <strong>Command</strong> <strong>Line</strong> options.<br />

120 Version 1.0.2


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

5057<br />

5058<br />

5059<br />

5060<br />

5061<br />

5062<br />

5063<br />

5064<br />

5065<br />

5066<br />

5067<br />

6.13.2 Valid Targets<br />

This command is supported when it is specified in a target mapping ( 278H32HDSP0216) for a profile that the<br />

implementation supports. For all targets that do not support the use of the stop command,<br />

implementations shall not show the stop command in a command listing as being available.<br />

Implementations of the stop command will accept an Absolute or a Relative Target Address for the<br />

command target term. If the Resultant Address is not a UFiP, implementations shall return a <strong>Command</strong><br />

Status of COMMAND PROCESSING ERROR and a Processing Error of INVALID TARGET.<br />

The behavior of state-change commands for each UFcT is defined in 279H32HDSP0216.<br />

6.13.3 Options<br />

Following are valid options for the stop command in addition to those specified in Error! Reference<br />

source not found.:<br />

5068<br />

5069<br />

5070<br />

5071<br />

-f, -force<br />

6.13.4 Output<br />

Forces the implementation to stop the target, ignoring any policy that might cause<br />

the implementation to normally not execute the command. The implementation<br />

shall execute this stop if at all possible, without regard to consequences.<br />

5072<br />

5073<br />

5074<br />

5075<br />

5076<br />

5077<br />

5078<br />

5079<br />

5080<br />

5081<br />

5082<br />

5083<br />

5084<br />

5085<br />

5086<br />

5087<br />

5088<br />

5089<br />

5090<br />

5091<br />

5092<br />

5093<br />

5094<br />

5095<br />

5096<br />

This clause details requirements for CLP output for the stop verb.<br />

6.13.4.1 Text Format<br />

Implementations shall return <strong>Command</strong> Result data that includes the target address that was stopped (if<br />

any) and the time and date when the stop was initiated. Implementations may return the time/date<br />

information in any applicable format that meets their needs. If the implementation did not stop the target,<br />

the implementation shall return <strong>Command</strong> Response data indicating that no targets were stopped.<br />

6.13.4.2 Structured Format<br />

This clause details requirements for structured output formats for the stop verb.<br />

6.13.4.2.1 General<br />

Implementations shall include any status data in the standard format at the top of the response. If the<br />

target was successfully stopped, the implementation shall then return the target that was stopped and the<br />

time the stop completed.<br />

6.13.4.2.2 XML Output<br />

The implementation shall return the stop element in the response element as defined in the <strong>Command</strong><br />

Response schema in 280H6HDSP0224.<br />

<br />

Target address of Managed Element to stop <br />

Time stop occurred if completed synchronously, returned in CIM<br />

datetime format<br />

<br />

6.13.4.2.3 Keyword<br />

Implementations shall use the following form when returning <strong>Command</strong> Results for the stop command in<br />

"keyword" format:<br />

command=stop<br />

ufip=User Friendly instance path of the Managed Element<br />

Version 1.0.2 121


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

5097<br />

5098<br />

5099<br />

5100<br />

5101<br />

timestamp=Time reset occurred if completed synchronously, returned in CIM datetime<br />

format<br />

endoutput<br />

6.13.5 Examples<br />

This clause provides examples of the use of the stop verb.<br />

5102<br />

5103<br />

5104<br />

5105<br />

5106<br />

5107<br />

5108<br />

5109<br />

5110<br />

5111<br />

5112<br />

5113<br />

5114<br />

5115<br />

5116<br />

5117<br />

5118<br />

5119<br />

5120<br />

5121<br />

5122<br />

5123<br />

5124<br />

5125<br />

5126<br />

5127<br />

5128<br />

5129<br />

5130<br />

5131<br />

5132<br />

5133<br />

5134<br />

5135<br />

5136<br />

5137<br />

5138<br />

5139<br />

5140<br />

5141<br />

5142<br />

5143<br />

5144<br />

EXAMPLE 1:<br />

EXAMPLE 2:<br />

EXAMPLE 3:<br />

EXAMPLE 4:<br />

Sends system1 to its default disabled state.<br />

-> stop /system1<br />

/system1 stopped at 2:59:04 January 30, 2005.<br />

Stops system1.<br />

-> stop –o format=clpxml /system1<br />

<br />

<br />

<br />

stop -o format=clpxml /system1<br />

<br />

<br />

0<br />

<br />

9834<br />

<br />

<br />

<br />

<br />

system1<br />

/system1<br />

<br />

20050130145904.000000-300<br />

<br />

<br />

Stops system1.<br />

-> stop –o format=keyword /system1<br />

commandline=stop /system1<br />

status=0<br />

job_id=9834<br />

command=stop<br />

ufip=/system1<br />

timestamp=20050130145904.000000-300<br />

endoutput<br />

Specifies the Examine option and stops system1.<br />

-> stop -x –o format=clpxml /system1<br />

<br />


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

5145<br />

5146<br />

5147<br />

5148<br />

5149<br />

5150<br />

5151<br />

5152<br />

5153<br />

5154<br />

5155<br />

5156<br />

5157<br />

5158<br />

5159<br />

5160<br />

5161<br />

5162<br />

5163<br />

5164<br />

5165<br />

5166<br />

5167<br />

5168<br />

5169<br />

5170<br />

5171<br />

5172<br />

5173<br />

5174<br />

5175<br />

5176<br />

5177<br />

5178<br />

5179<br />

5180<br />

5181<br />

5182<br />

5183<br />

5184<br />

5185<br />

5186<br />

5187<br />

5188<br />

5189<br />

5190<br />

5191<br />

5192<br />

5193<br />

5194<br />

EXAMPLE 5:<br />

EXAMPLE 6:<br />

EXAMPLE 7:<br />

xsi:schemaLocation="http://schemas.dmtf.org/smash/commandresponse/1.0.0<br />

/dsp0224.xsd smclp_command_response.xsd"><br />

<br />

stop -x -o format=clpxml /system1<br />

<br />

<br />

0<br />

<br />

<br />

<br />

If run without the examine option, this will stop<br />

system1.<br />

<br />

<br />

<br />

Specifies the Examine option and stops system1.<br />

-> stop -x –o format=keyword /system1<br />

commandline=stop -x –o format=keyword /system1<br />

status=0<br />

job_id=923<br />

command=stop<br />

examine=If run without the examine option, this will stop system1.<br />

endoutput<br />

Attempt to stop system1 does not complete synchronously.<br />

-> stop /system1<br />

Stopping system1, job id is 9834.<br />

Attempt to stop system1 does not complete synchronously.<br />

-> stop –o format=clpxml /system1<br />

<br />

<br />

<br />

stop -o format=clpxml<br />

<br />

<br />

0<br />

<br />

9834<br />

<br />

<br />

<br />

<br />

system1<br />

/system1<br />

<br />

<br />

<br />

Version 1.0.2 123


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

5195<br />

5196<br />

5197<br />

5198<br />

5199<br />

5200<br />

5201<br />

5202<br />

5203<br />

EXAMPLE 8:<br />

6.14 version<br />

Attempt to stop system1 does not complete synchronously.<br />

-> stop –o format=keyword /system1<br />

commandline=stop –o format=keyword /system1<br />

status=1<br />

job_id=9834<br />

command=stop<br />

ufip=/system1<br />

endoutput<br />

5204<br />

5205<br />

5206<br />

5207<br />

5208<br />

5209<br />

5210<br />

5211<br />

5212<br />

5213<br />

5214<br />

5215<br />

5216<br />

5217<br />

5218<br />

5219<br />

5220<br />

5221<br />

5222<br />

5223<br />

5224<br />

5225<br />

5226<br />

5227<br />

5228<br />

5229<br />

5230<br />

5231<br />

The general form of the version command is:<br />

version []<br />

6.14.1 General<br />

For the version command, implementations shall support the syntax defined for the version-cmd term<br />

in the CLP grammar defined in 281HAnnex A.<br />

The version command is used to display the version of the SM CLP that this implementation supports.<br />

The implementation shall return the version of the SM CLP with which it is compatible.<br />

6.14.2 Valid Targets<br />

The version command does not accept a command target term. Implementations shall not accept nonoption<br />

terms for the version command. If the implementation receives a command with non-option<br />

terms specified, the implementation shall return a <strong>Command</strong> Status of COMMAND PROCESSING<br />

ERROR and a Processing Error of COMMAND SYNTAX ERROR.<br />

6.14.3 Options<br />

Valid options for the version command are specified in Error! Reference source not found..<br />

6.14.4 Output<br />

This clause details requirements for CLP output for the version verb.<br />

6.14.4.1 Text Format<br />

The implementation shall include the string "Version 1.0.0" clearly identified as the CLP version<br />

supported by the implementation. The implementation shall include the version of the <strong>Server</strong><br />

<strong>Management</strong> Managed Element (SM ME) Addressing <strong>Specification</strong> with which it is conformant.<br />

6.14.4.2 Structured Format<br />

This clause details requirements for structured output formats for the version verb.<br />

6.14.4.2.1 General<br />

The returned data shall include any status data in the standard format at the top of the response.<br />

6.14.4.2.2 XML Output<br />

The implementation shall return the version element in the response element as defined in the<br />

<strong>Command</strong> Response schema in 282H6HDSP0224. The implementation shall return the exact string "v1.0.0" as<br />

the data contained in the clpversion element within the version element.<br />

124 Version 1.0.2


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

5232<br />

5233<br />

5234<br />

5235<br />

5236<br />

5237<br />

5238<br />

5239<br />

5240<br />

6.14.4.2.3 Keyword<br />

Implementations shall use the following form when returning <strong>Command</strong> Results for the version<br />

command in "keyword" format:<br />

command=version<br />

clpversion=v1.0.0<br />

addressingversion=v1.0.0<br />

endoutput<br />

6.14.5 Examples<br />

This clause provides examples of the use of the version verb.<br />

5241<br />

5242<br />

5243<br />

5244<br />

5245<br />

5246<br />

5247<br />

5248<br />

5249<br />

5250<br />

5251<br />

5252<br />

5253<br />

5254<br />

5255<br />

5256<br />

5257<br />

5258<br />

5259<br />

5260<br />

5261<br />

5262<br />

5263<br />

5264<br />

5265<br />

5266<br />

5267<br />

5268<br />

5269<br />

5270<br />

5271<br />

5272<br />

5273<br />

5274<br />

5275<br />

5276<br />

5277<br />

5278<br />

5279<br />

EXAMPLE 1:<br />

EXAMPLE 2:<br />

EXAMPLE 3:<br />

EXAMPLE 4:<br />

Runs the version command the way it is meant to be (that is, without targets).<br />

-> version<br />

SM CLP Version 1.0.0<br />

SM ME Addressing Version 1.0.0<br />

Attempts to include targets with the version command, but the version command does not<br />

support targets.<br />

-> version /system1<br />

Invalid syntax; the version command does not support a target.<br />

Specifies invalid syntax for the version command.<br />

-> version –o format=clpxml /system1<br />

<br />

<br />

<br />

version -o format=clpxml /system1<br />

<br />

<br />

2<br />

252<br />

COMMAND SYNTAX ERROR<br />

<br />

<br />

<br />

Successfully runs the version command.<br />

-> version –o format=clpxml<br />

<br />

<br />

<br />

version -o format=clpxml<br />

<br />

<br />

0<br />

<br />

Version 1.0.2 125


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

5280<br />

5281<br />

5282<br />

5283<br />

5284<br />

5285<br />

5286<br />

5287<br />

5288<br />

5289<br />

5290<br />

5291<br />

5292<br />

5293<br />

EXAMPLE 5:<br />

930<br />

<br />

<br />

<br />

v1.0.0<br />

v1.0.0<br />

<br />

<br />

Successfully runs the version command.<br />

-> version –o format=keyword<br />

command=version –o format=keyword<br />

clpversion=v1.0.0<br />

addressingversion=v1.0.0<br />

endoutput<br />

5294<br />

5295<br />

5296<br />

5297<br />

5298<br />

5299<br />

5300<br />

5301<br />

5302<br />

5303<br />

5304<br />

5305<br />

5306<br />

5307<br />

5308<br />

5309<br />

5310<br />

5311<br />

5312<br />

5313<br />

5314<br />

5315<br />

5316<br />

5317<br />

5318<br />

5319<br />

5320<br />

5321<br />

5322<br />

5323<br />

5324<br />

7 Standard <strong>Command</strong> Options<br />

This clause describes the requirements for supporting and implementing standard command options.<br />

7.1 General<br />

Every CLP option is defined to have the same name and behavior across the CLP command verb set.<br />

For each CLP verb, implementations shall recognize the CLP standard options applicable to the verb and<br />

observe the specified behavior of each option in a manner consistent with the option definition.<br />

EXAMPLE 1: Use of "-o" always indicates the output option whenever used and follows the behavior specified for<br />

the output standard option.<br />

The clauses below describe each standard option and its behavior.<br />

Implementations shall recognize option names both by the full expression of the option name and by a<br />

single letter short form of the option name if one is defined by this specification. Implementations shall not<br />

recognize option names of any other length. That is, "partial" or "two letter" option names are not allowed.<br />

EXAMPLE 2: The option name for controlling output is recognized by its full option name form, "-output", and by its<br />

single character short form, "-o", and not by any other form, such as "-out".<br />

For each CLP <strong>Command</strong> processed, implementations shall observe the default setting of standard<br />

options unless the user overrides the setting with a session default or by using the standard option<br />

explicitly in the <strong>Command</strong> <strong>Line</strong> entered. For each CLP <strong>Command</strong> processed, implementations shall apply<br />

every standard option that is supported for the verb. Implementations shall observe the following order of<br />

precedence for determining the value of a standard option: specification default, superseded by the<br />

session default, and finally superseded by the explicit <strong>Command</strong> <strong>Line</strong> setting, if present.<br />

Implementations shall observe the following order of precedence for the following standard options: help,<br />

version, and examine. If the help option appears on the <strong>Command</strong> <strong>Line</strong>, implementations shall<br />

provide the behavior specified in Error! Reference source not found.. If the version option appears,<br />

but the help option does not, implementations shall provide the behavior specified in Error! Reference<br />

source not found.. If the examine option appears on the <strong>Command</strong> <strong>Line</strong> without either the help or<br />

version option, the implementation shall provide the behavior described in Error! Reference source<br />

not found.. These precedence rules do not affect the processing of standard options or other options<br />

specified in the <strong>Command</strong> <strong>Line</strong>.<br />

If an option is included more than once in a command, the implementation shall not execute the<br />

command. The implementation shall return <strong>Command</strong> Response data indicating a COMMAND SYNTAX<br />

ERROR.<br />

126 Version 1.0.2


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

5325<br />

5326<br />

5327<br />

5328<br />

5329<br />

5330<br />

5331<br />

5332<br />

5333<br />

5334<br />

5335<br />

5336<br />

5337<br />

5338<br />

5339<br />

5340<br />

5341<br />

5342<br />

5343<br />

5344<br />

CLP options either always require an argument or never require an argument. If a CLP option that<br />

requires an argument is specified in a command without an argument value, the implementation shall<br />

return a <strong>Command</strong> Status of COMMAND PROCESSING FAILED and a Processing Error of MISSING<br />

ARGUMENT. If a CLP option that does not require an argument is specified in a command with an<br />

argument value, the implementation shall return a <strong>Command</strong> Status of COMMAND PROCESSING<br />

FAILED and a Processing Error of COMMAND SYNTAX ERROR. If a CLP option is specified with an<br />

argument that is not defined by the CLP as a legal argument and the argument is not identified as an<br />

OEM-defined argument according to the rules in 283H5.2.6.2, the implementation shall return a <strong>Command</strong><br />

Status of COMMAND PROCESSING FAILED and a Processing Error of INVALID ARGUMENT.<br />

Implementations shall support only those options listed in 284HTable 14. Implementations shall support all of<br />

the options listed in 285HTable 14. Implementations shall support arguments on all options that specify an<br />

argument in 286HTable 14. Implementations shall not support arguments for those options that do not specify<br />

an argument in 287HTable 14.<br />

For each option listed in 288HTable 14 that has a value of "yes" in the column labeled "Session Default<br />

Supported", the implementation shall allow the user to set a default value per session. For each option<br />

listed in 289HTable 14 that does not have a value of "yes" in the column labeled "Session Default Supported",<br />

the implementation shall not allow the user to set a default value per session. Each option with a<br />

supported session default value is modeled with properties on the CIM class that represents the CLP<br />

session. For information on the CIM class and its properties, see the CLP Service Profile (290H7HDSP1005).<br />

Table 14 – Standard <strong>Command</strong> Options<br />

Option Name<br />

Short<br />

Form Interpretation Argument<br />

-all -a Instructs the verb to<br />

perform all of its possible<br />

functions.<br />

-destination<br />

<br />

<br />

Indicates the location of a<br />

destination for an image or<br />

other target data.<br />

-display -d Selects the data the user<br />

wants to display.<br />

-examine -x Instructs the <strong>Command</strong><br />

Processor to examine the<br />

command for syntax and<br />

semantic errors but not<br />

execute the command.<br />

-force -f Instructs the verb to ignore<br />

warning conditions that<br />

would prevent execution by<br />

default.<br />

-help -h Displays documentation<br />

about the command verb.<br />

-keep -k Establishes a holding time<br />

for command job ID and<br />

status.<br />

-level -l Instructs the <strong>Command</strong><br />

Processor to execute the<br />

command for the current<br />

target plus targets<br />

contained through the<br />

specified level of depth.<br />

None<br />

URI or SM instance address<br />

Multiple arguments controlling<br />

the type of information returned<br />

about a target.<br />

None<br />

None<br />

None<br />

Amount of time to hold command<br />

job ID, status<br />

Number of levels expressed as a<br />

natural number or "all"<br />

Session<br />

Default<br />

Supported<br />

yes<br />

yes<br />

Version 1.0.2 127


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

Option Name<br />

Short<br />

Form Interpretation Argument<br />

-output -o Controls the content and<br />

form of the command<br />

output.<br />

-source Indicates the location of a<br />

source image or target.<br />

-version -v Displays the version of the<br />

command verb.<br />

-wait -w Instructs the <strong>Command</strong><br />

Processor to hold the<br />

<strong>Command</strong> Response until<br />

all spawned jobs have<br />

completed.<br />

Many arguments providing<br />

control of format, language, level<br />

of detail, order, and so on of<br />

output data.<br />

URI or SM instance address<br />

None<br />

None<br />

Session<br />

Default<br />

Supported<br />

yes<br />

yes<br />

5345<br />

5346<br />

5347<br />

5348<br />

291HTable 15Error! Reference source not found. specifies the requirements for implementations to support<br />

each combination of verb and standard option. Except where noted, a cell with an X indicates that the<br />

implementation shall support use of the option named in the row with the verb named in the column.<br />

Table 15 – Verb and Option Support<br />

CLP<br />

Option<br />

all<br />

destination<br />

display<br />

cd<br />

create<br />

delete<br />

dump<br />

X<br />

exit<br />

help<br />

CLP Verb<br />

examine X X X X X X X X X X X X X<br />

force X 2 X 1 X 1 X 2 X 2 X 1 X 2 X 2<br />

help X X X X X X X X X X X X X<br />

keep X X X X X X X X X X X X X<br />

level<br />

output X X X X X X X X X X X X X<br />

source<br />

version X X X X X X X X X X X X X<br />

wait X X X X X X X X X X X X<br />

load<br />

X<br />

reset<br />

set<br />

show<br />

X<br />

X<br />

X<br />

start<br />

stop<br />

version<br />

Notes:<br />

X 1 – The implementation may support use of the force option with the dump, load, and show verbs.<br />

X 2 – The implementation should support use of the force option with the delete, reset, set, start, and stop<br />

verbs.<br />

5349<br />

5350<br />

5351<br />

5352<br />

5353<br />

5354<br />

If the cell in 292HTable 15Error! Reference source not found. is blank, the implementation shall not support<br />

the use of the option named in the row with the verb named in the column. If a <strong>Command</strong> <strong>Line</strong> is specified<br />

with a verb and option combination that shall not be supported according to Error! Reference source<br />

not found., the implementation shall not execute the command and shall return a <strong>Command</strong> Status of<br />

COMMAND PROCESSING FAILED and a Processing Error of INVALID OPTION. If the implementation<br />

supports an option that may or should be supported according to 293HTable 15Error! Reference source not<br />

128 Version 1.0.2


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

5355<br />

5356<br />

5357<br />

5358<br />

5359<br />

5360<br />

5361<br />

5362<br />

5363<br />

5364<br />

5365<br />

5366<br />

5367<br />

5368<br />

5369<br />

5370<br />

5371<br />

5372<br />

5373<br />

5374<br />

5375<br />

5376<br />

5377<br />

5378<br />

5379<br />

5380<br />

5381<br />

5382<br />

5383<br />

5384<br />

5385<br />

5386<br />

5387<br />

5388<br />

5389<br />

5390<br />

5391<br />

5392<br />

found. for one verb, the implementation may support the option with other verbs that may or should be<br />

supported according to 294HTable 15Error! Reference source not found.. If a <strong>Command</strong> <strong>Line</strong> is specified<br />

with a verb and option combination that may or should be supported according to 295HTable 15Error!<br />

Reference source not found. and is not supported by the implementation, the implementation shall not<br />

execute the command and shall return a <strong>Command</strong> Status of COMMAND PROCESSING FAILED and a<br />

Processing Error of OPTION NOT SUPPORTED.<br />

7.2 all<br />

This clause describes the requirements for the all option.<br />

7.2.1 Forms<br />

-all<br />

-a<br />

7.2.2 Example Use<br />

show –a log1<br />

7.2.3 Behavior<br />

The all option instructs the <strong>Command</strong> Processor to select all values where appropriate for the<br />

command. This option is supported only with the show command. For a detailed description of its use,<br />

see 296H6.11.3.<br />

When the all option is specified, the implementation will select all values where appropriate for the<br />

command.<br />

7.3 destination<br />

This clause describes the requirements for the destination option.<br />

7.3.1 Forms<br />

-destination<br />

7.3.2 Example Use<br />

dump –destination<br />

ftp://administrator:passw0rd@myserver.com/private/administrator/`memory.dmp<br />

/system1/memory1<br />

7.3.3 Behavior<br />

The destination option is used to specify a destination for the transfer of a binary image. The desired<br />

destination is specified as the argument to the destination option. The destination can be expressed<br />

as a UFiP if it is a Managed Element in the address space of the MAP. The destination can also be<br />

expressed as a URI. The desired protocol to use for transferring the image can be specified as part of the<br />

URI. This specification does not mandate support for a specific protocol. Thus the protocols supported<br />

are implementation specific. Implementations shall interpret the value specified as a URI defined<br />

according to Uniform Resource Identifiers (URI): Generic Syntax (297H9HRFC2396). The URI specified may<br />

contain a scheme that indicates the explicit service and location to be used to capture the dumped data. If<br />

the URI specified is relative, then the implementation shall interpret the URI according to the rules<br />

specified in 298H5.1.3.3.<br />

Version 1.0.2 129


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

5393<br />

5394<br />

5395<br />

5396<br />

5397<br />

7.4 display<br />

This clause describes the requirements for the display option.<br />

7.4.1 Forms<br />

-d[isplay] *[,]<br />

7.4.2 Example Use<br />

5398<br />

5399<br />

5400<br />

5401<br />

5402<br />

5403<br />

5404<br />

5405<br />

5406<br />

5407<br />

5408<br />

5409<br />

5410<br />

5411<br />

EXAMPLE 1:<br />

EXAMPLE 2:<br />

EXAMPLE 3:<br />

EXAMPLE 4:<br />

EXAMPLE 5:<br />

Shows the commands that are supported for use with log1 as a target.<br />

show –display verbs log1<br />

Shows all of the systems in the address space. No filtering of the results for individual instances<br />

is requested.<br />

show –level all –display targets=system /<br />

Shows all of the CPUs and SystemDevice association instances in system1. No filtering of the<br />

results for individual instances is requested.<br />

show –level all –display targets=cpu,associations=systemdevice `<br />

/system1<br />

Shows the OperationalStatus property for every power supply and processor in system1.<br />

show –level all –display ` targets=(cpu,pwrsupply),properties=<br />

operationalstatus ` /system1<br />

Shows the ElementName property for every instance.<br />

show –level all –display properties=(elementname) /<br />

5412<br />

5413<br />

5414<br />

5415<br />

5416<br />

5417<br />

5418<br />

5419<br />

5420<br />

5421<br />

5422<br />

5423<br />

7.4.3 Behavior<br />

The display option filters the information returned in <strong>Command</strong> Results. This option provides two levels<br />

of filtering. It enables filtering of results for entire instances at the granularity of CIM class. The display<br />

option also enables filtering results for an individual instance, allowing a user to restrict the results to the<br />

properties (or a subset) of the instance or the verbs (or a subset) supported for an instance. For any two<br />

commands that are identical except for arguments to the display option, the implementation shall<br />

interpret and execute the command such that the set of Targets affected, and the resultant state of those<br />

Targets, is identical. The display option requires one or more arguments specifying the category of<br />

information to include in the <strong>Command</strong> Results. For each command, the implementation shall not include<br />

data in the <strong>Command</strong> Results returned to the Client unless it is specified by the arguments for the<br />

display option that are in effect for the command.<br />

The valid types and formats for the arguments of the display option are as follows:<br />

5424<br />

all<br />

Perform no filtering of the results.<br />

5425<br />

5426<br />

5427<br />

5428<br />

5429<br />

5430<br />

5431<br />

5432<br />

5433<br />

verbs Display the commands that are valid for this target.<br />

properties[="("(,,...,)")"]<br />

Can be used to filter the <strong>Command</strong> Results such that information about an instance is<br />

returned only if the instance has a property with the specified value or a property with the<br />

specified name. Can also be used to filter the <strong>Command</strong> Results so that only those<br />

properties specified by name are returned. The properties are returned in the order<br />

indicated. If no property names are specified, all properties included in the <strong>Command</strong><br />

Results will be returned.<br />

targets[="("(UFcT][,,,...,")"]<br />

130 Version 1.0.2


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

5434<br />

5435<br />

5436<br />

5437<br />

5438<br />

5439<br />

5440<br />

5441<br />

5442<br />

5443<br />

5444<br />

5445<br />

5446<br />

5447<br />

5448<br />

5449<br />

5450<br />

5451<br />

5452<br />

5453<br />

5454<br />

5455<br />

5456<br />

5457<br />

5458<br />

5459<br />

5460<br />

5461<br />

5462<br />

5463<br />

5464<br />

5465<br />

5466<br />

5467<br />

5468<br />

5469<br />

5470<br />

5471<br />

5472<br />

5473<br />

5474<br />

5475<br />

5476<br />

5477<br />

5478<br />

5479<br />

5480<br />

Filter the <strong>Command</strong> Results to include information about Managed Element instances only.<br />

associations[="("(classname][,,,...,")"]<br />

Filter the <strong>Command</strong> Results to include information about associations only.<br />

The display option acts as a filter on output of a command. The results of a command are marshaled<br />

into operation results data. Arguments to the display option are used to select which information is<br />

included in the <strong>Command</strong> Results data. Arguments to the display option are applied in the following<br />

order:<br />

• targets (instance selection by class)<br />

• associations (instance selection by class)<br />

• properties (restrict to just properties returned for an instance)<br />

• properties (propname, restrict properties that are returned for an instance)<br />

• verbs<br />

The specification default argument for the display option is targets,properties,verbs.<br />

When the display option is specified with one or more arguments, the implementation shall apply each<br />

of the arguments to the operation results according to the rules for each argument. For each argument<br />

present in the <strong>Command</strong> <strong>Line</strong>, implementations shall apply the arguments in the following order<br />

irrespective of the order in which they appear in the <strong>Command</strong> <strong>Line</strong>: targets, associations, properties,<br />

verbs. When the display option is specified with an argument of all, the implementation shall interpret<br />

the display option as if it was specified with an argument of<br />

"targets,associations,verbs,properties". Prior to processing the argument values, the<br />

implementation shall remove the leading and trailing parentheses, if they are present. The filtering<br />

provided for by the display option is applied across the entire set of Managed Elements and<br />

Associations for which results were generated by the command. For example, when the show command<br />

is used with the level option or with the Target Class Addressing, a tree of Managed Elements and<br />

Associations can be returned. The filtering would then be applied across each level of the tree, removing<br />

any Managed Elements that did not match the target filter, removing any Associations that did not match<br />

the association filter, filtering properties returned on any remaining Managed Elements and Associations<br />

according to the properties filter, and filtering the list of verbs supported for any remaining Managed<br />

Elements. Note that for an individual Association instance, the verbs argument has no effect because<br />

<strong>Command</strong> Results for an instance of an Association do not include information about the verbs supported<br />

for an instance. Implementations will accept duplicate values within the comma-delimited list of values for<br />

each argument to the display option.<br />

When the display option is specified with an argument of targets and no value is supplied to the<br />

argument, the implementation shall filter the operation results and add to the <strong>Command</strong> Results<br />

information about Managed Element instances. If the display option is specified with an argument of<br />

targets and a value is supplied to the targets argument, the implementation shall interpret the<br />

supplied value as a comma-delimited, ordered list of UFcTs. The implementation shall apply the ordered<br />

list of UFcTs as a filter on the instances for which results are returned. The implementation shall add<br />

operation results for an instance if and only if the instance is of one of the types specified by a UFcT in<br />

the list. The implementation shall add the results for instances in the order their corresponding types were<br />

specified in the UFcT list. When selecting instances for which results will be included in the <strong>Command</strong><br />

Results, the implementation shall apply the "Rules for Selecting Instances by UFcT" defined in 299H5HDSP0215<br />

for each UFcT supplied as a value to the targets argument and each instance whose results are<br />

included in the operation results, where the Selection UFcT is the UFcT supplied as an argument value<br />

and the target instance is the instance whose results are included in the operation results.<br />

When the display option is specified with an argument of associations and no value is supplied to<br />

the argument, the implementation shall filter the operation results and add to the <strong>Command</strong> Results<br />

Version 1.0.2 131


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

5481<br />

5482<br />

5483<br />

5484<br />

5485<br />

5486<br />

5487<br />

5488<br />

5489<br />

5490<br />

5491<br />

5492<br />

5493<br />

5494<br />

5495<br />

5496<br />

5497<br />

5498<br />

5499<br />

5500<br />

5501<br />

5502<br />

5503<br />

5504<br />

5505<br />

5506<br />

5507<br />

5508<br />

5509<br />

5510<br />

5511<br />

5512<br />

5513<br />

5514<br />

5515<br />

5516<br />

5517<br />

5518<br />

5519<br />

5520<br />

5521<br />

5522<br />

5523<br />

information about each Association. If the display option is specified with an argument of<br />

associations and a value is supplied to the associations argument, the implementation shall<br />

interpret the supplied value as a comma-delimited, ordered list of Association Classes. The<br />

implementation shall apply the ordered list of Association Classes as a filter on the instances for which<br />

results are returned. The implementation shall add operation results for an instance if and only if the<br />

instance is of one of the types specified by an Association Class in the list. The implementation shall add<br />

the results for instances in the order their corresponding types were specified in the list of class names.<br />

The properties argument to the display option can be used to filter the results returned for a target<br />

to be the properties of the target or a specific subset of the properties. Usage is supported with or without<br />

additional values. When the display option is specified with an argument of properties,<br />

implementations shall apply the filtering of the properties argument to the intermediate results that are<br />

generated by applying the filtering of the association and targets arguments to the operation<br />

results. If the display option is specified with an argument of properties and a value is supplied to<br />

the properties argument, the implementation shall interpret the value as a comma-delimited, ordered<br />

list of tokens.<br />

The implementation shall include information about a property of an instance, if the property name<br />

appears in the ordered list of property names that were specified as the value of the properties<br />

argument.<br />

When the display option is specified with an argument of properties and no value is supplied to the<br />

argument, the implementation shall filter the intermediate results and add to the <strong>Command</strong> Results for an<br />

instance information about the properties of the instance.<br />

When the display option is specified with an argument of verbs, the implementation shall filter the<br />

intermediate results and add to the <strong>Command</strong> Results for an instance information about the verbs that<br />

are supported for the instance.<br />

It is possible that applying the filters on information returned for an instance will result in there being no<br />

information to return for an instance. After applying the filters, if there is no information for an instance,<br />

the implementation shall remove the instance from the <strong>Command</strong> Results that are returned.<br />

7.5 examine<br />

This clause describes the requirements for the examine option.<br />

7.5.1 Forms<br />

-examine<br />

-x<br />

7.5.2 Example Use<br />

stop –force –x /system3<br />

7.5.3 Behavior<br />

The examine option causes the <strong>Command</strong> Processor to examine command syntax only and provide<br />

feedback to the user on the command’s validity and correctness. If the examine option is included in the<br />

<strong>Command</strong> <strong>Line</strong>, the implementation will perform the standard validation of the <strong>Command</strong> <strong>Line</strong> but will not<br />

execute the command. Thus, any errors that would result in a <strong>Command</strong> Status of COMMAND<br />

PROCESSING FAILED and the accompanying Processing Error if the examine option were not specified<br />

will still result in a <strong>Command</strong> Status of COMMAND PROCESSING FAILED and the accompanying<br />

Processing Error. Any errors that would result in a COMMAND EXECUTION FAILED will be reported as<br />

free-form text in the <strong>Command</strong> Results and not as a <strong>Command</strong> Status.<br />

132 Version 1.0.2


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

5524<br />

5525<br />

5526<br />

5527<br />

5528<br />

5529<br />

5530<br />

5531<br />

5532<br />

5533<br />

5534<br />

5535<br />

5536<br />

5537<br />

5538<br />

5539<br />

5540<br />

5541<br />

5542<br />

5543<br />

5544<br />

5545<br />

5546<br />

5547<br />

5548<br />

5549<br />

5550<br />

5551<br />

5552<br />

5553<br />

5554<br />

5555<br />

5556<br />

5557<br />

5558<br />

5559<br />

When the examine option is included in the <strong>Command</strong> <strong>Line</strong>, the <strong>Command</strong> Processor shall not commit<br />

or execute the command. The <strong>Command</strong> Processor shall verify that the options, Resultant Target, and<br />

target properties are valid. The <strong>Command</strong> Results may describe what action would be taken if the<br />

command were to be entered without the examine option. Although the <strong>Command</strong> Processor will not<br />

execute the command, applying the examine option to the <strong>Command</strong> <strong>Line</strong> is itself an activity of the MAP<br />

that will result in a Job being created.<br />

7.6 force<br />

This clause describes the requirements for the force option.<br />

7.6.1 Forms<br />

-force<br />

-f<br />

7.6.2 Example Use<br />

stop –f /system3/blade2<br />

7.6.3 Behavior<br />

The force option causes the <strong>Command</strong> Processor to ensure that the command executes, regardless of<br />

potential preparation steps that could have been taken, initial ME states recommended, or exceptions that<br />

occur during execution. The force option does not override authorization of a user to execute a<br />

command for a given target.<br />

When the force option is specified, the implementation shall execute the command.<br />

7.7 help<br />

This clause describes the requirements for the help option.<br />

7.7.1 Forms<br />

-help<br />

-h<br />

7.7.2 Example Use<br />

stop –help<br />

7.7.3 Behavior<br />

The help option causes the <strong>Command</strong> Processor to return text describing the proper use of the verb<br />

entered as the first term on the <strong>Command</strong> <strong>Line</strong>. The help text includes a description of the verb and its<br />

behavior and descriptions of all options supported by the verb. When the help option is specified, the<br />

command does not execute or cause any change to the target. It does not alter the state or properties of<br />

a target that appear on the same <strong>Command</strong> <strong>Line</strong>. Help output text is governed by the language option<br />

currently in effect.<br />

When the help option is specified, the implementation shall not take the action specified by the verb. The<br />

implementation shall return text describing the proper use of the verb entered as the first term on the<br />

<strong>Command</strong> <strong>Line</strong>.<br />

Version 1.0.2 133


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

5560<br />

5561<br />

5562<br />

5563<br />

5564<br />

5565<br />

5566<br />

5567<br />

5568<br />

5569<br />

5570<br />

5571<br />

5572<br />

5573<br />

5574<br />

5575<br />

5576<br />

5577<br />

5578<br />

5579<br />

5580<br />

5581<br />

5582<br />

5583<br />

5584<br />

5585<br />

5586<br />

5587<br />

5588<br />

5589<br />

7.8 keep<br />

This clause describes the requirements for the keep option.<br />

7.8.1 Forms<br />

-keep <br />

-k <br />

m.s is an amount of time specified as ‘minutes.seconds’.<br />

7.8.2 Example Use<br />

reset –k 10 system1<br />

Resets system1 and retains the <strong>Command</strong> Status for 10 minutes.<br />

7.8.3 Behavior<br />

The keep option is used to request the <strong>Command</strong> Processor to retain status information for the job<br />

spawned in response to the command with which the option was included. In order to use the keep<br />

option to request that the status for a command be preserved, it must be included as part of the initial<br />

command request.<br />

Implementations shall keep the CIM_ConcreteJob instance corresponding to the job in the job queue<br />

after the job is completed for the time specified by the keep option. The implementation shall set the<br />

TimeBeforeRemoval property of the CIM_ConcreteJob instance to the value specified by the keep<br />

option. Implementations may maintain <strong>Command</strong> Results after the command execution completes even if<br />

the keep option is used. The keep option only controls how long the implementation is required to<br />

maintain the <strong>Command</strong> Status.<br />

If the CLP session ends before the command has completed and the <strong>Command</strong> Status has been<br />

returned, the <strong>Command</strong> Status will be retained either for the amount of time that was specified with the<br />

keep option or the session default, as appropriate.<br />

7.9 level<br />

This clause describes the requirements for the level option.<br />

7.9.1 Forms<br />

-level <br />

-l <br />

n is the number of levels to include in the command scope.<br />

7.9.2 Example Use<br />

5590<br />

5591<br />

5592<br />

5593<br />

5594<br />

5595<br />

EXAMPLE 1:<br />

EXAMPLE 2:<br />

EXAMPLE 3:<br />

Shows information about the default target and one level of contained Managed Elements.<br />

show –l 2<br />

Shows information about Managed Elements up to two levels deep.<br />

show –l 3<br />

Stops all contained Managed Elements, and then stops the command target.<br />

stop –l all<br />

134 Version 1.0.2


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

5596<br />

5597<br />

EXAMPLE 4:<br />

Shows information about system3 and all contained Managed Elements.<br />

show –l all system3<br />

5598<br />

5599<br />

5600<br />

5601<br />

5602<br />

5603<br />

5604<br />

5605<br />

5606<br />

5607<br />

5608<br />

5609<br />

5610<br />

5611<br />

7.9.3 Behavior<br />

The level option instructs the command verb to include n number of levels in the scope of its execution.<br />

A level typically refers to the depth of containment that is to be processed by the verb, following the target<br />

addressing syntax described in 300H5.2.1.3.5.<br />

Any levels specified that extend beyond the containment depth of the command target shall be ignored.<br />

For example, if a command target contains only one level of contained targets and the user attempts to<br />

show "n=5" levels, the command is still executed successfully and the one level of containment is<br />

returned in the output.<br />

The value of n is interpreted as follows:<br />

n=1 Verb is interpreted for the command target only (default).<br />

n=2 Verb acts on the command target and any directly contained Managed Elements.<br />

n=3 Verb acts on the command target, directly contained Managed Elements, and any<br />

Managed Elements contained by those Managed Elements (that is, the current target and<br />

"two down").<br />

5612<br />

5613<br />

n=all<br />

Verb acts on the command target and all target Managed Elements recursively contained<br />

in the command target.<br />

5614<br />

5615<br />

5616<br />

5617<br />

5618<br />

5619<br />

5620<br />

5621<br />

5622<br />

5623<br />

When the level option is included with a command, the implementation shall apply the command to<br />

each level of containment up to the minimum of the level of containment specified by the argument to the<br />

level option and the actual containment depth of the command target.<br />

7.10 output<br />

This clause describes the requirements for the output option.<br />

7.10.1 Forms<br />

-output <br />

-o <br />

301HTable 16 lists the arguments for the output option.<br />

Table 16 – Output Option Arguments<br />

Argument<br />

format=<br />

error, terse, verbose<br />

language=<br />

begin, end<br />

Value Domain<br />

(default in bold)<br />

"text",<br />

"keyword","clpxml"<br />

3-character string<br />

identifier of<br />

language as specified<br />

in ISO 639.2; "eng"<br />

is default.<br />

Description<br />

format controls the structure of the<br />

output text.<br />

This argument selects the level of detail<br />

included in the output.<br />

language selects the translation of text.<br />

When multiple items are returned in the<br />

output, begin and end control where to<br />

start in the list.<br />

Version 1.0.2 135


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

Argument<br />

Value Domain<br />

(default in bold)<br />

Description<br />

order= "default", "reverse" When multiple items are returned in the<br />

output, order controls the order of those<br />

items.<br />

count=<br />

number=<br />

<br />

[integer string]-<br />

[integer string]<br />

When multiple items are returned in the<br />

output, count controls the number of<br />

items returned (for example, log items);<br />

the default is ‘all’ items.<br />

The maximum value for count is<br />

determined by the class of the target.<br />

number requests that a range of results<br />

be returned.<br />

5624<br />

5625<br />

5626<br />

5627<br />

5628<br />

5629<br />

5630<br />

5631<br />

5632<br />

5633<br />

5634<br />

5635<br />

5636<br />

5637<br />

5638<br />

5639<br />

5640<br />

5641<br />

5642<br />

5643<br />

5644<br />

5645<br />

5646<br />

5647<br />

5648<br />

5649<br />

5650<br />

5651<br />

5652<br />

5653<br />

5654<br />

7.10.2 Example Use<br />

show –output format=clpxml,verbose,order=reverse,number=5 ./log1/record*<br />

show –o verbose /system2/log1<br />

start -o terse system1<br />

7.10.3 Behavior<br />

The output option controls the format of output returned by the <strong>Command</strong> Processor to the Client. This<br />

option has no effect on the execution of the command or the Targets affected by the command.<br />

7.10.3.1 General Requirements<br />

For any two commands that are identical except for arguments to the output option, the implementation<br />

shall interpret and execute the command such that the Targets affected, and the resultant state of those<br />

Targets, is identical.<br />

EXAMPLE: The following command would cause all of the instances of the UFcT in the container to be<br />

deleted, not just four of them.<br />

delete –output count=4 UFcT<br />

Prior to processing the value for an argument, the implementation shall remove the leading and trailing<br />

parentheses if they are present. For each combination of arguments to the output option,<br />

implementations shall return identical <strong>Command</strong> Results irrespective of the relative order in which the<br />

arguments appear on the <strong>Command</strong> <strong>Line</strong>.<br />

Implementations shall return <strong>Command</strong> Results consistent with applying arguments to the output option<br />

in the following order: number, begin, end, count, order, format, terse, error, verbose, and<br />

language.<br />

7.10.3.2 Output Format Selection<br />

By default, all output is returned in free-form English text, which is not suitable for parsing. The user may<br />

request that output be formatted in a structured form by using the format argument and an associated<br />

value representing the desired structure. For example, if the user wants the output to be returned in an<br />

XML document format, the option form "-output format=clpxml" is used.<br />

If the output option with the format argument is included in a command, the implementation shall<br />

attempt to interpret the value of the format argument as one of the CLP output format identifiers. If the<br />

value of the format argument is a CLP output format identifier and the implementation supports the<br />

indicated output format, the implementation shall return <strong>Command</strong> Response data compliant with the<br />

format specified. If the value of the format argument is a CLP output format identifier and the<br />

136 Version 1.0.2


302H10H<br />

<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

5655<br />

5656<br />

5657<br />

5658<br />

5659<br />

5660<br />

5661<br />

5662<br />

5663<br />

5664<br />

5665<br />

5666<br />

5667<br />

5668<br />

5669<br />

5670<br />

5671<br />

5672<br />

5673<br />

5674<br />

5675<br />

5676<br />

5677<br />

5678<br />

5679<br />

5680<br />

5681<br />

5682<br />

5683<br />

5684<br />

5685<br />

5686<br />

5687<br />

5688<br />

5689<br />

5690<br />

5691<br />

5692<br />

5693<br />

5694<br />

5695<br />

5696<br />

5697<br />

5698<br />

5699<br />

5700<br />

5701<br />

5702<br />

5703<br />

implementation does not support the indicated output format, the implementation shall not execute the<br />

command and the implementation shall return <strong>Command</strong> Response data compliant with the session<br />

default output format indicating OUTPUT FORMAT NOT SUPPORTED. If the argument value is not a<br />

CLP output format identifier, the implementation shall not execute the command and the implementation<br />

shall return <strong>Command</strong> Response data compliant with session default output format indicating a<br />

Processing Error of INVALID ARGUMENT.<br />

Implementations shall recognize the string text as identifying the CLP text output format and shall not<br />

recognize any other string as identifying the text output format. Implementations shall recognize the string<br />

keyword as identifying the CLP keyword/value output format and shall not recognize any other string as<br />

identifying the keyword/value output format. Implementations shall recognize the string clpxml as<br />

identifying the CLP XML output format and shall not recognize any other string as identifying the XML<br />

output format.<br />

7.10.3.3 Output Language Selection<br />

If the output option with the language argument is included in a command, the implementation shall<br />

attempt to interpret the value of the language argument as a language code defined in accordance with<br />

ISO 639-2. If the implementation recognizes the value of the language argument as identifying an output<br />

language it supports, the implementation shall return <strong>Command</strong> Response data in the language specified.<br />

If the value of the language argument is not recognized by the implementation as identifying an output<br />

language it supports, the implementation shall not execute the command, the implementation shall return<br />

<strong>Command</strong> Response data in the session default language indicating a Processing Error of INVALID<br />

ARGUMENT.<br />

7.10.3.4 Output Range and Order Selection<br />

Some CLP verbs can return <strong>Command</strong> Results that include results for more than one Managed Element.<br />

The results of a command are marshaled into operation results data. The operation results data contains<br />

the results for each Managed Element as an ordered list. For each Managed Element, 303H32HDSP0216 defines<br />

the algorithm for initially ordering the operation results into the natural (default) order. Note that<br />

randomized is considered a valid algorithm for ordering the results. Arguments to the output option that<br />

select a range of elements for which results will be returned or control the order in which results are<br />

returned will operate against this list of operation results. The begin argument instruments the<br />

implementation to select the range of elements for which results will be included from the beginning of the<br />

list. The end argument instruments the implementation to select the range of elements for which results<br />

will be included from the end of the list. The count argument allows a user to restrict the number of<br />

Managed Elements in the range. The order argument allows a user to modify the order in which results<br />

are returned for a command. The number argument allows a user to select a range of Managed<br />

Elements.<br />

The begin, end, number, order, and count arguments to the output option affect the order and<br />

range of results displayed. When operation results are returned for Managed Elements of more than one<br />

type, the implementation shall apply the range selection once for each Managed Element type to the<br />

range of instances of that type. Implementations shall not apply the range selection arguments within the<br />

result for an individual Managed Element. Implementations shall apply the output order and range<br />

selection arguments to the elements at the deepest level of the containment hierarchy for which operation<br />

results have been generated and shall not apply the range or output order selection arguments to<br />

instances at any other level of the containment hierarchy for which operation results were generated. The<br />

begin, end, and number arguments are mutually exclusive. If the implementation receives a command<br />

with the output option specified with more than one of begin, end, and number specified, the<br />

implementation shall not execute the command and shall return a <strong>Command</strong> Status of COMMAND<br />

PROCESSING FAILED with a Processing Error of COMMAND SYNTAX ERROR. The number and<br />

count arguments are mutually exclusive. If the implementation receives a command with the output<br />

option specified with more than one of number and count specified, the implementation shall not<br />

Version 1.0.2 137


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

5704<br />

5705<br />

5706<br />

5707<br />

5708<br />

5709<br />

5710<br />

5711<br />

5712<br />

5713<br />

5714<br />

5715<br />

5716<br />

5717<br />

5718<br />

5719<br />

5720<br />

5721<br />

5722<br />

5723<br />

5724<br />

5725<br />

5726<br />

5727<br />

5728<br />

5729<br />

5730<br />

5731<br />

5732<br />

5733<br />

5734<br />

5735<br />

5736<br />

5737<br />

5738<br />

5739<br />

5740<br />

5741<br />

5742<br />

5743<br />

5744<br />

5745<br />

5746<br />

5747<br />

5748<br />

5749<br />

5750<br />

5751<br />

5752<br />

execute the command and shall return a <strong>Command</strong> Status of COMMAND PROCESSING FAILED with a<br />

Processing Error of COMMAND SYNTAX ERROR.<br />

When the output option is specified with an argument of begin, the implementation shall use the first<br />

element as the beginning element in the range of elements for which results will be returned. When the<br />

output option is specified with an argument of end, the implementation shall use the last element as the<br />

ending element in the range of elements for which results will be returned. Implementations shall then<br />

apply the count argument to determine the number of elements for which operation results are included<br />

in the <strong>Command</strong> Results. When the output option is specified with an argument of count, the<br />

implementation shall not return results for more Managed Elements than the value specified for count.<br />

Note that the value for the count argument is interpreted as an upper limit only. If the operation results<br />

contain results for fewer Managed Elements than the value specified for the count argument, the count<br />

argument will not have any effect.<br />

When the output option is specified with an argument of order and the value selected for order is<br />

default, the implementation shall return results in the natural order for the class. When the output<br />

option is specified with an argument of order and the value selected for order is reverse, the<br />

implementation shall return results in reverse of the natural order for the class. If the end argument is not<br />

specified, the implementation shall behave as if the begin argument was specified. If the<br />

order=reverse argument is not specified, the implementation shall behave as if order=default was<br />

specified. Thus the default behavior is to return elements according to their natural order.<br />

The number argument allows a user to select a range of Managed Elements. The value of the number<br />

argument is in the following format:<br />

-<br />

Range selection is inclusive of the start and ending identifier. Any non-negative integer is an acceptable<br />

value for the starting identifier and ending identifier. If the number argument is specified<br />

with a value for the starting identifier or ending identifier that is not a non-negative<br />

integer, the implementation shall return a <strong>Command</strong> Status of COMMAND PROCESSING FAILED and a<br />

Processing Error of INVALID ARGUMENT. When the output option is specified with an argument of<br />

number, the implementation shall select the range of instances identified by starting identifier<br />

through the ending identifier, inclusive from the list of instances for which results are contained in<br />

the operation results. If the value specified for the starting identifier is greater than the value<br />

specified for the ending identifier, the implementation shall return a <strong>Command</strong> Status of<br />

COMMAND PROCESSING FAILED and a Processing Error of INVALID ARGUMENT. If the value for the<br />

ending identifier is greater than the number of elements in the list of operation results, the<br />

implementation shall select the last element in the list of operation results as the end element in the range<br />

for which results will be returned. If the value for the starting identifier is greater than the number<br />

of elements in the list of operation results, the implementation shall not return results for any Managed<br />

Elements.<br />

The following examples are provided for informational purposes and do not constitute additional<br />

constraints on the implementation. For these examples, assume there are nine instances of a class<br />

where the natural ordering of their results is UFcT1, UFcT3, UFcT4, UFcT5, UFcT6, UFcT7, UFcT8,<br />

UFcT9, UFcT10. Note that the results do not contain an instance of UFcT2 in this example.<br />

EXAMPLE 1:<br />

- o begin<br />

begin is the only argument to the output option. The implementation will select instance<br />

UFcT1 as the beginning element for the range of results. The count argument is not<br />

specified, so the default value of "all" is used. The implementation will select all elements,<br />

starting at UFcT1. The order argument is not specified, so the default ordering will be<br />

used. Thus, results will be returned in the default ordering of UFcT1, UFcT3, UFcT4,<br />

UFcT5, UFcT6, UFcT7, UFcT8, UFcT9, UFcT10.<br />

138 Version 1.0.2


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

5753<br />

5754<br />

5755<br />

5756<br />

5757<br />

5758<br />

5759<br />

5760<br />

5761<br />

5762<br />

5763<br />

5764<br />

5765<br />

5766<br />

5767<br />

5768<br />

5769<br />

5770<br />

5771<br />

5772<br />

5773<br />

5774<br />

5775<br />

5776<br />

5777<br />

5778<br />

5779<br />

5780<br />

5781<br />

5782<br />

5783<br />

5784<br />

EXAMPLE 2:<br />

EXAMPLE 3:<br />

EXAMPLE 4:<br />

EXAMPLE 5:<br />

EXAMPLE 6:<br />

- o begin,count=3<br />

The implementation will select instance UFcT1 as the beginning element for the range of<br />

results. The count is specified with a value of 3, so the implementation will select the first<br />

three instances. The order argument is not specified, so the default ordering will be used.<br />

Thus, results will be returned in the default ordering of UFcT1, UFcT3, UFcT4.<br />

-o end<br />

end is the only argument to the output option. The implementation will select instance<br />

UFcT10 as the end element for the range of results. The count argument is not specified,<br />

so the default value of "all" is used. The implementation will select all elements, ending at<br />

UFcT10. The order argument is not specified, so the default ordering will be used. Thus,<br />

results will be returned in the default ordering of UFcT1, UFcT3, UFcT4, UFcT5, UFcT6,<br />

UFcT7, UFcT8, UFcT9, UFcT10.<br />

-o end,count=3<br />

end is specified, so the implementation will select instance UFcT10 as the end element for<br />

the range of results. The count argument is specified with a value of 3, so the<br />

implementation will select the last three elements ending at UFcT10. The order argument<br />

is not specified, so the default ordering will be used. Thus, results will be returned in the<br />

default ordering of UFcT8, UFcT9, UFcT10.<br />

-o end,order=reverse<br />

As in EXAMPLE 3, the implementation will return results for all instances. However, they<br />

will be returned in the reverse order of UFcT10…UFcT3, UFcT1.<br />

-o number=(1-5)<br />

The implementation will select the first item in the list of operation results as the first<br />

element to include in the range of results. The implementation will select the fifth item in<br />

the list of operation results as the last element to include in the range of results. The<br />

implementation will include all of the elements in between. The results will be returned as<br />

UFcT1, UFcT3, UFcT4, UFcT5, UFcT6.<br />

5785<br />

5786<br />

5787<br />

5788<br />

5789<br />

5790<br />

5791<br />

5792<br />

5793<br />

5794<br />

7.10.3.5 Output Verbosity<br />

The terse, verbose, and error arguments are used to specify the level of detail an implementation<br />

returns when the output format is "text". If the implementation receives a command with the output<br />

option specified with more than one of the terse, error, and verbose arguments specified, the<br />

implementation shall not execute the command and shall return a <strong>Command</strong> Status of COMMAND<br />

PROCESSING FAILED with a Processing Error of COMMAND SYNTAX ERROR.<br />

The terse, verbose, and error arguments have no effect when the output format is a structured<br />

output format. When the output format in effect for a command is a structured output and the terse,<br />

verbose, and error arguments are in effect for a command, the terse, verbose, and error<br />

arguments are ignored.<br />

Version 1.0.2 139


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

5795<br />

5796<br />

5797<br />

5798<br />

5799<br />

5800<br />

5801<br />

5802<br />

5803<br />

5804<br />

5805<br />

5806<br />

5807<br />

5808<br />

5809<br />

When the output format for a command is "text" and the output option is specified with an argument of<br />

terse, the implementation shall return <strong>Command</strong> Status that includes only the Status Tag data element,<br />

unless a processing error or execution error occurs, in which case the implementation shall return the<br />

Processing Error Tag or Job Error data element as appropriate to the error that occurred.<br />

When the output format for a command is "text" and the output option is specified with an argument of<br />

error, the implementation shall return <strong>Command</strong> Status if an error occurs in processing the command<br />

and shall not return <strong>Command</strong> Status if an error does not occur in processing the command.<br />

When the output format for a command is "text" and the output option is specified with an argument of<br />

verbose, the implementation shall return <strong>Command</strong> Status that includes the Status Tag. If a processing<br />

error or execution error occurs, the implementation shall return the Processing Error Tag or Job Error<br />

data element as appropriate to the error that occurred. The implementation may return Message data<br />

elements.<br />

304HTable 17 lists the supported arguments for the output option that control the level of detail returned by a<br />

command when the output format is text mode.<br />

Table 17 – Output Options for Controlling <strong>Command</strong> Status Output<br />

Option<br />

Description/Uses<br />

-o terse A short description of the status is returned.<br />

-o verbose <strong>Command</strong> Status and <strong>Command</strong> Results are returned.<br />

-o error <strong>Command</strong> Status is returned only if an error occurs.<br />

5810<br />

5811<br />

5812<br />

5813<br />

5814<br />

5815<br />

5816<br />

5817<br />

5818<br />

5819<br />

5820<br />

5821<br />

5822<br />

5823<br />

5824<br />

5825<br />

5826<br />

5827<br />

5828<br />

7.11 source<br />

This clauses describes the requirements for the source option.<br />

7.11.1 Forms<br />

-source<br />

7.11.2 Example Use<br />

load –source `<br />

ftp://administrator:passw0rd@myserver.com/private/administrator/`firmware.img<br />

/system1/fw1<br />

7.11.3 Behavior<br />

The source option is used to specify the source of data for a command. The source can be expressed<br />

as a UFiP if it is a Managed Element in the address space of the MAP. The source can also be expressed<br />

as a URI. The desired protocol to use for transferring the image is specified as part of the URI. This<br />

specification does not mandate support for a specific protocol. Thus the protocols supported are<br />

implementation specific. Implementations shall interpret the value specified as a URI defined according to<br />

305H9HRFC2396. The URI specified may contain a scheme that indicates the explicit service and location to be<br />

used to transfer the source data. If the URI specified is relative, then the implementation shall interpret<br />

the URI according to the rules specified in 306H5.1.3.3.<br />

7.12 version<br />

This clause describes the requirements for the version option.<br />

140 Version 1.0.2


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

5829<br />

5830<br />

5831<br />

5832<br />

7.12.1 Forms<br />

–version<br />

–v<br />

7.12.2 Example Use<br />

5833<br />

5834<br />

EXAMPLE 1:<br />

Displays the version of the start command verb.<br />

start –version<br />

5835<br />

5836<br />

5837<br />

5838<br />

5839<br />

5840<br />

5841<br />

5842<br />

5843<br />

5844<br />

5845<br />

5846<br />

5847<br />

5848<br />

5849<br />

5850<br />

5851<br />

5852<br />

5853<br />

5854<br />

5855<br />

5856<br />

5857<br />

5858<br />

5859<br />

5860<br />

5861<br />

5862<br />

5863<br />

5864<br />

7.12.3 Behavior<br />

The version option causes the <strong>Command</strong> Processor to return the version of the command verb that<br />

appears as the first term on the <strong>Command</strong> <strong>Line</strong>. CLP command verbs are assigned the version of the<br />

CLP in which they were introduced or in which they were last modified. The CLP version tracks the overall<br />

version of the syntax and is revised whenever a new CLP verb is added to the standard or when an<br />

existing verb’s syntax or semantics are revised. When the version option is used, the command verb<br />

itself is not executed.<br />

When the version option is included in a command, the implementation shall not execute the command.<br />

The implementation shall return <strong>Command</strong> Response data that identifies the version of the verb<br />

supported by the implementation.<br />

7.13 wait<br />

This clause describes the requirements for the wait option.<br />

7.13.1 Forms<br />

-wait<br />

-w<br />

7.13.2 Example Use<br />

stop –w /system3<br />

7.13.3 Behavior<br />

When the wait option is included in a command, the implementation shall not return control immediately<br />

to the Client; instead the implementation shall withhold all <strong>Command</strong> Response data and command input<br />

control until all jobs related to this command have completed. The wait option has no effect on the<br />

success or failure of the command or spawned jobs.<br />

8 SM CLP Session<br />

The following clauses describe the requirements for management of CLP sessions.<br />

8.1 Authentication, Authorization, and Audit<br />

The CLP Service relies on user accounts and user groups to control access to Managed Elements<br />

through the service. Membership in a user group conveys to the user account the management privileges<br />

associated with that user group. User accounts may be members of more than one user group. User<br />

privileges are additive—membership in a group conveys to the user all of the privileges of that group, not<br />

just the privileges that overlap with additional groups to which the user belongs.<br />

Version 1.0.2 141


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

5865<br />

5866<br />

5867<br />

5868<br />

5869<br />

5870<br />

5871<br />

5872<br />

5873<br />

5874<br />

5875<br />

5876<br />

5877<br />

5878<br />

5879<br />

The CLP defines three user groups, each with an associated set of privileges. The three CLP-defined<br />

user groups are Administrator, Operator, and Read Only. Implementations shall support the Read Only<br />

and Administrator groups. Implementations should support the Operator group. Implementations may<br />

support additional user groups.<br />

Authorization for the CLP-defined user groups is at SM CLP command granularity. If the user account for<br />

the session is a member of a group that has permission to execute a command, the implementation shall<br />

attempt to process the command. If the user account for the session is not a member of a group that has<br />

permission to execute the command, the implementation shall not complete the requested command and<br />

the implementation shall return a <strong>Command</strong> Status of COMMAND EXECUTION FAILED, a Job Error<br />

Type of Security Error, and a CIM Status of CIM_ERR_ACCESS_DENIED.<br />

307HTable 18 lists the CLP-defined user groups and the associated authorized CLP commands. For each user<br />

group listed in the "Group" column, implementations shall authorize the CLP commands listed in the "SM<br />

CLP <strong>Command</strong>s" column and shall not authorize CLP commands that do not appear in the "SM CLP<br />

<strong>Command</strong>s" column.<br />

Table 18 – <strong>Command</strong> Authorizations for CLP Groups<br />

Group<br />

Read Only<br />

Operator<br />

Administrator<br />

SM CLP <strong>Command</strong>s<br />

cd, exit, help ,show, version<br />

cd, exit, help, show, version, reset, start, stop, set, load,<br />

dump<br />

cd, exit, help, show, version, reset, start, stop, set, load,<br />

dump, create, delete<br />

5880<br />

5881<br />

5882<br />

5883<br />

5884<br />

5885<br />

5886<br />

5887<br />

5888<br />

5889<br />

5890<br />

5891<br />

5892<br />

5893<br />

5894<br />

5895<br />

5896<br />

5897<br />

5898<br />

5899<br />

5900<br />

5901<br />

5902<br />

5903<br />

Prior to allowing a Client to issue any SM CLP commands, implementations shall have an authenticated<br />

session established between the Client and the CLP Service. Every CLP session shall exist in the context<br />

of a CLP User where the context is determined when the session is established and cannot be modified<br />

for the session. Establishment of an authenticated session is implementation specific and is outside the<br />

scope of this specification.<br />

Implementations shall support adding, removing, displaying, and modifying user accounts through the<br />

CLP. Implementations shall require that a user belong to the Administrator group in order to create,<br />

delete, or modify users and assign users to groups. This is an exception to the rules in 308HTable 18. For<br />

more information, see 309H32HDSP0216. The representation of CLP users and groups is defined in 310H7HDSP1005.<br />

The definition of the initial user account for accessing the CLP is implementation specific and outside the<br />

scope of this specification.<br />

8.2 CLP Session<br />

This clause describes the CLP session.<br />

8.2.1 General<br />

A CLP session is defined as a synchronous text message service exposed by a MAP CLP Service<br />

through (or over) an underlying transport protocol. All commands and responses in a CLP session are<br />

session data messages from the standpoint of the transport, and there are no required messages in a<br />

CLP session except the termination command. A CLP session exists from the time the service is invoked<br />

by one of the methods described in the corresponding transport mapping specification until termination is<br />

requested by the Client by sending the CLP session termination command (exit).<br />

The CLP session also ends if the service terminates for any other reason. When a graceful stop of the<br />

CLP session is initiated, the implementation shall not accept any additional commands from the user and<br />

shall finish processing the pending command, if there is one. The implementation shall then end the<br />

session as if it were processing an exit command from the user. If an immediate stop of the CLP<br />

142 Version 1.0.2


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

5904<br />

5905<br />

5906<br />

5907<br />

5908<br />

5909<br />

5910<br />

5911<br />

5912<br />

5913<br />

5914<br />

5915<br />

5916<br />

5917<br />

5918<br />

5919<br />

5920<br />

5921<br />

5922<br />

5923<br />

5924<br />

5925<br />

5926<br />

5927<br />

5928<br />

5929<br />

5930<br />

5931<br />

5932<br />

5933<br />

5934<br />

5935<br />

5936<br />

5937<br />

5938<br />

5939<br />

5940<br />

5941<br />

5942<br />

5943<br />

5944<br />

5945<br />

5946<br />

session is initiated, the implementation shall immediately stop the CLP session and shall not return a<br />

<strong>Command</strong> Response to the user. When terminating the CLP session, the implementation may also<br />

terminate the transport session.<br />

8.2.2 Session Environment<br />

Interaction with the CLP Service is done within the context of a session. The CLP Service maintains a<br />

session context for each active session. The SESSION term (see 311H5.1.7) references the session in which<br />

the term is used. This provides a convenient mechanism for users to access their current session. The<br />

CLP Service maintains useful information such as the Current Default Target, the default values for<br />

options, the default target of the session, and the credentials provided when the session was initiated in<br />

the session context. Session default values are supported only on a subset of options. For a complete list<br />

of options and session attributes that implementations are required to support, see 312H32HDSP0216.<br />

Implementations shall allow users to modify settings for their own sessions irrespective of the groups of<br />

which the users are a member. This is an exception to the rules in 313HTable 18.<br />

8.2.3 CLP Service<br />

A CLP session is managed by the CLP Service. Within the scope of a single MAP/CLP Service, a user<br />

may see other user sessions if the implementation supports multiple, simultaneous sessions, and if the<br />

user has Administrator authorization.<br />

Implementations shall require that a user has Administrator authorization in order to show other user<br />

sessions, stop other user sessions, or stop the CLP Service.<br />

If a graceful stop of the CLP Service is requested, the implementation shall gracefully stop each active<br />

CLP session as described in 314H8.2.1 prior to ending the service. If an immediate stop of the CLP Service is<br />

requested, the implementation shall immediately stop each active CLP session as described in 315H8.2.1 prior<br />

to ending the service.<br />

8.2.4 Initial Prompt<br />

When a CLP session is established, implementations shall return the following string followed by the first<br />

command prompt:<br />

=== SM CLP v.. SM ME Addressing<br />

v.. ===<br />

The version string that follows "SM CLP" is in the m.n.ud format specified by the <strong>DMTF</strong> Release Process,<br />

v1.3 (316H24HDSP4004) and identifies the version of the SM CLP specification supported by the<br />

implementation. For implementations compliant with this version of the specification, has a value<br />

of 1, has a value of 0 (zero), and has a value of 0 (zero). The version string that<br />

follows "SM ME Addressing" is in the m.n.ud format specified by 317H24HDSP4004 and identifies the version<br />

of the SM ME Addressing specification supported by the implementation. is a vendordefined<br />

versioning string. The initial CLP prompt is this version information followed by a command<br />

prompt<br />

8.2.5 CLP Interaction Model<br />

The CLP observes the following interaction models documented in this clause, unless otherwise noted:<br />

• CLP Service Discovery (documented in the CLP Service Discovery <strong>Specification</strong> [318H29HDSP0218])<br />

• CLP Session Establishment<br />

• CLP <strong>Command</strong> Interaction<br />

• CLP Session Switching<br />

• CLP Session Termination<br />

Version 1.0.2 143


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

5947<br />

5948<br />

5949<br />

5950<br />

5951<br />

5952<br />

5953<br />

The following clauses define the normal and exception message sequences of each model. The following<br />

conventions are used in each of the following interaction diagrams:<br />

• Dashed horizontal lines indicate expected behavior. The exact behavior is outside the scope of<br />

this specification.<br />

• Solid horizontal lines indicate behavior required by this specification.<br />

8.2.5.1 Session Establishment<br />

319HFigure 1 provides an overview of the session establishment sequence.<br />

Supervisor TransportService CLPService<br />

Session Establishment<br />

Transport Session<br />

establishment is<br />

transport implementation<br />

dependent and is<br />

out-of-scope of the<br />

SM CLP <strong>Specification</strong>.<br />

Since the SM CLP<br />

does not perform<br />

user authentication,<br />

the Transport Service<br />

must authenticate<br />

the user.<br />

The credential prompt<br />

and acceptance<br />

sequence is<br />

shown for<br />

information only.<br />

Actual implementations<br />

may require different<br />

message exchanges<br />

to accomplish this.<br />

Request Session<br />

Authentication Prompt<br />

Session Credentials Info<br />

Transport Session Established<br />

Begin Session<br />

Initial CLP Prompt<br />

Message (Initial CLP Prompt)<br />

Initial CLP Prompt<br />

5954<br />

5955<br />

Figure 1 – Session Establishment Sequence<br />

5956<br />

5957<br />

5958<br />

8.2.5.2 <strong>Command</strong> Interaction<br />

320HFigure 2 provides an overview of the interaction between a Supervisor and a CLP Service for a CLP<br />

command. Two cases are shown. In the first case, a <strong>Command</strong> Response is returned synchronously. In<br />

144 Version 1.0.2


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

5959<br />

the second case, a command executes asynchronously and the Supervisor polls for status.<br />

Supervisor TransportService CLPService<br />

<strong>Command</strong> Interaction<br />

(Normal Case)<br />

Supervisor must<br />

wait for response<br />

Message (<strong>Command</strong>)<br />

<strong>Command</strong><br />

<strong>Command</strong> response includes<br />

command execution status,<br />

command results output, and<br />

the CLP prompt for the next<br />

command.<br />

Supervisor may<br />

send next command<br />

Message (<strong>Command</strong> Response)<br />

<strong>Command</strong> Response<br />

<strong>Command</strong> Interaction<br />

(Spawned Operation)<br />

Supervisor must<br />

wait for response<br />

Message (<strong>Command</strong>)<br />

<strong>Command</strong><br />

<strong>Command</strong> Response (OpID)<br />

Supervisor may<br />

send next command<br />

Message (<strong>Command</strong> Response(OpID))<br />

<strong>Command</strong> spawns operation<br />

to accomplish command work<br />

and returns response containing<br />

the operation ID and<br />

control to Supervisor.<br />

Supervisor can query status<br />

in a subsequent command<br />

using the spawned operation's ID.<br />

Supervisor must<br />

wait for response<br />

Message (<strong>Command</strong>: show OpID)<br />

<strong>Command</strong>: show OpID<br />

<strong>Command</strong> Response<br />

5960<br />

Supervisor may<br />

send next command<br />

Message (<strong>Command</strong> Response)<br />

5961<br />

Figure 2 – <strong>Command</strong> Interaction Sequences<br />

Version 1.0.2 145


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

5962<br />

5963<br />

5964<br />

5965<br />

5966<br />

8.2.5.3 Session Switching<br />

321HFigure 3 provides an overview of the interaction between a Supervisor and the CLP Service when an<br />

alternate text session is initiated using the CLP. The alternate text session is established within the CLP<br />

session. Therefore, while the alternate text session is established, the Supervisor interacts with the<br />

alternate text service and not the CLP Service.<br />

Supervisor TransportService CLPService<br />

AltTextService<br />

Session Switching<br />

(Switch-to Case)<br />

Supervisor must<br />

wait for response<br />

Message (<strong>Command</strong>: start console)<br />

<strong>Command</strong>: start console<br />

Switch Session<br />

Supervisor<br />

may send<br />

next command<br />

Message (Alt Service Started)<br />

Alt Service Started<br />

Begin Session<br />

Alternate Text<br />

Service defines<br />

valid message<br />

content and<br />

semantics<br />

Message (Alt Service Output)<br />

Message (Alt Service Input)<br />

Message (Alt Service Output)<br />

Alt Service Data<br />

Alt Service Data<br />

Alt Service Data<br />

Session Switching<br />

(Switch-back Case)<br />

Message ("End Session" char sequence)<br />

End Session<br />

Resume Session<br />

When CLP Service resumes<br />

CLP Session, CLP Session MUST<br />

send a CLP Prompt to Supervisor.<br />

CLP Prompt<br />

Message (CLP Prompt)<br />

5967<br />

5968<br />

Figure 3 – Session Switching Sequences<br />

146 Version 1.0.2


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

5969<br />

5970<br />

5971<br />

5972<br />

5973<br />

8.2.5.4 Session Termination<br />

322HFigure 4 provides an overview of the interaction between a Supervisor and CLP Service when a session<br />

terminates. Two cases are shown. In the first case, the Supervisor requests their own session be<br />

terminated. In the second case, a different Supervisor requests that the session of the first Supervisor be<br />

terminated.<br />

Supervisor TransportService CLPService<br />

Session Termination<br />

(Normal Case)<br />

Supervisor must<br />

wait for response<br />

Message (<strong>Command</strong>: exit)<br />

End Session<br />

<strong>Command</strong> response includes<br />

command execution status,<br />

command results output, but<br />

no CLP prompt.<br />

CLP Service then causes<br />

Transport Session to exit,<br />

dropping Supervisor's<br />

transport session.<br />

Supervisor may<br />

send next command<br />

Message (<strong>Command</strong> Response)<br />

End Transport Session<br />

<strong>Command</strong> Response<br />

End CLP Session<br />

Supervisor TransportService CLPService<br />

Session Termination<br />

(Unsolicited Case)<br />

Message (<strong>Command</strong>)<br />

A second user issues a<br />

'stop session' command for<br />

this user's CLP session.<br />

Nothing happens until<br />

next command from user.<br />

Next command from user<br />

is rejected because the<br />

session has ended.<br />

<strong>Command</strong> Response (Session Ended)<br />

Message (<strong>Command</strong> Response(Session Ended))<br />

End Transport Session<br />

End CLP Session<br />

5974<br />

5975<br />

Figure 4 – Session Termination Sequences<br />

Version 1.0.2 147


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

5976<br />

5977<br />

5978<br />

5979<br />

5980<br />

5981<br />

5982<br />

5983<br />

5984<br />

5985<br />

5986<br />

5987<br />

5988<br />

5989<br />

5990<br />

5991<br />

5992<br />

5993<br />

5994<br />

5995<br />

5996<br />

5997<br />

5998<br />

5999<br />

6000<br />

6001<br />

6002<br />

6003<br />

6004<br />

6005<br />

8.3 Transport<br />

The CLP is carried over a text message-based protocol. At present, two text message protocol mappings<br />

of the CLP are specified:<br />

• Telnet<br />

• Secure Shell (SSH)<br />

8.3.1 General<br />

CLP implementations shall support either Telnet or SSHv2, though support for SSHv2 is recommended.<br />

Implementations may support more than one message-passing mechanism for accessing the CLP<br />

Service.<br />

Implementations should provide a method for activating/enabling and deactivating/disabling the supported<br />

Telnet or SSHv2 protocol.<br />

The CLP Service exposed by the implementation shall operate the same whether invoked from an SSHloaded<br />

shell, loaded directly by the SSH daemon, operating as a subsystem, or loaded from a Telnet<br />

pTTY. This is primarily a test statement because there is nothing in Telnet or SSH that directly affects the<br />

operation of the implementation or its terminal I/O operations as seen from the transport client application.<br />

Implementations of the CLP Service shall ensure that output received by Clients of the implementation is<br />

consistent irrespective of the transport over which the implementation is accessed. For example, if the<br />

CLP Service uses a transport that inserts characters into the text stream at one end of the transport, the<br />

transport will need to remove the characters prior to presenting the text stream to the Client.<br />

8.3.2 Telnet<br />

Telnet is an IETF-defined Network Virtual Terminal (NVT) protocol that operates over the TCP transport<br />

layer. The Telnet protocol provides a standardized interface through which a program on one host (the<br />

Telnet client) can access the resources of another host (the Telnet server) as though the client were a<br />

local terminal connected to the server.<br />

The basic operational characteristics of an NVT are as follows:<br />

• The data representation is 7-bit ASCII transmitted in 8-bit bytes.<br />

• The NVT provides a local echo function.<br />

A CLP implementation over Telnet shall support the base Telnet RFC and Standards and shall support<br />

the IETF RFCs listed in 323HTable 19.<br />

Table 19 – Telnet Transport Support Requirements<br />

Number Title Author or Ed. Date Released Status<br />

STD0008<br />

RFC0854<br />

STD0008<br />

RFC0855<br />

Telnet <strong>Protocol</strong> <strong>Specification</strong><br />

Telnet Option <strong>Specification</strong>s<br />

J. Postel, J.K. Reynolds May 1, 1983 Standard<br />

J. Postel, J.K. Reynolds May 1, 1983 Standard<br />

6006<br />

6007<br />

6008<br />

6009<br />

Note that, in addition to standard NVT operation as described in 324H22HRFC0854, implementations shall<br />

respond to requests to support UTF-8.<br />

Each line should be terminated by a Carriage Return and <strong>Line</strong> Feed (UTF-8, from a Transformation<br />

Format of ISO 10646 [325H34HRFC3629]).<br />

148 Version 1.0.2


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

6010<br />

6011<br />

6012<br />

6013<br />

6014<br />

6015<br />

6016<br />

6017<br />

6018<br />

6019<br />

6020<br />

6021<br />

6022<br />

6023<br />

6024<br />

6025<br />

6026<br />

6027<br />

6028<br />

6029<br />

6030<br />

6031<br />

6032<br />

6033<br />

6034<br />

6035<br />

6036<br />

6037<br />

6038<br />

6039<br />

6040<br />

6041<br />

6042<br />

6043<br />

A CLP implementation may listen on any TCP port number. CLP TCP port numbers may be<br />

administratively set or discovered through the Service Location <strong>Protocol</strong> (SLP). See 326H29HDSP0218 for<br />

more information.<br />

8.3.3 Secure Shell (SSH) Version 2<br />

SSH is a tool for secure remote login over insecure networks. It provides an encrypted terminal session<br />

with strong authentication of both the server and client.<br />

Secure Shell provides three main capabilities:<br />

• Secure command-shell<br />

• Secure file transfer<br />

• Port forwarding<br />

SSHv2 is a protocol being defined by the 13HIETF in the 14HSECSH Working Group.<br />

The SSHv2 protocol is described in the following five core documents. A CLP implementation over<br />

SSHv2 shall support the base SSHv2 RFC and Standards and the following IETF RFCs and Internet<br />

Drafts:<br />

• Secure Shell (SSH) <strong>Protocol</strong> Architecture (327H17HRFC4251)—Describes the overall design of<br />

SSH.<br />

• Secure Shell (SSH) Transport Layer <strong>Protocol</strong> (328H18HRFC4253)—Provides a single, full-duplex,<br />

byte-oriented connection between client and server, with privacy, integrity, server<br />

authentication, and man-in-the-middle protection.<br />

• Secure Shell (SSH) Authentication <strong>Protocol</strong> (329H19HRFC4252)—Identifies the client to the server.<br />

• Secure Shell (SSH) Connection <strong>Protocol</strong> (330H20HRFC4254)—Provides richer, application-support<br />

services over the transport pipe, such as channel multiplexing, flow control, remote program<br />

execution, signal propagation, connection forwarding, and so on.<br />

• Secure Shell (SSH) <strong>Protocol</strong> Assigned Numbers (331H21HRFC4250)—Lists various constant<br />

assignments made in the other drafts.<br />

The Secure command-shell mode of operation shall be supported by a CLP implementation.<br />

A CLP implementation is not required to listen on any specific predefined TCP port number. A CLP TCP<br />

port number may be administratively set or discovered through the SLP. See 332H29HDSP0218 for more<br />

information.<br />

No specific encryption algorithms or authentication protocols are specified in this specification. CLP will<br />

rely on the referenced SSH specifications to identify required techniques.<br />

When an implementation supports SSH, the implementation shall support a mechanism to restrict access<br />

to the implementation using tunneled protocols, and the factory-default setting shall disable Telnet as a<br />

tunneled protocol.<br />

Version 1.0.2 149


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

6044<br />

6045<br />

6046<br />

6047<br />

6048<br />

Annex A<br />

(normative)<br />

SM CLP <strong>Command</strong> Grammar in ABNF Notation (333H8HRFC2234)<br />

6049<br />

6050<br />

6051<br />

6052<br />

6053<br />

6054<br />

6055<br />

6056<br />

6057<br />

6058<br />

6059<br />

6060<br />

6061<br />

6062<br />

6063<br />

6064<br />

6065<br />

6066<br />

6067<br />

6068<br />

6069<br />

6070<br />

6071<br />

6072<br />

6073<br />

6074<br />

6075<br />

6076<br />

6077<br />

6078<br />

6079<br />

6080<br />

6081<br />

6082<br />

6083<br />

6084<br />

6085<br />

6086<br />

6087<br />

6088<br />

6089<br />

6090<br />

6091<br />

;;<br />

;; Note that line joining is done before tokenization, the "`" (backquote)<br />

character ;; at the end of the line indicates that the current line is continued<br />

the following ;; line.<br />

;;<br />

;; WSP, CR, LF, CRLF, SP, DIGIT, ALPHA, DQUOTE, VCHAR are part of core rules<br />

;; defined in RFC2234.<br />

;;<br />

tsep = WSP ; command term separator<br />

eol = CR / LF / CRLF ; end of line token<br />

dot = "."<br />

dotdot = ".."<br />

splat = "*"<br />

addrTermSeparator = "/" / "\" ; address term separator<br />

;;<br />

;; SM CLP command set:<br />

;;<br />

;; General command grammar rules:<br />

;; verb: always be the 1st term on the command line.<br />

;; target: appears as the 1st term that is not an option.<br />

;; options: recognized by the option indication "-", appear after verb.<br />

;; properties: appear after target.<br />

;;<br />

;; Example: verb [options] [target] [properties]<br />

;;<br />

<strong>Command</strong>s = cd-cmd<br />

/ create-cmd<br />

/ delete-cmd<br />

/ dump-cmd<br />

/ exit-cmd<br />

/ help-cmd<br />

/ load-cmd<br />

/ reset-cmd<br />

/ set-cmd<br />

/ show-cmd<br />

/ start-cmd<br />

/ stop-cmd<br />

/ version-cmd<br />

/ OEM-cmd<br />

;;<br />

;; SM CLP command verb set:<br />

150 Version 1.0.2


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

6092<br />

6093<br />

6094<br />

6095<br />

6096<br />

6097<br />

6098<br />

6099<br />

6100<br />

6101<br />

6102<br />

6103<br />

6104<br />

6105<br />

6106<br />

6107<br />

6108<br />

6109<br />

6110<br />

6111<br />

6112<br />

6113<br />

6114<br />

6115<br />

6116<br />

6117<br />

6118<br />

6119<br />

6120<br />

6121<br />

6122<br />

6123<br />

6124<br />

6125<br />

6126<br />

6127<br />

6128<br />

6129<br />

6130<br />

6131<br />

6132<br />

6133<br />

6134<br />

6135<br />

6136<br />

6137<br />

6138<br />

6139<br />

6140<br />

6141<br />

;;<br />

Verbs = cd-verb<br />

/ create-verb<br />

/ delete-verb<br />

/ dump-verb<br />

/ exit-verb<br />

/ help-verb<br />

/ load-verb<br />

/ reset-verb<br />

/ set-verb<br />

/ show-verb<br />

/ start-verb<br />

/ stop-verb<br />

/ version-verb<br />

/ OEM-verb<br />

;;<br />

;; SM CLP command options:<br />

;;<br />

;; General option grammar rules:<br />

;; option = "-" optName [optArg]<br />

;; options = option *(tsep option)<br />

;;<br />

Options = all-option<br />

/ destination-option<br />

/ display-option<br />

/ examine-option<br />

/ force-option<br />

/ help-option<br />

/ keep-option<br />

/ level-option<br />

/ output-option<br />

/ source-option<br />

/ version-option<br />

/ wait-option<br />

/ OEM-options<br />

;;<br />

;; SM CLP command properties:<br />

;;<br />

property = propertyName<br />

propertyArrayName = propertyName "[" 1*DIGIT "]"<br />

properties = 1*(tsep propertyName)<br />

propertyValue = 1*VCHAR / quoted-string<br />

; visible char<br />

propertyValues = [propertyValue] *("," [propertyValue]) ; for array data type<br />

quoted-string = DQUOTE *(qdtext / ("`" DQUOTE)) DQUOTE<br />

qdtext = %x21 / %x23-7E<br />

; any printable char except DQUOTE<br />

property-assignValue = propertyName "=" propertyValues<br />

property-assignValue =/ propertyArrayName "=" propertyValue<br />

property-selectValue = (propertyName / propertyArrayName) "==" propertyValue<br />

Version 1.0.2 151


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

6142<br />

6143<br />

6144<br />

6145<br />

6146<br />

6147<br />

6148<br />

6149<br />

6150<br />

6151<br />

6152<br />

6153<br />

6154<br />

6155<br />

6156<br />

6157<br />

6158<br />

6159<br />

6160<br />

6161<br />

6162<br />

6163<br />

6164<br />

6165<br />

6166<br />

6167<br />

6168<br />

6169<br />

6170<br />

6171<br />

6172<br />

6173<br />

6174<br />

6175<br />

6176<br />

6177<br />

6178<br />

6179<br />

6180<br />

6181<br />

6182<br />

6183<br />

6184<br />

6185<br />

6186<br />

6187<br />

6188<br />

6189<br />

6190<br />

6191<br />

6192<br />

6193<br />

properties-assignValues = 1*(tsep property-assignValue)<br />

;;<br />

;; Detail option rule definitions:<br />

;; Note that denotes an element referenced in this document:<br />

;; 1. is defined in RFC2396.<br />

;; 2. , , and are defined by the SM ME Addressing<br />

<strong>Specification</strong>.<br />

;; 3. is defined in Appendix A of CIM <strong>Specification</strong> V2.2.<br />

;; 4. is a property in CIM_Product class.<br />

;;<br />

all-option = tsep all-optionName<br />

destination-option = tsep destination-optionName tsep ( / )<br />

display-option = tsep display-optionName tsep display-optionArgs<br />

*("," display- optionArgs)<br />

display-optionPropArgProperty = (propertyName)<br />

display-optionArgs = *( "all" / "verbs" / display-optionAssocArg /<br />

display-optionTargetsArg / display-optionPropArg )<br />

display-optionAssocArg = "associations" ["=" (className /<br />

("("(className *("," className))")")) ]<br />

display-optionTargetsArg = "targets" ["=" ( /<br />

("(" *("," )")")) ]<br />

display-optionPropArg = "properties" ["=" display-optionPropArgProperty /<br />

( "(" display-optionPropArgProperty *("," display-optionPropArgProperty ) ")" )]<br />

examine-option = tsep examine-optionName<br />

force-option = tsep force-optionName<br />

help-option = tsep help-optionName<br />

keep-option = tsep keep-optionName tsep 1*DIGIT ["." 1*DIGIT]<br />

level-option = tsep level-optionName tsep (1*DIGIT / "all")<br />

output-option = tsep output-optionName tsep output-optionArgs<br />

*("," output-optionArgs)<br />

output-optionFormatArg = ("text" / "keyword" / "clpxml")<br />

output-optionArgs = *( ("format" "=" output-optionFormatArg /<br />

( "(" output-optionFormatArg ")" ) )<br />

/ ("error" / "terse" / "verbose")<br />

/ ("language" "=" 3ALPHA / ( "(" 3ALPHA ")" ) )<br />

/ ("begin" / "end")<br />

/ ("order" "=" ("default" / "reverse") / ( "(" "default" / "reverse" ")" ))<br />

/ ("number" "=" (1*DIGIT "-" 1*DIGIT) / ( "(" (1*DIGIT "-" 1*DIGIT) ")" ))<br />

/ ("count" "=" ("all" / 1*DIGIT)) / ( "(" ("all" / 1*DIGIT) ")" ))<br />

source-option = tsep source-optionName tsep ( / )<br />

version-option = tsep version-optionName<br />

wait-option = tsep wait-optionName<br />

stateValue = propertyValue<br />

;;<br />

;; Common options applicable to all verbs:<br />

;;<br />

common-options = *(examine-option / help-option / keep-option / output-options /<br />

version-option / OEM-options)<br />

152 Version 1.0.2


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

6194<br />

6195<br />

6196<br />

6197<br />

6198<br />

6199<br />

6200<br />

6201<br />

6202<br />

6203<br />

6204<br />

6205<br />

6206<br />

6207<br />

6208<br />

6209<br />

6210<br />

6211<br />

6212<br />

6213<br />

6214<br />

6215<br />

6216<br />

6217<br />

6218<br />

6219<br />

6220<br />

6221<br />

6222<br />

6223<br />

6224<br />

6225<br />

6226<br />

6227<br />

6228<br />

6229<br />

6230<br />

6231<br />

6232<br />

6233<br />

6234<br />

6235<br />

6236<br />

6237<br />

6238<br />

6239<br />

6240<br />

6241<br />

6242<br />

6243<br />

6244<br />

;;<br />

;; <strong>Command</strong> target term formations:<br />

;;<br />

all-legal-targets = target-Assoc / target-Instance / target-UFsT<br />

target-Instance = tsep targetPath<br />

/ tsep OEM-target<br />

/ tsep "SESSION"<br />

target-UfsT = tsep [addrTermSeparator] [addrTerm *(addrTermSeparator addrTerm)<br />

addrTermSeparator] UFsT<br />

UFsT = splat ; UFcT*<br />

target-Assoc = target-AssocSingleInstance / target-AssocMultiInstance<br />

target-AssocSingleInstance = tsep targetPath "=>" className "=>" targetPath<br />

target-AssocMultiInstance = tsep targetPath "=>" className<br />

targetPath = [addrTermSeparator] [addrTerm *(addrTermSeparator addrTerm)]<br />

addrTerm = (dot / dotdot / )<br />

;;<br />

;; Top-level command line production<br />

;;<br />

clp-command-line = clp-verb-forms / oem-cmd<br />

;;<br />

;; The CLP command formations<br />

;;<br />

clp-verb-forms = cd-cmd / create-cmd / delete-cmd / dump-cmd / exit-cmd<br />

clp-verb-forms =/ help-cmd / load-cmd / reset-cmd / set-cmd / show-cmd<br />

clp-verb-forms =/ start-cmd / stop-cmd / version-cmd<br />

;;<br />

;; Per-command formations:<br />

;;<br />

cd-cmd = cd-verb [cd-options] [target-Instance] eol<br />

cd-options = *(wait-option / common-options)<br />

create-cmd = create-verb [create-options] (target-Instance / target-UFsT)<br />

properties-assignValues eol<br />

create-cmd =/ create-verb [create-options] source-option [create-options]<br />

(target-Instance / target-UFsT) eol<br />

create-cmd =/ create-verb (help-option / version-option) eol<br />

create-options = *(wait-option / common-options)<br />

delete-cmd = delete-verb [delete-options] [target-Instance / target-UFsT] eol<br />

delete-options = *(force-option / wait-option / common-options)<br />

dump-cmd = dump-verb [dump-options] destination-option [dump-options] [target-<br />

Instance] eol<br />

dump-cmd =/ dump-verb (help-option / version-option) eol<br />

dump-options = *(force-option / wait-option / common-options)<br />

exit-cmd = exit-verb [exit-options] eol<br />

exit-options = common-options<br />

Version 1.0.2 153


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

6245<br />

6246<br />

6247<br />

6248<br />

6249<br />

6250<br />

6251<br />

6252<br />

6253<br />

6254<br />

6255<br />

6256<br />

6257<br />

6258<br />

6259<br />

6260<br />

6261<br />

6262<br />

6263<br />

6264<br />

6265<br />

6266<br />

6267<br />

6268<br />

6269<br />

6270<br />

6271<br />

6272<br />

6273<br />

6274<br />

6275<br />

6276<br />

6277<br />

6278<br />

6279<br />

6280<br />

6281<br />

6282<br />

6283<br />

6284<br />

6285<br />

6286<br />

6287<br />

6288<br />

6289<br />

6290<br />

6291<br />

6292<br />

6293<br />

6294<br />

6295<br />

6296<br />

help-cmd = help-verb [help-options] [1*VCHAR *( tsep 1*VCHAR)] eol<br />

help-options = *(wait-option / common-options)<br />

load-cmd = load-verb [load-options] source-option [load-options] [target-Instance]<br />

eol<br />

load-cmd =/ load-verb (help-option / version-option) eol<br />

load-options = *(force-option / wait-option / common-options)<br />

reset-cmd = reset-verb [reset-options] [target-Instance] eol<br />

reset-options = *(force-option / wait-option / common-options)<br />

set-cmd = set-verb [set-options] [target-Instance / target-AssocSingleInstance]<br />

properties-assignValues eol<br />

set-options = *(force-option / wait-option / common-options)<br />

show-cmd = show-verb [level-option] [show-options] [level-option] [target-<br />

Instance] *(propertyName / property-selectValue) eol<br />

show-cmd =/ show-verb [show-options] [target-UFsT / target-Assoc] *(propertyName /<br />

property-selectValue) eol<br />

show-options = *(all-option / display-option / force-option / wait-option /<br />

common-options)<br />

start-cmd = start-verb [start-options] [target-Instance] eol<br />

start-options = *(force-option / wait-option / common-options)<br />

stop-cmd = stop-verb [stop-options] [target-Instance] eol<br />

stop-options = *(force-option / wait-option / common-options)<br />

version-cmd = version-verb [version-options] eol<br />

version-options = *(wait-option / common-options)<br />

;;<br />

;; OEM syntax:<br />

;;<br />

OEM-cmd<br />

= "OEM" eol<br />

OEM-verb<br />

= "OEM"<br />

OEM-target = tsep "OEM"<br />

OEM-options = tsep *(OEM-optionName [tsep OEM-optionArgs])<br />

OEM-optionName = "-OEM"<br />

OEM-optionArgs = "OEM"<br />

OEM-propertyName = tsep "OEM"<br />

;;<br />

;; Verb names:<br />

;;<br />

cd-verb = "cd" ; Note that ABNF strings are case-insensitive<br />

create-verb = "create"<br />

delete-verb = "delete"<br />

dump-verb = "dump"<br />

exit-verb = "exit"<br />

help-verb = "help"<br />

load-verb = "load"<br />

154 Version 1.0.2


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

6297<br />

6298<br />

6299<br />

6300<br />

6301<br />

6302<br />

6303<br />

6304<br />

6305<br />

6306<br />

6307<br />

6308<br />

6309<br />

6310<br />

6311<br />

6312<br />

6313<br />

6314<br />

6315<br />

6316<br />

6317<br />

6318<br />

reset-verb = "reset"<br />

set-verb<br />

= "set"<br />

show-verb = "show"<br />

start-verb = "start"<br />

stop-verb = "stop"<br />

version-verb = "version"<br />

;;<br />

;; Option names:<br />

;;<br />

all-optionName<br />

= "-a" ["ll"]<br />

destination-optionName = "-destination"<br />

display-optionName = "-d" ["isplay"]<br />

examine-optionName = "-x" / "-examine"<br />

force-optionName = "-f" ["orce"]<br />

help-optionName = "-h" ["elp"]<br />

keep-optionName = "-k" ["eep"]<br />

level-optionName = "-l" ["evel"]<br />

output-optionName = "-o" ["utput"]<br />

source-optionName = "-source"<br />

version-optionName = "-v" ["ersion"]<br />

wait-optionName = "-w" ["ait"]<br />

6319<br />

Version 1.0.2 155


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

6320<br />

6321<br />

6322<br />

6323<br />

6324<br />

Annex B<br />

(informative)<br />

W3C Universal Resource Identifiers (URI)<br />

6325<br />

6326<br />

6327<br />

6328<br />

6329<br />

6330<br />

URIs are expected to be used as values for some keyword=value pairs, option arguments, and option<br />

argument values. For instance, an implementation may use a URI as a boot device as the location of the<br />

data source for applying a firmware image. The implementation is expected to validate the URI and<br />

ensure that the schema name included in the URI is valid for the given implementation. The CLP itself<br />

does not require any specific schema or enforce any specific URIs, but they are expected to adhere to<br />

334H9HRFC2396, 335H27HRFC2718, and 336H28HRFC2717.<br />

156 Version 1.0.2


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

6331<br />

6332<br />

6333<br />

6334<br />

6335<br />

Annex C<br />

(informative)<br />

W3C Extensible Markup Language (XML)<br />

6336<br />

6337<br />

6338<br />

6339<br />

6340<br />

The CLP supports generating XML output data (Extensible Markup Language [XML] 1.0, 3 rd edition), as<br />

well as keyword mode and modes for plain text output. XML was chosen as a supported output format<br />

due to its acceptance in the industry, establishment as a standard, and the need for Clients to import data<br />

obtained through the CLP into other applications. For more information on the XML output mode, see<br />

337H5.2.4.3.3.<br />

Version 1.0.2 157


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

6341<br />

6342<br />

6343<br />

6344<br />

6345<br />

Annex D<br />

(informative)<br />

POSIX Utility Conventions<br />

6346<br />

6347<br />

6348<br />

6349<br />

6350<br />

6351<br />

6352<br />

6353<br />

6354<br />

6355<br />

6356<br />

6357<br />

6358<br />

6359<br />

6360<br />

6361<br />

6362<br />

6363<br />

6364<br />

6365<br />

6366<br />

6367<br />

6368<br />

6369<br />

6370<br />

6371<br />

6372<br />

6373<br />

6374<br />

6375<br />

6376<br />

6377<br />

6378<br />

6379<br />

6380<br />

6381<br />

6382<br />

The POSIX Utility Conventions (IEEE Std. 1003.1) were considered when defining the CLP syntax. The<br />

CLP syntax adheres to as many of the POSIX Utility Guidelines as are feasible, but it does not conform to<br />

the POSIX Utility Argument Syntax.<br />

The POSIX Utility Argument Syntax was found inappropriate for two reasons. First, it was imperative to<br />

have the command target term be deterministic in order to accommodate low-end implementations.<br />

Second, in order to provide a consistent, predictable mapping to the CIM Schema, the CLP syntax uses<br />

the convention that option terms apply to command verbs and parameter terms apply to the command<br />

target, using the "keyword=value" model.<br />

The CLP syntax compares to the thirteen POSIX Utility Guidelines as follows:<br />

Adhering to Guideline 1 is a goal of the CLP, because it is desirable to keep the verb names short.<br />

However, the adopted extensibility conventions imply that it is expected that any extensions will find it<br />

problematic to adhere to Guideline 1.<br />

The CLP syntax currently has no numbers in the commands, nor are verbs required to be entered only in<br />

lowercase. Therefore, a user or script that adheres to Guideline 2 could find CLP implementations<br />

compatible.<br />

The CLP allows both a short name form and long name form for option names. Therefore any human<br />

user or script that is accustomed to one-letter option names, as established in Guideline 3, will find CLP<br />

implementations compatible. Allowing whole word options not only allows scripts to be more readable, but<br />

allows a shorter learning curve of the CLP. The "W" option is not reserved by the CLP. CLP option names<br />

are case insensitive.<br />

The CLP adheres to Guideline 4: all CLP options are preceded by the ‘-‘ (hyphen) delimiter character.<br />

The CLP does not allow grouping of options behind a single hyphen and therefore does not adhere to<br />

Guideline 5. Most options require a parameter, and the decision to allow full-length option names<br />

eliminated the ability to adhere to this guideline.<br />

The CLP adheres to Guideline 6 and recognizes the space character as the command line term delimiter.<br />

The CLP adheres to Guideline 7: each option either always requires an argument or never requires an<br />

argument.<br />

The CLP recognizes the use of the comma character to separate items in a list in a single argument string<br />

for both options and properties and therefore adheres to Guideline 8 with one caveat. A comma character<br />

at the beginning or end of the option argument string is not inherently illegal and is command dependent.<br />

The CLP adheres to Guideline 9: the command line form is in the order of Verb, Option, Target, Property.<br />

The CLP does not recognize the "--" (hyphen hyphen) term as an "end of options" indicator, nor as a<br />

"long option" indicator (as is used in some UNIX utilities). Therefore, the CLP does not adhere to<br />

Guideline 10.<br />

The CLP allows options to be specified in any order, but it does not allow options to appear twice on any<br />

command line, nor does it allow mutually exclusive options or options that do not apply in the current<br />

context. Therefore, the CLP adheres to part of Guideline 11.<br />

158 Version 1.0.2


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

6383<br />

6384<br />

6385<br />

6386<br />

6387<br />

6388<br />

When examining Guideline 12, the CLP uses keyword=value pairs for operands that require assignment,<br />

and just keywords for operands that do not. Because these are often CIM Schema properties, they are<br />

not order dependent. Therefore, the positions of operands do not matter. This is true regardless of the<br />

CLP command.<br />

Guideline 13 is out of scope for the CLP. The CLP does not allow in-stream input and therefore has no<br />

need for an input operand.<br />

Version 1.0.2 159


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

6389<br />

6390<br />

6391<br />

6392<br />

6393<br />

Annex E<br />

(informative)<br />

Conventions<br />

6394<br />

6395<br />

6396<br />

6397<br />

6398<br />

The terms "implicit" and "default" are used in this document to describe aspects of the protocol as follows:<br />

Functions or behaviors are defined to be "implicit" if those functions or behaviors are an integral part of<br />

the protocol definition and cannot be overridden by command or command options.<br />

Functions or behaviors are defined to be "default" if those functions or behaviors are assumed to be in<br />

effect unless overridden or specified by the user through a command or command option.<br />

6399<br />

160 Version 1.0.2


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

6400<br />

6401<br />

6402<br />

6403<br />

6404<br />

Annex F<br />

(informative)<br />

Notation<br />

6405<br />

6406<br />

6407<br />

6408<br />

6409<br />

6410<br />

6411<br />

6412<br />

Regular Expression (regex) and Augmented Backus-Naur Form (ABNF) are used in this document to<br />

describe various aspects of the SM CLP specification. A complete SM CLP grammar in ABNF is in<br />

338HAnnex A.<br />

For readability, this specification documents all verb, option, target, and property names in lowercase.<br />

When command option names have multiple, supported forms, each form is listed explicitly, separated by<br />

a comma. For example, the level command option has two acceptable forms: "-l" and "-level". The<br />

specification text lists these alternatives as "-l, -level".<br />

The following conventions are used to indicate specification elements:<br />

6413<br />

6414<br />

courier new<br />

italicized<br />

Used to indicate literal characters in the syntax expression and in examples.<br />

Used to indicate the type or description of data to be inserted.<br />

6415<br />

< > Used to indicate terms in an expression.<br />

6416<br />

Capitalization<br />

Used to indicate defined terms.<br />

6417<br />

6418<br />

6419<br />

6420<br />

6421<br />

6422<br />

6423<br />

6424<br />

6425<br />

Examples are provided for informative purposes and are shown using Courier New font. When the text<br />

provides an example of a CLP command and response, the CLP <strong>Command</strong> <strong>Line</strong> is emphasized using<br />

bold text. The command output is shown in regular text font.<br />

Examples are for information only. When an example contradicts specification text elsewhere in the<br />

document, the specification text is the authority. Examples are shown in this font and format. Each<br />

example consists of a description of the example, the CLP <strong>Command</strong> <strong>Line</strong> emphasized using bold text,<br />

and the <strong>Command</strong> Response in flat text. General rules and requirements for the <strong>Command</strong> Response are<br />

specified in 339H5.1.10. When examples do not include the output option with a format argument, it is<br />

assumed that session default format is that of the example.<br />

6426<br />

Version 1.0.2 161


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

6427<br />

6428<br />

6429<br />

6430<br />

6431<br />

Annex G<br />

(informative)<br />

Change History<br />

Version 1.02 2007-02-19<br />

Formatted to conform to ISO/IEC<br />

Directives, Part 2: Rules for the<br />

structure and drafting of International<br />

Standards<br />

162 Version 1.0.2


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

6432<br />

6433<br />

6434<br />

6435<br />

6436<br />

Annex H<br />

(informative)<br />

Acknowledgements<br />

6437<br />

6438<br />

6439<br />

6440<br />

6441<br />

6442<br />

6443<br />

6444<br />

6445<br />

6446<br />

6447<br />

6448<br />

6449<br />

6450<br />

6451<br />

The authors wish to acknowledge the following people.<br />

Editors:<br />

• Aaron Merkin, IBM<br />

• Perry Vincent, Intel<br />

Contributors:<br />

• Bob Blair, Newisys<br />

• Greg Dake, IBM<br />

• Jon Hass, Dell<br />

• Jeff Hilland, HP<br />

• Steffen Hulegaard, OSA Technologies<br />

• Arvind Kumar, Intel<br />

• Jeff Lynch, IBM<br />

• Christina Shaw, HP<br />

• Enoch Suen, Dell<br />

• Michael Tehranian, Sun<br />

6452<br />

Version 1.0.2 163


<strong>Server</strong> <strong>Management</strong> <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (SM CLP) <strong>Specification</strong><br />

6453<br />

6454<br />

6455<br />

6456<br />

6457<br />

Annex I<br />

(informative)<br />

Bibliography<br />

6458<br />

6459<br />

6460<br />

6461<br />

6462<br />

6463<br />

6464<br />

6465<br />

6466<br />

6467<br />

6468<br />

6469<br />

6470<br />

6471<br />

6472<br />

6473<br />

6474<br />

6475<br />

6476<br />

6477<br />

6478<br />

6479<br />

6480<br />

6481<br />

6482<br />

6483<br />

6484<br />

6485<br />

15HIEEE Std 1003.1, "POSIX Utility Conventions", The Open Group Base <strong>Specification</strong>s Issue 6, 2004<br />

Edition<br />

World Wide Web Consortium (W3C), 16HExtensible Markup Language (XML) 1.0 (Third Edition), February<br />

2004<br />

IETF, 17HRFC4251, Secure Shell (SSH) <strong>Protocol</strong> Architecture, January 2006<br />

IETF, 18HRFC4253, Secure Shell (SSH) Transport Layer <strong>Protocol</strong>, January 2006<br />

IETF, 19HRFC4252, Secure Shell (SSH) Authentication <strong>Protocol</strong>, January 2006<br />

IETF, 20HRFC4254, Secure Shell (SSH) Connection <strong>Protocol</strong>, January 2006<br />

IETF, 21HRFC4250, Secure Shell (SSH) <strong>Protocol</strong> Assigned Numbers, January 2006<br />

IETF, 22HRFC0854, Telnet <strong>Protocol</strong> <strong>Specification</strong>, May 1983<br />

IETF, 23HRFC0855, Telnet Option <strong>Specification</strong>s, May 1983<br />

<strong>DMTF</strong>, 24HDSP4004, <strong>DMTF</strong> Release Process, version 1.6.0, January 2007<br />

OMG, 25HUnified Modeling Language (UML) from the Open <strong>Management</strong> Group (OMG)<br />

<strong>DMTF</strong>, 26HDSP2001, Systems <strong>Management</strong> Architecture for <strong>Server</strong> Hardware (SMASH) <strong>Command</strong> <strong>Line</strong><br />

<strong>Protocol</strong> (CLP) Architecture White Paper, version 1.0.1, October 2006<br />

IETF, 27HRFC2718, Guidelines for new URL Schemes, November 1999<br />

IETF, 28HRFC2717, Registration Procedures for URL Scheme Names, November 1999<br />

<strong>DMTF</strong>, 29HDSP0218, <strong>Server</strong> <strong>Management</strong> (SM) <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (CLP) Discovery Using the Service<br />

Location <strong>Protocol</strong> (SLP), version 1.0, 2005<br />

IETF, 30HRFC2821, Simple Mail Transfer <strong>Protocol</strong>, April 2001<br />

<strong>DMTF</strong>, 31HDSP0207, Web-Based Enterprise <strong>Management</strong> (WBEM) Universal Resource Identifier (URI)<br />

Mapping <strong>Specification</strong>, version 1.0, January 2006<br />

<strong>DMTF</strong>, 32HDSP0216, <strong>Command</strong> <strong>Line</strong> <strong>Protocol</strong> (CLP)-to-Common Information Model (CIM) Mapping<br />

<strong>Specification</strong>, version 1.0, 2005<br />

<strong>DMTF</strong>, 33HDSP0217, Systems <strong>Management</strong> Architecture for <strong>Server</strong> Hardware (SMASH) Implementation<br />

Requirements, version 1.0, 2005<br />

IETF, 34HRFC3629, UTF-8, a transformation format of ISO 10646, 2003<br />

164 Version 1.0.2

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!