History log of /openbmc/bmcweb/ (Results 1 – 25 of 3422)
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
cbc02c2e05-Oct-2022 George Liu <liuxiwei@inspur.com>

Add FanSpeedsPercent for EnvironmentMetrics

Adds FanSpeedsPercent information according to the Redfish
EnvironmentMetrics schema [1]. The schema only allows fans of
ReadingType Percent to be include

Add FanSpeedsPercent for EnvironmentMetrics

Adds FanSpeedsPercent information according to the Redfish
EnvironmentMetrics schema [1]. The schema only allows fans of
ReadingType Percent to be included in the FanSpeedsPercent array.

The Redfish Uri supports retrieval of the metrics for a specific
chassis:
```
/redfish/v1/Chassis/<chassisId>/EnvironmentMetrics
```

The fan sensors connected to the chassis are found by:
1) Find all fans associated to the chassis using the 'cooled_by'
endpoint. [3].
2) Find all sensors associated to each fan using the 'sensors'
endpoint. [4]
3) Retrieve the sensor excerpt data for each sensor.

A similar approach to retrieving the sensor data is used here as
for the proposed implementation for ThermalSubsystem/Fans [2].

[1] https://redfish.dmtf.org/schemas/v1/EnvironmentMetrics.v1_3_2.json
[2] https://gerrit.openbmc.org/c/openbmc/bmcweb/+/57657
[3] https://gerrit.openbmc.org/c/openbmc/phosphor-dbus-interfaces/+/58300
[4] https://github.com/openbmc/docs/blob/master/architecture/sensor-architecture.md#association-type-2-linking-a-low-level-hardware-item-to-its-sensors

Implementation notes:
- The utility function objectExcerptToJson() is used to populate the
SensorFanArrayExcerpt.
- Altered the objectExcerptToJson() function to take a
sensor::ReadingType value for the optional expected sensor type.

Tested: (using hardware simulator)
- Redfish Validator passes.

- With redfish-allow-rotational-fans disabled:
(Note fans that percent cannot be computed have null for Reading
property.)
```
curl -k -H "X-Auth-Token: $token" https://${bmc}/redfish/v1/Chassis/chassis/EnvironmentMetrics
{
"@odata.id": "/redfish/v1/Chassis/chassis/EnvironmentMetrics",
"@odata.type": "#EnvironmentMetrics.v1_3_0.EnvironmentMetrics",
"FanSpeedsPercent": [
{
"DataSourceUri": "/redfish/v1/Chassis/chassis/Sensors/fantach_fan0_0",
"Reading": 100,
"SpeedRPM": 18000.0
},
{
"DataSourceUri": "/redfish/v1/Chassis/chassis/Sensors/fantach_fan0_1",
"Reading": 60,
"SpeedRPM": 12036.0
},
{
"DataSourceUri": "/redfish/v1/Chassis/chassis/Sensors/fantach_fan1_0",
"Reading": 50,
"SpeedRPM": 18000.0
},
{
"DataSourceUri": "/redfish/v1/Chassis/chassis/Sensors/fantach_fan1_1",
"Reading": 32,
"SpeedRPM": 12036.0
},
{
"DataSourceUri": "/redfish/v1/Chassis/chassis/Sensors/fantach_fan2_0",
"Reading": 50,
"SpeedRPM": 18000.0
},
{
"DataSourceUri": "/redfish/v1/Chassis/chassis/Sensors/fantach_fan2_1",
"Reading": 25,
"SpeedRPM": 12036.0
},
{
"DataSourceUri": "/redfish/v1/Chassis/chassis/Sensors/fantach_fan3_0",
"Reading": null,
"SpeedRPM": 18000.0
},
{
"DataSourceUri": "/redfish/v1/Chassis/chassis/Sensors/fantach_fan3_1",
"Reading": null,
"SpeedRPM": 12036.0
},
{
"DataSourceUri": "/redfish/v1/Chassis/chassis/Sensors/fantach_fan4_0",
"Reading": null,
"SpeedRPM": 18000.0
},
{
"DataSourceUri": "/redfish/v1/Chassis/chassis/Sensors/fantach_fan4_1",
"Reading": null,
"SpeedRPM": 12036.0
},
{
"DataSourceUri": "/redfish/v1/Chassis/chassis/Sensors/fantach_fan5_0",
"Reading": null,
"SpeedRPM": 18000.0
},
{
"DataSourceUri": "/redfish/v1/Chassis/chassis/Sensors/fantach_fan5_1",
"Reading": null,
"SpeedRPM": 12036.0
}
],
"FanSpeedsPercent@odata.count": 12,
"Id": "EnvironmentMetrics",
"Name": "Chassis Environment Metrics"
}
```

- Can see DataSourceUri match Sensors fan paths of ReadingType Percent:
```
curl -k -H "X-Auth-Token: $token" https://${bmc}/redfish/v1/Chassis/chassis/Sensors | grep fan
"@odata.id": "/redfish/v1/Chassis/chassis/Sensors/fantach_fan0_0"
"@odata.id": "/redfish/v1/Chassis/chassis/Sensors/fantach_fan0_1"
"@odata.id": "/redfish/v1/Chassis/chassis/Sensors/fantach_fan1_0"
"@odata.id": "/redfish/v1/Chassis/chassis/Sensors/fantach_fan1_1"
"@odata.id": "/redfish/v1/Chassis/chassis/Sensors/fantach_fan2_0"
"@odata.id": "/redfish/v1/Chassis/chassis/Sensors/fantach_fan2_1"
"@odata.id": "/redfish/v1/Chassis/chassis/Sensors/fantach_fan3_0"
"@odata.id": "/redfish/v1/Chassis/chassis/Sensors/fantach_fan3_1"
"@odata.id": "/redfish/v1/Chassis/chassis/Sensors/fantach_fan4_0"
"@odata.id": "/redfish/v1/Chassis/chassis/Sensors/fantach_fan4_1"
"@odata.id": "/redfish/v1/Chassis/chassis/Sensors/fantach_fan5_0"
"@odata.id": "/redfish/v1/Chassis/chassis/Sensors/fantach_fan5_1"

// E.g.
curl -k -H "X-Auth-Token: $token" https://${bmc}/redfish/v1/Chassis/chassis/Sensors/fantach_fan0_0
{
"@odata.id": "/redfish/v1/Chassis/chassis/Sensors/fantach_fan0_0",
"@odata.type": "#Sensor.v1_11_1.Sensor",
"Id": "fantach_fan0_0",
...
"ReadingType": "Percent",
...
```

- With redfish-allow-rotational-fans enabled the only fans are not
Percent ReadingType so are not added to the FanSpeedsPercent array :
```
curl -k -H "X-Auth-Token: $token" https://${bmc}/redfish/v1/Chassis/chassis/EnvironmentMetrics
{
"@odata.id": "/redfish/v1/Chassis/chassis/EnvironmentMetrics",
"@odata.type": "#EnvironmentMetrics.v1_3_0.EnvironmentMetrics",
"FanSpeedsPercent": [],
"FanSpeedsPercent@odata.count": 0,
"Id": "EnvironmentMetrics",
"Name": "Chassis Environment Metrics"
}

// E.g.
curl -k -H "X-Auth-Token: $token" https://${bmc}/redfish/v1/Chassis/chassis/Sensors/fantach_fan0_0
{
"@odata.id": "/redfish/v1/Chassis/chassis/Sensors/fantach_fan0_0",
"@odata.type": "#Sensor.v1_11_1.Sensor",
"Id": "fantach_fan0_0",
...
"ReadingType": "Rotational",
...
```

Signed-off-by: George Liu <liuxiwei@inspur.com>
Signed-off-by: Janet Adkins <janeta@us.ibm.com>
Change-Id: I4cfc0aa28d68e7e0fa947251363deb6f06e36225

show more ...

8f04d17123-Feb-2026 George Liu <liuxiwei@ieisystem.com>

Fix spelling mistakes using codespell

Signed-off-by: George Liu <liuxiwei@ieisystem.com>
Change-Id: If170e53077bc150d0062cd441394daea71f842b1

8cb2304124-Feb-2026 Igor Kanyuka <ifelmail@gmail.com>

Replace deprecated arguments

httpx deprecated [1] passing CA as verify and certs as tuple and now the
code does not work as expected. Replace these values with ssl context as
suggested.

Tested: Ran

Replace deprecated arguments

httpx deprecated [1] passing CA as verify and certs as tuple and now the
code does not work as expected. Replace these values with ssl context as
suggested.

Tested: Ran the script and it worked.

[1] https://github.com/encode/httpx/blob/master/httpx/_config.py#L45-L63

Change-Id: Ifb90e8e978e63b94b7a0f149d226841ceaa20658
Signed-off-by: Igor Kanyuka <ifelmail@gmail.com>

show more ...

8216fc8a10-Feb-2026 Ed Tanous <etanous@nvidia.com>

Be more paranoid in json parsing

When taking json directly from a user, we should set some limits on
parsing depth as well as total number of value elements. Value elements
are considered any indiv

Be more paranoid in json parsing

When taking json directly from a user, we should set some limits on
parsing depth as well as total number of value elements. Value elements
are considered any individual value, the start of an array, the start of
a dictionary, or null. This is to prevent flooding type attacks
creating large number of objects, while still keeping under the depth 10
cap. This commit makes use of the nlohmann sax parse to handle this by
injecting a new error handler in between that will impose new limits.

Currently this sets the depth limit to 10 and the total number of keys
to 500; These are intentionally high, and could be tuned or expanded on
in the future.

Tested: Unit tests pass.

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

show more ...

fab7374c23-Feb-2026 Gunnar Mills <gmills@us.ibm.com>

Remove extra properties from Link

The newly released 3.0.4[1] Redfish Service Validator has additional
checks. It is flagging the AccountService.
```
MultiFactorAuth/ClientCertificate/Certificates
[

Remove extra properties from Link

The newly released 3.0.4[1] Redfish Service Validator has additional
checks. It is flagging the AccountService.
```
MultiFactorAuth/ClientCertificate/Certificates
[Object]
Reference Object Error: The navigation property 'Certificates' contains extra properties.
FAIL
```

Today the AccountService looks like
```
Body Response of /redfish/v1/AccountService:
{
"@odata.id": "/redfish/v1/AccountService",
"@odata.type": "#AccountService.v1_15_0.AccountService",
...
"MultiFactorAuth": {
"ClientCertificate": {
"CertificateMappingAttribute": "CommonName",
"Certificates": {
"@odata.id": "/redfish/v1/AccountService/MultiFactorAuth/ClientCertificate/Certificates",
"@odata.type": "#CertificateCollection.CertificateCollection",
"Members": [],
"Members@odata.count": 0
},
"Enabled": false,
"RespondToUnauthenticatedClients": true
}
},
"Name": "Account Service",
...
```

Reading AccountService schema[2], Certificates should just be a link.
```
"Certificates": {
"$ref": "http://redfish.dmtf.org/schemas/v1/CertificateCollection.json#/definitions/CertificateCollection",
"description": "The link to a collection of CA certificates used to validate client certificates.",
```

With this change:
```
"MultiFactorAuth": {
"ClientCertificate": {
"CertificateMappingAttribute": "CommonName",
"Certificates": {
"@odata.id": "/redfish/v1/AccountService/MultiFactorAuth/ClientCertificate/Certificates"
},
"Enabled": false,
"RespondToUnauthenticatedClients": true
}
},
```

This matches other Collection Links like Roles.

[1]: https://github.com/DMTF/Redfish-Service-Validator/tags
[2]: https://redfish.dmtf.org/schemas/v1/AccountService.v1_18_1.json

Tested:
- Redfish Service Validator passes

Change-Id: I71f448f65241443a651e6d69203b21d2a1fd29e3
Signed-off-by: Gunnar Mills <gmills@us.ibm.com>
Signed-off-by: Myung Bae <myungbae@us.ibm.com>

show more ...

f58e571b29-Jan-2026 Ramya Sivakumar <sramya@ami.com>

redfish: Refactor BMC restart functions to eliminate duplication

Removed BMC state management D-Bus constants used directly into the
functions and consolidate duplicate code in BMC restart functions

redfish: Refactor BMC restart functions to eliminate duplication

Removed BMC state management D-Bus constants used directly into the
functions and consolidate duplicate code in BMC restart functions

Changes:
- Create setBMCTransition() helper function to handle common D-Bus
property write logic
- Refactor doBMCGracefulRestart() and doBMCForceRestart() to use
the new helper function

This reduces code duplication by ~50 lines and provides a single
source of truth for D-Bus interface strings, improving
maintainability and reducing the risk of errors when BMC state
interfaces change

Tested: Verified GracefulRestart and ForceRestart actions work
correctly via Redfish Manager.Reset endpoint

Change-Id: I773da3dfcf720a66408df098ccf99f0912fbcafa
Signed-off-by: Ramya Sivakumar <sramya@ami.com>

show more ...

47ecd03306-Feb-2026 Chandramohan Harkude <chandramohan.harkude@gmail.com>

Fix corrupted error response for unknown properties in static addresses

When PATCH requests contain unknown properties in IPv4StaticAddresses
or IPv6StaticAddresses, the code was returning both Prop

Fix corrupted error response for unknown properties in static addresses

When PATCH requests contain unknown properties in IPv4StaticAddresses
or IPv6StaticAddresses, the code was returning both PropertyUnknown
and PropertyValueFormatError errors. The PropertyValueFormatError
was showing corrupted values (empty strings) in the error message,
making the response confusing and incorrect.

The issue occurred because:
1. readJsonObject() detects unknown properties and calls
messages::propertyUnknown() for each one, then returns false
2. The code then also called messages::propertyValueFormatError()
with the JSON object, which showed corrupted/empty values

Fix:
- Remove the propertyValueFormatError() calls from parseAddresses()
(IPv4StaticAddresses) and handleIPv6StaticAddressesPatch()
(IPv6StaticAddresses)
- Now only PropertyUnknown error is returned, which is the correct
response per Redfish specification

Examples of fixed responses:
- IPv4StaticAddresses with unknown property "Abcd": Returns only
PropertyUnknown error for "Abcd"
- IPv6StaticAddresses with unknown property "Gateway": Returns only
PropertyUnknown error for "Gateway"

This ensures clean, accurate error responses without corrupted value
information.

```

BEFORE

curl -k -u root:0penBmc -H 'Content-Type: application/json' -X PATCH https://127.0.0.1:2443/redfish/v1/Managers/BMC_0/EthernetInterfaces/eth0 -d '{"IPv4StaticAddresses": [{"Address": "10.7.104.200", "SubnetMask": "255.255.224.0", "Gateway": "10.7.96.254", "Abcd": "dajkhdkj"}]}'
{
"IPv4StaticAddresses/0@Message.ExtendedInfo": [
{
"@odata.type": "#Message.v1_1_1.Message",
"Message": "The value '{\"Abcd\":\"dajkhdkj\",\"Address\":\"\",\"Gateway\":\"\",\"SubnetMask\":\"\"}' for the property IPv4StaticAddresses/0 is not a format that the property can accept.",
"MessageArgs": [
"{\"Abcd\":\"dajkhdkj\",\"Address\":\"\",\"Gateway\":\"\",\"SubnetMask\":\"\"}",
"IPv4StaticAddresses/0"
],
"MessageId": "Base.1.19.PropertyValueFormatError",
"MessageSeverity": "Warning",
"Resolution": "Correct the value for the property in the request body and resubmit the request if the operation failed."
}
],
"error": {
"@Message.ExtendedInfo": [
{
"@odata.type": "#Message.v1_1_1.Message",
"Message": "The property Abcd is not in the list of valid properties for the resource.",
"MessageArgs": [
"Abcd"
],
"MessageId": "Base.1.19.PropertyUnknown",
"MessageSeverity": "Warning",
"message": "The property Gate is not in the list of valid properties for the resource."
}
}

curl -k -u root:0penBmc -H 'Content-Type: application/json' -X PATCH https://127.0.0.1:2443/redfish/v1/Managers/BMC_0/EthernetInterfaces/eth0 -d '{"IPv6StaticAddresses": [{"Address": "2002::1", "PrefixLength": 64, "Gate": "2002::2"}]}'
{
"IPv6StaticAddresses/1@Message.ExtendedInfo": [
{
"@odata.type": "#Message.v1_1_1.Message",
"Message": "The value '{\"Address\":\"\",\"Gate\":\"2002::2\",\"PrefixLength\":64}' for the property IPv6StaticAddresses/1 is not a format that the property can accept.",
"MessageArgs": [
"{\"Address\":\"\",\"Gate\":\"2002::2\",\"PrefixLength\":64}",
"IPv6StaticAddresses/1"
],
"MessageId": "Base.1.19.PropertyValueFormatError",
"MessageSeverity": "Warning",
"Resolution": "Correct the value for the property in the request body and resubmit the request if the operation failed."
}
],
"error": {
"@Message.ExtendedInfo": [
{
"@odata.type": "#Message.v1_1_1.Message",
"Message": "The property Gate is not in the list of valid properties for the resource.",
"MessageArgs": [
"Gate"
],
"MessageId": "Base.1.19.PropertyUnknown",
"MessageSeverity": "Warning",
"Resolution": "Remove the unknown property from the request body and resubmit the request if the operation failed."
}
],
"code": "Base.1.19.PropertyUnknown",
"message": "The property Gate is not in the list of valid properties for the resource."
}

AFTER

curl -k -u root:0penBmc -H 'Content-Type: application/json' -X PATCH https://127.0.0.1:2443/redfish/v1/Managers/BMC_0/EthernetInterfaces/eth0 -d '{"IPv6StaticAddresses": [{"Address": "2002::1", "PrefixLength": 64, "Gateway": "2002::2"}]}'
{
"error": {
"@Message.ExtendedInfo": [
{
"@odata.type": "#Message.v1_1_1.Message",
"Message": "The property Gateway is not in the list of valid properties for the resource.",
"MessageArgs": [
"Gateway"
],
"MessageId": "Base.1.19.PropertyUnknown",
"MessageSeverity": "Warning",
"Resolution": "Remove the unknown property from the request body and resubmit the request if the operation failed."
}
],
"code": "Base.1.19.PropertyUnknown",
"message": "The property Gateway is not in the list of valid properties for the resource."
}
}

curl -k -u root:0penBmc -H 'Content-Type: application/json' -X PATCH https://127.0.0.1:2443/redfish/v1/Managers/BMC_0/EthernetInterfaces/eth0 -d '{"IPv4StaticAddresses": [{"Address": "10.7.104.200", "SubnetMask": "255.255.224.0", "Gateway": "10.7.96.254", "Abcd": "dajkhdkj"}]}'

{
"error": {
"@Message.ExtendedInfo": [
{
"@odata.type": "#Message.v1_1_1.Message",
"Message": "The property Abcd is not in the list of valid properties for the resource.",
"MessageArgs": [
"Abcd"
],
"MessageId": "Base.1.19.PropertyUnknown",
"MessageSeverity": "Warning",
"Resolution": "Remove the unknown property from the request body and resubmit the request if the operation failed."
}
],
"code": "Base.1.19.PropertyUnknown",
"message": "The property Abcd is not in the list of valid properties for the resource."
}
}
```

Change-Id: Id1f23056aa27d53ab8945ac27f91028185a775db
Signed-off-by: Chandramohan Harkude <chandramohan.harkude@gmail.com>

show more ...

b415233d12-Feb-2026 Ed Tanous <etanous@nvidia.com>

Make sure init is called on http2

The body object seems to work properly when init isn't called, but to
make things efficient, init can call std::string::reserve when
appropriate and avoid mallocs.

Make sure init is called on http2

The body object seems to work properly when init isn't called, but to
make things efficient, init can call std::string::reserve when
appropriate and avoid mallocs.

Tested: Unit tests pass. Good coverage for http2.

Change-Id: I7abba9640ad711678f1ca2ed6d1b42d9aba22dcc
Signed-off-by: Ed Tanous <etanous@nvidia.com>
Signed-off-by: Rajeev Ranjan <ranjan.rajeev1609@gmail.com>

show more ...

36b5cba212-Feb-2026 Jason Westover <jwestover@nvidia.com>

Fix webassets to support Vite build output

The webui-vue project migrated from webpack to Vite, which changes
the output filenames. Vite names entry chunks as index.[hash].js
instead of webpack's a

Fix webassets to support Vite build output

The webui-vue project migrated from webpack to Vite, which changes
the output filenames. Vite names entry chunks as index.[hash].js
instead of webpack's app.[hash].js. The starts_with("index.") check
in addFile() was remapping these JS/CSS files to their parent directory
path (intended only for index.html), causing 404 errors when the
browser requested the actual asset URLs.

Restrict the index file detection to only apply to .html files, so
that index.html is still correctly mapped to "/" while other files
starting with "index." are served at their actual paths.

Also broaden the etag hash detection from hex-only characters to full
alphanumeric to support Vite's base64-style content hashes alongside
webpack's hex hashes.

Add unit tests for getStaticEtag() covering both webpack and Vite hash
formats, path prefixes, edge cases, and validation of hash length and
character constraints.

Tested:
Unit tests pass
Vite-based webui-vue loads and caches etags

Change-Id: I3f7d2e062d0fd8be4ded7889b64a7228b4a6459b
Signed-off-by: Jason Westover <jwestover@nvidia.com>
Signed-off-by: Ed Tanous <etanous@nvidia.com>

show more ...

414817eb10-Feb-2026 Ramya Sivakumar <sramya@ami.com>

redfish: Remove unnecessary nested braces in trigger.hpp

Remove redundant curly braces around the error logging and return
statement in the getMetricReportDefinitions function. The extra
braces serv

redfish: Remove unnecessary nested braces in trigger.hpp

Remove redundant curly braces around the error logging and return
statement in the getMetricReportDefinitions function. The extra
braces served no purpose

Tested: Code compiles without errors

Change-Id: I9be65c5bbcad5ad6f3102ca25aef94f321175bfd
Signed-off-by: Ramya Sivakumar <sramya@ami.com>

show more ...

ea4f4e8b10-Feb-2026 Ed Tanous <ed@tanous.net>

Fix the build for sensors

Not clear how this made through CI.

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

478c426c03-Sep-2025 Brad Bishop <bradbish@qti.qualcomm.com>

Use boost::urls::format

boost::urls::format is specifically meant for URL construction. It
handles encoding like percentage encoding which std::format and string
concatenation does not.

Tested: Ran

Use boost::urls::format

boost::urls::format is specifically meant for URL construction. It
handles encoding like percentage encoding which std::format and string
concatenation does not.

Tested: Ran unit tests. Injected BMC dump and ran redfish validator
against BMC dump service with populated BMC dump entry. Downloaded BMC
dump attachment.
Change-Id: I86767bea85b76f9a62d7612adbeca4c796ac0f95
Signed-off-by: Brad Bishop <bradbish@qti.qualcomm.com>

show more ...

f485bd4419-Sep-2025 Ed Tanous <etanous@nvidia.com>

zstd compression

zstd compression allows for reducing the size of payloads with repeating
elements. Pretty printed json is one very specific case where we would
prefer to not change the behavior, b

zstd compression

zstd compression allows for reducing the size of payloads with repeating
elements. Pretty printed json is one very specific case where we would
prefer to not change the behavior, but would also like to avoid the
overhead of TLS compression.

When ztd is present, the webserver will look for the Accepts-Encoding
header to contain zstd, and if it does, compress the payload before
sending.

Tested:
Webui loads correctly, and shows zstd being used for download.
Redfish service validator runs. (does not support zstd)
Unit tests pass.

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

show more ...

433c919329-Oct-2025 Janet Adkins <janeta@us.ibm.com>

Sensors: Convert fan_tach sensors to Percent

Redfish 2025.3 clarified the reporting of fan sensors should always be
as ReadingType Percent to address issue #6197. [1] The fan_tach
sensors on D-Bus a

Sensors: Convert fan_tach sensors to Percent

Redfish 2025.3 clarified the reporting of fan sensors should always be
as ReadingType Percent to address issue #6197. [1] The fan_tach
sensors on D-Bus are Rotational sensors. Conversion is necessary for
these sensor values to reflect Percent instead. [2] This is reflected in
a published mockup. [3]

The Redfish update includes an additional sentence for the ReadingType
description:

```
"... Services should represent fan speed and pump speed sensors with the `ReadingType` value `Percent`."
```

The ReadingRangeMax and ReadingRangeMin properties also must be
converted to percent basis as they are defined to reflect the range of
the Reading property.

```
curl -s https://redfish.dmtf.org/schemas/v1/Sensor.v1_11_1.json | jq .definitions.Sensor.properties.ReadingRangeMax.longDescription
"This property shall indicate the maximum possible value of the `Reading` property for this sensor. This value is the range of valid readings for this sensor. Values outside this range are discarded as reading errors."
```

A new compile option, redfish-allow-rotational-fans, will maintain the
old behavior of reporting fan_tach sensors as Rotational. When the
option is disabled they will be reported as Percent. This will allow
time for distributions to make adjustments to handle Percent reported
fan sensors.

The SpeedRPM Redfish property contains the RPM value for these sensors
whether this option is enabled or disabled. Clients wanting to use the
RPM value should convert to use the SpeedRPM property instead of the
Reading property.

```
curl -s https://redfish.dmtf.org/schemas/v1/Sensor.v1_11_1.json | jq .definitions.Sensor.properties.SpeedRPM
{
"description": "The rotational speed.",
"excerpt": "SensorFan,SensorFanArray,SensorPump",
"longDescription": "This property shall contain a reading of the rotational speed of the device in revolutions per minute (RPM) units.",
"readonly": true,
"type": [
"number",
"null"
],
"units": "{rev}/min",
"versionAdded": "v1_2_0"
}
```

With the compile option disabled the following differences will be
reflected in the responses for /redfish/v1/Chassis/chassis/Sensors/{}:
- ReadingRangeMax/ReadingRangeMin: Converted to percent range, (100,0)
- ReadingType: "Percent"
- ReadingUnits: "%"
- Reading: Computed percent value. The computation is the percent of
the RPM Value within the MaxValue to MinValue range as reported by
D-Bus for the sensor.
- Note: If the percent cannot be computed for any reason the Reading
property is set to null.
- Note: SpeedRPM: Remains unchanged, it continues to report the RPM
value as reported by D-Bus.

Implementation Notes:
- The SensorFanExcerpt and SensorFanArrayExcerpt definitions also
include the SpeedRPM property. So moved setting of this property to
be handled for excerpts as well.
- The Sensor schema version has been updated regardless of the compile
option setting.

[1] https://github.com/DMTF/Redfish/issues/6197
[2] https://redfish.dmtf.org/schemas/v1/Sensor.v1_11_1.json
[3] https://github.com/DMTF/Redfish-Publications/blob/main/mockups/public-rackmount1/Chassis/1U/Sensors/CPUFan1/index.json

Tested:
- Added new unit tests for new function getFanPercent()
- Adjusted existing unit tests for Sensors to reflect changes for
fan_tach sensors.
- Redfish Service Validator passes (with option enabled and disabled)
- Using hardware simulator hand-edited values for the min/max of the
fan_tach sensors:
- Option enabled: confirmed Redfish response same before and after
code changes.
- Option disabled: Confirmed Redfish responses and percent
calculation.

Example responses with compile option disabled:
```
// D-Bus: "Value" d 18000 "MaxValue" d 18000 "MinValue" d 0
curl -s -k -H "X-Auth-Token: $token" -X GET https://${bmc}/redfish/v1/Chassis/chassis/Sensors/fantach_fan0_0
{
"@odata.id": "/redfish/v1/Chassis/chassis/Sensors/fantach_fan0_0",
"@odata.type": "#Sensor.v1_11_1.Sensor",
"Id": "fantach_fan0_0",
"Name": "fan0 0",
"Reading": 100,
"ReadingRangeMax": 100,
"ReadingRangeMin": 0,
"ReadingType": "Percent",
"ReadingUnits": "%",
"SpeedRPM": 18000.0,
"Status": {
"Health": "OK",
"State": "Enabled"
}
}

// D-Bus: "Value" d 18000 "MaxValue" d 36000 "MinValue" d 0
curl -s -k -H "X-Auth-Token: $token" -X GET https://${bmc}/redfish/v1/Chassis/chassis/Sensors/fantach_fan1_0
{
"@odata.id": "/redfish/v1/Chassis/chassis/Sensors/fantach_fan1_0",
"@odata.type": "#Sensor.v1_11_1.Sensor",
"Id": "fantach_fan1_0",
"Name": "fan1 0",
"Reading": 50,
"ReadingRangeMax": 100,
"ReadingRangeMin": 0,
"ReadingType": "Percent",
"ReadingUnits": "%",
"SpeedRPM": 18000.0,
"Status": {
"Health": "OK",
"State": "Enabled"
}
}

// Minimum is non-zero
// D-Bus: "Value" d 18000 "MaxValue" d 27000 "MinValue" d 9000
curl -s -k -H "X-Auth-Token: $token" -X GET https://${bmc}/redfish/v1/Chassis/chassis/Sensors/fantach_fan2_0
{
"@odata.id": "/redfish/v1/Chassis/chassis/Sensors/fantach_fan2_0",
"@odata.type": "#Sensor.v1_11_1.Sensor",
"Id": "fantach_fan2_0",
"Name": "fan2 0",
"Reading": 50,
"ReadingRangeMax": 100,
"ReadingRangeMin": 0,
"ReadingType": "Percent",
"ReadingUnits": "%",
"SpeedRPM": 18000.0,
"Status": {
"Health": "OK",
"State": "Enabled"
}
}

// Minimum is not initialized - Reading is null
// D-Bus: "Value" d 18000 "MaxValue" d 18000 "MinValue" d -inf
curl -s -k -H "X-Auth-Token: $token" -X GET https://${bmc}/redfish/v1/Chassis/chassis/Sensors/fantach_fan3_0
{
"@odata.id": "/redfish/v1/Chassis/chassis/Sensors/fantach_fan3_0",
"@odata.type": "#Sensor.v1_11_1.Sensor",
"Id": "fantach_fan3_0",
"Name": "fan3 0",
"Reading": null,
"ReadingRangeMax": 100,
"ReadingRangeMin": 0,
"ReadingType": "Percent",
"ReadingUnits": "%",
"SpeedRPM": 18000.0,
"Status": {
"Health": "OK",
"State": "Enabled"
}
}

// Minimum and Maximum are not initialized - so Reading is null
// D-Bus: "Value" d 18000 "MaxValue" d inf "MinValue" d -inf
curl -s -k -H "X-Auth-Token: $token" -X GET https://${bmc}/redfish/v1/Chassis/chassis/Sensors/fantach_fan4_0
{
"@odata.id": "/redfish/v1/Chassis/chassis/Sensors/fantach_fan4_0",
"@odata.type": "#Sensor.v1_11_1.Sensor",
"Id": "fantach_fan4_0",
"Name": "fan4 0",
"Reading": null,
"ReadingRangeMax": 100,
"ReadingRangeMin": 0,
"ReadingType": "Percent",
"ReadingUnits": "%",
"SpeedRPM": 18000.0,
"Status": {
"Health": "OK",
"State": "Enabled"
}
}
```

Example of unchanged response with compile option enabled:
```
curl -s -k -H "X-Auth-Token: $token" -X GET https://${bmc}/redfish/v1/Chassis/chassis/Sensors/fantach_fan0_0
{
"@odata.id": "/redfish/v1/Chassis/chassis/Sensors/fantach_fan0_0",
"@odata.type": "#Sensor.v1_11_1.Sensor",
"Id": "fantach_fan0_0",
"Name": "fan0 0",
"Reading": 18000.0,
"ReadingRangeMax": 18000.0,
"ReadingRangeMin": 0.0,
"ReadingType": "Rotational",
"ReadingUnits": "RPM",
"SpeedRPM": 18000.0,
"Status": {
"Health": "OK",
"State": "Enabled"
}
}
```

Change-Id: I8ec1e739bcd5ebce7453a2570569f2edc2284341
Signed-off-by: Janet Adkins <janeta@us.ibm.com>

show more ...

3132dace07-Oct-2025 Harshit Aghera <haghera@nvidia.com>

Fabric: add support for PCIe Switch Port URI

This patch enable support for following properties for Port of a PCIe
Switch. [1]
- PortProtocol
- PortType
- CurrentSpeedGbps
- ActiveWidth

One of the

Fabric: add support for PCIe Switch Port URI

This patch enable support for following properties for Port of a PCIe
Switch. [1]
- PortProtocol
- PortType
- CurrentSpeedGbps
- ActiveWidth

One of the devices that gets enabled with this patch is Nvidia ConnectX
devices, which are network cards featuring an integrated PCIe switch.
These devices combine both PCIe ports and network ports in a single
unit. Since such devices don't strictly qualify as Fabric Adapters, the
Switch URI is used instead of the FabricAdapter URI.

Port schema only allows certain URIs as Port URI. URI
/redfish/v1/Fabrics/{FabricId}/Switches/{SwitchId}/Ports/{PortId} seems
most appropriate choice for PCIe Switch Port. [1]

The Fabric resource is modeled similarly to the System resource, meaning
that only one Fabric resource will exist for each BMC. Route handler for
collections and each individual components are added in this patch for
each URI resource under /redfish/v1/Fabrics.

DBus Interface "xyz.openbmc_project.Inventory.Item.PCIeSwitch" is used
to identify the Switch resources. Association between Switch and Port is
`connecting` and `connected_to`.

Feature like Port Metrics properties (for PCIe Error Counters) can be
added in future at Port Metric URI.

dbus-sensors patches -
https://gerrit.openbmc.org/c/openbmc/dbus-sensors/+/84079
https://gerrit.openbmc.org/c/openbmc/dbus-sensors/+/83202

Tested: Build an image for nvl32-obmc machine with the following patch
cherry picked.

https://gerrit.openbmc.org/c/openbmc/dbus-sensors/+/84079
https://gerrit.openbmc.org/c/openbmc/openbmc/+/85490

The openbmc patch cherry-picks the following patches that are currently
under review.

```
1. device tree
https://lore.kernel.org/all/aRbLqH8pLWCQryhu@molberding.nvidia.com/
2. mctpd patches
https://github.com/CodeConstruct/mctp/pull/85
3. u-boot changes
https://lore.kernel.org/openbmc/20251121-msx4-v1-0-fc0118b666c1@nvidia.com/T/#t
4. kernel changes as specified in the openbmc patch (for espi)
5. entity-manager changes
https://gerrit.openbmc.org/c/openbmc/entity-manager/+/85455
6. platform-init changes
https://gerrit.openbmc.org/c/openbmc/platform-init/+/85456
7. spi changes
https://lore.kernel.org/all/20251121-w25q01jv_fixup-v1-1-3d175050db73@nvidia.com/
```

redfish service validator is passing.

```
$ curl -k -u 'root:0penBmc' https://${bmc_ip}/redfish/v1/Fabrics/
{
"@odata.id": "/redfish/v1/Fabrics",
"@odata.type": "#FabricCollection.FabricCollection",
"Members": [
{
"@odata.id": "/redfish/v1/Fabrics/fabric"
}
],
"Members@odata.count": 1,
"Name": "Fabric Collection"
}%

$ curl -k -u 'root:0penBmc' https://${bmc_ip}/redfish/v1/Fabrics/fabric/
{
"@odata.id": "/redfish/v1/Fabrics/fabric",
"@odata.type": "#Fabric.v1_2_0.Fabric",
"Id": "fabric",
"Name": "fabric Fabric",
"Switches": {
"@odata.id": "/redfish/v1/Fabrics/fabric/Switches"
}
}%

$ curl -k -u 'root:0penBmc' https://${bmc_ip}/redfish/v1/Fabrics/fabric/Switches/
{
"@odata.id": "/redfish/v1/Fabrics/fabric/Switches",
"@odata.type": "#SwitchCollection.SwitchCollection",
"Members": [
{
"@odata.id": "/redfish/v1/Fabrics/fabric/Switches/Nvidia_ConnectX_0"
},
{
"@odata.id": "/redfish/v1/Fabrics/fabric/Switches/Nvidia_ConnectX_1"
},
{
"@odata.id": "/redfish/v1/Fabrics/fabric/Switches/Nvidia_ConnectX_2"
},
{
"@odata.id": "/redfish/v1/Fabrics/fabric/Switches/Nvidia_ConnectX_3"
}
],
"Members@odata.count": 4,
"Name": "fabric Switch Collection"
}%

$ curl -k -u 'root:0penBmc' https://${bmc_ip}/redfish/v1/Fabrics/fabric/Switches/Nvidia_ConnectX_0
{
"@odata.id": "/redfish/v1/Fabrics/fabric/Switches/Nvidia_ConnectX_0",
"@odata.type": "#Switch.v1_7_0.Switch",
"Id": "Nvidia_ConnectX_0",
"Name": "Nvidia_ConnectX_0",
"Ports": {
"@odata.id": "/redfish/v1/Fabrics/fabric/Switches/Nvidia_ConnectX_0/Ports"
},
"Status": {
"Health": "OK",
"State": "Enabled"
}
}%

$ curl -k -u 'root:0penBmc' https://${bmc_ip}/redfish/v1/Fabrics/fabric/Switches/Nvidia_ConnectX_0/Ports/
{
"@odata.id": "/redfish/v1/Fabrics/fabric/Switches/Nvidia_ConnectX_0/Ports",
"@odata.type": "#PortCollection.PortCollection",
"Members": [
{
"@odata.id": "/redfish/v1/Fabrics/fabric/Switches/Nvidia_ConnectX_0/Ports/DOWN_0"
},
{
"@odata.id": "/redfish/v1/Fabrics/fabric/Switches/Nvidia_ConnectX_0/Ports/DOWN_1"
},
{
"@odata.id": "/redfish/v1/Fabrics/fabric/Switches/Nvidia_ConnectX_0/Ports/UP_0"
}
],
"Members@odata.count": 3,
"Name": "Nvidia_ConnectX_0 Port Collection"
}%

$ curl -k -u 'root:0penBmc' https://${bmc_ip}/redfish/v1/Fabrics/fabric/Switches/Nvidia_ConnectX_0/Ports/UP_0/
{
"@odata.id": "/redfish/v1/Fabrics/fabric/Switches/Nvidia_ConnectX_0/Ports/UP_0",
"@odata.type": "#Port.v1_4_0.Port",
"ActiveWidth": 8,
"CurrentSpeedGbps": 32.0,
"Id": "UP_0",
"Metrics": {
"@odata.id": "/redfish/v1/Fabrics/fabric/Switches/Nvidia_ConnectX_0/Ports/UP_0/Metrics"
},
"Name": "Nvidia_ConnectX_0 UP_0 Port",
"PortProtocol": "PCIe",
"PortType": "UpstreamPort",
"Status": {
"Health": "OK",
"State": "Enabled"
}
}%
```

[1]: https://redfish.dmtf.org/schemas/v1/Port_v1.xml

Change-Id: I52f4ca62b4953f6196c589e340602a0d7885d9c1
Signed-off-by: Harshit Aghera <haghera@nvidia.com>

show more ...

64fe802028-Jan-2026 Ed Tanous <etanous@nvidia.com>

Do not allow data beyond the trailer

There is nothing in the multipart spec[1] that states that a parser
should allow any bytes after a multipart payload.

Several unit tests have a \r\n after their

Do not allow data beyond the trailer

There is nothing in the multipart spec[1] that states that a parser
should allow any bytes after a multipart payload.

Several unit tests have a \r\n after their boundary condition that
previously the parser just ignored. Testing shows this is fairly
normal, so handle both cases still, but if any other characters show up,
fail the parse.

Unit test is also simplified to be more clear.

Tested: Unit test coverage

[1] https://datatracker.ietf.org/doc/html/rfc7578#section-4.1

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

show more ...

53154a0228-Jan-2026 Ed Tanous <etanous@nvidia.com>

Don't use at for field access in tests

at() throws an exception when a field doesn't exist. This is somewhat
paradoxical when using EXPECT_EQ, as that is not supposed to stop the
test on a failure.

Don't use at for field access in tests

at() throws an exception when a field doesn't exist. This is somewhat
paradoxical when using EXPECT_EQ, as that is not supposed to stop the
test on a failure. Convert calls to use operator[] which does not
throw.

Tested: Unit test

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

show more ...

1139936720-Jan-2026 Ed Tanous <etanous@nvidia.com>

Remove old login routines

At one point the bmcweb /login route has supported a bunch of
different login mechanisms:
1. Sending username and password via headers, mirroring a non-openbmc
implement

Remove old login routines

At one point the bmcweb /login route has supported a bunch of
different login mechanisms:
1. Sending username and password via headers, mirroring a non-openbmc
implementation that has never been used in openbmc, and predates this
repo being called bmcweb.
2. Sending username and password under a "data" object, mirroring
phosphor-rest json webserver.
3. Sending username and password as an http multipart as part of the
initial multipart parser patch.
4. Sending a json payload as {"username": <>, "password": <>}

This commit removes all but the final login mechanism. Redfish login
has been used exclusively for many many years, and only the webui used
4 above up until a few years ago in commit
1ff8e89fd2397c468ab0237158e5aeeff2692413

Keeping one viable login mechanism that's not Redfish is useful in the
future if there are those that want to disable Redfish. All others
could potentially be security issues, so keeping the code simple and
conscise here is ideal.

This commit does not attempt to make a backwards compatibility path,
under the assumption that other than 4, none of the other code was ever
used in any real capacity. If we find that to not be true, we can add
back the portions where we need compatibility, but this seems unlikely.

Tested: WIP

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

show more ...

8740f42a30-Jan-2026 Ramya Sivakumar <sramya@ami.com>

memory.hpp: Correct spelling of volatileRegionMaxSizeInKiB

Correct the misspelled variable name 'voltaileRegionMaxSizeInKib' to
'volatileRegionMaxSizeInKiB' for consistency and clarity. The typo
was

memory.hpp: Correct spelling of volatileRegionMaxSizeInKiB

Correct the misspelled variable name 'voltaileRegionMaxSizeInKib' to
'volatileRegionMaxSizeInKiB' for consistency and clarity. The typo
was missing the letter 't' in 'volatile' and had inconsistent
capitalization ('Kib' vs 'KiB')

Tested: code compile done.No functional change

Change-Id: Ie5b49e6541f4cf0000a5176669017c187c6822d2
Signed-off-by: Ramya Sivakumar <sramya@ami.com>

show more ...

0c13c07728-Jan-2026 Ramya Sivakumar <sramya@ami.com>

test: Add Cables and JsonSchemas to service root test

Add test assertions for Cables and JsonSchemas endpoints in the
ServiceRoot response. These verify that both endpoints are properly
exposed with

test: Add Cables and JsonSchemas to service root test

Add test assertions for Cables and JsonSchemas endpoints in the
ServiceRoot response. These verify that both endpoints are properly
exposed with their respective @odata.id URIs at /redfish/v1/Cables
and /redfish/v1/JsonSchemas

Change-Id: Icec5d2c5a99872f6a44a6c82f0d5ab02490d9339
Signed-off-by: Ramya Sivakumar <sramya@ami.com>

show more ...

76c2ad6403-Feb-2023 Ed Tanous <ed@tanous.net>

Remove usages of nlohmann::json::begin()

nlohmann::json::begin() throws an uncaught exception.

Tested: Redfish service validator passes.

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

Remove usages of nlohmann::json::begin()

nlohmann::json::begin() throws an uncaught exception.

Tested: Redfish service validator passes.

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

show more ...

ac69e77e26-Jan-2026 Gunnar Mills <gmills@us.ibm.com>

Move clang-off / clang-on to catch scope

As a comment in https://gerrit.openbmc.org/c/openbmc/bmcweb/+/86868
suggested "You might also consider moving this up a line so you catch
the scope on both s

Move clang-off / clang-on to catch scope

As a comment in https://gerrit.openbmc.org/c/openbmc/bmcweb/+/86868
suggested "You might also consider moving this up a line so you catch
the scope on both sides."

This enforces just the slightest bit more clang-format.

Rerun script.

Tested: Builds. Manual changes to script only. Rest generated.

Change-Id: I8ff01befc56c576716f5d83bd90763354b1ff0c5
Signed-off-by: Gunnar Mills <gmills@us.ibm.com>

show more ...


redfish-core/include/generated/enums/acceleration_function.hpp
redfish-core/include/generated/enums/account_service.hpp
redfish-core/include/generated/enums/action_info.hpp
redfish-core/include/generated/enums/aggregation_source.hpp
redfish-core/include/generated/enums/allow_deny.hpp
redfish-core/include/generated/enums/attribute_registry.hpp
redfish-core/include/generated/enums/automation_node.hpp
redfish-core/include/generated/enums/battery.hpp
redfish-core/include/generated/enums/cable.hpp
redfish-core/include/generated/enums/certificate.hpp
redfish-core/include/generated/enums/certificate_enrollment.hpp
redfish-core/include/generated/enums/chassis.hpp
redfish-core/include/generated/enums/circuit.hpp
redfish-core/include/generated/enums/collection_capabilities.hpp
redfish-core/include/generated/enums/component_integrity.hpp
redfish-core/include/generated/enums/composition_service.hpp
redfish-core/include/generated/enums/computer_system.hpp
redfish-core/include/generated/enums/connection.hpp
redfish-core/include/generated/enums/connection_method.hpp
redfish-core/include/generated/enums/container_image.hpp
redfish-core/include/generated/enums/control.hpp
redfish-core/include/generated/enums/coolant_connector.hpp
redfish-core/include/generated/enums/cooling_loop.hpp
redfish-core/include/generated/enums/cooling_unit.hpp
redfish-core/include/generated/enums/cxl_logical_device.hpp
redfish-core/include/generated/enums/drive.hpp
redfish-core/include/generated/enums/endpoint.hpp
redfish-core/include/generated/enums/endpoint_group.hpp
redfish-core/include/generated/enums/ethernet_interface.hpp
redfish-core/include/generated/enums/event.hpp
redfish-core/include/generated/enums/event_destination.hpp
redfish-core/include/generated/enums/event_service.hpp
redfish-core/include/generated/enums/external_account_provider.hpp
redfish-core/include/generated/enums/facility.hpp
redfish-core/include/generated/enums/host_interface.hpp
redfish-core/include/generated/enums/ip_addresses.hpp
redfish-core/include/generated/enums/job.hpp
redfish-core/include/generated/enums/job_document.hpp
redfish-core/include/generated/enums/job_service.hpp
redfish-core/include/generated/enums/key.hpp
redfish-core/include/generated/enums/key_policy.hpp
redfish-core/include/generated/enums/leak_detector.hpp
redfish-core/include/generated/enums/license.hpp
redfish-core/include/generated/enums/license_service.hpp
redfish-core/include/generated/enums/log_entry.hpp
redfish-core/include/generated/enums/log_service.hpp
redfish-core/include/generated/enums/manager.hpp
redfish-core/include/generated/enums/manager_account.hpp
redfish-core/include/generated/enums/manager_network_protocol.hpp
redfish-core/include/generated/enums/manifest.hpp
redfish-core/include/generated/enums/media_controller.hpp
redfish-core/include/generated/enums/memory.hpp
redfish-core/include/generated/enums/memory_chunks.hpp
redfish-core/include/generated/enums/memory_region.hpp
redfish-core/include/generated/enums/message_registry.hpp
redfish-core/include/generated/enums/metric_definition.hpp
redfish-core/include/generated/enums/metric_report_definition.hpp
redfish-core/include/generated/enums/network_device_function.hpp
redfish-core/include/generated/enums/network_port.hpp
redfish-core/include/generated/enums/open_bmc_computer_system.hpp
redfish-core/include/generated/enums/operating_system.hpp
redfish-core/include/generated/enums/outbound_connection.hpp
redfish-core/include/generated/enums/outlet.hpp
redfish-core/include/generated/enums/outlet_group.hpp
redfish-core/include/generated/enums/pcie_device.hpp
redfish-core/include/generated/enums/pcie_function.hpp
redfish-core/include/generated/enums/pcie_slots.hpp
redfish-core/include/generated/enums/physical_context.hpp
redfish-core/include/generated/enums/port.hpp
redfish-core/include/generated/enums/power.hpp
redfish-core/include/generated/enums/power_distribution.hpp
redfish-core/include/generated/enums/power_supply.hpp
redfish-core/include/generated/enums/privileges.hpp
redfish-core/include/generated/enums/processor.hpp
redfish-core/include/generated/enums/protocol.hpp
redfish-core/include/generated/enums/pump.hpp
redfish-core/include/generated/enums/redfish_extensions.hpp
redfish-core/include/generated/enums/redundancy.hpp
redfish-core/include/generated/enums/registered_client.hpp
redfish-core/include/generated/enums/reservoir.hpp
redfish-core/include/generated/enums/resolution_step.hpp
redfish-core/include/generated/enums/resource.hpp
redfish-core/include/generated/enums/resource_block.hpp
redfish-core/include/generated/enums/schedule.hpp
redfish-core/include/generated/enums/secure_boot.hpp
redfish-core/include/generated/enums/secure_boot_database.hpp
redfish-core/include/generated/enums/sensor.hpp
redfish-core/include/generated/enums/serial_interface.hpp
redfish-core/include/generated/enums/session.hpp
redfish-core/include/generated/enums/settings.hpp
redfish-core/include/generated/enums/signature.hpp
redfish-core/include/generated/enums/software_inventory.hpp
redfish-core/include/generated/enums/storage.hpp
redfish-core/include/generated/enums/storage_controller.hpp
redfish-core/include/generated/enums/switch.hpp
redfish-core/include/generated/enums/task.hpp
redfish-core/include/generated/enums/task_service.hpp
redfish-core/include/generated/enums/telemetry_data.hpp
redfish-core/include/generated/enums/telemetry_service.hpp
redfish-core/include/generated/enums/thermal.hpp
redfish-core/include/generated/enums/triggers.hpp
redfish-core/include/generated/enums/trusted_component.hpp
redfish-core/include/generated/enums/update_service.hpp
redfish-core/include/generated/enums/v_lan_network_interface.hpp
redfish-core/include/generated/enums/virtual_media.hpp
redfish-core/include/generated/enums/virtual_pci2_pci_bridge.hpp
redfish-core/include/generated/enums/volume.hpp
redfish-core/include/generated/enums/zone.hpp
scripts/generate_schema_enums.py
6bb8c60826-Jan-2026 Gunnar Mills <gmills@us.ibm.com>

Rename switch namespace

switch is a reserved keyword in C++.. Therefore "namespace switch" is
illegal C++ code.

Add a couple lines of python code to check for keywords and then rename
with a rf_ at

Rename switch namespace

switch is a reserved keyword in C++.. Therefore "namespace switch" is
illegal C++ code.

Add a couple lines of python code to check for keywords and then rename
with a rf_ at the front, e.g. namespace rf_switch.

Rerun the script update_schemas.py script.

This showed downstream, but probably would have upstream too.

```
switch.hpp:8:11: error: expected identifier or '{' [clang-diagnostic-error]
8 | namespace switch
| ^
.../bmcweb/redfish-core/include/generated/enums/switch.hpp:8:11: error: expected unqualified-id [clang-diagnostic-error]

...

FAILED: meson-internal__clang-tidy-fix
```

Change-Id: I58be67fc0df6e5056e63da5302724e6509b7114b
Signed-off-by: Gunnar Mills <gmills@us.ibm.com>

show more ...

823b44c114-Jan-2026 Janet Adkins <janeta@us.ibm.com>

Sensors: Add unit tests

An earlier commit [1] refactored parts of objectPropertiesToJson() into
sub-functions to make the code easier to follow. The review of that
change requested unit tests for th

Sensors: Add unit tests

An earlier commit [1] refactored parts of objectPropertiesToJson() into
sub-functions to make the code easier to follow. The review of that
change requested unit tests for these new functions. [2] This commit
adds them.

[1] https://gerrit.openbmc.org/c/openbmc/bmcweb/+/85835
[2] https://gerrit.openbmc.org/c/openbmc/bmcweb/+/85835/comments/408617a1_474b4062

Tested: Compiles and unit tests pass

Change-Id: I65e06deccb4b7194603f2749a977986bcb673cd1
Signed-off-by: Janet Adkins <janeta@us.ibm.com>

show more ...

5e6fd37423-Jan-2026 Ramya Sivakumar <sramya@ami.com>

Fix variable naming convention in afterGetUUID

Rename uUID to uuid to follow standard C++ camelCase naming
conventions for local variables. This improves code consistency
and readability

Tested:

Fix variable naming convention in afterGetUUID

Rename uUID to uuid to follow standard C++ camelCase naming
conventions for local variables. This improves code consistency
and readability

Tested:
- Built successfully with no compilation errors
- No behavioral changes, purely a refactoring commit

Change-Id: I9d72a184138dd5e4123579d04c1d5e25ed1f2b09
Signed-off-by: Ramya Sivakumar <sramya@ami.com>

show more ...

12345678910>>...137