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