]> git.proxmox.com Git - mirror_edk2.git/blob - MdePkg/Include/IndustryStandard/IpmiNetFnTransport.h
UefiCpuPkg: Move AsmRelocateApLoopStart from Mpfuncs.nasm to AmdSev.nasm
[mirror_edk2.git] / MdePkg / Include / IndustryStandard / IpmiNetFnTransport.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 - 2018, Intel Corporation. All rights reserved.<BR>
14 Copyright (C) 2023 Advanced Micro Devices, Inc. All rights reserved.<BR>
15 SPDX-License-Identifier: BSD-2-Clause-Patent
16 **/
17
18 #ifndef _IPMI_NET_FN_TRANSPORT_H_
19 #define _IPMI_NET_FN_TRANSPORT_H_
20
21 #pragma pack(1)
22 //
23 // Net function definition for Transport command
24 //
25 #define IPMI_NETFN_TRANSPORT 0x0C
26
27 //
28 // Below is Definitions for IPM LAN Commands (Chapter 23)
29 //
30
31 //
32 // Definitions for Set Lan Configuration Parameters command
33 //
34 #define IPMI_TRANSPORT_SET_LAN_CONFIG_PARAMETERS 0x01
35
36 //
37 // Constants and Structure definitions for "Set Lan Configuration Parameters" command to follow here
38 //
39
40 //
41 // LAN Management Structure
42 //
43 typedef enum {
44 IpmiLanReserved1,
45 IpmiLanReserved2,
46 IpmiLanAuthType,
47 IpmiLanIpAddress,
48 IpmiLanIpAddressSource,
49 IpmiLanMacAddress,
50 IpmiLanSubnetMask,
51 IpmiLanIpv4HeaderParam,
52 IpmiLanPrimaryRcmpPort,
53 IpmiLanSecondaryRcmpPort,
54 IpmiLanBmcGeneratedArpCtrl,
55 IpmiLanArpInterval,
56 IpmiLanDefaultGateway,
57 IpmiLanDefaultGatewayMac,
58 IpmiLanBackupGateway,
59 IpmiLanBackupGatewayMac,
60 IpmiLanCommunityString,
61 IpmiLanReserved3,
62 IpmiLanDestinationType,
63 IpmiLanDestinationAddress,
64 IpmiLanVlanId = 0x14,
65 IpmiIpv4OrIpv6Support = 0x32,
66 IpmiIpv4OrIpv6AddressEnable,
67 IpmiIpv6HdrStatTrafficClass,
68 IpmiIpv6HdrStatHopLimit,
69 IpmiIpv6HdrFlowLabel,
70 IpmiIpv6Status,
71 IpmiIpv6StaticAddress,
72 IpmiIpv6DhcpStaticDuidLen,
73 IpmiIpv6DhcpStaticDuid,
74 IpmiIpv6DhcpAddress,
75 IpmiIpv6DhcpDynamicDuidLen,
76 IpmiIpv6DhcpDynamicDuid,
77 IpmiIpv6RouterConfig = 0x40,
78 IpmiIpv6StaticRouter1IpAddr,
79 IpmiIpv6DynamicRouterIpAddr = 0x4a
80 } IPMI_LAN_OPTION_TYPE;
81
82 //
83 // IP Address Source
84 //
85 typedef enum {
86 IpmiUnspecified,
87 IpmiStaticAddrsss,
88 IpmiDynamicAddressBmcDhcp,
89 IpmiDynamicAddressBiosDhcp,
90 IpmiDynamicAddressBmcNonDhcp
91 } IPMI_IP_ADDRESS_SRC;
92
93 //
94 // Destination Type
95 //
96 typedef enum {
97 IpmiPetTrapDestination,
98 IpmiDirectedEventDestination,
99 IpmiReserved1,
100 IpmiReserved2,
101 IpmiReserved3,
102 IpmiReserved4,
103 IpmiReserved5,
104 IpmiOem1,
105 IpmiOem2
106 } IPMI_LAN_DEST_TYPE_DEST_TYPE;
107
108 //
109 // Destination address format
110 //
111 typedef enum {
112 IpmiDestinationAddressVersion4,
113 IpmiDestinationAddressVersion6
114 } IPMI_LAN_DEST_ADDRESS_VERSION;
115
116 typedef union {
117 struct {
118 UINT8 NoAuth : 1;
119 UINT8 MD2Auth : 1;
120 UINT8 MD5Auth : 1;
121 UINT8 Reserved1 : 1;
122 UINT8 StraightPswd : 1;
123 UINT8 OemType : 1;
124 UINT8 Reserved2 : 2;
125 } Bits;
126 UINT8 Uint8;
127 } IPMI_LAN_AUTH_TYPE;
128
129 typedef struct {
130 UINT8 IpAddress[4];
131 } IPMI_LAN_IP_ADDRESS;
132
133 typedef union {
134 struct {
135 UINT8 AddressSrc : 4;
136 UINT8 Reserved : 4;
137 } Bits;
138 UINT8 Uint8;
139 } IPMI_LAN_IP_ADDRESS_SRC;
140
141 typedef struct {
142 UINT8 MacAddress[6];
143 } IPMI_LAN_MAC_ADDRESS;
144
145 typedef struct {
146 UINT8 IpAddress[4];
147 } IPMI_LAN_SUBNET_MASK;
148
149 typedef union {
150 struct {
151 UINT8 IpFlag : 3;
152 UINT8 Reserved : 5;
153 } Bits;
154 UINT8 Uint8;
155 } IPMI_LAN_IPV4_HDR_PARAM_DATA_2;
156
157 typedef union {
158 struct {
159 UINT8 Precedence : 3;
160 UINT8 Reserved : 1;
161 UINT8 ServiceType : 4;
162 } Bits;
163 UINT8 Uint8;
164 } IPMI_LAN_IPV4_HDR_PARAM_DATA_3;
165
166 typedef struct {
167 UINT8 TimeToLive;
168 IPMI_LAN_IPV4_HDR_PARAM_DATA_2 Data2;
169 IPMI_LAN_IPV4_HDR_PARAM_DATA_3 Data3;
170 } IPMI_LAN_IPV4_HDR_PARAM;
171
172 typedef struct {
173 UINT8 RcmpPortMsb;
174 UINT8 RcmpPortLsb;
175 } IPMI_LAN_RCMP_PORT;
176
177 typedef union {
178 struct {
179 UINT8 EnableBmcArpResponse : 1;
180 UINT8 EnableBmcGratuitousArp : 1;
181 UINT8 Reserved : 6;
182 } Bits;
183 UINT8 Uint8;
184 } IPMI_LAN_BMC_GENERATED_ARP_CONTROL;
185
186 typedef struct {
187 UINT8 ArpInterval;
188 } IPMI_LAN_ARP_INTERVAL;
189
190 typedef struct {
191 UINT8 IpAddress[4];
192 } IPMI_LAN_DEFAULT_GATEWAY;
193
194 typedef struct {
195 UINT8 Data[18];
196 } IPMI_LAN_COMMUNITY_STRING;
197
198 typedef union {
199 struct {
200 UINT8 DestinationSelector : 4;
201 UINT8 Reserved : 4;
202 } Bits;
203 UINT8 Uint8;
204 } IPMI_LAN_SET_SELECTOR;
205
206 typedef union {
207 struct {
208 UINT8 DestinationType : 3;
209 UINT8 Reserved : 4;
210 UINT8 AlertAcknowledged : 1;
211 } Bits;
212 UINT8 Uint8;
213 } IPMI_LAN_DEST_TYPE_DESTINATION_TYPE;
214
215 typedef struct {
216 IPMI_LAN_SET_SELECTOR SetSelector;
217 IPMI_LAN_DEST_TYPE_DESTINATION_TYPE DestinationType;
218 } IPMI_LAN_DEST_TYPE;
219
220 typedef union {
221 struct {
222 UINT8 AlertingIpAddressSelector : 4;
223 UINT8 AddressFormat : 4;
224 } Bits;
225 UINT8 Uint8;
226 } IPMI_LAN_ADDRESS_FORMAT;
227
228 typedef union {
229 struct {
230 UINT8 UseDefaultGateway : 1;
231 UINT8 Reserved2 : 7;
232 } Bits;
233 UINT8 Uint8;
234 } IPMI_LAN_GATEWAY_SELECTOR;
235
236 typedef struct {
237 IPMI_LAN_SET_SELECTOR SetSelector;
238 IPMI_LAN_ADDRESS_FORMAT AddressFormat;
239 IPMI_LAN_GATEWAY_SELECTOR GatewaySelector;
240 IPMI_LAN_IP_ADDRESS AlertingIpAddress;
241 IPMI_LAN_MAC_ADDRESS AlertingMacAddress;
242 } IPMI_LAN_DEST_ADDRESS;
243
244 typedef struct {
245 UINT8 VanIdLowByte;
246 } IPMI_LAN_VLAN_ID_DATA1;
247
248 typedef union {
249 struct {
250 UINT8 VanIdHighByte : 4;
251 UINT8 Reserved : 3;
252 UINT8 Enabled : 1;
253 } Bits;
254 UINT8 Uint8;
255 } IPMI_LAN_VLAN_ID_DATA2;
256
257 typedef struct {
258 IPMI_LAN_VLAN_ID_DATA1 Data1;
259 IPMI_LAN_VLAN_ID_DATA2 Data2;
260 } IPMI_LAN_VLAN_ID;
261
262 typedef union {
263 IPMI_LAN_AUTH_TYPE IpmiLanAuthType;
264 IPMI_LAN_IP_ADDRESS IpmiLanIpAddress;
265 IPMI_LAN_IP_ADDRESS_SRC IpmiLanIpAddressSrc;
266 IPMI_LAN_MAC_ADDRESS IpmiLanMacAddress;
267 IPMI_LAN_SUBNET_MASK IpmiLanSubnetMask;
268 IPMI_LAN_IPV4_HDR_PARAM IpmiLanIpv4HdrParam;
269 IPMI_LAN_RCMP_PORT IpmiLanPrimaryRcmpPort;
270 IPMI_LAN_BMC_GENERATED_ARP_CONTROL IpmiLanArpControl;
271 IPMI_LAN_ARP_INTERVAL IpmiLanArpInterval;
272 IPMI_LAN_COMMUNITY_STRING IpmiLanCommunityString;
273 IPMI_LAN_DEST_TYPE IpmiLanDestType;
274 IPMI_LAN_DEST_ADDRESS IpmiLanDestAddress;
275 } IPMI_LAN_OPTIONS;
276
277 typedef union {
278 struct {
279 UINT8 AddressSourceType : 4;
280 UINT8 Reserved : 3;
281 UINT8 EnableStatus : 1;
282 } Bits;
283 UINT8 Uint8;
284 } IPMI_LAN_IPV6_ADDRESS_SOURCE_TYPE;
285
286 typedef struct {
287 UINT8 SetSelector;
288 IPMI_LAN_IPV6_ADDRESS_SOURCE_TYPE AddressSourceType;
289 UINT8 Ipv6Address[16];
290 UINT8 AddressPrefixLen;
291 UINT8 AddressStatus;
292 } IPMI_LAN_IPV6_STATIC_ADDRESS;
293
294 //
295 // Set in progress parameter
296 //
297 typedef union {
298 struct {
299 UINT8 SetInProgress : 2;
300 UINT8 Reserved : 6;
301 } Bits;
302 UINT8 Uint8;
303 } IPMI_LAN_SET_IN_PROGRESS;
304
305 typedef union {
306 struct {
307 UINT8 ChannelNo : 4;
308 UINT8 Reserved : 4;
309 } Bits;
310 UINT8 Uint8;
311 } IPMI_SET_LAN_CONFIG_CHANNEL_NUM;
312
313 typedef struct {
314 IPMI_SET_LAN_CONFIG_CHANNEL_NUM ChannelNumber;
315 UINT8 ParameterSelector;
316 UINT8 ParameterData[0];
317 } IPMI_SET_LAN_CONFIGURATION_PARAMETERS_COMMAND_REQUEST;
318
319 //
320 // Definitions for Get Lan Configuration Parameters command
321 //
322 #define IPMI_TRANSPORT_GET_LAN_CONFIG_PARAMETERS 0x02
323
324 //
325 // Constants and Structure definitions for "Get Lan Configuration Parameters" command to follow here
326 //
327 typedef union {
328 struct {
329 UINT8 ChannelNo : 4;
330 UINT8 Reserved : 3;
331 UINT8 GetParameter : 1;
332 } Bits;
333 UINT8 Uint8;
334 } IPMI_GET_LAN_CONFIG_CHANNEL_NUM;
335
336 typedef struct {
337 IPMI_GET_LAN_CONFIG_CHANNEL_NUM ChannelNumber;
338 UINT8 ParameterSelector;
339 UINT8 SetSelector;
340 UINT8 BlockSelector;
341 } IPMI_GET_LAN_CONFIGURATION_PARAMETERS_REQUEST;
342
343 typedef struct {
344 UINT8 CompletionCode;
345 UINT8 ParameterRevision;
346 UINT8 ParameterData[0];
347 } IPMI_GET_LAN_CONFIGURATION_PARAMETERS_RESPONSE;
348
349 //
350 // Definitions for Suspend BMC ARPs command
351 //
352 #define IPMI_TRANSPORT_SUSPEND_BMC_ARPS 0x03
353
354 //
355 // Constants and Structure definitions for "Suspend BMC ARPs" command to follow here
356 //
357
358 //
359 // Definitions for Get IP-UDP-RMCP Statistics command
360 //
361 #define IPMI_TRANSPORT_GET_PACKET_STATISTICS 0x04
362
363 //
364 // Constants and Structure definitions for "Get IP-UDP-RMCP Statistics" command to follow here
365 //
366
367 //
368 // Below is Definitions for IPMI Serial/Modem Commands (Chapter 25)
369 //
370
371 //
372 // Definitions for Set Serial/Modem Configuration command
373 //
374 #define IPMI_TRANSPORT_SET_SERIAL_CONFIGURATION 0x10
375
376 //
377 // Constants and Structure definitions for "Set Serial/Modem Configuration" command to follow here
378 //
379
380 //
381 // EMP OPTION DATA
382 //
383 typedef union {
384 struct {
385 UINT8 NoAuthentication : 1;
386 UINT8 MD2Authentication : 1;
387 UINT8 MD5Authentication : 1;
388 UINT8 Reserved1 : 1;
389 UINT8 StraightPassword : 1;
390 UINT8 OemProprietary : 1;
391 UINT8 Reservd2 : 2;
392 } Bits;
393 UINT8 Uint8;
394 } IPMI_EMP_AUTH_TYPE;
395
396 typedef union {
397 struct {
398 UINT8 EnableBasicMode : 1;
399 UINT8 EnablePPPMode : 1;
400 UINT8 EnableTerminalMode : 1;
401 UINT8 Reserved1 : 2;
402 UINT8 SnoopOsPPPNegotiation : 1;
403 UINT8 Reserved2 : 1;
404 UINT8 DirectConnect : 1;
405 } Bits;
406 UINT8 Uint8;
407 } IPMI_EMP_CONNECTION_TYPE;
408
409 typedef union {
410 struct {
411 UINT8 InactivityTimeout : 4;
412 UINT8 Reserved : 4;
413 } Bits;
414 UINT8 Uint8;
415 } IPMI_EMP_INACTIVITY_TIMEOUT;
416
417 typedef union {
418 struct {
419 UINT8 IpmiCallback : 1;
420 UINT8 CBCPCallback : 1;
421 UINT8 Reserved : 6;
422 } Bits;
423 UINT8 Uint8;
424 } IPMI_CHANNEL_CALLBACK_CONTROL_ENABLE;
425
426 typedef union {
427 struct {
428 UINT8 CbcpEnableNoCallback : 1;
429 UINT8 CbcpEnablePreSpecifiedNumber : 1;
430 UINT8 CbcpEnableUserSpecifiedNumber : 1;
431 UINT8 CbcpEnableCallbackFromList : 1;
432 UINT8 Reserved : 4;
433 } Bits;
434 UINT8 Uint8;
435 } IPMI_CHANNEL_CALLBACK_CONTROL_CBCP;
436
437 typedef struct {
438 IPMI_CHANNEL_CALLBACK_CONTROL_ENABLE CallbackEnable;
439 IPMI_CHANNEL_CALLBACK_CONTROL_CBCP CBCPNegotiation;
440 UINT8 CallbackDestination1;
441 UINT8 CallbackDestination2;
442 UINT8 CallbackDestination3;
443 } IPMI_EMP_CHANNEL_CALLBACK_CONTROL;
444
445 typedef union {
446 struct {
447 UINT8 CloseSessionOnDCDLoss : 1;
448 UINT8 EnableSessionInactivityTimeout : 1;
449 UINT8 Reserved : 6;
450 } Bits;
451 UINT8 Uint8;
452 } IPMI_EMP_SESSION_TERMINATION;
453
454 typedef union {
455 struct {
456 UINT8 Reserved1 : 5;
457 UINT8 EnableDtrHangup : 1;
458 UINT8 FlowControl : 2;
459 UINT8 BitRate : 4;
460 UINT8 Reserved2 : 4;
461 UINT8 SaveSetting : 1;
462 UINT8 SetComPort : 1;
463 UINT8 Reserved3 : 6;
464 } Bits;
465 UINT8 Uint8;
466 UINT16 Uint16;
467 } IPMI_EMP_MESSAGING_COM_SETTING;
468
469 typedef union {
470 struct {
471 UINT8 RingDurationInterval : 6;
472 UINT8 Reserved1 : 2;
473 UINT8 RingDeadTime : 4;
474 UINT8 Reserved2 : 4;
475 } Bits;
476 UINT8 Uint8;
477 } IPMI_EMP_MODEM_RING_TIME;
478
479 typedef struct {
480 UINT8 Reserved;
481 UINT8 InitString[48];
482 } IPMI_EMP_MODEM_INIT_STRING;
483
484 typedef struct {
485 UINT8 EscapeSequence[5];
486 } IPMI_EMP_MODEM_ESC_SEQUENCE;
487
488 typedef struct {
489 UINT8 HangupSequence[8];
490 } IPMI_EMP_MODEM_HANGUP_SEQUENCE;
491
492 typedef struct {
493 UINT8 ModelDialCommend[8];
494 } IPMI_MODEM_DIALUP_COMMAND;
495
496 typedef struct {
497 UINT8 PageBlackoutInterval;
498 } IPMI_PAGE_BLACKOUT_INTERVAL;
499
500 typedef struct {
501 UINT8 CommunityString[18];
502 } IPMI_EMP_COMMUNITY_STRING;
503
504 typedef union {
505 struct {
506 UINT8 Reserved : 4;
507 UINT8 DialStringSelector : 4;
508 } Bits;
509 UINT8 Uint8;
510 } IPMI_DIAL_PAGE_DESTINATION;
511
512 typedef union {
513 struct {
514 UINT8 TapAccountSelector : 4;
515 UINT8 Reserved : 4;
516 } Bits;
517 UINT8 Uint8;
518 } IPMI_TAP_PAGE_DESTINATION;
519
520 typedef struct {
521 UINT8 PPPAccountSetSelector;
522 UINT8 DialStringSelector;
523 } IPMI_PPP_ALERT_DESTINATION;
524
525 typedef union {
526 IPMI_DIAL_PAGE_DESTINATION DialPageDestination;
527 IPMI_TAP_PAGE_DESTINATION TapPageDestination;
528 IPMI_PPP_ALERT_DESTINATION PppAlertDestination;
529 } IPMI_DEST_TYPE_SPECIFIC;
530
531 typedef union {
532 struct {
533 UINT8 DestinationSelector : 4;
534 UINT8 Reserved : 4;
535 } Bits;
536 UINT8 Uint8;
537 } IPMI_EMP_DESTINATION_SELECTOR;
538
539 typedef union {
540 struct {
541 UINT8 DestinationType : 4;
542 UINT8 Reserved : 3;
543 UINT8 AlertAckRequired : 1;
544 } Bits;
545 UINT8 Uint8;
546 } IPMI_EMP_DESTINATION_TYPE;
547
548 typedef union {
549 struct {
550 UINT8 NumRetriesCall : 3;
551 UINT8 Reserved1 : 1;
552 UINT8 NumRetryAlert : 3;
553 UINT8 Reserved2 : 1;
554 } Bits;
555 UINT8 Uint8;
556 } IPMI_EMP_RETRIES;
557
558 typedef struct {
559 IPMI_EMP_DESTINATION_SELECTOR DestinationSelector;
560 IPMI_EMP_DESTINATION_TYPE DestinationType;
561 UINT8 AlertAckTimeoutSeconds;
562 IPMI_EMP_RETRIES Retries;
563 IPMI_DEST_TYPE_SPECIFIC DestinationTypeSpecific;
564 } IPMI_EMP_DESTINATION_INFO;
565
566 typedef union {
567 struct {
568 UINT8 Parity : 3;
569 UINT8 CharacterSize : 1;
570 UINT8 StopBit : 1;
571 UINT8 DtrHangup : 1;
572 UINT8 FlowControl : 2;
573 } Bits;
574 UINT8 Uint8;
575 } IPMI_EMP_DESTINATION_COM_SETTING_DATA_2;
576
577 typedef union {
578 struct {
579 UINT8 BitRate : 4;
580 UINT8 Reserved : 4;
581 } Bits;
582 UINT8 Uint8;
583 } IPMI_EMP_BIT_RATE;
584
585 typedef struct {
586 IPMI_EMP_DESTINATION_SELECTOR DestinationSelector;
587 IPMI_EMP_DESTINATION_COM_SETTING_DATA_2 Data2;
588 IPMI_EMP_BIT_RATE BitRate;
589 } IPMI_EMP_DESTINATION_COM_SETTING;
590
591 typedef union {
592 struct {
593 UINT8 DialStringSelector : 4;
594 UINT8 Reserved : 4;
595 } Bits;
596 UINT8 Uint8;
597 } IPMI_DIAL_STRING_SELECTOR;
598
599 typedef struct {
600 IPMI_DIAL_STRING_SELECTOR DestinationSelector;
601 UINT8 Reserved;
602 UINT8 DialString[48];
603 } IPMI_DESTINATION_DIAL_STRING;
604
605 typedef union {
606 UINT32 IpAddressLong;
607 UINT8 IpAddress[4];
608 } IPMI_PPP_IP_ADDRESS;
609
610 typedef union {
611 struct {
612 UINT8 IpAddressSelector : 4;
613 UINT8 Reserved : 4;
614 } Bits;
615 UINT8 Uint8;
616 } IPMI_DESTINATION_IP_ADDRESS_SELECTOR;
617
618 typedef struct {
619 IPMI_DESTINATION_IP_ADDRESS_SELECTOR DestinationSelector;
620 IPMI_PPP_IP_ADDRESS PppIpAddress;
621 } IPMI_DESTINATION_IP_ADDRESS;
622
623 typedef union {
624 struct {
625 UINT8 TapServiceSelector : 4;
626 UINT8 TapDialStringSelector : 4;
627 } Bits;
628 UINT8 Uint8;
629 } IPMI_TAP_DIAL_STRING_SERVICE_SELECTOR;
630
631 typedef struct {
632 UINT8 TapSelector;
633 IPMI_TAP_DIAL_STRING_SERVICE_SELECTOR TapDialStringServiceSelector;
634 } IPMI_DESTINATION_TAP_ACCOUNT;
635
636 typedef struct {
637 UINT8 TapSelector;
638 UINT8 PagerIdString[16];
639 } IPMI_TAP_PAGER_ID_STRING;
640
641 typedef union {
642 UINT8 OptionData;
643 IPMI_EMP_AUTH_TYPE EmpAuthType;
644 IPMI_EMP_CONNECTION_TYPE EmpConnectionType;
645 IPMI_EMP_INACTIVITY_TIMEOUT EmpInactivityTimeout;
646 IPMI_EMP_CHANNEL_CALLBACK_CONTROL EmpCallbackControl;
647 IPMI_EMP_SESSION_TERMINATION EmpSessionTermination;
648 IPMI_EMP_MESSAGING_COM_SETTING EmpMessagingComSetting;
649 IPMI_EMP_MODEM_RING_TIME EmpModemRingTime;
650 IPMI_EMP_MODEM_INIT_STRING EmpModemInitString;
651 IPMI_EMP_MODEM_ESC_SEQUENCE EmpModemEscSequence;
652 IPMI_EMP_MODEM_HANGUP_SEQUENCE EmpModemHangupSequence;
653 IPMI_MODEM_DIALUP_COMMAND EmpModemDialupCommand;
654 IPMI_PAGE_BLACKOUT_INTERVAL EmpPageBlackoutInterval;
655 IPMI_EMP_COMMUNITY_STRING EmpCommunityString;
656 IPMI_EMP_DESTINATION_INFO EmpDestinationInfo;
657 IPMI_EMP_DESTINATION_COM_SETTING EmpDestinationComSetting;
658 UINT8 CallRetryBusySignalInterval;
659 IPMI_DESTINATION_DIAL_STRING DestinationDialString;
660 IPMI_DESTINATION_IP_ADDRESS DestinationIpAddress;
661 IPMI_DESTINATION_TAP_ACCOUNT DestinationTapAccount;
662 IPMI_TAP_PAGER_ID_STRING TapPagerIdString;
663 } IPMI_EMP_OPTIONS;
664
665 //
666 // Definitions for Get Serial/Modem Configuration command
667 //
668 #define IPMI_TRANSPORT_GET_SERIAL_CONFIGURATION 0x11
669
670 //
671 // Constants and Structure definitions for "Get Serial/Modem Configuration" command to follow here
672 //
673
674 //
675 // Definitions for Set Serial/Modem Mux command
676 //
677 #define IPMI_TRANSPORT_SET_SERIAL_MUX 0x12
678
679 //
680 // Constants and Structure definitions for "Set Serial/Modem Mux" command to follow here
681 //
682
683 //
684 // Set Serial/Modem Mux command request return status
685 //
686 #define IPMI_MUX_SETTING_REQUEST_REJECTED 0x00
687 #define IPMI_MUX_SETTING_REQUEST_ACCEPTED 0x01
688
689 //
690 // Definitions for serial multiplex settings
691 //
692 #define IPMI_MUX_SETTING_GET_MUX_SETTING 0x0
693 #define IPMI_MUX_SETTING_REQUEST_MUX_TO_SYSTEM 0x1
694 #define IPMI_MUX_SETTING_REQUEST_MUX_TO_BMC 0x2
695 #define IPMI_MUX_SETTING_FORCE_MUX_TO_SYSTEM 0x3
696 #define IPMI_MUX_SETTING_FORCE_MUX_TO_BMC 0x4
697 #define IPMI_MUX_SETTING_BLOCK_REQUEST_MUX_TO_SYSTEM 0x5
698 #define IPMI_MUX_SETTING_ALLOW_REQUEST_MUX_TO_SYSTEM 0x6
699 #define IPMI_MUX_SETTING_BLOCK_REQUEST_MUX_TO_BMC 0x7
700 #define IPMI_MUX_SETTING_ALLOW_REQUEST_MUX_TO_BMC 0x8
701
702 typedef union {
703 struct {
704 UINT8 ChannelNo : 4;
705 UINT8 Reserved : 4;
706 } Bits;
707 UINT8 Uint8;
708 } IPMI_MUX_CHANNEL_NUM;
709
710 typedef union {
711 struct {
712 UINT8 MuxSetting : 4;
713 UINT8 Reserved : 4;
714 } Bits;
715 UINT8 Uint8;
716 } IPMI_MUX_SETTING_REQUEST;
717
718 typedef struct {
719 IPMI_MUX_CHANNEL_NUM ChannelNumber;
720 IPMI_MUX_SETTING_REQUEST MuxSetting;
721 } IPMI_SET_SERIAL_MODEM_MUX_COMMAND_REQUEST;
722
723 typedef union {
724 struct {
725 UINT8 MuxSetToBmc : 1;
726 UINT8 CommandStatus : 1;
727 UINT8 MessagingSessionActive : 1;
728 UINT8 AlertInProgress : 1;
729 UINT8 Reserved : 2;
730 UINT8 MuxToBmcAllowed : 1;
731 UINT8 MuxToSystemBlocked : 1;
732 } Bits;
733 UINT8 Uint8;
734 } IPMI_MUX_SETTING_PRESENT_STATE;
735
736 typedef struct {
737 UINT8 CompletionCode;
738 IPMI_MUX_SETTING_PRESENT_STATE MuxSetting;
739 } IPMI_SET_SERIAL_MODEM_MUX_COMMAND_RESPONSE;
740
741 //
742 // Definitions for Get TAP Response Code command
743 //
744 #define IPMI_TRANSPORT_GET_TAP_RESPONSE_CODE 0x13
745
746 //
747 // Constants and Structure definitions for "Get TAP Response Code" command to follow here
748 //
749
750 //
751 // Definitions for Set PPP UDP Proxy Transmit Data command
752 //
753 #define IPMI_TRANSPORT_SET_PPP_UDP_PROXY_TXDATA 0x14
754
755 //
756 // Constants and Structure definitions for "Set PPP UDP Proxy Transmit Data" command to follow here
757 //
758
759 //
760 // Definitions for Get PPP UDP Proxy Transmit Data command
761 //
762 #define IPMI_TRANSPORT_GET_PPP_UDP_PROXY_TXDATA 0x15
763
764 //
765 // Constants and Structure definitions for "Get PPP UDP Proxy Transmit Data" command to follow here
766 //
767
768 //
769 // Definitions for Send PPP UDP Proxy Packet command
770 //
771 #define IPMI_TRANSPORT_SEND_PPP_UDP_PROXY_PACKET 0x16
772
773 //
774 // Constants and Structure definitions for "Send PPP UDP Proxy Packet" command to follow here
775 //
776
777 //
778 // Definitions for Get PPP UDP Proxy Receive Data command
779 //
780 #define IPMI_TRANSPORT_GET_PPP_UDP_PROXY_RX 0x17
781
782 //
783 // Constants and Structure definitions for "Get PPP UDP Proxy Receive Data" command to follow here
784 //
785
786 //
787 // Definitions for Serial/Modem connection active command
788 //
789 #define IPMI_TRANSPORT_SERIAL_CONNECTION_ACTIVE 0x18
790
791 //
792 // Constants and Structure definitions for "Serial/Modem connection active" command to follow here
793 //
794
795 //
796 // Definitions for Callback command
797 //
798 #define IPMI_TRANSPORT_CALLBACK 0x19
799
800 //
801 // Constants and Structure definitions for "Callback" command to follow here
802 //
803
804 //
805 // Definitions for Set user Callback Options command
806 //
807 #define IPMI_TRANSPORT_SET_USER_CALLBACK_OPTIONS 0x1A
808
809 //
810 // Constants and Structure definitions for "Set user Callback Options" command to follow here
811 //
812
813 //
814 // Definitions for Get user Callback Options command
815 //
816 #define IPMI_TRANSPORT_GET_USER_CALLBACK_OPTIONS 0x1B
817
818 //
819 // Constants and Structure definitions for "Get user Callback Options" command to follow here
820 //
821
822 //
823 // Below is Definitions for SOL Commands (Chapter 26)
824 //
825
826 //
827 // Definitions for SOL activating command
828 //
829 #define IPMI_TRANSPORT_SOL_ACTIVATING 0x20
830
831 //
832 // Constants and Structure definitions for "SOL activating" command to follow here
833 //
834 typedef union {
835 struct {
836 UINT8 SessionState : 4;
837 UINT8 Reserved : 4;
838 } Bits;
839 UINT8 Uint8;
840 } IPMI_SOL_SESSION_STATE;
841
842 typedef struct {
843 IPMI_SOL_SESSION_STATE SessionState;
844 UINT8 PayloadInstance;
845 UINT8 FormatVersionMajor; // 1
846 UINT8 FormatVersionMinor; // 0
847 } IPMI_SOL_ACTIVATING_REQUEST;
848
849 //
850 // Definitions for Set SOL Configuration Parameters command
851 //
852 #define IPMI_TRANSPORT_SET_SOL_CONFIG_PARAM 0x21
853
854 //
855 // Constants and Structure definitions for "Set SOL Configuration Parameters" command to follow here
856 //
857
858 //
859 // SOL Configuration Parameters selector
860 //
861 #define IPMI_SOL_CONFIGURATION_PARAMETER_SET_IN_PROGRESS 0
862 #define IPMI_SOL_CONFIGURATION_PARAMETER_SOL_ENABLE 1
863 #define IPMI_SOL_CONFIGURATION_PARAMETER_SOL_AUTHENTICATION 2
864 #define IPMI_SOL_CONFIGURATION_PARAMETER_SOL_CHARACTER_PARAM 3
865 #define IPMI_SOL_CONFIGURATION_PARAMETER_SOL_RETRY 4
866 #define IPMI_SOL_CONFIGURATION_PARAMETER_SOL_NV_BIT_RATE 5
867 #define IPMI_SOL_CONFIGURATION_PARAMETER_SOL_VOLATILE_BIT_RATE 6
868 #define IPMI_SOL_CONFIGURATION_PARAMETER_SOL_PAYLOAD_CHANNEL 7
869 #define IPMI_SOL_CONFIGURATION_PARAMETER_SOL_PAYLOAD_PORT 8
870
871 typedef union {
872 struct {
873 UINT8 ChannelNumber : 4;
874 UINT8 Reserved : 4;
875 } Bits;
876 UINT8 Uint8;
877 } IPMI_SET_SOL_CONFIG_PARAM_CHANNEL_NUM;
878
879 typedef struct {
880 IPMI_SET_SOL_CONFIG_PARAM_CHANNEL_NUM ChannelNumber;
881 UINT8 ParameterSelector;
882 UINT8 ParameterData[0];
883 } IPMI_SET_SOL_CONFIGURATION_PARAMETERS_REQUEST;
884
885 //
886 // Definitions for Get SOL Configuration Parameters command
887 //
888 #define IPMI_TRANSPORT_GET_SOL_CONFIG_PARAM 0x22
889
890 //
891 // Constants and Structure definitions for "Get SOL Configuration Parameters" command to follow here
892 //
893 typedef union {
894 struct {
895 UINT8 ChannelNumber : 4;
896 UINT8 Reserved : 3;
897 UINT8 GetParameter : 1;
898 } Bits;
899 UINT8 Uint8;
900 } IPMI_GET_SOL_CONFIG_PARAM_CHANNEL_NUM;
901
902 typedef struct {
903 IPMI_GET_SOL_CONFIG_PARAM_CHANNEL_NUM ChannelNumber;
904 UINT8 ParameterSelector;
905 UINT8 SetSelector;
906 UINT8 BlockSelector;
907 } IPMI_GET_SOL_CONFIGURATION_PARAMETERS_REQUEST;
908
909 typedef struct {
910 UINT8 CompletionCode;
911 UINT8 ParameterRevision;
912 UINT8 ParameterData[0];
913 } IPMI_GET_SOL_CONFIGURATION_PARAMETERS_RESPONSE;
914
915 #pragma pack()
916 #endif