| # Google Redfish Server |
| |
| gBMCWeb is Google's Redfish server with several added features on top of OpenBMC |
| BMCWeb. |
| |
| To enable gBMCWeb for your machine. Include |
| the [meta-gbmc-staging layer](https://gbmc.googlesource.com/meta-gbmc-staging/), |
| and add the following config to your build (e.g., MACHINE.conf). |
| |
| ```python |
| # Use gBMCWeb |
| DISTRO_FEATURES:append = " gbmcfork" |
| ``` |
| |
| The following is an alphabetical list of added features. |
| |
| ## Multi-threading |
| |
| Google enabled multi-threading, which turns the single-threaded process |
| into a fully multithreaded daemon, greatly improved performance for GET |
| requests, especially on multi-core (4+) BMCs. |
| |
| See go/multithread-gbmcweb for details. |
| |
| Enable it by adding `bmcweb_multithread` to your `DISTRO_FEATURES`. |
| |
| ## gRPC as Transport |
| |
| WIP |
| |
| ## NVMe Redfish Storage |
| |
| We pre-ported some features from https://github.com/CodeConstruct/bmcweb |
| for OOB NVMe storage management: |
| |
| 1. StorageController.SecurityReceive and StorageController.SecuritySend |
| 2. Volume detach/attach/delete/create |
| 3. Drive.SecureErase (Sanitize) |
| |
| Our contractor CodeConstruct will upsteam these features to OpenBMC. |
| |
| ## Plugins |
| |
| Google has built a plugin system for BMCWeb to support machine specific features |
| or behaviors. Please see [Plugins.md](PLUGINS.md) for detailed user guide. |
| |
| ## Stateful BMCWeb |
| |
| http://go/stateful-bmcweb |
| |
| ## Docker native builds and unit tests: |
| |
| ``` |
| # switch to the folder: |
| cd /opt/bmc/gbmc/build/${MACHINE}/workspace/sources/bmcweb |
| |
| # create a volume for the build folder: |
| docker volume create build_volume |
| |
| # pull the container from: |
| docker pull gcr.io/gbmc-builders/openbmc-ubuntu-unit-test:latest |
| |
| # run the openbmc docker: |
| docker run -v `pwd`:/workspace -v build_volume:/workspace/_build -it gcr.io/gbmc-builders/openbmc-ubuntu-unit-test:latest bash |
| |
| # build (within the running container ^): |
| cd /workspace && meson setup _build && ninja install -C _build && ninja test -C _build |
| |
| ``` |
| |
| For more information you can follow go/build-gbmcweb-workstation to find the steps on how to build and run unit tests for gBMCWeb locally. |