summaryrefslogtreecommitdiff
path: root/meson.options
AgeCommit message (Collapse)AuthorFilesLines
2026-07-24Add Fuzz targetEd Tanous1-0/+8
Recently, oss-fuzz added support for bmcweb, but did it by checking in a number of code patches. This commit should get similar coverage by hooking into the HTTP connection class, and using the unit test code to inject bytes directly into a stream. This can be improved over time, but this is a good start. Change-Id: I20b5d536cff1588a8387f2770c022516e1cd62d0 Signed-off-by: Ed Tanous <etanous@nvidia.com>
2026-07-08Change cipher suite defaults to modernEd Tanous1-1/+1
This commit changes the defaults to using Mozilla modern recommendations, and disables TLS1.2 support. This should be a noop for almost all uses, as any modern OS has had support for this cipher suite for a very long time. Mozilla intermediate is added still as a compile time fallback in case some clients are impacted, but expectation is that this is only a security increase for any client new enough to be worth caring about.[1] Tested: Ran testssl.sh, and verified that the appropriate cipher suites and TLS versions reported. [1] https://caniuse.com/tls1-3 Change-Id: I31e51fabaa08e01d095035896a59b375b2e336f0 Signed-off-by: Ed Tanous <etanous@nvidia.com>
2026-07-02Allow setting Mozilla modernEd Tanous1-0/+16
Mozilla publishes recommendations for TLS cipher suites to support. For many years bmcweb selected "intermediate" because of compatibility with clients that didn't yet support TLS1.3. This commit adds the ability to use the Mozilla modern recommendations, and disable TLS1.2 support through a new meson option, tls-profile. Tested: Loaded on qemu, and verified with testssl.sh[1] that parameters were applied. [1] https://github.com/testssl/testssl.sh Change-Id: I38e915b3943b5dbe5fb31e54eb3ebda9bbaeb811 Signed-off-by: Ed Tanous <etanous@nvidia.com>
2026-06-26meson: fix typo in comment (leiu -> lieu)Gunnar Mills1-1/+1
Change-Id: I29a0428bc86606350957072bcd02d587cea8d503 Signed-off-by: Gunnar Mills <gmills@us.ibm.com>
2026-06-26meson: fix extra period in descriptionGunnar Mills1-1/+1
Change-Id: I84134ec905d8b9386e89d27d07675b720e8f87f2 Signed-off-by: Gunnar Mills <gmills@us.ibm.com>
2026-06-17Bump expiry of experimental-multi-computer-systemOliver Brewka1-1/+1
Bump expiry to 1/1/2027 Change-Id: I193b9a69aba6134b6add0816bf67640f073bef82 Signed-off-by: Oliver Brewka <oliver.brewka@9elements.com>
2026-04-21HTTP/2: Reject over limit Content-LengthGunnar Mills1-1/+1
Reject requests whose Content-Length exceeds BMCWEB_HTTP_BODY_LIMIT before calling reserve(). BMCWEB_HTTP_BODY_LIMIT is defaulted to 30 Mebibyte (MiB). Make the unit clear in the meson.option too. Tested: See the trace. The reserve doesn't happen. Not sending a RST_STREAM / 413 based on how init() works today. WIP. Change-Id: Ie1e0ba19e2999c2f6c9e18f2b98e49c4bd100bcc Signed-off-by: Gunnar Mills <gmills@us.ibm.com>
2026-02-24Fix spelling mistakes using codespellGeorge Liu1-1/+1
Signed-off-by: George Liu <liuxiwei@ieisystem.com> Change-Id: If170e53077bc150d0062cd441394daea71f842b1
2026-02-05Sensors: Convert fan_tach sensors to PercentJanet Adkins1-0/+14
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>
2026-02-03Fabric: add support for PCIe Switch Port URIHarshit Aghera1-0/+12
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>
2026-01-23Bump date of redfish-use-hardcoded-system-location-indicatorJanet Adkins1-3/+2
The meson option redfish-use-hardcoded-system-location-indicator was added to retain the old behavior of using hard-coded D-Bus paths for getting and setting the LEDs for the Systems. [1] It was added with the default state of enabled with the documented plan to alter the default state in October 2025. The support in entity-manager for the LED associations needs to be added before a change to the default option can be made. The date is being bumped to provide time for the necessary entity-manager changes. Tested: - Compiled [1] https://github.com/openbmc/bmcweb/commit/eb261e1f5455575234246764e73ef07d4a50031b Change-Id: If9d0610b7fb2bdc61d02bc73c0d56eb719982692 Signed-off-by: Janet Adkins <janeta@us.ibm.com>
2025-11-25Add temp file and FD support to TemporaryFileHandlerajeeranjan1-0/+1
This commit adds file descriptor and temporary file management to DuplicatableFileHandle, removing the redundant test-only TemporaryFileHandle utility. Changes: - Add file descriptor constructor and setFd() method - Add temporary file constructor with string_view content - Add filePath member and automatic cleanup in destructor - Add configurable temp-dir meson option (default: /tmp/bmcweb) - Remove include/file_test_utilities.hpp - Update all tests to use DuplicatableFileHandle - Rename stringPath to filePath These features will be used by the multipart parser to stream large uploads to temporary files instead of keeping them in memory, and by the update service to pass file descriptors over D-Bus. Change-Id: I982f5928d453f9f0c13d91c3525006134ddc87b3 Signed-off-by: Rajeev Ranjan <ranjan.rajeev1609@gmail.com>
2025-11-21Add Journal EventLog to ManagerOliver Brewka1-0/+14
In order to get access to the EventLog on multi-host platforms, add Journal EventLog to Manager. This implementation is based on the discussion we had on patch 76319 [1]. TLDR: On multi-host, we technically would have to split the event log on a per host node basis, so that each host node has its own specific event log. However, this is currently not supported so we had to decide, whether we put it on a specific ComputerSystem, or refactor the current implementation of the EventLog, to allow for the EventLog LogService to be part of the Managers resource. We chose the latter one, because a), it is not clear on which ComputerSystem to put the EventLog, as long as we aren't splitting the event log per host node, and b), if that particular ComputerSystem is not existing at runtime, there would be no access to the EventLog at all. This feature can be enabled with the redfish-eventlog-location meson option. By default it is set to 'systems', which translates to the EventLog being under the Systems resource. To enable the EventLog under the Managers resource set ``` -Dredfish-eventlog-location=managers ``` This in turn, disables the EventLog under the ComputerSystem resource. Tested: Redfish validation succeeded for both ComputerSystem and Managers tree. ``` curl command: curl -w "@curl-format.txt" -c cjar -b cjar -k -X GET 'https://'"${BMC}"':4443/redfish/v1/'"$ROUTE"'' \ -H 'X-Auth-Token: '"$BMCWEB_SESSION_TOKEN"'' GET /redfish/v1/Managers/bmc/LogServices { "@odata.id": "/redfish/v1/Managers/bmc/LogServices", "@odata.type": "#LogServiceCollection.LogServiceCollection", "Description": "Collection of LogServices for this Manager", "Members": [ { "@odata.id": "/redfish/v1/Managers/bmc/LogServices/Journal" }, { "@odata.id": "/redfish/v1/Managers/bmc/LogServices/EventLog" } ], "Members@odata.count": 2, "Name": "Open BMC Log Services Collection" } GET /redfish/v1/Managers/bmc/LogServices/EventLog { "@odata.id": "/redfish/v1/Managers/bmc/LogServices/EventLog", "@odata.type": "#LogService.v1_2_0.LogService", "Actions": { "#LogService.ClearLog": { "target": "/redfish/v1/Managers/bmc/LogServices/EventLog/Actions/LogService.ClearLog" } }, "DateTime": "2025-09-24T15:22:36+00:00", "DateTimeLocalOffset": "+00:00", "Description": "Manager Event Log Service", "Entries": { "@odata.id": "/redfish/v1/Managers/bmc/LogServices/EventLog/Entries" }, "Id": "EventLog", "Name": "Event Log Service", "OverWritePolicy": "WrapsWhenFull" } GET /redfish/v1/Managers/bmc/LogServices/EventLog/Entries { "@odata.id": "/redfish/v1/Managers/bmc/LogServices/EventLog/Entries", "@odata.type": "#LogEntryCollection.LogEntryCollection", "Description": "Collection of Manager Event Log Entries", "Members": [ { "@odata.id": "/redfish/v1/Managers/bmc/LogServices/EventLog/Entries/1730009576", "@odata.type": "#LogEntry.v1_9_0.LogEntry", "Created": "2024-10-27T06:12:56+00:00", "EntryType": "Event", "Id": "1730009576", "Message": "Host system DC power is off", "MessageArgs": [], "MessageId": "OpenBMC.0.1.DCPowerOff", "Name": "Manager Event Log Entry", "Severity": "OK" }, ... ], "Members@odata.count": 2820, "Members@odata.nextLink": "/redfish/v1/Managers/bmc/LogServices/EventLog/Entries?$skip=1000", "Name": "Manager Event Log Entries" } GET /redfish/v1/Managers/bmc/LogServices/EventLog/Entries/1730009576 { "@odata.id": "/redfish/v1/Managers/bmc/LogServices/EventLog/Entries/1730009576", "@odata.type": "#LogEntry.v1_9_0.LogEntry", "Created": "2024-10-27T06:12:56+00:00", "EntryType": "Event", "Id": "1730009576", "Message": "Host system DC power is off", "MessageArgs": [], "MessageId": "OpenBMC.0.1.DCPowerOff", "Name": "Manager Event Log Entry", "Severity": "OK" } ``` ClearLog action: Log files are being successfully deleted from /var/log [1] https://gerrit.openbmc.org/c/openbmc/bmcweb/+/76319 Change-Id: If5b4fe10151b6bfd28a1b49c41f8cfcec1b9132c Signed-off-by: Oliver Brewka <oliver.brewka@9elements.com>
2025-11-19change default setting of the redfish-dump-log optionJae Hyun Yoo1-1/+1
Since the 'redfish-dump-log' option is widely used across almost all platforms, change its default setting to 'enabled'. Change-Id: Ifa3bf3bdf7efb88ff454120edb20ac4b8463a914 Signed-off-by: Jae Hyun Yoo <jae.yoo@oss.qualcomm.com>
2025-11-10Bump the removal date of event subscriptionGunnar Mills1-1/+1
[1] add the event subscription option with the original 2Q25 removal date, we are now 4Q25, bump it to give a realistic date of 2Q26. [1]: https://github.com/openbmc/bmcweb/commit/6c58a03e1f6818c3cd0a521466f69ef9e869bf25 Tested: Inspection only since just a 1 line change of a meson description. Change-Id: Ie3a841cb47ce67f9147d60e93a5012a4fdf44a65 Signed-off-by: Gunnar Mills <gmills@us.ibm.com>
2025-11-10Remove redfish-use-3-digit-messageidGunnar Mills1-11/+0
redfish-use-3-digit-messageid stated it would be removed in 2Q25, it is now 4Q25. Searching OpenBMC doesn't show any users of this option. This option was added in December 2014 and fixed a bug with us not following the Redfish Spec.[1] [1]: https://gerrit.openbmc.org/c/openbmc/bmcweb/+/76180 Tested: This is a pretty straightforward removal. Inspection and build only. Change-Id: I8a103d42184c21f75db19d44d8004f54d3fae01a Signed-off-by: Gunnar Mills <gmills@us.ibm.com>
2025-10-14Allow configuring userEd Tanous1-0/+11
Add a new option to allow configuring bmcweb to run as a 'bmcweb' user instead of root. This option is disabled by default, and the behavior is very broken at this point, but should serve as a starting point for getting the issues resolved. Tested: Enabled option. Observed with ps, that bmcweb launched correctly, and was running as the bmcweb user. With authentication disabled, passes redfish service validator. Booted without option enabled, and saw bmcweb boot and function. Change-Id: Iac0335697020308bb632f5522b712f5eea0b2486 Signed-off-by: Ed Tanous <etanous@nvidia.com>
2025-09-18Systems: Restore old-style LocationIndicatorActiveJanet Adkins1-0/+13
The commit 2eaa927 [1] altered the D-Bus associations used for setting and getting the LED state for the Systems resource. Machines which use entity-manager do not have the new association yet. This commit is adding back the use of the old D-Bus method under a compile option. This will be enabled by default until October 15, 2025 and completely removed by June 2026. [1] https://gerrit.openbmc.org/c/openbmc/bmcweb/+/82078 Tested: - Built with option enabled and confirmed logging showed old method being used. - Built with option disabled and confirmed logging showed new method being used. Change-Id: I271fc464ef512b742a8c85419668aa09d38e525d Signed-off-by: Janet Adkins <janeta@us.ibm.com>
2025-08-26Disable redfish-allow-deprecated-power-thermalGunnar Mills1-4/+5
Disabled redfish-allow-deprecated-power-thermal by default and set a June 2026 date for its removal. Setting a date 10 months out, allows plenty of time to move away. It has been 5 years since Redfish put out the PowerSubsystem and ThermalSubsystem. We have had redfish-new-powersubsystem-thermalsubsystem enabled for a year and half[1]. [1]: https://github.com/openbmc/bmcweb/commit/8615915cc51a468c1c0b6eabb684616d0f2abe0f Tested: Inspection only. Change-Id: I86502539830ee41380230accec812916fde12bd5 Signed-off-by: Gunnar Mills <gmills@us.ibm.com>
2025-08-21IndicatorLED: Add compile option for deprecated propertyJanet Adkins1-0/+10
The IndicatorLED property has been deprecated by Redfish since September 2020. The Redfish Service Validator reports a WARNING for this property: ``` WARNING - IndicatorLED: The given property is deprecated: This property has been deprecated in favor of the `LocationIndicatorActive` property. ``` The LocationIndicatorActive property is now implemented in bmcweb in all places where IndicatorLED was implemented. So a new meson option (redfish-allow-deprecated-indicatorled) is being added to control whether this property is part of get or patch requests. The option is disabled by default with plans to remove the option by March 2026. Tested: - Built with option enabled and confirmed IndicatorLED still part of Redfish responses and can be patched. - Built with option disabled and confirmed Redfish Service Validator no longer reports the warning. - Built with option disabled and confirmed IndicatorLED no longer part of Redfish responses and patch fails appropriately. ``` curl -k -H "X-Auth-Token: $token" -H "Content-Type: application/json" -X PATCH -d '{"IndicatorLED":"Blinking"}' https://${bmc}/redfish/v1/Systems/system { "error": { "@Message.ExtendedInfo": [ { "@odata.type": "#Message.v1_1_1.Message", "Message": "The property IndicatorLED is not in the list of valid properties for the resource.", "MessageArgs": [ "IndicatorLED" ], "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 IndicatorLED is not in the list of valid properties for the resource." } } curl -k -H "X-Auth-Token: $token" -H "Content-Type: application/json" -X PATCH -d '{"IndicatorLED":"Off"}' https://${bmc}/redfish/v1/Chassis/chassis { "error": { "@Message.ExtendedInfo": [ { "@odata.type": "#Message.v1_1_1.Message", "Message": "The property IndicatorLED is not in the list of valid properties for the resource.", "MessageArgs": [ "IndicatorLED" ], "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 IndicatorLED is not in the list of valid properties for the resource." } } ``` Change-Id: I2c0d415a7a54aa3122b18d2a1aa69bd9259d567e Signed-off-by: Janet Adkins <janeta@us.ibm.com>
2025-07-14Implement zstd decompressionEd Tanous1-0/+8
Given the size of Redfish schemas these days, it would be nice to be able to store them on disk in a zstd format. Unfortunately, not all clients support zstd at this time. This commit implements reading of zstd files from disk, as well as decompressing zstd in the case where the client does not support zstd as a return type. Tested: Implanted an artificial zstd file into the system, and observed correct decompression both with an allow-encoding header of empty string and zstd. Change-Id: I8b631bb943de99002fdd6745340aec010ee591ff Signed-off-by: Ed Tanous <etanous@nvidia.com>
2025-07-13Extend expiry date of experimental multi-host flagOliver Brewka1-1/+1
As the 'experimental-redfish-multi-computer-system' flag is actively used for development the expiry has been extended. Tested: Inspection only Change-Id: I1bbf635a04b87ec59ec2eaabb01173258187092e Signed-off-by: Oliver Brewka <oliver.brewka@9elements.com>
2025-07-09Move http2 out of experimentalEd Tanous1-6/+4
Http2 support in bmcweb has been relatively stable for a while. The http2 implementation passes all known Redfish tests (some of which require ported to httpx to support http2), the UI loads, and so far as the project is concerned, is a complete improvement over the existing http1 stack. This commit removes the experimental classification from http2, and declares it ready for production use, while enabling it by default. note, that enabling this by default only makes the server advertise that http2 is available. Http2 must still be supported by the client to enable ALPN negotiation, so existing http1 clients that only support http1 will continue to function as they did before. Tested: Enabled http option and saw http2 advertised, http2 now takes effect. Change-Id: I92843a3afc532f0b2a64904bb872e5d84a1a54fe Signed-off-by: Ed Tanous <etanous@nvidia.com>
2025-07-01fix description for redfish-updateservice-use-dbusJagpal Singh Gill1-4/+0
Update description for redfish-updateservice-use-dbus meson option. As this feature is enabled, drop the temporary and timeline related statements. Change-Id: Ie81faeed53f1db7bbd001d9b489d9ea1cb43810f Signed-off-by: Jagpal Singh Gill <paligill@gmail.com>
2025-06-04remove meta-tls-common-name-parsing flagMalik Akbar Hashemi Rafsanjani1-10/+0
as we remove all `meta-tls-common-name-parsing` usages from all references in openbmc and bmcweb repos, we can safely remove `meta-tls-common-name-parsing` flag. This flag was intended to be a flag to enable meta/facebook specific auth parse mode. As meta/facebook have migrated our implementation into using UPN field, we can safely remove all codes related to meta/facebook specific auth parse mode, including this flag Tested - build bmcweb binary - deploy to a device that already use UPN parse mode - check if it works fine by sending curl, eg: to /AccountService Change-Id: Iabffcee177b3c48da90eba97e2a84a8d5a9f57d2 Signed-off-by: Malik Akbar Hashemi Rafsanjani <malikrafsan@meta.com>
2025-06-04remove meta mtls parse modeMalik Akbar Hashemi Rafsanjani1-5/+3
as we have successfully merged patches that enable UserPrincipalName parse mode, we can start removing Meta only parse mode. This commit is intended to remove MTLSCommonNameParseMode::Meta from the upstream code Tested: - build bmcweb - deploy to a device that already use UPN - check if it works fine by sending curl request /AccountService Change-Id: Idcf4340a2a9940f035aea41cd30ef4df7bd95530 Signed-off-by: Malik Akbar Hashemi Rafsanjani <malikrafsan@meta.com>
2025-03-17Add support for systemd service watchdogrohitpai1-0/+11
Systemd has support for enabling service level watchdog. The MR enables this support for bmcweb daemon. Request for watchdog monitor from systemd is added in bmcweb.service.in. From the event loop a timer is registered to kick the watchdog periodically The default watchdog timeout is set at 120 seconds and the timer is set to kick it at a quarter of the interval (every 30 seconds). This timeout is set somewhat arbitrarily based on the longest blocking call that could occur and still give a valid HTTP response. Suspect lower values could work equally as well. Benefits of Service Watchdog - Bmcweb route handlers should not make any blocking IO calls which block the event loop for considerable amount of time and slowdown the response of other URI requests in the queue. Watchdog can help to detect such issues. - Watchdog can help restart the service if any route handler code has uncaught bugs resulting from system API errors (this is in theory, currently we don't have any use case). Tested 1. UT is passing 2. Service validator is passing 3. Fw upgrade POST requests are working Change-Id: If62397d8836c942fdcbc0618810fe82a8b248df8 Signed-off-by: rohitpai <ropai@nvidia.com> Signed-off-by: Ed Tanous <etanous@nvidia.com>
2025-03-10Extend expiry date of experimental multi-host flagmox6691-1/+1
As 'experimental-redfish-multi-computer-system' flag is actively used for development the expiry has been extended. Tested: Inspection only Change-Id: I80289288b27895ea67b6084c774f88e6504ba38a Signed-off-by: Oliver Brewka <mox669.dev@gmail.com>
2025-02-10Enable HTTP additional socketsEd Tanous1-3/+52
This commit attempts to add the concept of an SSL detector from beast, and add the capability into bmcweb. This allows directing multiple socket files to the bmcweb instance, and bmcweb will automatically sort out whether or not they're SSL, and give the correct response. This allows users to plug in erroneous urls like "https://mybmc:80" and they will forward and work correctly. Some key design points: The HTTP side of bmcweb implements the exact same http headers as the HTTPS side, with the exception of HSTS, which is explicitly disallowed. This is for consistency and security. The above allows bmcweb builds to "select" the appropriate security posture (http, https, or both) for a given channel using the FileDescriptorName field within a socket file. Items ending in: both: Will support both HTTPS and HTTP redirect to HTTPS https: Will support HTTPS only http: will support HTTP only Given the flexibility in bind statements, this allows administrators to support essentially any security posture they like. The openbmc defaults are: HTTPS + Redirect on both ports 443 and port 80 if http-redirect is enabled And HTTPS only if http-redirect is disabled. This commit adds the following meson options that each take an array of strings, indexex on the port. additional-ports Adds additional ports that bmcweb should listen to. This is always required when adding new ports. additional-protocol Specifies 'http', 'https', or 'both' for whether or not tls is enfoced on this socket. 'both' allows bmcweb to detect whether a user has specified tls or not on a given connection and give the correct response. additional-bind-to-device Accepts values that fill the SO_BINDTODEVICE flag in systemd/linux, and allows binding to a specific device additional-auth Accepts values of 'auth' or 'noauth' that determines whether this socket should apply the normal authentication routines, or treat the socket as unauthenticated. Tested: Previous commits ran the below tests. Ran the server with options enabled. Tried: ``` curl -vvvv --insecure --user root:0penBmc http://192.168.7.2/redfish/v1/Managers/bmc * Trying 192.168.7.2:80... * Connected to 192.168.7.2 (192.168.7.2) port 80 (#0) * Server auth using Basic with user 'root' > GET /redfish/v1/Managers/bmc HTTP/1.1 > Host: 192.168.7.2 > Authorization: Basic cm9vdDowcGVuQm1j > User-Agent: curl/7.72.0 > Accept: */* > * Mark bundle as not supporting multiuse < HTTP/1.1 301 Moved Permanently < Location: https://192.168.7.2 < X-Frame-Options: DENY < Pragma: no-cache < Cache-Control: no-Store,no-Cache < X-XSS-Protection: 1; mode=block < X-Content-Type-Options: nosniff < Content-Security-Policy: default-src 'none'; img-src 'self' data:; font-src 'self'; style-src 'self'; script-src 'self'; connect-src 'self' wss: < Date: Fri, 08 Jan 2021 01:43:49 GMT < Connection: close < Content-Length: 0 < * Closing connection 0 ``` Observe above: webserver returned 301 redirect. webserver returned the appropriate security headers webserver immediately closed the connection. The same test above over https:// returns the values as expected Loaded the webui to test static file hosting. Webui logs in and works as expected. Used the scripts/websocket_test.py to verify that websockets work. Sensors report as expected. Change-Id: Ib5733bbe5473fed6e0e27c56cdead0bffedf2993 Signed-off-by: Ed Tanous <ed@tanous.net>
2024-12-31Apply meson formatEd Tanous1-1/+1
Apply "meson format" using command to fix minor violations in alphabetical lists and comma locations that have snuck in. Tested: Code compiles. Change-Id: Ie44c95a10f99573c3732b24a71668ebd9561e9e6 Signed-off-by: Ed Tanous <etanous@nvidia.com>
2024-12-12change default to use fw Update D-Bus interfaceJagpal Singh Gill1-1/+1
Currently, the firmware update images are being downloaded onto /tmp/images directory which are watched by phosphor-bmc-code-mgmt to start an update. The current flow only supports single update at a time. More details on problem description and specific requirements have been captured in [1]. The intent of this change is to start the use of an Update D-Bus interface which has been implemented using redfish-updateservice-use-dbus feature flag. Through this change BMCWeb will download the image in memory and pass the image fd to the backend using D-Bus interface. Change redfish-updateservice-use-dbus default to enabled. [1]: https://github.com/openbmc/docs/blob/master/designs/code-update.md Related PRs: https://gerrit.openbmc.org/q/topic:EnableUpdateInterface Tested: ``` Metadata: Namespaces missing from $metadata: set() Elapsed time: 0:00:33 missingRedfishAlias: 1 pass: 4343 passAction: 16 passGet: 217 passRedfishUri: 208 skipNoSchema: 3 skipOptional: 4001 unvalidated: 1 unverifiedAdditional.complex: 1 warnDeprecated: 5 warningPresent: 6 warnings: 4 Validation has succeeded. > curl -k -H "X-Auth-Token: $token" -X GET https://${bmc}/redfish/v1/UpdateService/FirmwareInventory { "@odata.id": "/redfish/v1/UpdateService/FirmwareInventory", "@odata.type": "#SoftwareInventoryCollection.SoftwareInventoryCollection", "Members": [ { "@odata.id": "/redfish/v1/UpdateService/FirmwareInventory/a79d71e4" } ], "Members@odata.count": 1, "Name": "Software Inventory Collection" } > curl -k -H "X-Auth-Token: $token" -H "Content-Type:multipart/form-data" -X POST -F UpdateParameters="{\"Targets\":[\"/redfish/v1/UpdateService/FirmwareInventory/a79d71e4\"],\"@Redfish.OperationApplyTime\":\"OnReset\"};type=application/json" -F "UpdateFile=@obmc-phosphor-image-romulus-20241015174416.static.mtd.tar;type=application/octet-stream" https://${bmc}/redfish/v1/UpdateService/update { "@odata.id": "/redfish/v1/TaskService/Tasks/0", "@odata.type": "#Task.v1_4_3.Task", "Id": "0", "TaskState": "Running", "TaskStatus": "OK" } > curl -k -H "X-Auth-Token: $token" -X GET https://${bmc}/redfish/v1/TaskService/Tasks/0 { "@odata.id": "/redfish/v1/TaskService/Tasks/0", "@odata.type": "#Task.v1_4_3.Task", "EndTime": "2024-11-14T01:01:36+00:00", "HidePayload": false, "Id": "0", "Messages": [ { "@odata.type": "#Message.v1_1_1.Message", "Message": "The task with Id '0' has started.", "MessageArgs": [ "0" ], "MessageId": "TaskEvent.1.0.3.TaskStarted", "MessageSeverity": "OK", "Resolution": "None." }, { "@odata.type": "#Message.v1_1_1.Message", "Message": "The task with Id '0' has changed to progress 10 percent complete.", "MessageArgs": [ "0", "10" ], "MessageId": "TaskEvent.1.0.3.TaskProgressChanged", "MessageSeverity": "OK", "Resolution": "None." }, { "@odata.type": "#Message.v1_1_1.Message", "Message": "The task with Id '0' has changed to progress 100 percent complete.", "MessageArgs": [ "0", "100" ], "MessageId": "TaskEvent.1.0.3.TaskProgressChanged", "MessageSeverity": "OK", "Resolution": "None." }, { "@odata.type": "#Message.v1_1_1.Message", "Message": "The task with Id '0' has completed.", "MessageArgs": [ "0" ], "MessageId": "TaskEvent.1.0.3.TaskCompletedOK", "MessageSeverity": "OK", "Resolution": "None." } ], "Name": "Task 0", "Payload": { "HttpHeaders": [], "HttpOperation": "POST", "JsonBody": "null", "TargetUri": "/redfish/v1/UpdateService/update" }, "PercentComplete": 100, "StartTime": "2024-11-14T01:01:04+00:00", "TaskMonitor": "/redfish/v1/TaskService/TaskMonitors/0", "TaskState": "Completed", "TaskStatus": "OK" } ``` Change-Id: Ice710e9b44e60bc60b7c2d512ac6d98fa770dc56 Signed-off-by: Jagpal Singh Gill <paligill@gmail.com>
2024-12-11Put simple update behind an optionEd Tanous1-0/+11
4e338b2313f9f2a91aa1fb36693e36a328d58933 Removed tftp update support from the codebase, but left SimpleUpdate in a non functional state. Given that a number of forks have implemented the HTTPS/SCP versions of simple update, we don't want to fully delete the code at this time, so for the moment put it behind an option flag. Tested: WIP Change-Id: Ibab1e3a48ff640787eabf8ed5f7a5c08e3381307 Signed-off-by: Ed Tanous <etanous@nvidia.com>
2024-12-10Make message registries use 2 digit versionsEd Tanous1-0/+11
Redfish specification, section 9.5.11.2 says: The MessageId property value shall be in the format: <MessageRegistryPrefix>.<MajorVersion>.<MinorVersion>.<MessageKey> bmcweb in certain places has incorrectly used the 3 digit version instead of the 2 digit version. This commit fixes that by modifying the parse_registries script to generate 3 separate struct entries to represent the registry version, and parse them where appropriate. MessageRegistryFileCollection uses the 3 digit version. No behavior changes. Message/event log entries use the 2 digit version. This will cause a MessageId change from: Base.1.19.0.InternalError to Base.1.19.InternalError This is a breaking change, so a new option to allow the old behavior is provided. Tested: Redfish Service validator passes. Heartbeat events on EventService show 2 digit versions. Change-Id: I4165e994f73e200f13bed8ea76cb58bee2b69faa Signed-off-by: Ed Tanous <etanous@nvidia.com>
2024-11-27event service: dbus log: enable event subscriptionAlexander Hansen1-0/+15
enable the event subscriptions /redfish/v1/EventService/Subscriptions/ to work for the dbus event log. So if you are enabling redfish-dbus-log option, event subscriptions should work similar to when this option is disabled, with one difference: - 'MessageArgs' property is currently not implemented and cannot be found in the returned json. Tested: - Using Redfish Event Listener, test subscriptions and eventing. - Manual Test below with the Redfish Event Listener: 1. Created a maximal Event Log Subscription redfish { "@odata.id": "/redfish/v1/EventService/Subscriptions/2023893979", "@odata.type": "#EventDestination.v1_8_0.EventDestination", "Context": "EventLogSubscription", "DeliveryRetryPolicy": "TerminateAfterRetries", "Destination": "http://${ip}:5000/event-receiver", "EventFormatType": "Event", "HttpHeaders": [], "Id": "2023893979", "MessageIds": [], "MetricReportDefinitions": [], "Name": "Event Destination 2023893979", "Protocol": "Redfish", "RegistryPrefixes": [], "ResourceTypes": [], "SubscriptionType": "RedfishEvent", "VerifyCertificate": true } which matches on all registries and all message ids. 2. created a new phosphor-logging entry busctl call xyz.openbmc_project.Logging \ /xyz/openbmc_project/logging \ xyz.openbmc_project.Logging.Create \ Create 'ssa{ss}' \ OpenBMC.0.1.PowerButtonPressed \ xyz.openbmc_project.Logging.Entry.Level.Error 0 3. bmcweb picks up this new entry via the dbus match, this can be verified by putting bmcweb in debug logging mode. 4. the event log entry makes it through the filtering code 5. the POST request is sent to the subscribed server as expected, and contains the same properties as with the file-based backend. Change-Id: I122e1121389f72e67a998706aeadd052ae607d60 Signed-off-by: Alexander Hansen <alexander.hansen@9elements.com>
2024-10-04Extend multi system dateGunnar Mills1-1/+1
There was interest in discord on this. [1]. Extend the date until March 1st since we are already past Sept 1st by a month. Don't feel keeping this causes us much harm. [1]: https://discord.com/channels/775381525260664832/1291015132851212330/1291070549128253501 Tested: None. Inspection only. Change-Id: Ie318b57f60c68325a3be9707a5de869d73f69966 Signed-off-by: Gunnar Mills <gmills@us.ibm.com>
2024-10-02Add searchable macrosEd Tanous1-0/+43
Now that we consistently match our options to our macros, we can add some comments into the meson.options to make it so that when that macro is searched, it will pop up correctly. Tested: No functional change. Change-Id: I0cf26cac084b845229b9e39993fbc566a3bb6532 Signed-off-by: Ed Tanous <etanous@nvidia.com>
2024-09-10Fix Missed Renamed OpenBMCManager wordMyung Bae1-1/+1
The commit fc1cdd14 misses a word change from OemManager to OpenBMCManager in meson.options. Tested: Inspection only Change-Id: I9fd1da737656ffe5136bd9298f35a0dc527d4870 Signed-off-by: Myung Bae <myungbae@us.ibm.com>
2024-08-26Reformat meson files with meson formatEd Tanous1-1/+9
Meson recently got a new format command in 1.5.0 [1]. It makes slightly different formatting decisions compared to muon (what we used previously) but given it's the official tool, we should switch to it. There is one bug resolved recently that requires this format be done using the meson from master. Ideally this would be enforced by CI in the future, but that's WIP. Tested: Whitespace only, code compiles. [1] https://mesonbuild.com/Commands.html#format [2] https://github.com/mesonbuild/meson/commit/df706807239095ddbbfd2975b3fe067ad6b5d535 Change-Id: I91506efb659c431e913c717d8a26aa349fccbd75 Signed-off-by: Ed Tanous <etanous@nvidia.com>
2024-08-21Add a Hypervisor Computer System OptionGunnar Mills1-0/+9
Today to determine if the hypervisor computer system resource should be added to the System Collection a call to the Settings Manager is made. Based on discussion in https://gerrit.openbmc.org/c/openbmc/bmcweb/+/73203 and to help the multihost stuff move forward, lets move this hypervisor under a meson option which any company that needs can enable. I think IBM is the only one who uses this so the risk of breaking someone should be small. One day hope to converge at some point, this probably doesn't happen until after the multihost stuff goes in. This is also better for implementations that don't have this backend because now routes like /redfish/v1/Systems/hypervisor/EthernetInterfaces/ aren't put out. I.e. a call to /redfish/v1/Systems/hypervisor/EthernetInterfaces/ is now going to return 404 instead of 500 on systems without this backend support. Tested: Enabled this and see the hypervisor system. Without this enabled do not see the hypervisor system. No new validator errors either way. Change-Id: Ie05e6644dd6f640cf8225f96becb99b9c2d0de20 Signed-off-by: Gunnar Mills <gmills@us.ibm.com>
2024-08-09update service: remove tftp simple update flowJagpal Singh Gill1-8/+0
Remove the flow for tftp simple update as this is an insecure method and there is no active user for this. Redfish service validator passing: ``` Elapsed time: 0:04:33 metadataNamespaces: 3727 pass: 5184 passAction: 16 passGet: 213 passRedfishUri: 205 skipNoSchema: 3 skipOptional: 3535 unvalidated: 1 warnDeprecated: 5 warningPresent: 6 ``` Change-Id: I466dcb09be4ee806451abe91ab86d8b3b001a333 Signed-off-by: Jagpal Singh Gill <paligill@gmail.com>
2024-07-11Mutual TLS parsing change at runtimeEd Tanous1-8/+13
Redfish AccountService[1] defines methods for selecting how to map a certificate CommonName attribute to a user. These are intended to be a patch parameter. This commit implements the Redfish defined schemas; The parsing mode is stored in the bmcweb persistent configuration file as an integer enum, with Mapping to the Redfish schema. To handle OEM specific parsing modes, an enum value of 100+ is defined to allow the additional OEM parameters. Unfortunately, Redfish doesn't have a way to represent these today, so those modes are currently not selectable at runtime. Now that things are runtime selectable, this obsoletes the option mutual-tls-common-name-parsing, as it is not longer required at compile time. Tested: GET /redfish/v1/AccountService returns MultiFactorAuth/ClientCertificate/CertificateMappingAttribute PATCH /redfish/v1/AccountService ``` {"MultiFactorAuth": {"ClientCertificate": {"CertificateMappingAttribute":"CommonName"}}} ``` Returns 200 [1] https://github.com/DMTF/Redfish-Publications/blob/5b217908b5378b24e4f390c063427d7a707cd308/csdl/AccountService_v1.xml#L1631 Change-Id: I67db0dfa5245a9da973320aab666d12dbd9229e4 Signed-off-by: Ed Tanous <ed@tanous.net>
2024-06-28Remove yocto-deps optionEd Tanous1-7/+0
Since moving to meson, this option has never done anything, and isn't used in source code. In the cmake days, it was used to determine whether we should use hunter for dependency management, or allow yocto to provide dependencies. This is now automatic in meson. Tested: code compiles. Change-Id: Id7c0884753cd68f099a8dc3974e8943645edfb95 Signed-off-by: Ed Tanous <ed@tanous.net>
2024-06-28meson_options.txt -> meson.optionsEd Tanous1-0/+390
The new format for this file seems to be meson.options. Move to it. Update the minimum meson version to 1.3. 1.1 is the minimum required for meson.options, but we already have warnings about features in 1.3, so might as well go straight there. Tested: Code compiles Change-Id: Id42643d4aeb680032754158e061ddbf1c9658477 Signed-off-by: Ed Tanous <ed@tanous.net>