History log of /openbmc/bmcweb/http/ (Results 51 – 75 of 468)
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
d5fb584a03-Jun-2024 Abhilash Raju <abhilash.kollam@gmail.com>

MTLS Client: Enabling mtls support in http_client

http_client currently does not uses mtls client certificates. This is
a good feature for both authentication and authorization purpose.
It will help

MTLS Client: Enabling mtls support in http_client

http_client currently does not uses mtls client certificates. This is
a good feature for both authentication and authorization purpose.
It will help external servers to trust the identity of bmc for better
security.This patch will add MTLS client certificate support for bmcweb

This is a needed feature to support secure redfish aggregation between
BMCs.
To support secure aggregation BMCs should be provisioned with CA signed
certificate with an authorized username as the subject name field of the
certificate.
With the support of strong MTLS authentication from Bmcweb server we can
use the MTLS path to enable secure redfish aggregation among BMCs. This
can avoid complexities and extra API calls needed for token based
approach.

Tested by:

Aggregation Test1:

1) Setup two instance of romulus qemu session at different ports.This
will act as two BMCs
2) Installed CA root certificates at /etc/ssl/certs/authority in both
BMCs
3) Installed server.pem and client.pem entity certificates signed by the
root CA at /etc/ssl/certs/https folder in both BMCs
4) Enable aggregation for Bmcweb.
5) Fired several redfish queries to BMC1

Result
Observed that the aggregation worked fine. User session created using
username mentined in the CN field of certificate.

Aggregation Test2:

Followed same steps from Aggregation Test1 with modification in step 3
In step3 installed only the server.pem.

Result

Bmcweb ran as usual. But aggregation failed to collect resources from
BMC2. No crash observed.

Redfish Event Test:

Subscribed for redfish events using test server.
Fired redfish test events from BMC.

Result:
Events reached server successfully.

Change-Id: Id8cccf9beec77da0f16adb72d52f3adf46347d06
Signed-off-by: Abhilash Raju <abhilash.kollam@gmail.com>
Signed-off-by: Ed Tanous <etanous@nvidia.com>

show more ...

099225cc28-Mar-2024 Ed Tanous <ed@tanous.net>

Make cert generate for readonly directories

When run from a development PC, we shouldn't REQUIRE that the cert
directory exists or is writable.

This commit reworks the SSL cert generation to genera

Make cert generate for readonly directories

When run from a development PC, we shouldn't REQUIRE that the cert
directory exists or is writable.

This commit reworks the SSL cert generation to generate a string with
the certification info, instead of writing it to disk and reading it
back. This allows bmcweb to start up in read-only environments, or
environments where there isn't access to the key information.

Tested: Launching the application on a dev desktop without an ssl
directory present no longer crashes.

Change-Id: I0d44eb1ce8d298986c5560803ca2d72958d3707c
Signed-off-by: Ed Tanous <ed@tanous.net>

show more ...

2ecde74f01-Jun-2024 Abhilash Raju <abhilash.kollam@gmail.com>

http_client: Fixing bug in retry after a close call

After a close call httpclient is not starting with fresh socket to
restart the connection. Send failure is observed in cases where new
connection

http_client: Fixing bug in retry after a close call

After a close call httpclient is not starting with fresh socket to
restart the connection. Send failure is observed in cases where new
connection is started from doResolve.Calling restartConnection instead
of doResolve did fix the issue.

Tested By:
Running developer test on use cases such as redfish aggregation where
number of retries are smaller.

Change-Id: I12f6a73fbafd14f482807f34ffa1e02fad944fc1
Signed-off-by: Abhilash Raju <abhilash.kollam@gmail.com>

show more ...

a3b9eb9803-Jun-2024 Ed Tanous <ed@tanous.net>

Make SSE pass

Redfish protocol validator is failing SSE. This is due to a clause in
the Redfish specification that requires a "json" error to be returned
when the SSE URI is hit with a standard req

Make SSE pass

Redfish protocol validator is failing SSE. This is due to a clause in
the Redfish specification that requires a "json" error to be returned
when the SSE URI is hit with a standard request.

In what exists today, we return 4XX (method not allowed) but because
this is handled by the HTTP layer, it's not possible to return the
correct Redfish payloads for when that 4XX happens within the Redfish
tree, because there is in fact a route that matches, that route just
doesn't support the type that we need.

This commit rearranges the router such that there are now 4 classes of
rules.

1. "verb" rules. These are GET/POST/PATCH type, and they are stored
using the existing PerMethod array index.
2. "upgrade" rules. These are for websocket or SSE routes that we
expect to upgrade to another route
3. 404 routes. These are called in the case where no route exists with
that given URI pattern, and no routes exist in the table for any
verb.
4. 405 method not allowed. These are called in the case where routes
exist in the tree for some method, but not for the method the user
requested.

To accomplish this, some minor refactors are implemented to separate out
the 4xx handlers to be their own variables, rather than just existing at
an index at the end of the verb table. This in turn means that
getRouteByIndex now changes to allow getting the route by PerMethod
instance, rather than index.

Tested:
unit tests pass (okish coverage)
Redfish protocol validator passes (with the exception of #277, which
fails identically before and after). SSE tests now pass.
Redfish service validator passes.

Change-Id: I555c50f392cb12ecbc39fbadbae6a3d50f4d1b23
Signed-off-by: Ed Tanous <etanous@nvidia.com>

show more ...

0242baff16-May-2024 Ed Tanous <ed@tanous.net>

Implement Chunking for unix sockets

Response::openFd was added recently to allow handlers to pass in a file
descriptor to be used to read. This worked great for files, but had
some trouble with uni

Implement Chunking for unix sockets

Response::openFd was added recently to allow handlers to pass in a file
descriptor to be used to read. This worked great for files, but had
some trouble with unix sockets. First, unix sockets have no known
length that we can get. They are fed by another client until that
client decides to stop sending data and sends an EOF. HTTP in general
needs to set the Content-Length header before starting a reply, so the
previous code just passes an error back.

HTTP has a concept of HTTP chunking, where a payload might not have a
known size, but can still be downloaded in chunks. Beast has handling
for this that we can enable that just deals with this at the protocol
layer silently. This patch enables that.

In addition, a unix socket very likely might not have data and will
block on the read call. Blocking in an async reactor is bad, and
especially bad when you don't know how large a payload is to be
expected, so it's possible those bytes will never come. This commit
sets all FDs into O_NONBLOCK[1] mode when they're sent to a response,
then handles the subsequent EWOULDBLOCK and EAGAIN messages when beast
propagates them to the http connection class. When these messages are
received, the doWrite loop is simply re-executed directly, attempting to
read from the socket again. For "slow" unix sockets, this very likely
results in some wasted cycles where we read 0 bytes from the socket, so
shouldn't be used for eventing purposes, given that bmcweb is
essentially in a spin loop while waiting for data, but given that this
is generally used for handling chunking of large payloads being
generated, and while spinning, other reactor operations can still
progress, this seems like a reasonable compromise.

[1] https://www.gnu.org/software/libc/manual/html_node/Open_002dtime-Flags.html

Tested:
The next patch in this series includes an example of explicitly adding a
unix socket as a response target, using the CredentialsPipe that bmcweb
already has. When this handler is present, curl shows the response
data, including the newlines (when dumped to a file)

```
curl -vvvv -k --user "root:0penBmc" https://192.168.7.2/testpipe -o output.txt
```

Loading the webui works as expected, logging in produces the overview
page as expected, and network console shows no failed requests.

Redfish service validator passes.

Change-Id: I8bd8586ae138f5b55033b78df95c798aa1d014db
Signed-off-by: Ed Tanous <ed@tanous.net>

show more ...


/openbmc/bmcweb/.prettierignore
/openbmc/bmcweb/config/bmcweb.socket.in
/openbmc/bmcweb/config/bmcweb_config.h.in
/openbmc/bmcweb/config/meson.build
http_body.hpp
http_connection.hpp
http_response.hpp
/openbmc/bmcweb/include/file_test_utilities.hpp
/openbmc/bmcweb/include/sessions.hpp
/openbmc/bmcweb/include/vm_websocket.hpp
/openbmc/bmcweb/meson.build
/openbmc/bmcweb/meson_options.txt
/openbmc/bmcweb/redfish-core/include/event_service_manager.hpp
/openbmc/bmcweb/redfish-core/include/schemas.hpp
/openbmc/bmcweb/redfish-core/include/utils/pcie_util.hpp
/openbmc/bmcweb/redfish-core/lib/account_service.hpp
/openbmc/bmcweb/redfish-core/lib/bios.hpp
/openbmc/bmcweb/redfish-core/lib/certificate_service.hpp
/openbmc/bmcweb/redfish-core/lib/chassis.hpp
/openbmc/bmcweb/redfish-core/lib/ethernet.hpp
/openbmc/bmcweb/redfish-core/lib/fabric_adapters.hpp
/openbmc/bmcweb/redfish-core/lib/hypervisor_system.hpp
/openbmc/bmcweb/redfish-core/lib/log_services.hpp
/openbmc/bmcweb/redfish-core/lib/manager_diagnostic_data.hpp
/openbmc/bmcweb/redfish-core/lib/managers.hpp
/openbmc/bmcweb/redfish-core/lib/memory.hpp
/openbmc/bmcweb/redfish-core/lib/metadata.hpp
/openbmc/bmcweb/redfish-core/lib/network_protocol.hpp
/openbmc/bmcweb/redfish-core/lib/pcie.hpp
/openbmc/bmcweb/redfish-core/lib/processor.hpp
/openbmc/bmcweb/redfish-core/lib/service_root.hpp
/openbmc/bmcweb/redfish-core/lib/storage.hpp
/openbmc/bmcweb/redfish-core/lib/systems.hpp
/openbmc/bmcweb/redfish-core/lib/update_service.hpp
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/AccelerationFunctionCollection_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/AccelerationFunction_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/AccountService_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/ActionInfo_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/AddressPoolCollection_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/AddressPool_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/AggregateCollection_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/Aggregate_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/AggregationService_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/AggregationSourceCollection_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/AggregationSource_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/AllowDenyCollection_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/AllowDeny_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/ApplicationCollection_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/Application_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/Assembly_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/AttributeRegistry_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/BatteryCollection_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/BatteryMetrics_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/Battery_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/Bios_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/BootOptionCollection_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/BootOption_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/CXLLogicalDeviceCollection_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/CXLLogicalDevice_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/CableCollection_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/Cable_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/CertificateCollection_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/CertificateLocations_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/CertificateService_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/Certificate_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/ChassisCollection_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/Chassis_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/CircuitCollection_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/Circuit_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/CollectionCapabilities_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/ComponentIntegrityCollection_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/ComponentIntegrity_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/CompositionReservationCollection_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/CompositionReservation_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/CompositionService_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/ComputerSystemCollection_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/ComputerSystem_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/ConnectionCollection_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/ConnectionMethodCollection_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/ConnectionMethod_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/Connection_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/ContainerCollection_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/ContainerImageCollection_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/ContainerImage_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/Container_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/ControlCollection_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/Control_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/CoolantConnectorCollection_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/CoolantConnector_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/CoolingLoopCollection_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/CoolingLoop_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/CoolingUnitCollection_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/CoolingUnit_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/DriveCollection_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/DriveMetrics_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/Drive_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/EndpointCollection_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/EndpointGroupCollection_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/EndpointGroup_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/Endpoint_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/EnvironmentMetrics_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/EthernetInterfaceCollection_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/EthernetInterface_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/EventDestinationCollection_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/EventDestination_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/EventService_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/Event_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/ExternalAccountProviderCollection_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/ExternalAccountProvider_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/FabricAdapterCollection_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/FabricAdapter_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/FabricCollection_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/Fabric_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/FacilityCollection_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/Facility_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/FanCollection_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/Fan_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/FilterCollection_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/Filter_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/GraphicsControllerCollection_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/GraphicsController_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/HeaterCollection_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/HeaterMetrics_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/Heater_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/HostInterfaceCollection_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/HostInterface_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/IPAddresses_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/JobCollection_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/JobService_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/Job_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/JsonSchemaFileCollection_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/JsonSchemaFile_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/KeyCollection_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/KeyPolicyCollection_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/KeyPolicy_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/KeyService_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/Key_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/LeakDetection_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/LeakDetectorCollection_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/LeakDetector_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/LicenseCollection_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/LicenseService_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/License_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/LogEntryCollection_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/LogEntry_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/LogServiceCollection_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/LogService_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/ManagerAccountCollection_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/ManagerAccount_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/ManagerCollection_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/ManagerDiagnosticData_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/ManagerNetworkProtocol_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/Manager_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/Manifest_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/MediaControllerCollection_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/MediaController_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/MemoryChunksCollection_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/MemoryChunks_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/MemoryCollection_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/MemoryDomainCollection_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/MemoryDomain_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/MemoryMetrics_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/MemoryRegionCollection_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/MemoryRegion_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/Memory_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/MessageRegistryCollection_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/MessageRegistryFileCollection_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/MessageRegistryFile_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/MessageRegistry_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/Message_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/MetricDefinitionCollection_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/MetricDefinition_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/MetricReportCollection_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/MetricReportDefinitionCollection_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/MetricReportDefinition_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/MetricReport_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/NetworkAdapterCollection_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/NetworkAdapterMetrics_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/NetworkAdapter_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/NetworkDeviceFunctionCollection_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/NetworkDeviceFunctionMetrics_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/NetworkDeviceFunction_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/NetworkInterfaceCollection_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/NetworkInterface_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/NetworkPortCollection_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/NetworkPort_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/OperatingConfigCollection_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/OperatingConfig_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/OperatingSystem_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/OutboundConnectionCollection_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/OutboundConnection_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/OutletCollection_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/OutletGroupCollection_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/OutletGroup_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/Outlet_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/PCIeDeviceCollection_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/PCIeDevice_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/PCIeFunctionCollection_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/PCIeFunction_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/PCIeSlots_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/PhysicalContext_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/PortCollection_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/PortMetrics_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/Port_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/PowerDistributionCollection_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/PowerDistributionMetrics_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/PowerDistribution_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/PowerDomainCollection_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/PowerDomain_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/PowerEquipment_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/PowerSubsystem_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/PowerSupplyCollection_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/PowerSupplyMetrics_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/PowerSupply_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/Power_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/PrivilegeRegistry_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/Privileges_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/ProcessorCollection_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/ProcessorMetrics_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/Processor_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/Protocol_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/PumpCollection_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/Pump_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/RedfishError_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/RedfishExtensions_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/Redundancy_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/RegisteredClientCollection_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/RegisteredClient_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/ReservoirCollection_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/Reservoir_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/ResolutionStep_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/ResourceBlockCollection_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/ResourceBlock_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/Resource_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/RoleCollection_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/Role_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/RouteEntryCollection_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/RouteEntry_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/RouteSetEntryCollection_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/RouteSetEntry_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/Schedule_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/SecureBootDatabaseCollection_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/SecureBootDatabase_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/SecureBoot_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/SecurityPolicy_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/SensorCollection_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/Sensor_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/SerialInterfaceCollection_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/SerialInterface_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/ServiceConditions_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/ServiceRoot_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/SessionCollection_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/SessionService_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/Session_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/Settings_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/SignatureCollection_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/Signature_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/SimpleStorageCollection_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/SimpleStorage_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/SoftwareInventoryCollection_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/SoftwareInventory_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/StorageCollection_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/StorageControllerCollection_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/StorageControllerMetrics_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/StorageController_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/Storage_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/SwitchCollection_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/SwitchMetrics_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/Switch_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/TaskCollection_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/TaskService_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/Task_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/TelemetryService_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/ThermalEquipment_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/ThermalMetrics_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/ThermalSubsystem_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/Thermal_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/TriggersCollection_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/Triggers_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/TrustedComponentCollection_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/TrustedComponent_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/USBControllerCollection_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/USBController_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/UpdateService_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/VCATEntryCollection_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/VCATEntry_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/VLanNetworkInterfaceCollection_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/VLanNetworkInterface_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/VirtualMediaCollection_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/VirtualMedia_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/VolumeCollection_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/Volume_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/ZoneCollection_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/csdl/Zone_v1.xml
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/AccelerationFunction.v1_0_4.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/AccelerationFunctionCollection.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/AccountService.v1_15_0.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/ActionInfo.v1_4_1.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/AddressPool.v1_2_4.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/AddressPoolCollection.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/Aggregate.v1_0_2.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/AggregateCollection.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/AggregationService.v1_0_2.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/AggregationSource.v1_4_0.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/AggregationSourceCollection.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/AllowDeny.v1_0_2.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/AllowDenyCollection.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/Application.v1_0_0.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/ApplicationCollection.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/Assembly.v1_5_0.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/AttributeRegistry.v1_3_8.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/Battery.v1_2_2.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/BatteryCollection.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/BatteryMetrics.v1_0_3.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/Bios.v1_2_2.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/BootOption.v1_0_5.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/BootOptionCollection.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/CXLLogicalDevice.v1_1_1.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/CXLLogicalDeviceCollection.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/Cable.v1_2_2.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/CableCollection.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/Certificate.v1_8_1.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/CertificateCollection.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/CertificateLocations.v1_0_3.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/CertificateService.v1_0_4.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/Chassis.v1_25_0.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/ChassisCollection.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/Circuit.v1_7_1.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/CircuitCollection.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/CollectionCapabilities.v1_4_0.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/ComponentIntegrity.v1_2_2.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/ComponentIntegrityCollection.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/CompositionReservation.v1_0_1.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/CompositionReservationCollection.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/CompositionService.v1_2_2.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/ComputerSystem.v1_22_0.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/ComputerSystemCollection.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/Connection.v1_3_1.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/ConnectionCollection.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/ConnectionMethod.v1_1_0.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/ConnectionMethodCollection.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/Container.v1_0_0.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/ContainerCollection.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/ContainerImage.v1_0_0.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/ContainerImageCollection.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/Control.v1_5_0.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/ControlCollection.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/CoolantConnector.v1_0_1.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/CoolantConnectorCollection.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/CoolingLoop.v1_0_2.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/CoolingLoopCollection.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/CoolingUnit.v1_1_1.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/CoolingUnitCollection.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/Drive.v1_18_0.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/DriveCollection.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/DriveMetrics.v1_2_0.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/Endpoint.v1_8_1.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/EndpointCollection.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/EndpointGroup.v1_3_3.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/EndpointGroupCollection.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/EnvironmentMetrics.v1_3_1.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/EthernetInterface.v1_12_0.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/EthernetInterfaceCollection.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/Event.v1_10_0.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/EventDestination.v1_14_0.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/EventDestinationCollection.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/EventService.v1_10_1.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/ExternalAccountProvider.v1_7_1.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/ExternalAccountProviderCollection.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/Fabric.v1_3_1.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/FabricAdapter.v1_5_2.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/FabricAdapterCollection.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/FabricCollection.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/Facility.v1_4_1.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/FacilityCollection.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/Fan.v1_5_1.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/FanCollection.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/Filter.v1_0_1.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/FilterCollection.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/GraphicsController.v1_0_1.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/GraphicsControllerCollection.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/Heater.v1_0_1.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/HeaterCollection.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/HeaterMetrics.v1_0_1.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/HostInterface.v1_3_1.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/HostInterfaceCollection.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/IPAddresses.v1_1_4.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/Job.v1_2_3.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/JobCollection.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/JobService.v1_0_5.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/JsonSchemaFile.v1_1_4.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/JsonSchemaFileCollection.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/Key.v1_4_0.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/KeyCollection.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/KeyPolicy.v1_0_0.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/KeyPolicyCollection.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/KeyService.v1_0_0.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/LeakDetection.v1_0_0.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/LeakDetector.v1_0_1.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/LeakDetectorCollection.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/License.v1_1_2.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/LicenseCollection.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/LicenseService.v1_1_1.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/LogEntry.v1_16_0.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/LogEntryCollection.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/LogService.v1_6_0.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/LogServiceCollection.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/Manager.v1_19_0.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/ManagerAccount.v1_12_0.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/ManagerAccountCollection.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/ManagerCollection.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/ManagerDiagnosticData.v1_2_2.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/ManagerNetworkProtocol.v1_10_0.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/Manifest.v1_1_1.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/MediaController.v1_3_1.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/MediaControllerCollection.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/Memory.v1_19_0.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/MemoryChunks.v1_6_1.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/MemoryChunksCollection.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/MemoryCollection.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/MemoryDomain.v1_5_0.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/MemoryDomainCollection.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/MemoryMetrics.v1_7_2.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/MemoryRegion.v1_0_1.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/MemoryRegionCollection.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/Message.v1_2_0.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/MessageRegistry.v1_6_2.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/MessageRegistryCollection.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/MessageRegistryFile.v1_1_4.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/MessageRegistryFileCollection.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/MetricDefinition.v1_3_3.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/MetricDefinitionCollection.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/MetricReport.v1_5_0.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/MetricReportCollection.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/MetricReportDefinition.v1_4_5.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/MetricReportDefinitionCollection.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/NetworkAdapter.v1_10_0.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/NetworkAdapterCollection.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/NetworkAdapterMetrics.v1_0_1.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/NetworkDeviceFunction.v1_9_1.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/NetworkDeviceFunctionCollection.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/NetworkDeviceFunctionMetrics.v1_1_2.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/NetworkInterface.v1_2_1.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/NetworkInterfaceCollection.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/NetworkPort.v1_4_2.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/NetworkPortCollection.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/OperatingConfig.v1_0_3.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/OperatingConfigCollection.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/OperatingSystem.v1_0_1.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/OutboundConnection.v1_0_1.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/OutboundConnectionCollection.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/Outlet.v1_4_2.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/OutletCollection.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/OutletGroup.v1_1_2.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/OutletGroupCollection.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/PCIeDevice.v1_13_0.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/PCIeDeviceCollection.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/PCIeFunction.v1_5_1.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/PCIeFunctionCollection.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/PCIeSlots.v1_6_0.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/PhysicalContext.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/Port.v1_11_0.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/PortCollection.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/PortMetrics.v1_5_1.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/Power.v1_7_2.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/PowerDistribution.v1_3_3.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/PowerDistributionCollection.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/PowerDistributionMetrics.v1_3_1.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/PowerDomain.v1_2_1.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/PowerDomainCollection.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/PowerEquipment.v1_2_1.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/PowerSubsystem.v1_1_1.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/PowerSupply.v1_5_3.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/PowerSupplyCollection.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/PowerSupplyMetrics.v1_1_1.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/PrivilegeRegistry.v1_1_4.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/Privileges.v1_0_5.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/Processor.v1_19_0.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/ProcessorCollection.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/ProcessorMetrics.v1_6_3.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/Protocol.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/Pump.v1_0_1.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/PumpCollection.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/Redundancy.v1_4_1.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/RegisteredClient.v1_1_1.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/RegisteredClientCollection.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/Reservoir.v1_0_1.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/ReservoirCollection.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/ResolutionStep.v1_0_0.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/Resource.v1_18_0.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/ResourceBlock.v1_4_2.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/ResourceBlockCollection.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/Role.v1_3_1.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/RoleCollection.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/RouteEntry.v1_0_1.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/RouteEntryCollection.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/RouteSetEntry.v1_0_1.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/RouteSetEntryCollection.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/Schedule.v1_2_4.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/SecureBoot.v1_1_1.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/SecureBootDatabase.v1_0_2.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/SecureBootDatabaseCollection.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/SecurityPolicy.v1_0_1.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/Sensor.v1_8_1.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/SensorCollection.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/SerialInterface.v1_2_0.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/SerialInterfaceCollection.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/ServiceConditions.v1_0_0.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/ServiceRoot.v1_16_1.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/Session.v1_7_1.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/SessionCollection.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/SessionService.v1_1_8.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/Settings.v1_3_5.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/Signature.v1_0_2.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/SignatureCollection.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/SimpleStorage.v1_3_1.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/SimpleStorageCollection.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/SoftwareInventory.v1_10_1.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/SoftwareInventoryCollection.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/Storage.v1_15_1.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/StorageCollection.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/StorageController.v1_7_2.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/StorageControllerCollection.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/StorageControllerMetrics.v1_0_2.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/Switch.v1_9_2.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/SwitchCollection.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/SwitchMetrics.v1_0_1.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/Task.v1_7_3.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/TaskCollection.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/TaskService.v1_2_0.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/TelemetryService.v1_3_3.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/Thermal.v1_7_2.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/ThermalEquipment.v1_1_1.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/ThermalMetrics.v1_3_1.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/ThermalSubsystem.v1_3_1.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/Triggers.v1_3_2.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/TriggersCollection.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/TrustedComponent.v1_3_0.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/TrustedComponentCollection.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/USBController.v1_0_0.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/USBControllerCollection.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/UpdateService.v1_13_0.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/VCATEntry.v1_0_2.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/VCATEntryCollection.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/VLanNetworkInterface.v1_3_0.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/VLanNetworkInterfaceCollection.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/VirtualMedia.v1_6_3.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/VirtualMediaCollection.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/Volume.v1_10_0.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/VolumeCollection.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/Zone.v1_6_2.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/ZoneCollection.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/odata-v4.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/odata.v4_0_5.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/redfish-error.v1_0_1.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/redfish-payload-annotations-v1.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/redfish-payload-annotations.v1_2_2.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/redfish-schema-v1.json
/openbmc/bmcweb/redfish-core/schema/dmtf/json-schema/redfish-schema.v1_10_0.json
/openbmc/bmcweb/redfish-core/schema/oem/openbmc/csdl/OemComputerSystem_v1.xml
/openbmc/bmcweb/redfish-core/schema/oem/openbmc/csdl/OemManager_v1.xml
/openbmc/bmcweb/redfish-core/schema/oem/openbmc/csdl/OemVirtualMedia_v1.xml
/openbmc/bmcweb/redfish-core/schema/oem/openbmc/csdl/OpenBMCAccountService_v1.xml
/openbmc/bmcweb/redfish-core/schema/oem/openbmc/json-schema/OemAccountService.json
/openbmc/bmcweb/redfish-core/schema/oem/openbmc/json-schema/OemComputerSystem.json
/openbmc/bmcweb/redfish-core/schema/oem/openbmc/json-schema/OemManager.json
/openbmc/bmcweb/redfish-core/schema/oem/openbmc/json-schema/OemVirtualMedia.json
/openbmc/bmcweb/redfish-core/src/redfish.cpp
/openbmc/bmcweb/scripts/generate_schema_collections.py
/openbmc/bmcweb/scripts/generate_schema_enums.py
/openbmc/bmcweb/scripts/update_schemas.py
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/AccountService/AccountService.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/ActionInfo/ActionInfo.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/AggregationService/AggregationService.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/AggregationSource/AggregationSource.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/AggregationSourceCollection/AggregationSourceCollection.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/Assembly/Assembly.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/AttributeRegistry/AttributeRegistry.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/Bios/Bios.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/Cable/Cable.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/CableCollection/CableCollection.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/Certificate/Certificate.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/CertificateCollection/CertificateCollection.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/CertificateLocations/CertificateLocations.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/CertificateService/CertificateService.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/Chassis/Chassis.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/ChassisCollection/ChassisCollection.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/ComponentIntegrity/ComponentIntegrity.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/ComponentIntegrityCollection/ComponentIntegrityCollection.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/ComputerSystem/ComputerSystem.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/ComputerSystemCollection/ComputerSystemCollection.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/Drive/Drive.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/DriveCollection/DriveCollection.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/EnvironmentMetrics/EnvironmentMetrics.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/EthernetInterface/EthernetInterface.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/EthernetInterfaceCollection/EthernetInterfaceCollection.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/Event/Event.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/EventDestination/EventDestination.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/EventDestinationCollection/EventDestinationCollection.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/EventService/EventService.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/FabricAdapter/FabricAdapter.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/FabricAdapterCollection/FabricAdapterCollection.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/Fan/Fan.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/FanCollection/FanCollection.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/IPAddresses/IPAddresses.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/JsonSchemaFile/JsonSchemaFile.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/JsonSchemaFileCollection/JsonSchemaFileCollection.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/LogEntry/LogEntry.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/LogEntryCollection/LogEntryCollection.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/LogService/LogService.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/LogServiceCollection/LogServiceCollection.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/Manager/Manager.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/ManagerAccount/ManagerAccount.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/ManagerAccountCollection/ManagerAccountCollection.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/ManagerCollection/ManagerCollection.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/ManagerDiagnosticData/ManagerDiagnosticData.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/ManagerNetworkProtocol/ManagerNetworkProtocol.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/Memory/Memory.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/MemoryCollection/MemoryCollection.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/Message/Message.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/MessageRegistry/MessageRegistry.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/MessageRegistryCollection/MessageRegistryCollection.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/MessageRegistryFile/MessageRegistryFile.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/MessageRegistryFileCollection/MessageRegistryFileCollection.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/MetricDefinition/MetricDefinition.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/MetricDefinitionCollection/MetricDefinitionCollection.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/MetricReport/MetricReport.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/MetricReportCollection/MetricReportCollection.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/MetricReportDefinition/MetricReportDefinition.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/MetricReportDefinitionCollection/MetricReportDefinitionCollection.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/OperatingConfig/OperatingConfig.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/OperatingConfigCollection/OperatingConfigCollection.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/PCIeDevice/PCIeDevice.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/PCIeDeviceCollection/PCIeDeviceCollection.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/PCIeFunction/PCIeFunction.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/PCIeFunctionCollection/PCIeFunctionCollection.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/PCIeSlots/PCIeSlots.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/PhysicalContext/PhysicalContext.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/Port/Port.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/PortCollection/PortCollection.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/Power/Power.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/PowerSubsystem/PowerSubsystem.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/PowerSupply/PowerSupply.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/PowerSupplyCollection/PowerSupplyCollection.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/Privileges/Privileges.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/Processor/Processor.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/ProcessorCollection/ProcessorCollection.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/Protocol/Protocol.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/Redundancy/Redundancy.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/Resource/Resource.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/Role/Role.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/RoleCollection/RoleCollection.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/Sensor/Sensor.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/SensorCollection/SensorCollection.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/ServiceRoot/ServiceRoot.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/Session/Session.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/SessionCollection/SessionCollection.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/SessionService/SessionService.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/Settings/Settings.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/SoftwareInventory/SoftwareInventory.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/SoftwareInventoryCollection/SoftwareInventoryCollection.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/Storage/Storage.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/StorageCollection/StorageCollection.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/StorageController/StorageController.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/StorageControllerCollection/StorageControllerCollection.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/Task/Task.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/TaskCollection/TaskCollection.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/TaskService/TaskService.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/TelemetryService/TelemetryService.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/Thermal/Thermal.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/ThermalMetrics/ThermalMetrics.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/ThermalSubsystem/ThermalSubsystem.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/Triggers/Triggers.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/TriggersCollection/TriggersCollection.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/UpdateService/UpdateService.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/VirtualMedia/VirtualMedia.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/VirtualMediaCollection/VirtualMediaCollection.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/odata-v4/odata-v4.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/odata/odata.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/redfish-error/redfish-error.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/redfish-payload-annotations/redfish-payload-annotations.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/redfish-schema-v1/redfish-schema-v1.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/redfish-schema/redfish-schema.json
/openbmc/bmcweb/static/redfish/v1/odata/index.json
/openbmc/bmcweb/static/redfish/v1/schema/AccountService_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/ActionInfo_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/AggregationService_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/AggregationSourceCollection_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/AggregationSource_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/Assembly_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/AttributeRegistry_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/Bios_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/CableCollection_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/Cable_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/CertificateCollection_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/CertificateLocations_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/CertificateService_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/Certificate_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/ChassisCollection_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/Chassis_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/ComponentIntegrityCollection_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/ComponentIntegrity_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/ComputerSystemCollection_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/ComputerSystem_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/DriveCollection_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/Drive_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/EnvironmentMetrics_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/EthernetInterfaceCollection_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/EthernetInterface_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/EventDestinationCollection_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/EventDestination_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/EventService_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/Event_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/FabricAdapterCollection_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/FabricAdapter_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/FanCollection_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/Fan_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/IPAddresses_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/JsonSchemaFileCollection_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/JsonSchemaFile_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/LogEntryCollection_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/LogEntry_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/LogServiceCollection_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/LogService_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/ManagerAccountCollection_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/ManagerAccount_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/ManagerCollection_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/ManagerDiagnosticData_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/ManagerNetworkProtocol_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/Manager_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/MemoryCollection_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/Memory_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/MessageRegistryCollection_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/MessageRegistryFileCollection_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/MessageRegistryFile_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/MessageRegistry_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/Message_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/MetricDefinitionCollection_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/MetricDefinition_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/MetricReportCollection_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/MetricReportDefinitionCollection_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/MetricReportDefinition_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/MetricReport_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/OemComputerSystem_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/OemManager_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/OemVirtualMedia_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/OpenBMCAccountService_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/OperatingConfigCollection_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/OperatingConfig_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/PCIeDeviceCollection_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/PCIeDevice_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/PCIeFunctionCollection_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/PCIeFunction_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/PCIeSlots_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/PhysicalContext_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/PortCollection_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/Port_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/PowerSubsystem_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/PowerSupplyCollection_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/PowerSupply_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/Power_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/Privileges_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/ProcessorCollection_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/Processor_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/Protocol_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/RedfishError_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/RedfishExtensions_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/Redundancy_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/Resource_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/RoleCollection_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/Role_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/SensorCollection_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/Sensor_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/ServiceRoot_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/SessionCollection_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/SessionService_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/Session_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/Settings_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/SoftwareInventoryCollection_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/SoftwareInventory_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/StorageCollection_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/StorageControllerCollection_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/StorageController_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/Storage_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/TaskCollection_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/TaskService_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/Task_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/TelemetryService_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/ThermalMetrics_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/ThermalSubsystem_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/Thermal_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/TriggersCollection_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/Triggers_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/UpdateService_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/VirtualMediaCollection_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/VirtualMedia_v1.xml
/openbmc/bmcweb/test/redfish-core/lib/metadata_test.cpp
c8491cb006-May-2024 Ed Tanous <ed@tanous.net>

Move under exception handler

Static analysis still sometimes flags that this throws, even through
clang-tidy doesn't. Move it under the exception handler.

Tested: Logging still works.

Change-Id:

Move under exception handler

Static analysis still sometimes flags that this throws, even through
clang-tidy doesn't. Move it under the exception handler.

Tested: Logging still works.

Change-Id: I67425749b97b0a259746840c7b9a9b4834dfe52e
Signed-off-by: Ed Tanous <ed@tanous.net>

show more ...

8332831609-May-2024 Ed Tanous <ed@tanous.net>

Fix lesser used options

25b54dba775b31021a3a4677eb79e9771bcb97f7 missed several cases where we
had ifndef instead of ifdef. because these weren't the defaults, these
don't show up as failures when

Fix lesser used options

25b54dba775b31021a3a4677eb79e9771bcb97f7 missed several cases where we
had ifndef instead of ifdef. because these weren't the defaults, these
don't show up as failures when testing.

Tested: Redfish service validator passes. Inspection primarily.
Mechanical change.

Change-Id: I3f6915a97eb44d071795aed76476c6bee7e8ed27
Signed-off-by: Ed Tanous <ed@tanous.net>

show more ...

17c4724508-Apr-2024 Ed Tanous <ed@tanous.net>

Move logging args

Args captured by logging functions should be captured by rvalue, and use
std::forward to get perfect forwarding. In addition, separate out the
various std::out lines.

While we're

Move logging args

Args captured by logging functions should be captured by rvalue, and use
std::forward to get perfect forwarding. In addition, separate out the
various std::out lines.

While we're here, also try to optimize a little. We should ideally be
writing each log line to the output once, and ideally not use iostreams,
which induce a lot of overhead.

Similar to spdlog[1] (which at one point this codebase used), construct
the string, then call fwrite and fflush once, rather than calling
std::cout repeatedly.

Now that we don't have a dependency on iostreams anymore, we can remove
it from the places where it has snuck in.

Tested:
Logging still functions as before. Logs present.

[1] https://github.com/gabime/spdlog/blob/27cb4c76708608465c413f6d0e6b8d99a4d84302/include/spdlog/sinks/stdout_sinks-inl.h#L70C7-L70C13

Change-Id: I1dd4739e06eb506d68989a066d122109b71b92cd
Signed-off-by: Ed Tanous <ed@tanous.net>

show more ...

102a4cda15-Apr-2024 Jonathan Doman <jonathan.doman@intel.com>

Manage Request with shared_ptr

This is an attempt to solve a class of use-after-move bugs on the
Request objects which have popped up several times. This more clearly
identifies code which owns the

Manage Request with shared_ptr

This is an attempt to solve a class of use-after-move bugs on the
Request objects which have popped up several times. This more clearly
identifies code which owns the Request objects and has a need to keep it
alive. Currently it's just the `Connection` (or `HTTP2Connection`)
(which needs to access Request headers while sending the response), and
the `validatePrivilege()` function (which needs to temporarily own the
Request while doing an asynchronous D-Bus call). Route handlers are
provided a non-owning `Request&` for immediate use and required to not
hold the `Request&` for future use.

Tested: Redfish validator passes (with a few unrelated fails).
Redfish URLs are sent to a browser as HTML instead of raw JSON.

Change-Id: Id581fda90b6bceddd08a5dc7ff0a04b91e7394bf
Signed-off-by: Jonathan Doman <jonathan.doman@intel.com>
Signed-off-by: Ed Tanous <ed@tanous.net>

show more ...

e428b44029-Mar-2024 Ed Tanous <ed@tanous.net>

Increase the file buffer

When we added file buffer, this number was picked arbitrarily. Prior to
the file body patch series, files were buffered entirely in ram,
regardless of what size they were.

Increase the file buffer

When we added file buffer, this number was picked arbitrarily. Prior to
the file body patch series, files were buffered entirely in ram,
regardless of what size they were. While not doing that was an
improvement, I suspect that we were overly conservative in the buffer
size.

Nginx picks a default buffer size somewhere in the 8k - 64k range
dependent on what paths the code takes. Using the higher end of
that range seems like a better starting point, but generally we
have more ram on the bmc than we have users.

Increase the buffer to 64K.

Tested: Unit tests pass.

[1] https://docs.nginx.com/nginx-management-suite/acm/how-to/policies/http-backend-configuration/#buffers

Change-Id: Idb472ccae02a8519c0976aab07b45562e327ce9b
Signed-off-by: Ed Tanous <ed@tanous.net>

show more ...

25b54dba17-Apr-2024 Ed Tanous <ed@tanous.net>

Bring consistency to config options

The configuration options that exist in bmcweb are an amalgimation of
CROW options, CMAKE options using #define, pre-bmcweb ifdef mechanisms
and meson options usi

Bring consistency to config options

The configuration options that exist in bmcweb are an amalgimation of
CROW options, CMAKE options using #define, pre-bmcweb ifdef mechanisms
and meson options using a config file. This history has led to a lot of
different ways to configure code in the codebase itself, which has led
to problems, and issues in consistency.

ifdef options do no compile time checking of code not within the branch.
This is good when you have optional dependencies, but not great when
you're trying to ensure both options compile.

This commit moves all internal configuration options to:
1. A namespace called bmcweb
2. A naming scheme matching the meson option. hyphens are replaced with
underscores, and the option is uppercased. This consistent transform
allows matching up option keys with their code counterparts, without
naming changes.
3. All options are bool true = enabled, and any options with _ENABLED or
_DISABLED postfixes have those postfixes removed. (note, there are
still some options with disable in the name, those are left as-is)
4. All options are now constexpr booleans, without an explicit compare.

To accomplish this, unfortunately an option list in config/meson.build
is required, given that meson doesn't provide a way to dump all options,
as is a manual entry in bmcweb_config.h.in, in addition to the
meson_options. This obsoletes the map in the main meson.build, which
helps some of the complexity.

Now that we've done this, we have some rules that will be documented.
1. Runtime behavior changes should be added as a constexpr bool to
bmcweb_config.h
2. Options that require optionally pulling in a dependency shall use an
ifdef, defined in the primary meson.build. (note, there are no
options that currently meet this class, but it's included for
completeness.)

Note, that this consolidation means that at configure time, all options
are printed. This is a good thing and allows direct comparison of
configs in log files.

Tested: Code compiles
Server boots, and shows options configured in the default build. (HTTPS,
log level, etc)

Change-Id: I94e79a56bcdc01755036e4e7278c7e69e25809ce
Signed-off-by: Ed Tanous <ed@tanous.net>

show more ...

88c7c42706-Apr-2024 Ed Tanous <ed@tanous.net>

Use fadvise to trigger sequential reading

Nginx and other webservers use fadvise to inform the kernel of
in-order reading. We should to the same.

Tested:
Webui loads correctly, no direct performan

Use fadvise to trigger sequential reading

Nginx and other webservers use fadvise to inform the kernel of
in-order reading. We should to the same.

Tested:
Webui loads correctly, no direct performance benefits immediately
obvious, but likely would operate better under load.

Change-Id: I4acce316c719df7df012cea8cb89237b28932c15
Signed-off-by: Ed Tanous <ed@tanous.net>

show more ...

95c6307a26-Mar-2024 Ed Tanous <ed@tanous.net>

Break out formatters

In the change made to move to std::format, we defined some custom type
formatters in logging.hpp. This had the unintended effect of making
all compile units pull in the majorit

Break out formatters

In the change made to move to std::format, we defined some custom type
formatters in logging.hpp. This had the unintended effect of making
all compile units pull in the majority of boost::url, and nlohmann::json
as includes.

This commit breaks out boost and json formatters into their own separate
includes.

Tested: Code compiles. Logging changes only.

Change-Id: I6a788533169f10e19130a1910cd3be0cc729b020
Signed-off-by: Ed Tanous <ed@tanous.net>

show more ...

499b5b4d06-Apr-2024 Ed Tanous <ed@tanous.net>

Add static webpack etag support

Webpack (which is what vue uses to compress its HTML) is capable of
generating hashes of files when it produces the dist files[1].

This gets generated in the form of

Add static webpack etag support

Webpack (which is what vue uses to compress its HTML) is capable of
generating hashes of files when it produces the dist files[1].

This gets generated in the form of
<filename>.<hash>.<extension>

This commit attempts to detect these patterns, and enable etag caching
to speed up webui load times. It detects these patterns, grabs the hash
for the file, and returns it in the Etag header[2].

The behavior is implemented such that:
If the file has an etag, the etag header is returned.
If the request has an If-None-Match header, and that header matches,
only 304 is returned.

Tested:
Tests were run on qemu S7106 bmcweb with default error logging level,
and HTTP/2 enabled, along with svg optimization patches.

Run scripts/generate_auth_certificate.py to set up TLS certificates.
(valid TLS certs are required for HTTP caching to work properly in some
browsers).
Load the webui. Note that DOM load takes 1.10 seconds, Load takes 1.10
seconds, and all requests return 200 OK.
Refresh the GUI.
Note that most resources now return 304, and DOM time is reduced to
279 milliseconds and load is reduced to 280 milliseconds. DOM load
(which is what the BMC has control over) is decreased by a factor of
3-4X.
Setting chrome to "Fast 5g" throttling in the network tab shows a more
pronounced difference, 1.28S load time vs 3.96S.

BMC also shows 477KB transferred on the wire, versus 2.3KB
transferred on the wire. This has the potential to significantly
reduce the load on the BMC when the webui refreshes.

[1] https://webpack.js.org/guides/caching/
[2] https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/ETag

Change-Id: I68aa7ef75533506d98e8fce10bb04a494dc49669
Signed-off-by: Ed Tanous <ed@tanous.net>

show more ...

1d1d778409-Apr-2024 Ed Tanous <ed@tanous.net>

Fix large content error codes

When pushing multi-part payloads, it's quite helpful if the server
supports the header field of "Expect: 100-Continue". What this does, is
on a large file push, allows

Fix large content error codes

When pushing multi-part payloads, it's quite helpful if the server
supports the header field of "Expect: 100-Continue". What this does, is
on a large file push, allows the server to possibly reject a request
before the payload is actually sent, thereby saving bandwidth, and
giving the user more information.

Bmcweb, since commit 3909dc82a003893812f598434d6c4558107afa28 by James
(merged July 2020) has simply closed the connection if a user attempts
to send too much data, thereby making the bmcweb implementation simpler.

Unfortunately, to a security tester, this has the appearance on the
network as a crash, which will likely then get filed as a "verify this
isn't failing" bug.

In addition, the default args on curl multipart upload enable the
Expect: 100-Continue behavior, so folks testing must've just been
disabling that behavior.

Bmcweb should just support the right thing here. Unfortunately, closing
a connection uncleanly is easy. Closing a connection cleanly is
difficult. This requires a pretty large refactor of the http connection
class to accomplish.

Tested:
Create files of various size and try to send them (Note, default body
limit is 30 MB) and upload them with an without a username.

```
dd if=/dev/zero of=zeros-file bs=1048576 count=16 of=16mb.txt

curl -k --location POST https://192.168.7.2/redfish/v1/UpdateService/update -F 'UpdateParameters={"Targets":["/redfish/v1/Managers/bmc"]} ;type=application/json' -F UpdateFile=@32mb.txt -v
```

No Username:
32MB returns < HTTP/1.1 413 Payload Too Large
16MB returns < HTTP/1.1 401 Unauthorized

With Username
32MB returns < HTTP/1.1 413 Payload Too Large
16MB returns < HTTP/1.1 400 Bad Request

Note, in all cases except the last one, the payload is never sent from
curl.

Redfish protocol validator fails no new tests (SSE failure still
present).

Redfish service validator passes.

Change-Id: I72bc8bbc49a05555c31dc7209292f846ec411d43
Signed-off-by: Ed Tanous <ed@tanous.net>

show more ...

52c1502819-Apr-2024 Ed Tanous <ed@tanous.net>

Fix http2 use after free bug

In the below code, we move out of Response, then use it to set
unauthorized, which never gets returned to the user. This results in
the browser showing an empty 200 ok

Fix http2 use after free bug

In the below code, we move out of Response, then use it to set
unauthorized, which never gets returned to the user. This results in
the browser showing an empty 200 ok request, because while the request
was propagated rejected, the 401 error code didn't get propagated to the
user.

Tested: If not logged in on a chrome browser:
/redfish/v1 -> Returns the UI
/refish/v1/AccountService -> returns a forward to the webui login page.

If logged into the webui.
/redfish/v1/AccountService now returns the expected HTML redfish
representation of the json response.

Change-Id: I2c906f818367ebb253b3e6097e6787ba4c215e0a
Signed-off-by: Ed Tanous <ed@tanous.net>

show more ...

003301a216-Apr-2024 Ed Tanous <ed@tanous.net>

Change ssl stream implementations

Boost beast ssl_stream is just a wrapper around asio ssl_stream, and
aims to optimize the case where we're writing small payloads (one or two
bytes.) which needs to

Change ssl stream implementations

Boost beast ssl_stream is just a wrapper around asio ssl_stream, and
aims to optimize the case where we're writing small payloads (one or two
bytes.) which needs to be optimized in SSL.

bmcweb never writes one or two bytes, we almost always write the full
payload of what we received, so there's no reason to take the binary
size overhead, and additional boost headers that this implementation
requires.

Tested:
This drops the on-target binary size by 2.6%

Redfish service validator passes.

Change-Id: Ie1ae6f197f8e5ed70cf4abc6be9b1b382c42d64d
Signed-off-by: Ed Tanous <ed@tanous.net>

show more ...

5b90429a16-Apr-2024 Ed Tanous <ed@tanous.net>

Add missing headers

Most of these were found by breaking every redfish class handler into
its own compile unit:

When that's done, these missing headers become compile errors. We
should just fix the

Add missing headers

Most of these were found by breaking every redfish class handler into
its own compile unit:

When that's done, these missing headers become compile errors. We
should just fix them.

In addition, this allows us to enable automatic header checking in
clang-tidy using misc-header-cleaner. Because the compiler can now
"see" all the defines, it no longer tries to remove headers that it
thinks are unused.

[1] https://github.com/openbmc/bmcweb/commit/4fdee9e39e9f03122ee16a6fb251a380681f56ac

Tested: Code compiles.

Change-Id: Ifa27ac4a512362b7ded7cc3068648dc4aea6ad7b
Signed-off-by: Ed Tanous <ed@tanous.net>

show more ...

8db8374713-Apr-2024 Ed Tanous <ed@tanous.net>

Clean up BMCWEB_ENABLE_SSL

This macro came originally from CROW_ENABLE_SSL, and was used as a macro
to optionally compile without openssl being required.

OpenSSL has been pulled into many other dep

Clean up BMCWEB_ENABLE_SSL

This macro came originally from CROW_ENABLE_SSL, and was used as a macro
to optionally compile without openssl being required.

OpenSSL has been pulled into many other dependencies, and has been
functionally required to be included for a long time, so there's no
reason to hold onto this macro.

Remove most uses of the macro, and for the couple functional places the
macro is used, transition to a constexpr if to enable the TLS paths.

This allows a large simplification of code in some places.

Tested: Redfish service validator passes.

Change-Id: Iebd46a68e5e417b6031479e24be3c21bef782f4c
Signed-off-by: Ed Tanous <ed@tanous.net>

show more ...

6dbe9bea14-Apr-2024 Ed Tanous <ed@tanous.net>

Remove OpenSSL warnings ignore

If we include OpenSSL in extern "C" blocks consistently, c++ warnings no
longer appear. This means we can remove the special case from meson.

Tested: Code compiles w

Remove OpenSSL warnings ignore

If we include OpenSSL in extern "C" blocks consistently, c++ warnings no
longer appear. This means we can remove the special case from meson.

Tested: Code compiles when built locally on an ubuntu 22.04 system.

Change-Id: I5add4113b32cd88b7fdd874174c845425a7c287a
Signed-off-by: Ed Tanous <ed@tanous.net>

show more ...

4d69861f06-Feb-2024 Ed Tanous <ed@tanous.net>

Use beast message_generator

Beast 331 added the message_generator class, which allows deduplicating
some templated code for the HTTP parser. When we use it, we can drop
our binary size, and ensure

Use beast message_generator

Beast 331 added the message_generator class, which allows deduplicating
some templated code for the HTTP parser. When we use it, we can drop
our binary size, and ensure that we have code reuse.

This saves 2.2% on the compressed binary size.

Tested: Redfish service validator passes.

Change-Id: I5540d52dc256adfb62507c67ea642a9ea86d27ee
Signed-off-by: Ed Tanous <ed@tanous.net>

show more ...

8e8245db12-Apr-2024 Ed Tanous <ed@tanous.net>

Fix nullptr failures for image upload

Several places that call *req.ioService were missing nullptr checks.
Add them, and fix the one case where it might not be filled in.

Tested: With HTTP2 enable

Fix nullptr failures for image upload

Several places that call *req.ioService were missing nullptr checks.
Add them, and fix the one case where it might not be filled in.

Tested: With HTTP2 enabled, the following command succeeds.
```
curl -k https://192.168.7.2/redfish/v1/UpdateService/update -F 'UpdateParameters={"Targets":["/redfish/v1/Managers/bmc"]} ;type=application/json' --user "root:0penBmc" -F UpdateFile=@/home/ed/bmcweb/16mb.txt -v -H "Expect:"
```

Change-Id: I81e7944c22f5922d461bf5d231086c7468a16e62
Signed-off-by: Ed Tanous <ed@tanous.net>

show more ...

44106f3406-Apr-2024 Ed Tanous <ed@tanous.net>

Fix buffer_copy

boost::asio::buffer_copy returns an integer of the number of values
copied. Some static analysis tools mark that value as nodiscard,
although it should never fail. Audit all uses o

Fix buffer_copy

boost::asio::buffer_copy returns an integer of the number of values
copied. Some static analysis tools mark that value as nodiscard,
although it should never fail. Audit all uses of buffer_copy, and make
sure that they're using the return value. In theory this should have
no change on the behavior.

Change-Id: I6af39b5347954c2932cf3d4e48e96ff9ae01583a
Signed-off-by: Ed Tanous <ed@tanous.net>

show more ...

4a7fbefd06-Apr-2024 Ed Tanous <ed@tanous.net>

Fix large copies with url_view and segments_view

Despite these objects being called "view" they are still relatively
large, as clang-tidy correctly flags, and we ignore.

Change all function uses to

Fix large copies with url_view and segments_view

Despite these objects being called "view" they are still relatively
large, as clang-tidy correctly flags, and we ignore.

Change all function uses to capture by:
const boost::urls::url_view_base&

Which is the base class of all boost URL types, and any class (url,
url_view, etc) is convertible to that base.

Change-Id: I8ee2ea3f4cfba38331303a7e4eb520a2b6f8ba92
Signed-off-by: Ed Tanous <ed@tanous.net>

show more ...

d9e89dfd27-Mar-2024 Ed Tanous <ed@tanous.net>

Simplify router

Now that we only support string types in the router we no longer need to
build a "Tag" to be used for constructing argument types. Now, we can
just track the number of arguments, wh

Simplify router

Now that we only support string types in the router we no longer need to
build a "Tag" to be used for constructing argument types. Now, we can
just track the number of arguments, which simplifies the code
significantly, and removes the need to convert to and from the tag to
parameter counts.

This in turn deletes a lot of code in the router, removing the need for
tracking tag types.

Tested: Redfish service validator passes. Unit tests pass.

Change-Id: Ide1d665dc1984552681e8c05952b38073d5e32dd
Signed-off-by: Ed Tanous <ed@tanous.net>

show more ...


http_request.hpp
routing.hpp
utility.hpp
/openbmc/bmcweb/include/authentication.hpp
/openbmc/bmcweb/include/login_routes.hpp
/openbmc/bmcweb/include/webserver_run.hpp
/openbmc/bmcweb/meson.build
/openbmc/bmcweb/redfish-core/include/error_messages.hpp
/openbmc/bmcweb/redfish-core/include/redfish.hpp
/openbmc/bmcweb/redfish-core/include/registries/composition_message_registry.hpp
/openbmc/bmcweb/redfish-core/include/registries/environmental_message_registry.hpp
/openbmc/bmcweb/redfish-core/include/registries/ethernet_fabric_message_registry.hpp
/openbmc/bmcweb/redfish-core/include/registries/fabric_message_registry.hpp
/openbmc/bmcweb/redfish-core/include/registries/heartbeat_event_message_registry.hpp
/openbmc/bmcweb/redfish-core/include/registries/job_event_message_registry.hpp
/openbmc/bmcweb/redfish-core/include/registries/license_message_registry.hpp
/openbmc/bmcweb/redfish-core/include/registries/log_service_message_registry.hpp
/openbmc/bmcweb/redfish-core/include/registries/network_device_message_registry.hpp
/openbmc/bmcweb/redfish-core/include/registries/platform_message_registry.hpp
/openbmc/bmcweb/redfish-core/include/registries/power_message_registry.hpp
/openbmc/bmcweb/redfish-core/include/registries/sensor_event_message_registry.hpp
/openbmc/bmcweb/redfish-core/include/registries/storage_device_message_registry.hpp
/openbmc/bmcweb/redfish-core/include/registries/telemetry_message_registry.hpp
/openbmc/bmcweb/redfish-core/include/registries/update_message_registry.hpp
/openbmc/bmcweb/redfish-core/include/utils/dbus_utils.hpp
/openbmc/bmcweb/redfish-core/include/utils/json_utils.hpp
/openbmc/bmcweb/redfish-core/include/utils/query_param.hpp
/openbmc/bmcweb/redfish-core/lib/account_service.hpp
/openbmc/bmcweb/redfish-core/lib/hypervisor_system.hpp
/openbmc/bmcweb/redfish-core/src/error_messages.cpp
/openbmc/bmcweb/redfish-core/src/redfish.cpp
/openbmc/bmcweb/redfish-core/src/utils/dbus_utils.cpp
/openbmc/bmcweb/scripts/generate_auth_certificates.py
/openbmc/bmcweb/scripts/parse_registries.py
/openbmc/bmcweb/src/webserver_main.cpp
/openbmc/bmcweb/src/webserver_run.cpp
/openbmc/bmcweb/test/http/router_test.cpp
/openbmc/bmcweb/test/http/utility_test.cpp

12345678910>>...19