1/*
2 * CDDL HEADER START
3 *
4 * The contents of this file are subject to the terms of the
5 * Common Development and Distribution License (the "License").
6 * You may not use this file except in compliance with the License.
7 *
8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9 * or http://www.opensolaris.org/os/licensing.
10 * See the License for the specific language governing permissions
11 * and limitations under the License.
12 *
13 * When distributing Covered Code, include this CDDL HEADER in each
14 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15 * If applicable, add the following below this CDDL HEADER, with the
16 * fields enclosed by brackets "[]" replaced with your own identifying
17 * information: Portions Copyright [yyyy] [name of copyright owner]
18 *
19 * CDDL HEADER END
20 */
21
22/*
23 * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
24 */
25
26#pragma dictionary "STORAGE"
27
28/*
29 * Fault event definitions.
30 */
31
32event fault.config.fan-fail@ses-enclosure;
33event fault.config.fantray-fail@ses-enclosure;
34event fault.config.psu-fail@ses-enclosure;
35event fault.device.controller.fail@controller;
36event fault.device.ethernet.fail@controller;
37event fault.device.ethernet.fail@sas-expander;
38event fault.device.fan.fail@fan;
39event fault.device.fan.fail@fanmodule;
40event fault.device.psu.fail@psu;
41event fault.device.psu.fail@psu;
42event fault.device.sas-expander.fail@sas-expander;
43event fault.device.unusable-chassis-id@fanboard;
44event fault.io.i2c.fail@controller;
45event fault.io.i2c.fail@fanboard;
46event fault.io.i2c.fail@fanmodule;
47event fault.io.i2c.fail@powerboard;
48event fault.io.i2c.fail@psu;
49event fault.io.sas.log.fatal@sas-expander;
50event fault.io.sas.log.non-fatal@sas-expander;
51event fault.power.ext-fail@ses-enclosure;
52event fault.power.fail@controller;
53event fault.power.fail@controller;
54event fault.power.fail@controller;
55event fault.power.fail@fanmodule;
56event fault.power.fail@fanmodule;
57event fault.power.fail@psu;
58event fault.power.fail@psu;
59event fault.sensor.read-fail@controller;
60event fault.sensor.read-fail@fanmodule;
61event fault.sensor.read-fail@fan;
62event fault.sensor.read-fail@psu;
63event fault.sp.fail@controller;
64event fault.sp.svc-fail@controller;
65event fault.sp.unavailable@controller;
66event fault.temp.fail@controller;
67event fault.temp.fail@fanmodule;
68event fault.temp.fail@psu;
69
70/*
71 * Error event definitions.
72 */
73
74event ereport.chassis.config.missing-fan@ses-enclosure;
75event ereport.chassis.config.missing-fantray@ses-enclosure;
76event ereport.chassis.config.missing-psu@ses-enclosure;
77event ereport.chassis.device.ecb.shutoff@controller;
78event ereport.chassis.device.ethernet.link-down@controller;
79event ereport.chassis.device.ethernet.link-down@sas-expander;
80event ereport.chassis.device.psu.dc-fail@psu;
81event ereport.chassis.device.psu.dc-oc@psu;
82event ereport.chassis.device.psu.dc-ov@psu;
83event ereport.chassis.device.psu.dc-uv@psu;
84event ereport.chassis.device.psu.ext-ac-fail@psu;
85event ereport.chassis.device.psu.ot@psu;
86event ereport.chassis.device.sas-expander.fail@sas-expander;
87event ereport.chassis.device.unusable-chassis-id@fanboard;
88event ereport.chassis.io.i2c.fail@controller;
89event ereport.chassis.io.i2c.fail@fanboard;
90event ereport.chassis.io.i2c.fail@fanmodule;
91event ereport.chassis.io.i2c.fail@powerboard;
92event ereport.chassis.io.i2c.fail@psu;
93event ereport.chassis.post.device.fail@controller;
94event ereport.chassis.post.device.fail@fan;
95event ereport.chassis.post.device.fail@fanmodule;
96event ereport.chassis.post.device.fail@psu;
97event ereport.chassis.post.sp.fail@controller;
98event ereport.chassis.sensor.current.oc@controller;
99event ereport.chassis.sensor.current.oc@fanmodule;
100event ereport.chassis.sensor.current.oc@psu;
101event ereport.chassis.sensor.current.uc@controller;
102event ereport.chassis.sensor.current.uc@fanmodule;
103event ereport.chassis.sensor.current.uc@psu;
104event ereport.chassis.sensor.fanspeed.us@fan;
105event ereport.chassis.sensor.read-fail@controller;
106event ereport.chassis.sensor.read-fail@fanmodule;
107event ereport.chassis.sensor.read-fail@fan;
108event ereport.chassis.sensor.read-fail@psu;
109event ereport.chassis.sensor.temp.ot@controller;
110event ereport.chassis.sensor.temp.ot@fanmodule;
111event ereport.chassis.sensor.temp.ot@psu;
112event ereport.chassis.sensor.temp.ut@controller;
113event ereport.chassis.sensor.temp.ut@fanmodule;
114event ereport.chassis.sensor.temp.ut@psu;
115event ereport.chassis.sensor.voltage.ov@controller;
116event ereport.chassis.sensor.voltage.ov@fanmodule;
117event ereport.chassis.sensor.voltage.ov@psu;
118event ereport.chassis.sensor.voltage.uv@controller;
119event ereport.chassis.sensor.voltage.uv@fanmodule;
120event ereport.chassis.sensor.voltage.uv@psu;
121event ereport.chassis.sp.svc-restart@controller;
122event ereport.chassis.sp.unavailable@controller;
123event ereport.io.sas.log.fatal@sas-expander;
124event ereport.io.sas.log.non-fatal@sas-expander;
125
126/*
127 * Service Processor failure
128 */
129
130prop fault.sp.fail@controller ->
131    ereport.chassis.post.sp.fail@controller;
132
133/*
134 * Controller failure
135 */
136
137prop fault.device.controller.fail@controller ->
138    ereport.chassis.post.device.fail@controller;
139
140/*
141 * Fan module failure
142 */
143
144prop fault.device.fan.fail@fanmodule ->
145    ereport.chassis.post.device.fail@fanmodule;
146
147/*
148 * I2C transaction failure
149 */
150
151prop fault.io.i2c.fail@controller ->
152    ereport.chassis.io.i2c.fail@controller;
153
154prop fault.io.i2c.fail@fanboard ->
155    ereport.chassis.io.i2c.fail@fanboard;
156
157prop fault.io.i2c.fail@fanmodule ->
158    ereport.chassis.io.i2c.fail@fanmodule;
159
160prop fault.io.i2c.fail@powerboard ->
161    ereport.chassis.io.i2c.fail@powerboard;
162
163prop fault.io.i2c.fail@psu ->
164    ereport.chassis.io.i2c.fail@psu;
165
166/*
167 * Chassis ID unusable failure
168 */
169
170prop fault.device.unusable-chassis-id@fanboard ->
171    ereport.chassis.device.unusable-chassis-id@fanboard;
172
173/*
174 * Configuration failure
175 */
176
177prop fault.config.psu-fail@ses-enclosure ->
178    ereport.chassis.config.missing-psu@ses-enclosure{
179    setpayloadprop("min-required", payloadprop("min-required")) &&
180    setpayloadprop("devices", payloadprop("devices"))};
181
182prop fault.config.fan-fail@ses-enclosure ->
183    ereport.chassis.config.missing-fan@ses-enclosure{
184    setpayloadprop("min-required", payloadprop("min-required")) &&
185    setpayloadprop("devices", payloadprop("devices"))};
186
187prop fault.config.fantray-fail@ses-enclosure ->
188    ereport.chassis.config.missing-fantray@ses-enclosure{
189    setpayloadprop("min-required", payloadprop("min-required")) &&
190    setpayloadprop("devices", payloadprop("devices"))};
191
192/*
193 * Fan failure
194 */
195
196prop fault.device.fan.fail@fan ->
197    ereport.chassis.sensor.fanspeed.us@fan,
198    ereport.chassis.post.device.fail@fan;
199
200/*
201 * Sensor reading failure
202 */
203
204prop fault.sensor.read-fail@controller ->
205    ereport.chassis.sensor.read-fail@controller;
206
207prop fault.sensor.read-fail@fanmodule ->
208    ereport.chassis.sensor.read-fail@fanmodule;
209
210prop fault.sensor.read-fail@fan ->
211    ereport.chassis.sensor.read-fail@fan;
212
213prop fault.sensor.read-fail@psu ->
214    ereport.chassis.sensor.read-fail@psu;
215
216/*
217 * Temperature failure
218 */
219
220prop fault.temp.fail@controller ->
221    ereport.chassis.sensor.temp.ot@controller,
222    ereport.chassis.sensor.temp.ut@controller;
223
224prop fault.temp.fail@fanmodule ->
225    ereport.chassis.sensor.temp.ot@fanmodule,
226    ereport.chassis.sensor.temp.ut@fanmodule;
227
228prop fault.temp.fail@psu ->
229    ereport.chassis.sensor.temp.ot@psu,
230    ereport.chassis.sensor.temp.ut@psu;
231
232/*
233 * Power failure
234 */
235
236prop fault.power.fail@controller ->
237    ereport.chassis.device.ecb.shutoff@controller,
238    ereport.chassis.sensor.current.oc@controller,
239    ereport.chassis.sensor.current.uc@controller,
240    ereport.chassis.sensor.voltage.ov@controller,
241    ereport.chassis.sensor.voltage.uv@controller;
242
243prop fault.power.fail@fanmodule ->
244    ereport.chassis.sensor.current.oc@fanmodule,
245    ereport.chassis.sensor.current.uc@fanmodule,
246    ereport.chassis.sensor.voltage.ov@fanmodule,
247    ereport.chassis.sensor.voltage.uv@fanmodule;
248
249prop fault.power.fail@psu ->
250    ereport.chassis.sensor.current.oc@psu,
251    ereport.chassis.sensor.current.uc@psu,
252    ereport.chassis.sensor.voltage.ov@psu,
253    ereport.chassis.sensor.voltage.uv@psu;
254
255/*
256 * Power supply unit failure
257 */
258
259prop fault.device.psu.fail@psu ->
260    ereport.chassis.device.psu.dc-fail@psu,
261    ereport.chassis.device.psu.dc-ov@psu,
262    ereport.chassis.device.psu.dc-uv@psu,
263    ereport.chassis.device.psu.dc-oc@psu,
264    ereport.chassis.device.psu.ot@psu,
265    ereport.chassis.post.device.fail@psu;
266
267/*
268 * External power failure
269 */
270
271prop fault.power.ext-fail@ses-enclosure ->
272    ereport.chassis.device.psu.ext-ac-fail@psu<>;
273
274/*
275 * SAS Expander failure
276 */
277
278prop fault.device.sas-expander.fail@sas-expander ->
279    ereport.chassis.device.sas-expander.fail@sas-expander;
280
281/*
282 * Ethernet failure
283 */
284
285prop fault.device.ethernet.fail@controller ->
286    ereport.chassis.device.ethernet.link-down@controller;
287
288prop fault.device.ethernet.fail@sas-expander ->
289    ereport.chassis.device.ethernet.link-down@sas-expander;
290
291/*
292 * Service Processor unavailable failure
293 */
294
295prop fault.sp.unavailable@controller ->
296    ereport.chassis.sp.unavailable@controller;
297
298/*
299 * Service Processor service failure
300 */
301
302prop fault.sp.svc-fail@controller ->
303    ereport.chassis.sp.svc-restart@controller{
304    setpayloadprop("service", payloadprop("service"))};
305
306/*
307 * SAS Expander Log failure
308 */
309
310prop fault.io.sas.log.non-fatal@sas-expander ->
311    ereport.io.sas.log.non-fatal@sas-expander;
312
313prop fault.io.sas.log.fatal@sas-expander ->
314    ereport.io.sas.log.fatal@sas-expander;
315
316