commit | 2558979c8b57a25ed8a4e676d3bf2a762d749056 | [log] [tgz] |
---|---|---|
author | P Dheeraj Srujan Kumar <p.dheeraj.srujan.kumar@intel.com> | Fri Jun 25 02:15:11 2021 +0530 |
committer | Ed Tanous <ed@tanous.net> | Thu Dec 09 22:33:29 2021 +0000 |
tree | 5ecfc0cf3e3e06ccd94ebb2410b310871f286d95 | |
parent | 171676f0afd5cd747fa99b21e4623d74ee85b4ec [diff] |
Restructure Redfish EventLog Transmit code flow In the current implementation: 1. When Event service is disabled and enabled back after a while, all the logs during this time span between disable to enable are dumped to the Event listener. 2. When two(or more) events occur very close (in terms of microseconds) and they trigger multiple iNotify events, the listener receives all of these events with the same Event ID. This occurs as the last log timestamp read from redfish file and previous time stamp used to generate Event ID's are not being updated continuously. This commit fixes this issue by tweaking the logic to continuously update the time stamp values (even when Event Service is disabled), and also replaces multiple string operations with file operations. i.e. Instead of looping through the entire Redfish file until last timestamp read is reached, this fix makes use of seekg to get to the last read position. Tested: - Subscribed to an event and successfully received Event Logs. - No Event Logs were received when Event Service was disabled. - No Dump of past Events after Event Service was enabled. - Redfish Validator passed Change-Id: Id8407ff7e9fc48e7810c9193ef43f707b9615c36 Signed-off-by: P Dheeraj Srujan Kumar <p.dheeraj.srujan.kumar@intel.com> Signed-off-by: Ankita Vilas Gawade <ankita.gawade@intel.com>
This component attempts to be a "do everything" embedded webserver for openbmc.
At this time, the webserver implements a few interfaces:
BMCWeb is configured by setting -D
flags that correspond to options in bmcweb/meson_options.txt
and then compiling. For example, meson <builddir> -Dkvm=disabled ...
followed by ninja
in build directory. The option names become C++ preprocessor symbols that control which code is compiled into the program.
meson builddir ninja -C builddir
meson builddir -Dbuildtype=minsize -Db_lto=true -Dtests=disabled ninja -C buildir
If any of the dependencies are not found on the host system during configuration, meson automatically gets them via its wrap dependencies mentioned in bmcweb/subprojects
.
meson builddir -Dwrap_mode=nofallback ninja -C builddir
meson builddir -Dbuildtype=debug ninja -C builddir
meson builddir -Db_coverage=true -Dtests=enabled ninja coverage -C builddir test
When BMCWeb starts running, it reads persistent configuration data (such as UUID and session data) from a local file. If this is not usable, it generates a new configuration.
When BMCWeb SSL support is enabled and a usable certificate is not found, it will generate a self-sign a certificate before launching the server. The keys are generated by the secp384r1
algorithm. The certificate
C=US, O=OpenBMC, CN=testhost
,SHA-256
algorithm.