summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
24 hoursSystems: Restore old-style LocationIndicatorActiveHEADmasterJanet Adkins4-23/+142
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>
28 hoursmerge binaries bmcweb and bmcwebdAlexander Hansen6-39/+49
Solution to reduce compressed rofs size. Conclusion: The compiler is better at reducing binary size than the rofs compression is at deduplicating sections of already compiled binaries, in the case of bmcweb. What's been changed? `bmcweb` and `bmcwebd` have been merged into `bmcweb`. The webserver can be started with `bmcweb daemon`. Commands used to check size ``` wc -c build/s8030/tmp/work/*-openbmc-linux-gnueabi/obmc-phosphor-image/1.0/obmc-phosphor-image-1.0/static/image-rofs wc -c build/s8030/tmp/deploy/images/s8030/image-rofs xz -c build/s8030/tmp/work/*-openbmc-linux-gnueabi/obmc-phosphor-image/1.0/rootfs/bin/bmcweb | wc -c xz -c build/s8030/tmp/work/*-openbmc-linux-gnueabi/obmc-phosphor-image/1.0/rootfs/usr/libexec/bmcwebd | wc -c ``` Base commit used for testing: `2169e896448fac1b59c57516b381492e4b2161c7` Results: Before patch: ``` image-rofs compressed size: 25526272 build/s8030/tmp/work/s8030-openbmc-linux-gnueabi/obmc-phosphor-image/1.0/obmc-phosphor-image-1.0/static/image-rofs rootfs 25526272 build/s8030/tmp/deploy/images/s8030/image-rofs bmcweb cli 95424 bmcwebd 1016004 ``` After patch: ``` image-rofs compressed size: 25477120 build/s8030/tmp/work/s8030-openbmc-linux-gnueabi/obmc-phosphor-image/1.0/obmc-phosphor-image-1.0/static/image-rofs rootfs 25477120 build/s8030/tmp/deploy/images/s8030/image-rofs bmcweb cli 96 bmcwebd 1059556 ``` Calculating the difference in compressed rofs 25526272 - 25477120 = 49152 which is around 0.2% in terms of the total image but around 4.6% in terms of bmcwebd binary. Tested: on yosemite4 qemu `bmcweb` cli interactions work as before. ``` root@yosemite4:~# bmcweb --help BMCWeb CLI Usage: bmcweb [OPTIONS] SUBCOMMAND Options: -h,--help Print this help message and exit Subcommands: loglevel Set bmcweb log level daemon Run webserver root@yosemite4:~# bmcweb loglevel info <6>[webserver_cli.cpp:97] logging level changed to: INFO root@yosemite4:~# bmcweb loglevel level is required Run with --help for more information. root@yosemite4:~# bmcweb loglevel debug <6>[webserver_cli.cpp:97] logging level changed to: DEBUG ``` systemd service still working ``` root@yosemite4:~# systemctl status bmcweb ● bmcweb.service - Start bmcweb server Loaded: loaded (/usr/lib/systemd/system/bmcweb.service; enabled; preset: enabled) Active: active (running) since Thu 2025-04-03 13:35:45 PDT; 5 months 15 days ago ``` Change-Id: Ib5dde568ac1c12c5414294ed96404c6a69417424 Signed-off-by: Alexander Hansen <alexander.hansen@9elements.com>
3 daysRemove deprecated json decodesEd Tanous2-13/+8
These decodes haven't been standard practice for a while. While they will likely break some downstream builds, we need to clean things up. If you are seeing this commit message because your downstream build is broken, please migrate your code to using nlohmann::json::object_t instead of nlohmann::json when it does the unpack. Tested: Code compiles. Change-Id: Id892ee381b2d6b40a6366ee0622cde04d2cacd7b Signed-off-by: Ed Tanous <etanous@nvidia.com>
4 daysAdd check to omit `DateTime` from etag calculationCorey Ethington13-23/+186
Ignores any json property named `DateTime` when calculating the etag value of an HTTP response as per the updated Redfish Spec (section 6.5: ETags) Tested: - Redfish Service Validator passes - Tested on romulus: 1. GET resource with a "DateTime" field ``` curl -k -H "X-Auth-Token: $XAUTH_TOKEN" "https://$BMC/redfish/v1/TaskService" \ --etag-save ./etag.txt -v ... < etag: "6A4CE897" ... { "@odata.id": "/redfish/v1/TaskService", "@odata.type": "#TaskService.v1_1_4.TaskService", "CompletedTaskOverWritePolicy": "Oldest", "DateTime": "2025-07-23T17:08:20+00:00", "Id": "TaskService", "LifeCycleEventOnTaskStateChange": true, "Name": "Task Service", "ServiceEnabled": true, "Status": { "State": "Enabled" }, "Tasks": { "@odata.id": "/redfish/v1/TaskService/Tasks" } ``` 2. GET same resource again later, etag is same as before ``` curl -k -H "X-Auth-Token: $XAUTH_TOKEN" "https://$BMC/redfish/v1/TaskService" \ --etag-save ./etag.txt -v ... < etag: "6A4CE897" ... { "@odata.id": "/redfish/v1/TaskService", "@odata.type": "#TaskService.v1_1_4.TaskService", "CompletedTaskOverWritePolicy": "Oldest", "DateTime": "2025-07-23T17:10:48+00:00", "Id": "TaskService", "LifeCycleEventOnTaskStateChange": true, "Name": "Task Service", "ServiceEnabled": true, "Status": { "State": "Enabled" }, "Tasks": { "@odata.id": "/redfish/v1/TaskService/Tasks" } ``` "DateTime" is the only value to have changed, but since it is ignored the etag did not change 3. GET with if-none-match returns 304 ``` curl -k -H "X-Auth-Token: $XAUTH_TOKEN" "https://$BMC/redfish/v1/TaskService" \ --etag-save ./etag.txt --etag-compare ./etag.txt -v ... > if-none-match: "6A4CE897" ... < HTTP/2 304 < allow: GET < odata-version: 4.0 < strict-transport-security: max-age=31536000; includeSubdomains < pragma: no-cache < cache-control: no-store, max-age=0 < x-content-type-options: nosniff < etag: "6A4CE897" < date: Wed, 23 Jul 2025 17:14:39 GMT < content-length: 0 < ... ``` Change-Id: I51f7668e75719c69c55535e4a1e48c8bae7c9488 Signed-off-by: Corey Ethington <cethington@coreweave.com>
4 daysBreak out Journal EventLogOliver Brewka3-409/+458
As part of a EventLog refactor, break out all code used for Systems Journal EventLog, in order to make the code base more maintainable in the long run. Tested: Only code extraction. Code compiles. Change-Id: I855c8c680d3de68944b0ae03ff7f181e6790c456 Signed-off-by: Oliver Brewka <oliver.brewka@9elements.com>
7 daysImplement LocationIndicatorActive for Fabric PortMyung Bae2-0/+67
This implements `LocationIndicatorActive` property for Fabric port using the following methods. - `getLocationIndicatorActive()` - `setLocationIndicatorActive()` Tested: - Validator passes - Run GET/PATCH of LocationIndicatorActive ``` $ curl -k -H "X-Auth-Token: $token" -X GET \ https://${bmc}/redfish/v1/Systems/system/FabricAdapters/pcie_cable_card10/Ports/cxp_top { "@odata.id": "/redfish/v1/Systems/system/FabricAdapters/ \ pcie_cable_card10/Ports/cxp_top", "@odata.type": "#Port.v1_11_0.Port", "Id": "Port", "LocationIndicatorActive": true, "Name": "cxp_top" } $ curl -k -H "X-Auth-Token: $token" -X GET \ https://${bmc}/redfish/v1/Systems/system/FabricAdapters/pcie_cable_card10/Ports/cxp_bot { "@odata.id": "/redfish/v1/Systems/system/FabricAdapters/ \ pcie_cable_card10/Ports/cxp_bot", "@odata.type": "#Port.v1_11_0.Port", "Id": "Port", "LocationIndicatorActive": false, "Name": "cxp_bot" } ``` ``` $ curl -k -H "Content-Type: application/json" -X PATCH -d \ '{"LocationIndicatorActive":false}' \ https://${bmc}/redfish/v1/Systems/system/FabricAdapters/pcie_cable_card10/Ports/cxp_top $ curl -k -H "X-Auth-Token: $token" -X GET \ https://${bmc}/redfish/v1/Systems/system/FabricAdapters/pcie_cable_card10/Ports/cxp_top { "@odata.id": "/redfish/v1/Systems/system/FabricAdapters/ \ pcie_cable_card10/Ports/cxp_top", "@odata.type": "#Port.v1_11_0.Port", "Id": "Port", "LocationIndicatorActive": false, "Name": "cxp_top" } ``` Change-Id: I2cfe8a807cd6dc3bf3d6e50658b0d27a1253b887 Signed-off-by: Myung Bae <myungbae@us.ibm.com>
7 daysAdd Port Status information for Fabric PortMyung Bae2-0/+68
This commit is to add status and health information to Fabric Port like other Redfish resources which implement State/Health and map them to Present/Functional respectfully. State / Health of the Port is useful information for inventory on a GUI/Debug/etc If the `xyz.openbmc_project.Inventory.Item` interface does not exist, the state status property is set to default "Enabled". If the `xyz.openbmc_project.State.Decorator.OperationalStatus` interface does not exist, the health status property is set to default "OK". Tested: - Redfish Validator passed - Check status from GET Port output ``` % curl -k -X GET https://${bmc}:18080/redfish/v1/Systems/system/FabricAdapters/disk_backplane0/Ports/dp0_connector4 { "@odata.id": "/redfish/v1/Systems/system/FabricAdapters/disk_backplane0/Ports/dp0_connector4", "@odata.type": "#Port.v1_7_0.Port", "Id": "dp0_connector4", "Location": { "PartLocation": { "ServiceLabel": "U78DA.ND0.WZS003T-P1-T4" } }, "Name": "dp0_connector4", "Status": { "Health": "OK", "State": "Enabled" } } ``` Change-Id: Ibb625f2ef1378f77c9520426d2687e305b4f8be5 Signed-off-by: Myung Bae <myungbae@us.ibm.com>
7 daysAdd Location information for Fabric PortMyung Bae2-8/+43
This commit is to add location information to Port of FabricAdapter. If Port LocationCode property is not found, it will not be shown. Tested: - Redfish Validator passed - Check Location from GET Port output ``` % curl -k -X GET https://${bmc}:18080/redfish/v1/Systems/system/FabricAdapters/disk_backplane0/Ports/dp0_connector4 { "@odata.id": "/redfish/v1/Systems/system/FabricAdapters/disk_backplane0/Ports/dp0_connector4", "@odata.type": "#Port.v1_7_0.Port", "Id": "dp0_connector4", "Location": { "PartLocation": { "ServiceLabel": "U78DA.ND0.WZS003T-P1-T4" } }, "Name": "dp0_connector4" } ``` Change-Id: Ie015b19612c03a9c656ad14a3f607da04cb4f901 Signed-off-by: Myung Bae <myungbae@us.ibm.com>
8 daysImplement Fabric PortCollection and Port schemasGeorge Liu4-0/+370
This implements 2 schemas for FabricAdapters [1][2]. The implementation uses `GetAssociatedSubTreePathsById` & `GetAssociatedSubTreeById`. - https://gerrit.openbmc.org/c/openbmc/phosphor-dbus-interfaces/+/69999 The association is defined via - https://gerrit.openbmc.org/c/openbmc/phosphor-dbus-interfaces/+/62881. The backend port examples are also committed via - https://gerrit.openbmc.org/c/openbmc/openpower-vpd-parser/+/66540 - https://gerrit.openbmc.org/c/openbmc/openpower-vpd-parser/+/70888 - https://gerrit.openbmc.org/c/openbmc/openbmc/+/66541 The current submission only implements the basic properties of Port (e.g. Id, Name etc) as a foundation of the future additional properties. - Location - LocationIndicatorActive - Status One example of Ports is this cable card for the i/o expansion drawers and modeling the 2 ports on the cable card [3]. These ports have an identify led, a location code, and a status. Tested: - Redfish Validator passes - perform GET methods like these: ``` curl -k -X GET https://${bmc}/redfish/v1/Systems/system/FabricAdapters/disk_backplane0 { "@odata.id": "/redfish/v1/Systems/system/FabricAdapters/disk_backplane0", "@odata.type": "#FabricAdapter.v1_4_0.FabricAdapter", "Id": "disk_backplane0", ... "Ports": { "@odata.id": "/redfish/v1/Systems/system/FabricAdapters/disk_backplane0/Ports" }, ... } ``` ``` curl -k -X GET https://${bmc}/redfish/v1/Systems/system/FabricAdapters/disk_backplane0/Ports { "@odata.id": "/redfish/v1/Systems/system/FabricAdapters/disk_backplane0/Ports", "@odata.type": "#PortCollection.PortCollection", "Members": [ { "@odata.id": "/redfish/v1/Systems/system/FabricAdapters/disk_backplane0/Ports/dp0_connector4" }, { "@odata.id": "/redfish/v1/Systems/system/FabricAdapters/disk_backplane0/Ports/dp0_connector5" } ], "Members@odata.count": 2, "Name": "Port Collection" } ``` ``` curl -k -X GET https://${bmc}:18080/redfish/v1/Systems/system/FabricAdapters/disk_backplane0/Ports/dp0_connector4 { "@odata.id": "/redfish/v1/Systems/system/FabricAdapters/disk_backplane0/Ports/dp0_connector4", "@odata.type": "#Port.v1_7_0.Port", "Id": "dp0_connector4", "Name": "dp0_connector4" }% ``` Also try the invalid port like ``` curl -k -X GET https://${bmc}:18080/redfish/v1/Systems/system/FabricAdapters/io_module1/Ports/INVALID { "error": { "@Message.ExtendedInfo": [ { "@odata.type": "#Message.v1_1_1.Message", "Message": "The requested resource of type Port named 'INVALID' was not found.", "MessageArgs": [ "Port", "INVALID" ], "MessageId": "Base.1.16.0.ResourceNotFound", "MessageSeverity": "Critical", "Resolution": "Provide a valid resource identifier and resubmit the request." } ], "code": "Base.1.16.0.ResourceNotFound", "message": "The requested resource of type Port named 'INVALID' was not found." } }% ``` [1] https://redfish.dmtf.org/schemas/v1/PortCollection_v1.xml [2] https://redfish.dmtf.org/schemas/v1/Port_v1.xml [3] https://www.ibm.com/docs/en/power10?topic=details-pcie4-cable-adapter-fc-ej24-ccin-6b92 Signed-off-by: George Liu <liuxiwei@inspur.com> Change-Id: I8c64c16764e85c0716e264263708b18f897a2c0c Signed-off-by: Myung Bae <myungbae@us.ibm.com>
8 daysExtract downloadEntryCallback functionOliver Brewka2-91/+134
As part of a EventLog refactor, extract this function into a log_services utility. Tested: Only code extraction. Code compiles. Change-Id: Iaa7aa583a38587c338280af2a9fff65d3732f301 Signed-off-by: Oliver Brewka <oliver.brewka@9elements.com>
10 daysupdate service: extract addRelatedItemAlexander Hansen1-14/+17
Deduplicate the logic to add a related item to a fw inventory item. Tested: next patch in chain Change-Id: I94455e165900011955de9196db49c7c89807ea3d Signed-off-by: Alexander Hansen <alexander.hansen@9elements.com>
11 daysRevert "Refactor Managers with getValidManagerPath"Gunnar Mills2-147/+157
This reverts commit 0775449c62385f163a207d0f0c8e1f6338de1062. CI bumps are failing. Romulus is failing [1]. (UTC) 2025/09/07 07:28:06.903907 - 0.212714 - Executing: get('/redfish/v1/Managers/bmc') [1]: https://discord.com/channels/775381525260664832/855566794994221117/1414329724477636649 Change-Id: I0ff80780cf1eb2f14484fdd0a521f90cc15e914b Signed-off-by: Gunnar Mills <gmills@us.ibm.com>
2025-09-05Refactor Managers with getValidManagerPathMyung Bae2-157/+147
This adds getValidManagerPath() to find the valid manager dbus path and its service name. This can be used for manager GET and PATCH operations. Tested: - GET /redfish/v1/Managers/bmc - PATCH /redfish/v1/Managers/ LocationIndicatorActive - Redfish Service Validator passes Change-Id: Id46dd12be3050a2097364696a471b188b8167016 Signed-off-by: Myung Bae <myungbae@us.ibm.com>
2025-09-05PasswordChangeRequired: Fix error messageJoey Berkovitz1-4/+4
The PasswordChangeRequired error was incorrectly formatted. Per the spec, it should be an error response and 403 on all requests except for session creation, which is just a `@Message.ExtendedInfo` annotation. See [1]. Tested: - Built a romulus image - Ran `passwd --expire root` - curl to Managers and session creation ``` ╰─○ curl -kv --user "$BMC_USER:$BMC_PASS" https: //localhost:2443/redfish/v1/Managers < HTTP/2 403 { "error": { "@Message.ExtendedInfo": [ { "@odata.type": "#Message.v1_1_1.Message", "Message": "The password provided for this account must be changed before access is granted. PATCH the Password property for this account located at the target URI '/redfish/v1/AccountService/Accounts/root' to complete this process.", "MessageArgs": [ "/redfish/v1/AccountService/Accounts/root" ], "MessageId": "Base.1.19.PasswordChangeRequired", "MessageSeverity": "Critical", "Resolution": "Change the password for this account using a PATCH to the Password property at the URI provided." } ], "code": "Base.1.19.PasswordChangeRequired", "message": "The password provided for this account must be changed before access is granted. PATCH the Password property for this account located at the target URI '/redfish/v1/AccountService/Accounts/root' to complete this process." } } ╰─○ curl -kv -X POST -H 'Content-Type: application/json' -d '{"UserName": "root", "Password": "..."}' https://localhost:2443/redfish/v1/SessionService/Sessions < HTTP/2 201 { "@Message.ExtendedInfo": [ { "@odata.type": "#Message.v1_1_1.Message", "Message": "The password provided for this account must be changed before access is granted. PATCH the Password property for this account located at the target URI '/redfish/v1/AccountService/Accounts/root' to complete this process.", "MessageArgs": [ "/redfish/v1/AccountService/Accounts/root" ], "MessageId": "Base.1.19.PasswordChangeRequired", "MessageSeverity": "Critical", "Resolution": "Change the password for this account using a PATCH to the Password property at the URI provided." } ], "@odata.id": "/redfish/v1/SessionService/Sessions/klDQdHSMME", "@odata.type": "#Session.v1_7_0.Session", "ClientOriginIPAddress": "0.0.0.0", "Description": "Manager User Session", "Id": "klDQdHSMME", "Name": "User Session", "Roles": [ "Administrator" ], "UserName": "root" } ``` [1]: https://www.dmtf.org/sites/default/files/standards/documents/DSP0266_1.22.1.html#password-change-required-handling Change-Id: I959607d75b97133b950f43a7563e510ba885e032 Signed-off-by: Joey Berkovitz <joey@berkovitz.us>
2025-09-04Revert "ethernet: Fix premature gateway clearing on static IP validation fail"Chandra Harkude1-6/+6
This reverts commit 8d26c0d3a9bf14f5ad36b89db3fd3ce0d428655c. Reason for revert: This is causing the Gateway to clear while assigning the static IP Change-Id: Ie7878e3ed25c2907fdf6e7bcb7a2a26aea78a367 Signed-off-by: Chandramohan Harkude <chandramohan.harkude@gmail.com>
2025-09-04Enable satellite aggregation over POSTKamran Hasan2-15/+28
This patch enables Redfish satellite aggregation through REST API POST requests to /redfish/v1/AggregationService/AggregationSources. Tested successfully on ubuntu22 using multiple python redfish mockup servers as satellite bmcs. The previous urlHasPrefix function incorrectly assumed it would receive a full URL path, but it actually receives individual URL segments. Replaced with segmentHasPrefix that vastly simplifies prefix matching in the currentAggregationSources map. Also removed the correct duplicated route in redfish-core/lib/aggregation_service.hpp that was causing routing conflicts. The hardcoded 5B247A_ fallback remains temporarily and will be addressed in change 83181 which adds D-Bus satellite support. Change-Id: I41920ad270abe4b228b43280ea425b80d3f14b50 Signed-off-by: Kamran Hasan <khasan@nvidia.com>
2025-08-29Allow POST on aggregation sourcesEd Tanous3-13/+109
It would be useful for both testing and production if one could create aggregation sources dynamically, rather than using detected hardware. Redfish sources might exist outside of the physical chassis in a way that's detectable, so giving DC software a way to set up a non-trivial aggregation topology make this more extensible. Note, that as documented in AGGREGATION.md, only a single satellite is supported by this feature. This patch does not change that behavior, and implementing an entity-manager satellite will override a POST created AggregationSource. Tested: Example commands succeed, and return the expected results. ``` curl -vvvv -k --http1.1 --user "root:0penBmc" --request DELETE https://192.168.7.2/redfish/v1/AggregationService/AggregationSources/ curl -vvvv -k --http1.1 --user "root:0penBmc" https://192.168.7.2/redfish/v1/AggregationService/AggregationSources -H "Content-Type: application/json" --request POST --data '{"HostName":"https://localhost:8000"}' ``` Redfish service validator passes. Change-Id: I15711c3075645291b5f2555eefb80bb80418e7e5 Signed-off-by: Ed Tanous <ed@tanous.net>
2025-08-27Move common structuresEd Tanous6-48/+64
It's ideal if the various BMCWEB_ROUTE lib calls do not call from one another. This reduces the amount of code that's compiled each time separately. Tested: Code compiles. Change-Id: I4822ce66c122f261cc6aa34bbd99371b7eff48c8 Signed-off-by: Ed Tanous <etanous@nvidia.com>
2025-08-27AccountService: Restrict self-configure privilegeAbhilash Raju1-1/+2
Restrict the admin user's privileges to only self-configuration when the session state is in self-configure mode. Currently, the admin can modify other users' information even when the admin session is in isConfigureSelfOnly mode, which appears to be incorrect. Eg: 1) Expire the admin user password 2) Login bmc with admin credentials 3) Password change required error is generated for the user Expected after step 3 Admin should not be able to change any user information belonging to other users until they have changed their own password. Observed after step 3 Admin was able to change other user's information before changing own password Tested By: 1) Expire the admin password using passwd --expire 2) Change user name of other user as below ``` patch /redfish/v1/AccountService/Accounts/newuser1 -d '{"UserName": "newuser2"}' ``` 3) Observed response ``` { "error": { "@Message.ExtendedInfo": [ { "@odata.type": "#Message.v1_1_1.Message", "Message": "There are insufficient privileges for the account or credentials associated with the current session to perform the requested operation.", "MessageArgs": [], "MessageId": "Base.1.19.InsufficientPrivilege", "MessageSeverity": "Critical", "Resolution": "Either abandon the operation or change the associated access rights and resubmit the request if the operation failed." } ], "code": "Base.1.19.InsufficientPrivilege", "message": "There are insufficient privileges for the account or credentials associated with the current session to perform the requested operation." } } ``` 4) Change the admin password 5) Do the step 2 above 6) Operation Resonded with Ok Change-Id: I8d486e7b77d1ee072e1a49c5d9f8649e694d9d82 Signed-off-by: Abhilash Raju <abhilash.kollam@gmail.com>
2025-08-27Fix the buildEd Tanous1-16/+19
It's not clear why CI doesn't catch this, but these calls don't really seem to want to be done inline. Declare variables for them. Tested: Code compiles on older gcc Change-Id: Id6123b1d9f0f90a26ef2f19ed6c4deaf69c44588 Signed-off-by: Ed Tanous <etanous@nvidia.com>
2025-08-26Remove fix unused functionEd Tanous1-0/+6
This was added in 8b2521a5a3be479814beb316975bf3de0b4e378f but never used. Change-Id: I9ee4116ffd7021820da72c5a28a33bb171ca00db Signed-off-by: Ed Tanous <etanous@nvidia.com>
2025-08-26Fix runtime error when add `additional-ports` configurationThu Nguyen1-2/+2
The bmcweb has runtime errors when adding `additional-ports` configuration. ```text Dec 19 21:25:54 board systemd[1]: sockets.target: Wants dependency dropin /etc/systemd/system/sockets.target.wants/bmcweb_440 is not a valid unit name, ignoring. ``` and ```text Dec 19 21:25:54 board systemd[1]: bmcweb_440.socket: Unit has no Listen setting (ListenStream=, ListenDatagram=, ListenFIFO=, ...). Refusing. Dec 19 21:25:54 board systemd[1]: bmcweb_440.socket: Cannot add dependency job, ignoring: Unit bmcweb_440.socket has a bad unit file setting. ``` Update the code to fix that. Change-Id: I792b9fdf29df40137fdbc7418b140e8445080961 Signed-off-by: Thu Nguyen <thu@os.amperecomputing.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-26Fix includesEd Tanous24-27/+6
Our includes haven't been enforced by tidy in a while. Run the script, check in the result, minus the false positives. Change-Id: I6a6da26f5ba5082d9b4aa17cdc9f55ebd8cd41a6 Signed-off-by: Ed Tanous <etanous@nvidia.com>
2025-08-26ethernet: Fix premature gateway clearing on static IP validation failChandramohan Harkude1-6/+6
When a PATCH request contains invalid IPv4 static addresses, the gateway was being incorrectly cleared even though the static IP configuration failed validation. This occurred because HandleDHCPPatch function would clear the gateway based on the current DHCP state without validating the static addresses first. ``` Problem: - handleDHCPPatch() runs before handleIPv4StaticPatch() - If DHCP was currently active, gateway got cleared immediately - When static IP validation later failed, gateway remained cleared - This caused working DHCP configurations to lose their gateway Example scenario: 1. System has working DHCP: IP=10.0.2.15, Gateway=10.0.2.2 2. User sends PATCH with invalid static IP: Gateway="10.3.36" 3. handleDHCPPatch() clears gateway because DHCP is currently active 4. handleIPv4StaticPatch() fails validation and returns early 5. Result: Gateway lost (shows as 0.0.0.0), network potentially broken "IPv4Addresses": [ { "Address": "10.0.2.15", "AddressOrigin": "DHCP", "Gateway": "0.0.0.0", "SubnetMask": "255.255.255.0" } ] Solution: - Add pre-validation of IPv4 static addresses before handleDHCPPatch() - Only clear gateway when DHCP is currently active AND IPv4 static addresses are valid - This handles the implicit DHCP→Static transition correctly - Preserve existing gateway when static IP validation fails - Ensure failed requests don't have side effects on working config Logic: - If system uses DHCP AND user provides valid static addresses: Clear DHCP gateway to prepare for clean transition to static - If static addresses are invalid: Preserve existing DHCP gateway - If system already uses static config: No gateway clearing needed Changes: - Modified handleDHCPPatch() to accept hasValidIPv4StaticAddresses parameter - Added pre-validation step in main PATCH handler using parseAddresses() - Changed gateway clearing condition from dhcpBeingEnabled to ipv4Active - Added safety check to prevent clearing gateway on validation failures Testing: - PATCH with invalid static IPs no longer affects working DHCP gateway - PATCH with valid static IPs on DHCP system properly clears gateway for clean transition - Mixed requests handle validation failures gracefully - Static-to-static updates work without unnecessary gateway clearing ~$ curl -k -N -X GET https://root:0penBmc@127.0.0.1:2443/redfish/v1/Managers/bmc/EthernetInterfaces/eth0 { "@odata.id": "/redfish/v1/Managers/bmc/EthernetInterfaces/eth0", "@odata.type": "#EthernetInterface.v1_9_0.EthernetInterface", "DHCPv4": { "DHCPEnabled": true, "UseDNSServers": true, "UseDomainName": true, "UseNTPServers": true }, "DHCPv6": { "OperatingMode": "Enabled", "UseDNSServers": true, "UseDomainName": true, "UseNTPServers": true }, "Description": "Management Network Interface", "EthernetInterfaceType": "Physical", "FQDN": "gb200nvl-bmc", "HostName": "gb200nvl-bmc", "IPv4Addresses": [ { "Address": "10.0.2.15", "AddressOrigin": "DHCP", "Gateway": "10.0.2.2", "SubnetMask": "255.255.255.0" } ], "IPv4StaticAddresses": [], "IPv6AddressPolicyTable": [], "IPv6Addresses": [ { "Address": "fe80::86:6cff:feb4:1b3b", "AddressOrigin": "LinkLocal", "PrefixLength": 64 }, { "Address": "fec0::86:6cff:feb4:1b3b", "AddressOrigin": "DHCPv6", "PrefixLength": 64 } ], "IPv6DefaultGateway": "fe80::2", "IPv6StaticAddresses": [], "IPv6StaticDefaultGateways": [], "Id": "eth0", "InterfaceEnabled": true, "LinkStatus": "LinkUp", "MACAddress": "02:86:6c:b4:1b:3b", "MTUSize": 1500, "Name": "Manager Ethernet Interface", "NameServers": [ "10.0.2.3" ], "SpeedMbps": 100, "StatelessAddressAutoConfig": { "IPv6AutoConfigEnabled": true }, "StaticNameServers": [], "Status": { "Health": "OK", "State": "Enabled" } } ~$ curl -k -N -X PATCH https://root:0penBmc@127.0.0.1:2443/redfish/v1/Managers/bmc/EthernetInterfaces/eth0 -H "Content-Type: application/json" -d '{"IPv4StaticAddresses": [{"Address": "10.7.7.7", "SubnetMask": "255.255.0.0", "Gateway": "10.3.36"}]}' -v < HTTP/1.1 400 Bad Request < Allow: DELETE, GET, PATCH < OData-Version: 4.0 < Strict-Transport-Security: max-age=31536000; includeSubdomains < Pragma: no-cache < Cache-Control: no-store, max-age=0 < X-Content-Type-Options: nosniff < Content-Type: application/json < Date: Wed, 06 Aug 2025 17:50:08 GMT < Content-Length: 1138 < { "IPv4StaticAddresses/0/Address@Message.ExtendedInfo": [ { "@odata.type": "#Message.v1_1_1.Message", "Message": "The value '\"\"' for the property IPv4StaticAddresses/0/Address is not a format that the property can accept.", "MessageArgs": [ "\"\"", "IPv4StaticAddresses/0/Address" ], "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." } ], "IPv4StaticAddresses/0/Gateway@Message.ExtendedInfo": [ { "@odata.type": "#Message.v1_1_1.Message", "Message": "The value '\"10.3.36\"' for the property IPv4StaticAddresses/0/Gateway is not a format that the property can accept.", "MessageArgs": [ "\"10.3.36\"", "IPv4StaticAddresses/0/Gateway" ], "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." } ] } $ curl -k -N -X GET https://root:0penBmc@127.0.0.1:2443/redfish/v1/Managers/bmc/EthernetInterfaces/eth0 { "@odata.id": "/redfish/v1/Managers/bmc/EthernetInterfaces/eth0", "@odata.type": "#EthernetInterface.v1_9_0.EthernetInterface", "DHCPv4": { "DHCPEnabled": true, "UseDNSServers": true, "UseDomainName": true, "UseNTPServers": true }, "DHCPv6": { "OperatingMode": "Enabled", "UseDNSServers": true, "UseDomainName": true, "UseNTPServers": true }, "Description": "Management Network Interface", "EthernetInterfaceType": "Physical", "FQDN": "gb200nvl-bmc", "HostName": "gb200nvl-bmc", "IPv4Addresses": [ { "Address": "10.0.2.15", "AddressOrigin": "DHCP", "Gateway": "10.0.2.2", "SubnetMask": "255.255.255.0" } ], "IPv4StaticAddresses": [], "IPv6AddressPolicyTable": [], "IPv6Addresses": [ { "Address": "fe80::86:6cff:feb4:1b3b", "AddressOrigin": "LinkLocal", "PrefixLength": 64 }, { "Address": "fec0::86:6cff:feb4:1b3b", "AddressOrigin": "DHCPv6", "PrefixLength": 64 } ], "IPv6DefaultGateway": "fe80::2", "IPv6StaticAddresses": [], "IPv6StaticDefaultGateways": [], "Id": "eth0", "InterfaceEnabled": true, "LinkStatus": "LinkUp", "MACAddress": "02:86:6c:b4:1b:3b", "MTUSize": 1500, "Name": "Manager Ethernet Interface", "NameServers": [ "10.0.2.3" ], "SpeedMbps": 100, "StatelessAddressAutoConfig": { "IPv6AutoConfigEnabled": true }, "StaticNameServers": [], "Status": { "Health": "OK", "State": "Enabled" } } ``` Change-Id: Ic841344051681896bb6a0d3f8552ea9dfd92de9f Signed-off-by: Chandramohan Harkude <chandramohan.harkude@gmail.com>
2025-08-26Reformat optionEd Tanous1-4/+3
This option in meson 1.9 gets reformatted. Admittedly, it could be made a little simpler with some variables, so do that instead. Change-Id: I68a0bfdae27767b6dc5585d01596ddea598675fe Signed-off-by: Ed Tanous <etanous@nvidia.com>
2025-08-26Remove namespace in http layerEd Tanous11-46/+45
Within this namespace, we don't need to call crow, we are already in the crow namespace. Tested: Code compiles. Change-Id: Ida57624ef1157f98f2719b5c3af536aebaca601e Signed-off-by: Ed Tanous <etanous@nvidia.com>
2025-08-26Remove unused methodsEd Tanous5-123/+0
Converting hpp -> cpp determined that these functions were unused. Fix them. Tested: Code compiles. Change-Id: Ifb712cb12085c187847666194b59caa959f37f83 Signed-off-by: Ed Tanous <etanous@nvidia.com>
2025-08-26Multi-host support for POST routes in systems.hppOliver Brewka1-42/+60
Add support for multi-host POST request-handling under the /redfish/v1/Systems/{computerSystemId}/ redfish resource. All multi-host supported redfish URIs can be found in this listing [1]. Multi-host meson options needed: -Dexperimental-redfish-multi-computer-system=enabled Tested: POST route has been manually tested in web-ui on single-host hardware. All possible power controls worked as expected. For multi-host this was tested manually with curl in qemu. After requesting the expected changes have been observed on dbus. ``` curl -k -X POST 'https://localhost:4443/redfish/v1/Systems/Yosemite_4_Sentinel_Dome_T1_Slot_1/Actions/ComputerSystem.Reset' \ -H 'X-Auth-Token: '"$BMCWEB_SESSION_TOKEN"'' \ -H "Content-Type: application/json" -d '{"ResetType": "GracefulShutdown"}' root@yosemite4:~# busctl -l introspect xyz.openbmc_project.State.Host1 /xyz/openbmc_project/state/host1 NAME TYPE SIGNATURE RESULT/VALUE ... xyz.openbmc_project.State.Host interface - - - .AllowedHostTransitions property as 5 "xyz.openbmc_project.State.Host.Transition.Off" "xyz.openbmc_project.State.Host.Transition.On" "xyz.openbmc_project.State.Host.Transition.Reboot" "xyz.openbmc_project.State.Host.Transition.GracefulWarmReboot" "xyz.openbmc_project.State.Host.Transition.ForceWarmReboot" const .CurrentHostState property s "xyz.openbmc_project.State.Host.HostState.TransitioningToOff" emits-change writable .RequestedHostTransition property s "xyz.openbmc_project.State.Host.Transition.Off" ... ``` Change-Id: I5f2511939501d88fd700bcbffcfd810776d6a5b4 Signed-off-by: Oliver Brewka <oliver.brewka@9elements.com>
2025-08-26Multi-host support for PATCH routes in systems.hppOliver Brewka1-168/+228
Add support for multi-host PATCH request-handling under the /redfish/v1/Systems/{computerSystemId}/ redfish resource. All multi-host supported redfish URIs can be found in this listing [1]. Multi-host meson options needed: -Dexperimental-redfish-multi-computer-system=enabled Tested: PATCH route has been requested via curl manually both on multi- and single-host for every property, that this patch implements. After each request the expected change has been observed on dbus. ``` curl -k -X PATCH 'https://localhost:4443/redfish/v1/Systems/Yosemite_4_Sentinel_Dome_T1_Slot_1' \ -H 'X-Auth-Token: '"$BMCWEB_SESSION_TOKEN"'' \ -H "Content-Type: application/json" -d '{"Boot":{"BootSourceOverrideTarget": "Hdd"}}' root@yosemite4:~# busctl introspect -l xyz.openbmc_project.Settings /xyz/openbmc_project/control/host1/boot NAME TYPE SIGNATURE RESULT/VALUE FLAGS ... xyz.openbmc_project.Control.Boot.Source interface - - - .BootSource property s "xyz.openbmc_project.Control.Boot.Source.Sources.Disk" emits-change writable ... ``` [1] https://gerrit.openbmc.org/c/openbmc/bmcweb/+/76118 Change-Id: Iaf9c1c01d44189707579b468f309577df3b6fad5 Signed-off-by: Oliver Brewka <oliver.brewka@9elements.com>
2025-08-26Multi-host support for GET routes in systems.hppOliver Brewka4-217/+427
Add support for multi-host GET request-handling under the /redfish/v1/Systems/{computerSystemId}/ redfish resource. All multi-host supported redfish URIs can be found in this listing [1]. Multi-host meson options needed: -Dexperimental-redfish-multi-computer-system=enabled Tested: Validator passes on single-host machine and yv4 qemu emulation. [1] https://gerrit.openbmc.org/c/openbmc/bmcweb/+/76118 Change-Id: I67c17c3dd7a354fa9a2ebbc56d4def7a7e788909 Signed-off-by: Oliver Brewka <oliver.brewka@9elements.com>
2025-08-23Remove breaks to fix warningsEd Tanous1-4/+0
clang warns these can never be hit, which is true. Remove them. Change-Id: I37b2bc4253e98257ec08f65e2c9de2ce2fd17706 Signed-off-by: Ed Tanous <ed@tanous.net>
2025-08-23Remove unused variablesEd Tanous2-4/+0
In one of the migrations, these are no longer used. Remove them. Change-Id: Id4f8f9129ff26b4e264b9ef6c526862081f67f0c Signed-off-by: Ed Tanous <etanous@nvidia.com>
2025-08-22Refactor Manager Reset ActionsMyung Bae2-168/+148
This refactors manager reset action handling codes and also merges the requestRoute function into one. - handleManagerResetAction - handleManagerResetToDefaultsAction - handleManagerResetActionInfo This also rearranges requestRouteManager setup functions into one. - requestRoutesManager - requestRoutesManagerCollection Tested: - Perform Manager Reset actions - Redfish Service Validator passes Change-Id: Ia76719d98aac8b871f0f275b0bc99999562fe796 Signed-off-by: Myung Bae <myungbae@us.ibm.com>
2025-08-21Refactor Managers codeMyung Bae1-238/+236
This refactors manager handling code by breaking out the route bodies of codes instead of keeping the large code lines in requestRoute function. - handleManagerGet - handleManagerPatch - handleManagerCollectionGet Tested: - Compare GET /redfish/v1/Managers before and after the change - Redfish Service Validator passes Change-Id: Idaa9cc904fd8b42f22389af2230f37e9af05d596 Signed-off-by: Myung Bae <myungbae@us.ibm.com>
2025-08-21IndicatorLED: Add compile option for deprecated propertyJanet Adkins6-25/+71
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-08-20Make declaration consistentEd Tanous1-1/+1
Declare this inline void, not the other way around to be consistent. This is done to support regex fixing of elements. Change-Id: Ibfec17042b94c07ddc34048881fe5c7d0a290971 Signed-off-by: Ed Tanous <etanous@nvidia.com>
2025-08-20Fix namespaceEd Tanous1-1/+1
This comment snuck in, probably added by clang-format. Fix it. Change-Id: I0c272922c040ab80e9f5849698b063b0cfaea9e8 Signed-off-by: Ed Tanous <ed@tanous.net>
2025-08-20Systems: Update LocationIndicatorActive propertyJanet Adkins3-92/+82
Modify get/set of LocationIndicatorActive property for Systems to use identifying association instead of hard-coding led group.[1] History: Almost 5 years ago IBM added support for this property to the Systems.[2] That original implementation assumed the system and chassis shared the same LED and just looked at the enclosure_identify_blink and enclosure_identify like the existing IndicatorLED property did. IBM renamed these functions getSystemLocationIndicatorActive and setSystemLocationIndicatorActive.[3] The interest from other companies has mostly been around IndicatorLED (old deprecated LED property).[4] Today, LEDs have the association documented above and used elsewhere like PowerSupplies, Fans, etc. Switching to this association: 1) follows the design 2) allows multiple chassis support 3) doesn't assume your system led is your chassis led. This is the last caller of the getSystemLocationIndicatorActive() and setSystemLocationIndicatorActive() functions so they are being removed. [1] https://gerrit.openbmc.org/c/openbmc/phosphor-dbus-interfaces/+/58299 [2] https://gerrit.openbmc.org/c/openbmc/bmcweb/+/36886 [3] https://gerrit.openbmc.org/c/openbmc/bmcweb/+/57765 [4] https://gerrit.openbmc.org/c/openbmc/bmcweb/+/27301 Tested: - Redfish Service Validator passes - Confirm able to set and get LED 1. Get for Systems ``` curl -k -H "X-Auth-Token: $token" -X GET https://${bmc}/redfish/v1/Systems/system { { "@odata.id": "/redfish/v1/Systems/system", "@odata.type": "#ComputerSystem.v1_22_0.ComputerSystem", ... "LocationIndicatorActive": false, ... } ``` 2. Set for Systems ``` curl -k -H "X-Auth-Token: $token" -H "Content-Type: application/json" -X PATCH -d '{"LocationIndicatorActive": true}' https://${bmc}/redfish/v1/Systems/system curl -k -H "X-Auth-Token: $token" -X GET https://${bmc}/redfish/v1/Systems/system { "@odata.id": "/redfish/v1/Systems/system", "@odata.type": "#ComputerSystem.v1_22_0.ComputerSystem", ... "LocationIndicatorActive": true, ... } ``` Change-Id: I1c06621586148d4b299b1f8e1ee1fb0ccdc51f10 Signed-off-by: George Liu <liuxiwei@inspur.com> Signed-off-by: Janet Adkins <janeta@us.ibm.com> Co-authored-by: George Liu <liuxiwei@inspur.com>
2025-08-19Clean up .clang-tidyEd Tanous1-39/+0
This file was originally created by listing all clang-tidy checks (from version 7 ish) and dumping them into a file. Over time it has evolved, but now there are quite a few people using this file as an example to enable other repos with tidy, so lets "tidy up" the checks we enable in this list that probably shouldn't be enabled. OSX-specific checks are removed. We don't deploy code on osx The one google style guide check is removed for use of explicit. In practice this didn't help much. boost-use-to-string is removed. To my knowledge it has never flagged a failure. Change-Id: Ic4c0fdc31d66219d77ca30a2ce8ee514e52176b3 Signed-off-by: Ed Tanous <etanous@nvidia.com>
2025-08-18Fix 204/304 incorrectly tracing CRITICAL messageAbiola Asojo2-4/+2
Resolve tracing of CRITICAL message on 1xx, 204(no-content) and 304(not modified) when there is no body in the response. The code is changed to check that 1xx, 204 and 304 response with payloadsize of 0 will not trace the CRITICAL message. Removed setting of no_content on PATCH that was being done before other functions are called. Tested: Used the following commands to check that the CRITICAL message is no longer being traced for no-content and not modified response with no body. 204 no-content ``` curl -k -H "Content-Type: application/json" \ -d '{"PowerRestorePolicy":"LastState"}' \ -X PATCH https://${bmc_ip}/redfish/v1/Systems/system ``` ``` curl -k -H "Content-Type: application/json" \ -H "X-Auth-Token: $bmc_token" -X PATCH \ -d '{"LocationIndicatorActive":true}' \ https://${bmc_ip}/redfish/v1/Managers/bmc ``` 304 not modified ``` curl -k -i https://${bmc_ip}/redfish/ --etag-save etag.out \ -H 'If-Modified-Since: Tue, 21 Nov 2050 08:00:00 GMT' HTTP/1.1 200 OK Allow: GET . . . ETag: "B3A9EAA1" Content-Type: application/json Date: Thu, 14 Aug 2025 22:07:27 GMT Content-Length: 26 ETAG=`cat etag.out`; echo $ETAG curl -k -i https://${bmc_ip}/redfish/ -H "If-None-Match: ${ETAG}" HTTP/1.1 304 Not Modified Allow: GET . . . ETag: "B3A9EAA1" Date: Thu, 14 Aug 2025 22:16:27 GMT Content-Length: 0 ``` Change-Id: I98cc096c1f7e506687d4a6bf5a2e51b2231c0d68 Signed-off-by: Abiola Asojo <abiola.asojo@ibm.com>
2025-08-18Generate update registryAlexander Hansen5-13/+471
Generate the update registry, needed to return correct error messages from update service. Change-Id: Ifaa699cad8531070aea47d2476c1834df7c61e08 Signed-off-by: Alexander Hansen <alexander.hansen@9elements.com>
2025-08-16Fix Crashdump LogServices SubordinateOverrides privilegesMyung Bae1-26/+7
This updates SubordinateOverrides permissions on Crashdump LogServices. 1) GET methods ``` - /redfish/v1/Systems/<str>/LogServices/Crashdump/ - /redfish/v1/Systems/<str>/LogServices/Crashdump/Entries/<str>/ ``` 2) POST methods ``` - /redfish/v1/Systems/<str>/LogServices/Crashdump/Actions/LogService.ClearLog/ - /redfish/v1/Systems/<str>/LogServices/Crashdump/Actions/LogService.CollectDiagnosticData/ ``` Tested: - Redfish Validator passes Change-Id: Ief83b4aa6a778ee1ed0d0de8725979a5c1266e56 Signed-off-by: Myung Bae <myungbae@us.ibm.com>
2025-08-14Processor: add support for Ampere CPUsRebecca Cran1-0/+5
Add support for Ampere CPUs to processor.hpp. They use the ARM architecture and the ARM-A64 (AArch64) instruction set. Change-Id: I49ebe574928cf71e4efa07a7448686b13690bde5 Signed-off-by: Rebecca Cran <rebecca@bsdio.com>
2025-08-14Fix : PATCH always returns 204 response for invalid argumentsChandramohan Harkude1-1/+0
Problem: It is observed that PATCH request network protocol using request ``` curl -k -u ${credentials} -X PATCH https://${IP}/redfish/v1/Managers/bmc/NetworkProtocol -d '{"NTP": {"ProtocolEnabled": true, "NTPServers": ["\n"]}}' -H "Content-Type:application/json" returns 204 response. Root cause : The 400 Bad response set by bmcweb when NTP server set value "NTPServers": ["\n"] is overridden by "ProtocolEnabled" response value of 204 therefore we were getting 204 response for invalid arguments as well. Fix : Check the response of "NTPServers" value in async object and set the response code The MRs for PDI and phosphor network are as below https://gerrit.openbmc.org/c/openbmc/phosphor-dbus-interfaces/+/82693 https://gerrit.openbmc.org/c/openbmc/phosphor-networkd/+/82694 Testing: curl -k -u ${credentials} -X PATCH https://${IP}/redfish/v1/Managers/bmc/NetworkProtocol -d '{"NTP": {"ProtocolEnabled": true, "NTPServers": ["\n"]}}' -H "Content-Type:application/json" { "error": { "@Message.ExtendedInfo": [ { "@odata.type": "#Message.v1_1_1.Message", "Message": "The property 'NTP/NTPServers/' with the requested value of '[\"\\n\"]' could not be written because the value does not meet the constraints of the implementation.", "MessageArgs": [ "NTP/NTPServers/", "[\"\\n\"]" ], "MessageId": "Base.1.19.PropertyValueIncorrect", "MessageSeverity": "Warning", "Resolution": "None." } ], "code": "Base.1.19.PropertyValueIncorrect", "message": "The property 'NTP/NTPServers/' with the requested value of '[\"\\n\"]' could not be written because the value does not meet the constraints of the implementation." } } ``` Change-Id: Icfbfc3d065a6a307344093eef8b2eb3e39c70f83 Signed-off-by: Chandramohan Harkude <chandramohan.harkude@gmail.com>
2025-08-14Fix clang c++23 warningEd Tanous1-1/+0
This warning was added when we were on c++20, and we didn't want warnings about c++23 features. We're on c++23 now, so it's not needed Change-Id: Ie062f4536b745ca76fd3364ecb642ff18812dc96 Signed-off-by: Ed Tanous <etanous@nvidia.com>
2025-08-13flip http2 flag for generate auth cert integration testMalik Akbar Hashemi Rafsanjani1-4/+4
this commit is enhancing the gen auth cert test by using better flag option for http2 and not flipping the value Change-Id: I989606807ba0f286a16c1e6e3f1bfc5dbe6a430d Signed-off-by: Malik Akbar Hashemi Rafsanjani <malikrafsan@meta.com>
2025-08-13update service: extract get version callbackAlexander Hansen1-62/+56
Extract getSoftwareVersionCallback from inline lambda for readability reasons. Tested: Next patches in series. Change-Id: I5b89bcfb47b55336bbbe70063bb68f94f2513a21 Signed-off-by: Alexander Hansen <alexander.hansen@9elements.com>
2025-08-13update service: extract function from lambdaAlexander Hansen1-63/+60
Extract handleUpdateServiceFirmwareInventoryGetCallback for readability reasons. Tested: on Tyan s8030. fw inventory response as before. ``` curl --insecure --user root:root https://${bmc}/redfish/v1/UpdateService/FirmwareInventory/HostSPIFlash_7715 { "@odata.id": "/redfish/v1/UpdateService/FirmwareInventory/HostSPIFlash_7715", "@odata.type": "#SoftwareInventory.v1_1_0.SoftwareInventory", "Description": "Unknown image", "Id": "HostSPIFlash_7715", "Name": "Software Inventory", "Status": { "Health": "Warning", "HealthRollup": "OK", "State": "Disabled" }, "Updateable": true, "Version": "Unknown" } ``` Change-Id: Ib71edd91c82dfe1893f7eca1d53b0b05f5bf1415 Signed-off-by: Alexander Hansen <alexander.hansen@9elements.com>
2025-08-13add integration testing for auth using http2Malik Akbar Hashemi Rafsanjani1-5/+22
with this commit, we will make the integration testing of `generate_auth_certificate` to use http2 by default this is aligned with previous commit to enable http2 for mutual TLS Change-Id: I79bb95ef1ad3aaa597900c122372a06d205386f2 Signed-off-by: Malik Akbar Hashemi Rafsanjani <malikrafsan@meta.com>