blob: ef893d45e7d15e0a33c611660d212eb68bb2f2c8 [file] [log] [blame] [view]
# 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.