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 2007 Sun Microsystems, Inc.  All rights reserved.
24  * Use is subject to license terms.
25  */
26 
27 #ifndef	_PICLOIDS_H
28 #define	_PICLOIDS_H
29 
30 #ifdef	__cplusplus
31 extern "C" {
32 #endif
33 
34 /*
35  * IETF OIDs (not all are used by PICL)
36  */
37 #define	OID_ISO				"1"
38 #define	OID_ORG				OID_ISO ".3"
39 #define	OID_DOD				OID_ORG ".6"
40 #define	OID_INTERNET			OID_DOD ".1"
41 
42 #define	OID_PRIVATE			OID_INTERNET ".4"
43 #define	OID_ENTERPRISES			OID_PRIVATE ".1"
44 #define	OID_SUN				OID_ENTERPRISES ".42"
45 
46 #define	OID_MGMT			OID_INTERNET ".2"
47 #define	OID_MIB2			OID_MGMT ".1"
48 #define	OID_entityMIB			OID_MIB2 ".47"
49 #define	OID_entityMIBObjects		OID_entityMIB ".1"
50 
51 #define	OID_entityPhysical		OID_entityMIBObjects ".1"
52 #define	OID_entPhysicalTable		OID_entityPhysical ".1"
53 #define	OID_entPhysicalEntry		OID_entPhysicalTable ".1"
54 
55 #define	OID_entPhysicalIndex		OID_entPhysicalEntry ".1"
56 #define	OID_entPhysicalDescr		OID_entPhysicalEntry ".2"
57 #define	OID_entPhysicalVendorType	OID_entPhysicalEntry ".3"
58 #define	OID_entPhysicalContainedIn	OID_entPhysicalEntry ".4"
59 #define	OID_entPhysicalClass		OID_entPhysicalEntry ".5"
60 #define	OID_entPhysicalParentRelPos	OID_entPhysicalEntry ".6"
61 #define	OID_entPhysicalName		OID_entPhysicalEntry ".7"
62 #define	OID_entPhysicalHardwareRev	OID_entPhysicalEntry ".8"
63 #define	OID_entPhysicalFirmwareRev	OID_entPhysicalEntry ".9"
64 #define	OID_entPhysicalSoftwareRev	OID_entPhysicalEntry ".10"
65 #define	OID_entPhysicalSerialNum	OID_entPhysicalEntry ".11"
66 #define	OID_entPhysicalMfgName		OID_entPhysicalEntry ".12"
67 #define	OID_entPhysicalModelName	OID_entPhysicalEntry ".13"
68 #define	OID_entPhysicalAlias		OID_entPhysicalEntry ".14"
69 #define	OID_entPhysicalAssetID		OID_entPhysicalEntry ".15"
70 #define	OID_entPhysicalIsFRU		OID_entPhysicalEntry ".16"
71 
72 /*
73  * Conceptual row change time for handling hotplug/hotswap events
74  */
75 #define	OID_entityGeneral		OID_entityMIBObjects ".4"
76 #define	OID_entLastChangeTime		OID_entityGeneral ".1"
77 
78 /*
79  * Sun Platform MIB OIDs used by PICL
80  */
81 #define	OID_products			OID_SUN ".2"
82 #define	OID_sunFire			OID_products ".70"
83 #define	OID_sunPlatMIB			OID_sunFire ".101"
84 #define	OID_sunPlatMIBObjects		OID_sunPlatMIB ".1"
85 #define	OID_sunPlatMIBPhysicalObjects	OID_sunPlatMIBObjects ".1"
86 
87 /*
88  * Equipment Table
89  */
90 #define	OID_sunPlatEquipmentTable	OID_sunPlatMIBPhysicalObjects ".2"
91 #define	OID_sunPlatEquipmentEntry	OID_sunPlatEquipmentTable ".1"
92 #define	OID_sunPlatEquipmentOperationalState	\
93 					OID_sunPlatEquipmentEntry ".2"
94 
95 /*
96  * Equipment Holder Table
97  */
98 #define	OID_sunPlatEquipmentHolderTable	OID_sunPlatMIBPhysicalObjects ".3"
99 #define	OID_sunPlatEquipmentHolderEntry	OID_sunPlatEquipmentHolderTable ".1"
100 #define	OID_sunPlatEquipmentHolderAcceptableTypes	\
101 					OID_sunPlatEquipmentHolderEntry ".2"
102 
103 /*
104  * Circuit Pack Table
105  */
106 #define	OID_sunPlatCircuitPackTable	OID_sunPlatMIBPhysicalObjects ".4"
107 #define	OID_sunPlatCircuitPackEntry	OID_sunPlatCircuitPackTable ".1"
108 #define	OID_sunPlatCircuitPackReplaceable	\
109 					OID_sunPlatCircuitPackEntry ".3"
110 #define	OID_sunPlatCircuitPackHotSwappable	\
111 					OID_sunPlatCircuitPackEntry ".4"
112 
113 /*
114  * Physical Class Table
115  */
116 #define	OID_sunPlatPhysicalTable	OID_sunPlatMIBPhysicalObjects ".5"
117 #define	OID_sunPlatPhysicalEntry	OID_sunPlatPhysicalTable ".1"
118 #define	OID_sunPlatPhysicalClass	OID_sunPlatPhysicalEntry ".1"
119 
120 /*
121  * Sensor Table
122  */
123 #define	OID_sunPlatSensorTable		OID_sunPlatMIBPhysicalObjects ".6"
124 #define	OID_sunPlatSensorEntry		OID_sunPlatSensorTable ".1"
125 #define	OID_sunPlatSensorClass		OID_sunPlatSensorEntry ".1"
126 #define	OID_sunPlatSensorType		OID_sunPlatSensorEntry ".2"
127 
128 /*
129  * Binary Sensor Table
130  */
131 #define	OID_sunPlatBinarySensorTable	OID_sunPlatMIBPhysicalObjects ".7"
132 #define	OID_sunPlatBinarySensorEntry	OID_sunPlatBinarySensorTable ".1"
133 
134 #define	OID_sunPlatBinarySensorCurrent	OID_sunPlatBinarySensorEntry ".1"
135 #define	OID_sunPlatBinarySensorExpected	OID_sunPlatBinarySensorEntry ".2"
136 #define	OID_sunPlatBinarySensorInterpretTrue	\
137 					OID_sunPlatBinarySensorEntry ".3"
138 #define	OID_sunPlatBinarySensorInterpretFalse	\
139 					OID_sunPlatBinarySensorEntry ".4"
140 
141 /*
142  * Numeric Sensor Table
143  */
144 #define	OID_sunPlatNumericSensorTable	OID_sunPlatMIBPhysicalObjects ".8"
145 #define	OID_sunPlatNumericSensorEntry	OID_sunPlatNumericSensorTable ".1"
146 #define	OID_sunPlatNumericSensorCurrent	OID_sunPlatNumericSensorEntry ".4"
147 #define	OID_sunPlatNumericSensorBaseUnits	\
148 					OID_sunPlatNumericSensorEntry ".1"
149 #define	OID_sunPlatNumericSensorExponent	\
150 					OID_sunPlatNumericSensorEntry ".2"
151 #define	OID_sunPlatNumericSensorRateUnits	\
152 					OID_sunPlatNumericSensorEntry ".3"
153 #define	OID_sunPlatNumericSensorLowerThresholdNonCritical	\
154 					OID_sunPlatNumericSensorEntry ".8"
155 #define	OID_sunPlatNumericSensorUpperThresholdNonCritical	\
156 					OID_sunPlatNumericSensorEntry ".9"
157 #define	OID_sunPlatNumericSensorLowerThresholdCritical	\
158 					OID_sunPlatNumericSensorEntry ".10"
159 #define	OID_sunPlatNumericSensorUpperThresholdCritical	\
160 					OID_sunPlatNumericSensorEntry ".11"
161 #define	OID_sunPlatNumericSensorLowerThresholdFatal	\
162 					OID_sunPlatNumericSensorEntry ".12"
163 #define	OID_sunPlatNumericSensorUpperThresholdFatal	\
164 					OID_sunPlatNumericSensorEntry ".13"
165 #define	OID_sunPlatNumericSensorEnabledThresholds	\
166 					OID_sunPlatNumericSensorEntry ".15"
167 
168 /*
169  * Alarm Table
170  */
171 #define	OID_sunPlatAlarmTable		OID_sunPlatMIBPhysicalObjects ".12"
172 #define	OID_sunPlatAlarmEntry		OID_sunPlatAlarmTable ".1"
173 #define	OID_sunPlatAlarmType		OID_sunPlatAlarmEntry ".1"
174 #define	OID_sunPlatAlarmState		OID_sunPlatAlarmEntry ".2"
175 
176 /*
177  * Power Supply Table
178  */
179 #define	OID_sunPlatPowerSupplyTable	OID_sunPlatMIBPhysicalObjects ".14"
180 #define	OID_sunPlatPowerSupplyEntry	OID_sunPlatPowerSupplyTable ".1"
181 #define	OID_sunPlatPowerSupplyClass	OID_sunPlatPowerSupplyEntry ".1"
182 
183 /*
184  * Battery Table
185  */
186 #define	OID_sunPlatBatteryTable		OID_sunPlatMIBPhysicalObjects ".15"
187 #define	OID_sunPlatBatteryEntry		OID_sunPlatBatteryTable ".1"
188 #define	OID_sunPlatBatteryStatus	OID_sunPlatBatteryEntry ".1"
189 
190 /*
191  * Integer enumeration classes used by PICL
192  */
193 typedef enum {
194 	ST_TRUE = 1,
195 	ST_FALSE = 2
196 } snmp_truthval_t;
197 
198 /*
199  * Note that the truth values could be much longer than the length
200  * of the strings "true" or "false", since we actuallly interpret them
201  * using InterpretTrue and InterpretFalse values in the MIB. Currently
202  * we limit them to be 32 (see MAX_TRUTHVAL_LEN definition below)
203  */
204 #define	STR_ST_TRUE	"true"
205 #define	STR_ST_FALSE	"false"
206 
207 /* entPhysicalClass */
208 typedef enum {
209 	SPC_OTHER = 1,
210 	SPC_UNKNOWN = 2,
211 	SPC_CHASSIS = 3,
212 	SPC_BACKPLANE = 4,
213 	SPC_CONTAINER = 5,
214 	SPC_POWERSUPPLY = 6,
215 	SPC_FAN = 7,
216 	SPC_SENSOR = 8,
217 	SPC_MODULE = 9,
218 	SPC_PORT = 10,
219 	SPC_STACK = 11
220 } snmp_physical_class_t;
221 
222 /* sunPlatEquipmentOperationalState */
223 typedef enum {
224 	SSOS_DISABLED = 1,
225 	SSOS_ENABLED = 2
226 } snmp_sunplat_op_state_t;
227 
228 /*
229  * Update MAX_OPSTATE_LEN below if these strings are changed
230  */
231 #define	STR_SSOS_DISABLED	"disabled"
232 #define	STR_SSOS_ENABLED	"enabled"
233 
234 /* sunPlatPhysicalClass */
235 typedef enum {
236 	SSPC_OTHER = 1,
237 	SSPC_ALARM = 2,
238 	SSPC_WATCHDOG = 3
239 } snmp_sunplat_phys_class_t;
240 
241 /* sunPlatSensorClass */
242 typedef enum {
243 	SSSC_BINARY = 1,
244 	SSSC_NUMERIC = 2,
245 	SSSC_DISCRETE = 3
246 } snmp_sunplat_sensor_class_t;
247 
248 /* sunPlatSensorType */
249 typedef enum {
250 	SSST_OTHER = 1,
251 	SSST_UNKNOWN = 2,
252 	SSST_TEMPERATURE = 3,
253 	SSST_VOLTAGE = 4,
254 	SSST_CURRENT = 5,
255 	SSST_TACHOMETER = 6,
256 	SSST_COUNTER = 7,
257 	SSST_SWITCH = 8,
258 	SSST_LOCK = 9,
259 	SSST_HUMIDITY = 10,
260 	SSST_SMOKE_DETECTION = 11,
261 	SSST_PRESENCE = 12,
262 	SSST_AIRFLOW = 13
263 } snmp_sunplat_sensor_type_t;
264 
265 /* sunPlatAlarmType */
266 typedef enum {
267 	SSAT_OTHER = 1,
268 	SSAT_AUDIBLE = 2,
269 	SSAT_VISIBLE = 3,
270 	SSAT_MOTION = 4,
271 	SSAT_SWITCH = 5
272 } snmp_sunplat_alarm_type_t;
273 
274 /* sunPlatAlarmState */
275 typedef enum {
276 	SSAS_UNKNOWN = 1,
277 	SSAS_OFF = 2,
278 	SSAS_STEADY = 3,
279 	SSAS_ALTERNATING = 4
280 } snmp_sunplat_alarm_state_t;
281 
282 /*
283  * Update MAX_ALARMSTATE_LEN below if these strings are changed
284  */
285 #define	STR_SSAS_UNKNOWN	"unknown"
286 #define	STR_SSAS_OFF		"off"
287 #define	STR_SSAS_STEADY		"steady"
288 #define	STR_SSAS_ALTERNATING	"alternating"
289 
290 /*
291  * Bit masks for the sunPlatNumericSensorEnabledThresholds
292  */
293 #define	LOWER_NON_CRITICAL	0x80
294 #define	UPPER_NON_CRITICAL	0x40
295 #define	LOWER_CRITICAL		0x20
296 #define	UPPER_CRITICAL		0x10
297 #define	LOWER_FATAL		0x08
298 #define	UPPER_FATAL		0x04
299 
300 /*
301  * sunPlatPowerSupplyClass
302  */
303 typedef enum {
304 	SSPSC_OTHER = 1,
305 	SSPSC_POWERSUPPLY = 2,
306 	SSPSC_BATTERY = 3
307 } snmp_sunplat_power_supply_class_t;
308 
309 /*
310  * sunPlatBatteryStatus
311  */
312 typedef enum {
313 	SSBS_OTHER = 1,
314 	SSBS_UNKNOWN = 2,
315 	SSBS_FULLYCHARGED = 3,
316 	SSBS_LOW = 4,
317 	SSBS_CRITICAL = 5,
318 	SSBS_CHARGING = 6,
319 	SSBS_CHARGING_AND_LOW = 7,
320 	SSBS_CHARGING_AND_HIGH = 8,
321 	SSBS_CHARGING_AND_CRITICAL = 9,
322 	SSBS_UNDEFINED = 10,
323 	SSBS_PARTIALLY_CHARGED = 11
324 } snmp_sunplat_battery_status_t;
325 
326 /*
327  * Update MAX_BATTERYSTATUS_LEN below if these strings are changed
328  */
329 #define	STR_SSBS_OTHER			"Other"
330 #define	STR_SSBS_UNKNOWN		"Unknown"
331 #define	STR_SSBS_FULLYCHARGED		"Fully Charged"
332 #define	STR_SSBS_LOW			"Low"
333 #define	STR_SSBS_CRITICAL		"Critical"
334 #define	STR_SSBS_CHARGING		"Charging"
335 #define	STR_SSBS_CHARGING_AND_LOW	"Charging and Low"
336 #define	STR_SSBS_CHARGING_AND_HIGH	"Charging and High"
337 #define	STR_SSBS_CHARGING_AND_CRITICAL	"Charging and Critical"
338 #define	STR_SSBS_UNDEFINED		"Undefined"
339 #define	STR_SSBS_PARTIALLY_CHARGED	"Partially Charged"
340 
341 /*
342  * Max limits of all volatiles
343  */
344 #define	MAX_OPSTATE_LEN			10
345 #define	MAX_ALARMSTATE_LEN		12
346 #define	MAX_TRUTHVAL_LEN		32
347 #define	MAX_BATTERYSTATUS_LEN		32
348 
349 #ifdef	__cplusplus
350 }
351 #endif
352 
353 #endif	/* _PICLOIDS_H */
354