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