]> git.proxmox.com Git - mirror_edk2.git/blob - MdePkg/Include/IndustryStandard/IpmiNetFnTransportDefinitions.h
MdePkg: Add Ipmi2.0 definitions head file.
[mirror_edk2.git] / MdePkg / Include / IndustryStandard / IpmiNetFnTransportDefinitions.h
1 /** @file
2 IPMI 2.0 definitions from the IPMI Specification Version 2.0, Revision 1.1.
3
4 This file contains all NetFn Transport commands, including:
5 IPM LAN Commands (Chapter 23)
6 IPMI Serial/Modem Commands (Chapter 25)
7 SOL Commands (Chapter 26)
8 Command Forwarding Commands (Chapter 35b)
9
10 See IPMI specification, Appendix G, Command Assignments
11 and Appendix H, Sub-function Assignments.
12
13 Copyright (c) 1999 - 2015, Intel Corporation. All rights reserved.<BR>
14 This program and the accompanying materials
15 are licensed and made available under the terms and conditions of the BSD License
16 which accompanies this distribution. The full text of the license may be found at
17 http://opensource.org/licenses/bsd-license.php
18
19 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
20 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
21 **/
22
23 #ifndef _IPMINETFNTRANSPORTDEFINITIONS_H_
24 #define _IPMINETFNTRANSPORTDEFINITIONS_H_
25
26 #pragma pack(1)
27 //
28 // Net function definition for Transport command
29 //
30 #define IPMI_NETFN_TRANSPORT 0x0C
31
32 //
33 // Below is Definitions for IPM LAN Commands (Chapter 23)
34 //
35
36 //
37 // Definitions for Set Lan Configuration Parameters command
38 //
39 #define IPMI_TRANSPORT_SET_LAN_CONFIG_PARAMETERS 0x01
40
41 //
42 // Constants and Structure definitions for "Set Lan Configuration Parameters" command to follow here
43 //
44
45 //
46 // LAN Management Structure
47 //
48 typedef enum {
49 IpmiLanReserved1,
50 IpmiLanReserved2,
51 IpmiLanAuthType,
52 IpmiLanIpAddress,
53 IpmiLanIpAddressSource,
54 IpmiLanMacAddress,
55 IpmiLanSubnetMask,
56 IpmiLanIpv4HeaderParam,
57 IpmiLanPrimaryRcmpPort,
58 IpmiLanSecondaryRcmpPort,
59 IpmiLanBmcGeneratedArpCtrl,
60 IpmiLanArpInterval,
61 IpmiLanDefaultGateway,
62 IpmiLanDefaultGatewayMac,
63 IpmiLanBackupGateway,
64 IpmiLanBackupGatewayMac,
65 IpmiLanCommunityString,
66 IpmiLanReserved3,
67 IpmiLanDestinationType,
68 IpmiLanDestinationAddress
69 } IPMI_LAN_OPTION_TYPE;
70
71 //
72 // IP Address Source
73 //
74 typedef enum {
75 IpmiUnspecified,
76 IpmiStaticAddrsss,
77 IpmiDynamicAddressBmcDhcp,
78 IpmiDynamicAddressBiosDhcp,
79 IpmiDynamicAddressBmcNonDhcp
80 } IPMI_IP_ADDRESS_SRC;
81
82 //
83 // Destination Type
84 //
85 typedef enum {
86 IpmiPetTrapDestination,
87 IpmiDirectedEventDestination,
88 IpmiReserved1,
89 IpmiReserved2,
90 IpmiReserved3,
91 IpmiReserved4,
92 IpmiReserved5,
93 IpmiOem1,
94 IpmiOem2
95 } IPMI_LAN_DEST_TYPE_DEST_TYPE;
96
97 typedef struct {
98 UINT8 NoAuth : 1;
99 UINT8 MD2Auth : 1;
100 UINT8 MD5Auth : 1;
101 UINT8 Reserved1 : 1;
102 UINT8 StraightPswd : 1;
103 UINT8 OemType : 1;
104 UINT8 Reserved2 : 2;
105 } IPMI_LAN_AUTH_TYPE;
106
107 typedef struct {
108 UINT8 IpAddress[4];
109 } IPMI_LAN_IP_ADDRESS;
110
111 typedef struct {
112 UINT8 AddressSrc : 4;
113 UINT8 Reserved : 4;
114 } IPMI_LAN_IP_ADDRESS_SRC;
115
116 typedef struct {
117 UINT8 MacAddress[6];
118 } IPMI_LAN_MAC_ADDRESS;
119
120 typedef struct {
121 UINT8 IpAddress[4];
122 } IPMI_LAN_SUBNET_MASK;
123
124 typedef struct {
125 UINT8 TimeToLive;
126 UINT8 IpFlag : 3;
127 UINT8 Reserved1 : 5;
128 UINT8 Precedence : 3;
129 UINT8 Reserved2 : 1;
130 UINT8 ServiceType : 4;
131 } IPMI_LAN_IPV4_HDR_PARAM;
132
133 typedef struct {
134 UINT8 RcmpPortMsb;
135 UINT8 RcmpPortLsb;
136 } IPMI_LAN_RCMP_PORT;
137
138 typedef struct {
139 UINT8 EnableBmcArpResponse : 1;
140 UINT8 EnableBmcGratuitousArp : 1;
141 UINT8 Reserved : 6;
142 } IPMI_LAN_BMC_GENERATED_ARP_CONTROL;
143
144 typedef struct {
145 UINT8 ArpInterval;
146 } IPMI_LAN_ARP_INTERVAL;
147
148 typedef struct {
149 UINT8 Data[18];
150 } IPMI_LAN_COMMUNITY_STRING;
151
152 typedef struct {
153 UINT8 DestinationSelector : 4;
154 UINT8 Reserved2 : 4;
155 UINT8 DestinationType : 3;
156 UINT8 Reserved1 : 4;
157 UINT8 AlertAcknowledged : 1;
158 } IPMI_LAN_DEST_TYPE;
159
160 typedef struct {
161 UINT8 DestinationSelector : 4;
162 UINT8 Reserved1 : 4;
163 UINT8 AlertingIpAddressSelector : 4;
164 UINT8 AddressFormat : 4;
165 UINT8 UseDefaultGateway : 1;
166 UINT8 Reserved2 : 7;
167 IPMI_LAN_IP_ADDRESS AlertingIpAddress;
168 IPMI_LAN_MAC_ADDRESS AlertingMacAddress;
169 } IPMI_LAN_DEST_ADDRESS;
170
171 typedef union {
172 IPMI_LAN_AUTH_TYPE IpmiLanAuthType;
173 IPMI_LAN_IP_ADDRESS IpmiLanIpAddress;
174 IPMI_LAN_IP_ADDRESS_SRC IpmiLanIpAddressSrc;
175 IPMI_LAN_MAC_ADDRESS IpmiLanMacAddress;
176 IPMI_LAN_SUBNET_MASK IpmiLanSubnetMask;
177 IPMI_LAN_IPV4_HDR_PARAM IpmiLanIpv4HdrParam;
178 IPMI_LAN_RCMP_PORT IpmiLanPrimaryRcmpPort;
179 IPMI_LAN_BMC_GENERATED_ARP_CONTROL IpmiLanArpControl;
180 IPMI_LAN_ARP_INTERVAL IpmiLanArpInterval;
181 IPMI_LAN_COMMUNITY_STRING IpmiLanCommunityString;
182 IPMI_LAN_DEST_TYPE IpmiLanDestType;
183 IPMI_LAN_DEST_ADDRESS IpmiLanDestAddress;
184 } IPMI_LAN_OPTIONS;
185
186 //
187 // Definitions for Get Lan Configuration Parameters command
188 //
189 #define IPMI_TRANSPORT_GET_LAN_CONFIG_PARAMETERS 0x02
190
191 //
192 // Constants and Structure definitions for "Get Lan Configuration Parameters" command to follow here
193 //
194
195 //
196 // Definitions for Suspend BMC ARPs command
197 //
198 #define IPMI_TRANSPORT_SUSPEND_BMC_ARPS 0x03
199
200 //
201 // Constants and Structure definitions for "Suspend BMC ARPs" command to follow here
202 //
203
204 //
205 // Definitions for Get IP-UDP-RMCP Statistics command
206 //
207 #define IPMI_TRANSPORT_GET_PACKET_STATISTICS 0x04
208
209 //
210 // Constants and Structure definitions for "Get IP-UDP-RMCP Statistics" command to follow here
211 //
212
213 //
214 // Below is Definitions for IPMI Serial/Modem Commands (Chapter 25)
215 //
216
217 //
218 // Definitions for Set Serial/Modem Configuration command
219 //
220 #define IPMI_TRANSPORT_SET_SERIAL_CONFIGURATION 0x10
221
222 //
223 // Constants and Structure definitions for "Set Serial/Modem Configuration" command to follow here
224 //
225
226 //
227 // EMP OPTION DATA
228 //
229 typedef struct {
230 UINT8 NoAuthentication : 1;
231 UINT8 MD2Authentication : 1;
232 UINT8 MD5Authentication : 1;
233 UINT8 Reserved1 : 1;
234 UINT8 StraightPassword : 1;
235 UINT8 OemProprietary : 1;
236 UINT8 Reservd2 : 2;
237 } IPMI_EMP_AUTH_TYPE;
238
239 typedef struct {
240 UINT8 EnableBasicMode : 1;
241 UINT8 EnablePPPMode : 1;
242 UINT8 EnableTerminalMode : 1;
243 UINT8 Reserved1 : 2;
244 UINT8 SnoopOsPPPNegotiation : 1;
245 UINT8 Reserved2 : 1;
246 UINT8 DirectConnect : 1;
247 } IPMI_EMP_CONNECTION_TYPE;
248
249 typedef struct {
250 UINT8 InactivityTimeout : 4;
251 UINT8 Reserved : 4;
252 } IPMI_EMP_INACTIVITY_TIMEOUT;
253
254 typedef struct {
255 UINT8 IpmiCallback : 1;
256 UINT8 CBCPCallback : 1;
257 UINT8 Reserved1 : 6;
258 UINT8 CbcpEnableNoCallback : 1;
259 UINT8 CbcpEnablePreSpecifiedNumber : 1;
260 UINT8 CbcpEnableUserSpecifiedNumber : 1;
261 UINT8 CbcpEnableCallbackFromList : 1;
262 UINT8 Reserved : 4;
263 UINT8 CallbackDestination1;
264 UINT8 CallbackDestination2;
265 UINT8 CallbackDestination3;
266 } IPMI_EMP_CHANNEL_CALLBACK_CONTROL;
267
268 typedef struct {
269 UINT8 CloseSessionOnDCDLoss : 1;
270 UINT8 EnableSessionInactivityTimeout : 1;
271 UINT8 Reserved : 6;
272 } IPMI_EMP_SESSION_TERMINATION;
273
274 typedef struct {
275 UINT8 Reserved1 : 5;
276 UINT8 EnableDtrHangup : 1;
277 UINT8 FlowControl : 2;
278 UINT8 BitRate : 4;
279 UINT8 Reserved2 : 4;
280 UINT8 SaveSetting : 1;
281 UINT8 SetComPort : 1;
282 UINT8 Reserved3 : 6;
283 } IPMI_EMP_MESSAGING_COM_SETTING;
284
285 typedef struct {
286 UINT8 RingDurationInterval : 6;
287 UINT8 Reserved1 : 2;
288 UINT8 RingDeadTime : 4;
289 UINT8 Reserved : 4;
290 } IPMI_EMP_MODEM_RING_TIME;
291
292 typedef struct {
293 UINT8 Reserved;
294 UINT8 InitString[48];
295 } IPMI_EMP_MODEM_INIT_STRING;
296
297 typedef struct {
298 UINT8 EscapeSequence[5];
299 } IPMI_EMP_MODEM_ESC_SEQUENCE;
300
301 typedef struct {
302 UINT8 HangupSequence[8];
303 } IPMI_EMP_MODEM_HANGUP_SEQUENCE;
304
305 typedef struct {
306 UINT8 ModelDialCommend[8];
307 } IPMI_MODEM_DIALUP_COMMAND;
308
309 typedef struct {
310 UINT8 PageBlackoutInterval;
311 } IPMI_PAGE_BLACKOUT_INTERVAL;
312
313 typedef struct {
314 UINT8 CommunityString[18];
315 } IPMI_EMP_COMMUNITY_STRING;
316
317 typedef struct {
318 UINT8 DestinationSelector : 4;
319 UINT8 Reserved1 : 4;
320 UINT8 DestinationType : 4;
321 UINT8 Reserved2 : 3;
322 UINT8 AlertAckRequired : 1;
323 UINT8 AlertAckTimeoutSeconds;
324 UINT8 NumRetriesCall : 3;
325 UINT8 Reserved3 : 1;
326 UINT8 NumRetryAlert : 3;
327 UINT8 Reserved4 : 1;
328 union {
329 struct {
330 UINT8 Reserved5 : 4;
331 UINT8 DialStringSelector : 4;
332 } DIAL_PAGE_DESTINATION;
333 struct {
334 UINT8 TapAccountSelector : 4;
335 UINT8 Reserved : 4;
336 } TAP_PAGE_DESTINATION;
337 struct {
338 UINT8 PPPAccountSetSelector;
339 UINT8 DialStringSelector;
340 } PPP_ALERT_DESTINATION;
341 } DEST_TYPE_SPECIFIC;
342 } IPMI_EMP_DESTINATION_INFO;
343
344 typedef struct {
345 UINT8 DestinationSelector : 4;
346 UINT8 Reserved1 : 4;
347 UINT8 Parity : 3;
348 UINT8 CharacterSize : 1;
349 UINT8 StopBit : 1;
350 UINT8 DtrHangup : 1;
351 UINT8 FlowControl : 2;
352 UINT8 BitRate : 4;
353 UINT8 Reserved2 : 4;
354 UINT8 SaveSetting : 1;
355 UINT8 SetComPort : 1;
356 UINT8 Reserved3 : 6;
357 } IPMI_EMP_DESTINATION_COM_SETTING;
358
359 typedef struct {
360 UINT8 DialStringSelector : 4;
361 UINT8 Reserved1 : 4;
362 UINT8 Reserved2;
363 UINT8 DialString[48];
364 } IPMI_DESTINATION_DIAL_STRING;
365
366 typedef struct {
367 UINT8 IpAddressSelector : 4;
368 UINT8 Reserved1 : 4;
369 union {
370 UINT32 IpAddressLong;
371 UINT8 IpAddress[4];
372 } PPP_IP_ADDRESS;
373 } IPMI_DESTINATION_IP_ADDRESS;
374
375 typedef struct {
376 UINT8 TapSelector;
377 UINT8 TapServiceSelector : 4;
378 UINT8 TapDialStringSelector : 4;
379 } IPMI_DESTINATION_TAP_ACCOUNT;
380
381 typedef struct {
382 UINT8 TapSelector;
383 UINT8 PagerIdString[16];
384 } IPMI_TAP_PAGER_ID_STRING;
385
386 typedef union {
387 UINT8 OptionData;
388 IPMI_EMP_AUTH_TYPE EmpAuthType;
389 IPMI_EMP_CONNECTION_TYPE EmpConnectionType;
390 IPMI_EMP_INACTIVITY_TIMEOUT EmpInactivityTimeout;
391 IPMI_EMP_CHANNEL_CALLBACK_CONTROL EmpCallbackControl;
392 IPMI_EMP_SESSION_TERMINATION EmpSessionTermination;
393 IPMI_EMP_MESSAGING_COM_SETTING EmpMessagingComSetting;
394 IPMI_EMP_MODEM_RING_TIME EmpModemRingTime;
395 IPMI_EMP_MODEM_INIT_STRING EmpModemInitString;
396 IPMI_EMP_MODEM_ESC_SEQUENCE EmpModemEscSequence;
397 IPMI_EMP_MODEM_HANGUP_SEQUENCE EmpModemHangupSequence;
398 IPMI_MODEM_DIALUP_COMMAND EmpModemDialupCommand;
399 IPMI_PAGE_BLACKOUT_INTERVAL EmpPageBlackoutInterval;
400 IPMI_EMP_COMMUNITY_STRING EmpCommunityString;
401 IPMI_EMP_DESTINATION_INFO EmpDestinationInfo;
402 IPMI_EMP_DESTINATION_COM_SETTING EmpDestinationComSetting;
403 UINT8 CallRetryBusySignalInterval;
404 IPMI_DESTINATION_DIAL_STRING DestinationDialString;
405 IPMI_DESTINATION_IP_ADDRESS DestinationIpAddress;
406 IPMI_DESTINATION_TAP_ACCOUNT DestinationTapAccount;
407 IPMI_TAP_PAGER_ID_STRING TapPagerIdString;
408 } IPMI_EMP_OPTIONS;
409
410 //
411 // Definitions for Get Serial/Modem Configuration command
412 //
413 #define IPMI_TRANSPORT_GET_SERIAL_CONFIGURATION 0x11
414
415 //
416 // Constants and Structure definitions for "Get Serial/Modem Configuration" command to follow here
417 //
418
419 //
420 // Definitions for Set Serial/Modem Mux command
421 //
422 #define IPMI_TRANSPORT_SET_SERIAL_MUX 0x12
423
424 //
425 // Constants and Structure definitions for "Set Serial/Modem Mux" command to follow here
426 //
427 typedef struct {
428 UINT8 ChannelNo : 4;
429 UINT8 Reserved1 : 4;
430 UINT8 MuxSetting : 4;
431 UINT8 Reserved2 : 4;
432 } IPMI_SET_MUX_COMMAND;
433
434 typedef struct {
435 UINT8 MuxSetToBmc : 1;
436 UINT8 CommandStatus : 1;
437 UINT8 MessagingSessionActive : 1;
438 UINT8 AlertInProgress : 1;
439 UINT8 Reserved2 : 2;
440 UINT8 MuxToBmcAllowed : 1;
441 UINT8 MuxToSystemBlocked : 1;
442 } IPMI_MUX_CONFIG;
443
444 //
445 // Definitions for Get TAP Response Code command
446 //
447 #define IPMI_TRANSPORT_GET_TAP_RESPONSE_CODE 0x13
448
449 //
450 // Constants and Structure definitions for "Get TAP Response Code" command to follow here
451 //
452
453 //
454 // Definitions for Set PPP UDP Proxy Transmit Data command
455 //
456 #define IPMI_TRANSPORT_SET_PPP_UDP_PROXY_TXDATA 0x14
457
458 //
459 // Constants and Structure definitions for "Set PPP UDP Proxy Transmit Data" command to follow here
460 //
461
462 //
463 // Definitions for Get PPP UDP Proxy Transmit Data command
464 //
465 #define IPMI_TRANSPORT_GET_PPP_UDP_PROXY_TXDATA 0x15
466
467 //
468 // Constants and Structure definitions for "Get PPP UDP Proxy Transmit Data" command to follow here
469 //
470
471 //
472 // Definitions for Send PPP UDP Proxy Packet command
473 //
474 #define IPMI_TRANSPORT_SEND_PPP_UDP_PROXY_PACKET 0x16
475
476 //
477 // Constants and Structure definitions for "Send PPP UDP Proxy Packet" command to follow here
478 //
479
480 //
481 // Definitions for Get PPP UDP Proxy Receive Data command
482 //
483 #define IPMI_TRANSPORT_GET_PPP_UDP_PROXY_RX 0x17
484
485 //
486 // Constants and Structure definitions for "Get PPP UDP Proxy Receive Data" command to follow here
487 //
488
489 //
490 // Definitions for Serial/Modem connection active command
491 //
492 #define IPMI_TRANSPORT_SERIAL_CONNECTION_ACTIVE 0x18
493
494 //
495 // Constants and Structure definitions for "Serial/Modem connection active" command to follow here
496 //
497
498 //
499 // Definitions for Callback command
500 //
501 #define IPMI_TRANSPORT_CALLBACK 0x19
502
503 //
504 // Constants and Structure definitions for "Callback" command to follow here
505 //
506
507 //
508 // Definitions for Set user Callback Options command
509 //
510 #define IPMI_TRANSPORT_SET_USER_CALLBACK_OPTIONS 0x1A
511
512 //
513 // Constants and Structure definitions for "Set user Callback Options" command to follow here
514 //
515
516 //
517 // Definitions for Get user Callback Options command
518 //
519 #define IPMI_TRANSPORT_GET_USER_CALLBACK_OPTIONS 0x1B
520
521 //
522 // Constants and Structure definitions for "Get user Callback Options" command to follow here
523 //
524
525 //
526 // Below is Definitions for SOL Commands (Chapter 26)
527 //
528
529 //
530 // Definitions for SOL activating command
531 //
532 #define IPMI_TRANSPORT_SOL_ACTIVATING 0x20
533
534 //
535 // Constants and Structure definitions for "SOL activating" command to follow here
536 //
537
538 //
539 // Definitions for Set SOL Configuration Parameters command
540 //
541 #define IPMI_TRANSPORT_SET_SOL_CONFIG_PARAM 0x21
542
543 //
544 // Constants and Structure definitions for "Set SOL Configuration Parameters" command to follow here
545 //
546
547 //
548 // Definitions for Get SOL Configuration Parameters command
549 //
550 #define IPMI_TRANSPORT_GET_SOL_CONFIG_PARAM 0x22
551
552 //
553 // Constants and Structure definitions for "Get SOL Configuration Parameters" command to follow here
554 //
555 #pragma pack()
556 #endif