summaryrefslogtreecommitdiffstats
path: root/RedfishPkg/RedfishPkg.dec
blob: 54318527fe660200a4385f076d8d1c8d0ad9c047 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
## @file
# Redfish Package
#
# Copyright (c) 2019, Intel Corporation. All rights reserved.<BR>
# (C) Copyright 2021 Hewlett Packard Enterprise Development LP<BR>
# Copyright (c) 2023, American Megatrends International LLC.
# Copyright (c) 2023-2024, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# Copyright (C) 2024 Advanced Micro Devices, Inc. All rights reserved.<BR>
#
# SPDX-License-Identifier: BSD-2-Clause-Patent
##

[Defines]
  DEC_SPECIFICATION = 0x0001001b
  PACKAGE_NAME      = RedfishPkg
  PACKAGE_GUID      = c432b76e-5232-11e7-9010-005056c00008
  PACKAGE_VERSION   = 1.0

[Includes]
  Include

[Includes.Common.Private]
  PrivateInclude/Crt            # Private header files for C RTL.
  Library/JsonLib               # Private header files for jansson
                                # configuration files.
                                #  - jansson_config.h
                                #  - jansson_private_config.h
                                # jansson.h refers to above two configuration
                                # files for building platform jansson library.
  Library/JsonLib/jansson/src   # For referring to jannson.h

[LibraryClasses]
  ##  @libraryclass Platform Redfish Host Interface Library
  #   Platform implementation-specific Redfish Host Interface.
  RedfishPlatformHostInterfaceLib|Include/Library/RedfishHostInterfaceLib.h

  ##  @libraryclass  This library provides UCS2 to UTF8 manipulation
  #   functions.
  #
  Ucs2Utf8Lib|Include/Library/BaseUcs2Utf8Lib.h

  ##  @libraryclass Platform Redfish Credential Library
  #   Platform implementation-specific Redfish Credential Interface.
  RedfishPlatformCredentialLib|Include/Library/RedfishCredentialLib.h

  ##  @libraryclass  The helper routines to access REST EX service.
  #   This library is only intended to be used by UEFI network stack modules.
  RestExLib|Include/Library/RestExLib.h

  ##  @libraryclass  Provides the library functions based on third party
  #  jansson library to manipulate JSON data structure.
  #
  JsonLib|Include/Library/JsonLib.h

  ##  @libraryclass  Provides the library functions to encode/decode
  #   Redfish packet.
  #
  RedfishContentCodingLib|Include/Library/RedfishContentCodingLib.h

  ##  @libraryclass Redfish Debug Library
  #   Library provides Redfish debug functions.
  RedfishDebugLib|Include/Library/RedfishDebugLib.h

  ##  @libraryclass  Provides the library functions to parse IFR binary data.
  #
  HiiUtilityLib|Include/Library/HiiUtilityLib.h

  ##  @libraryclass  Provides the library functions to access Redfish Platform
  #   Config protocol.
  #
  RedfishPlatformConfigLib|Include/Library/RedfishPlatformConfigLib.h

  ##  @libraryclass  Provides the library functions to access Redfish HTTP
  #   protocol.
  #
  RedfishHttpLib|Include/Library/RedfishHttpLib.h

[LibraryClasses.Common.Private]
  ##  @libraryclass  Provides the private C runtime library functions.
  #   CRT library is currently used by edk2 JsonLib (open source
  #   jansson project) and edk2 RedfishLib (libredfish open source
  #   project).
  RedfishCrtLib|Include/Library/RedfishCrtLib.h

  ##  @libraryclass Redfish Helper Library
  #   Library provides Redfish helper functions.
  RedfishLib|Include/Library/RedfishLib.h

[Protocols]
  ## Include/Protocol/EdkIIRedfishCredential.h
  gEdkIIRedfishCredentialProtocolGuid = { 0x8804377, 0xaf7a, 0x4496, { 0x8a, 0x7b, 0x17, 0x59, 0x0, 0xe9, 0xab, 0x46 } }

  ## Include/Protocol/Edk2RedfishConfigHandler.h
  gEdkIIRedfishConfigHandlerProtocolGuid = { 0xbc0fe6bb, 0x2cc9, 0x463e, { 0x90, 0x82, 0xfa, 0x11, 0x76, 0xfc, 0x67, 0xde } }

  ## Include/Protocol/EdkIIRedfishPlatformConfig.h
  gEdkIIRedfishPlatformConfigProtocolGuid = { 0X4D94A7C7, 0X4CE4, 0X4A84, { 0X88, 0XC1, 0X33, 0X0C, 0XD4, 0XA3, 0X47, 0X67 } }

  # Redfish Host Interface ready notification protocol
  gEdkIIRedfishHostInterfaceReadyProtocolGuid = { 0xC3F6D062, 0x3D38, 0x4EA4, { 0x92, 0xB1, 0xE8, 0xF8, 0x02, 0x27, 0x63, 0xDF } }

  ## Include/Protocol/EdkIIRedfishHttpProtocol.h
  gEdkIIRedfishHttpProtocolGuid = { 0x58a0f47e, 0xf45f, 0x4d44, { 0x89, 0x5b, 0x2a, 0xfe, 0xb0, 0x80, 0x15, 0xe2 } }

[Guids]
  gEfiRedfishPkgTokenSpaceGuid      = { 0x4fdbccb7, 0xe829, 0x4b4c, { 0x88, 0x87, 0xb2, 0x3f, 0xd7, 0x25, 0x4b, 0x85 }}

  # Redfish variable guid
  gEfiRedfishVariableGuid           = { 0x85ef8dd3, 0xe606, 0x4b89, { 0x8b, 0xbd, 0x93, 0xbf, 0x5c, 0xbe, 0x1c, 0x18 } }

[PcdsFixedAtBuild, PcdsPatchableInModule]
  #
  # This PCD is the UEFI device path which is used as the Redfish host interface.
  #
  gEfiRedfishPkgTokenSpaceGuid.PcdRedfishRestExServiceDevicePath|{0x0}|REST_EX_SERVICE_DEVICE_PATH_DATA|0x00001000 {
  <HeaderFiles>
    Pcd/RestExServiceDevicePath.h
  <Packages>
    MdePkg/MdePkg.dec
    MdeModulePkg/MdeModulePkg.dec
    RedfishPkg/RedfishPkg.dec
  }
  #
  # This PCD indicates the EFI REST EX access mode to Redfish service.
  # Default is set to out of band access.
  #
  gEfiRedfishPkgTokenSpaceGuid.PcdRedfishRestExServiceAccessModeInBand|FALSE|BOOLEAN|0x00001001
  #
  # This PCD indicates the access mode EFI Discover protocol uses to look for the proper EFI REST EX
  # protocol instance.
  #
  gEfiRedfishPkgTokenSpaceGuid.PcdRedfishDiscoverAccessModeInBand|FALSE|BOOLEAN|0x00001002
  #
  # This PCD indicates if the EFI REST EX sends chunk request to Redfish service.
  # Default is set to non chunk mode.
  #
  gEfiRedfishPkgTokenSpaceGuid.PcdRedfishRestExChunkRequestMode|FALSE|BOOLEAN|0x00001003
  #
  # This PCD indicates if the EFI REST EX adds Expect header to the POST, PATCH, PUT requests to Redfish service.
  # Default is set to not add.
  #
  gEfiRedfishPkgTokenSpaceGuid.PcdRedfishRestExAddingExpect|FALSE|BOOLEAN|0x00001004
  #
  # Use PCD to declare the Redfish host nmae becasue there is no
  # specification for that.
  #
  gEfiRedfishPkgTokenSpaceGuid.PcdRedfishHostName|"Redfish service"|VOID*|0x00001005
  #
  # Use PCD to declare the Redfish service UUID becasue there is no
  # specification for that.
  #
  gEfiRedfishPkgTokenSpaceGuid.PcdRedfishServiceUuid|L"00000000-0000-0000-0000-000000000000"|VOID*|0x00001006
  # Use PCD to declare the Redfish service port, default set to port 443.
  # Platform can overide this value in platform DSC file.
  #
  gEfiRedfishPkgTokenSpaceGuid.PcdRedfishServicePort|443|UINT16|0x00001007
  #
  # This PCD indicates that if BMC bootstrap credential service will be disabled by BIOS or not.
  #
  gEfiRedfishPkgTokenSpaceGuid.PcdRedfishDisableBootstrapCredentialService|FALSE|BOOLEAN|0x00001008
  #
  # The EFI_REST_EX_HTTP_CONFIG_DATA.SendReceiveTimeout value that RedfishDiscoverDxe driver
  # set to EFI_REST_EX_PROTOCOL.
  #
  gEfiRedfishPkgTokenSpaceGuid.PcdRedfishSendReceiveTimeout|5000|UINT32|0x00001009
  #
  # This PCD string is introduced for platform developer to set the encoding method supported by BMC Redfish.
  # Currently only "None" and "gzip" are supported.
  #
  gEfiRedfishPkgTokenSpaceGuid.PcdRedfishServiceContentEncoding|"None"|VOID*|0x0000100A
  #
  # Use below PCDs to control Redfhs HTTP protocol.
  #
  ## The number of retry when HTTP GET request failed. If the value is 0, there is no retry enabled.
  gEfiRedfishPkgTokenSpaceGuid.PcdHttpGetRetry|0|UINT16|0x0000100B
  ## The number of retry when HTTP PUT request failed. If the value is 0, there is no retry enabled.
  gEfiRedfishPkgTokenSpaceGuid.PcdHttpPutRetry|0|UINT16|0x0000100C
  ## The number of retry when HTTP PATCH request failed. If the value is 0, there is no retry enabled.
  gEfiRedfishPkgTokenSpaceGuid.PcdHttpPatchRetry|0|UINT16|0x0000100D
  ## The number of retry when HTTP POST request failed. If the value is 0, there is no retry enabled.
  gEfiRedfishPkgTokenSpaceGuid.PcdHttpPostRetry|0|UINT16|0x0000100E
  ## The number of retry when HTTP DELETE request failed. If the value is 0, there is no retry enabled.
  gEfiRedfishPkgTokenSpaceGuid.PcdHttpDeleteRetry|0|UINT16|0x0000100F
  ## The number of second to wait before driver retry HTTP request. If the value is 0, there is no wait before next retry.
  gEfiRedfishPkgTokenSpaceGuid.PcdHttpRetryWaitInSecond|1|UINT16|0x00001010
  ## This is used to disable Redfish HTTP cache function and every request will be sent to Redfish service.
  gEfiRedfishPkgTokenSpaceGuid.PcdHttpCacheDisabled|FALSE|BOOLEAN|0x00001011
  #
  # Redfish debug catagories
  # To enable the debug message for the entire edk2 Redfish implementation, below PCDs must be set.
  # DEBUG_MANAGEABILITY must be set PcdDebugPrintErrorLevel.
  #
  #   0x0000000000000001  RedfishPlatformConfigDxe driver debug enabled.
  #
  gEfiRedfishPkgTokenSpaceGuid.PcdRedfishDebugCategory|0|UINT64|0x00001012
  #
  # Redfish RedfishPlatformConfigDxe Debug Properties
  #   0x00000001  x-UEFI-redfish string database message enabled
  #   0x00000002  Debug Message for dumping formset
  #   0x00000004  Debug Message for x-UEFI-redfish searching result
  #   0x00000008  Debug Message for x-UEFI-redfish Regular Expression searching result
  #
  gEfiRedfishPkgTokenSpaceGuid.PcdRedfishPlatformConfigDebugProperty|0|UINT32|0x00001013
  #
  # RedfishPlatformConfigDxe feature enablement
  #   0x00000001  Enable building Redfish Attribute Registry menu path.
  #   0x00000002  Allow supressed HII option to be exposed on Redfish.
  #
  # Redfish RedfishPlatformConfigDxe feature Properties
  gEfiRedfishPkgTokenSpaceGuid.PcdRedfishPlatformConfigFeatureProperty|0|UINT32|0x00001014