commit | 02bdd9672c7619cc1e11fe3daed8e3ec092b207b | [log] [tgz] |
---|---|---|
author | dhineskumare <dhineskumare@ami.com> | Thu Jul 08 16:06:49 2021 +0530 |
committer | Ed Tanous <ed@tanous.net> | Fri Jul 23 15:51:56 2021 +0000 |
tree | 72882ee8374751068951abbea358d9ecb15e66e6 | |
parent | 9d41aec68bc35dd6e7ae6c34f3678f38377f8731 [diff] |
Enable Keepalive to server role This commit is for, enable the timeout setting with suggested values for server(300sec) role. Server's keep_alive_pings is true by default, so time to server role is become 300/2 sec. It is used for to check server/client communication status in every 150sec. There is a timeout option to websocket stream, which is created by boost library .By default, timeouts on websocket streams are disabled. The way to turn them on is to set the suggested timeout settings on the stream. Idle Timeout is configured as 300sec to server role by default. We can adjust the timeout value which we want exactly by changing the idle_timeout. Depends on keep_alive_pings , the suggested value of the idle timeout will be consider. Keep_alive_pings of server role is set to `true` by default in boost library. So idle_timeout of server role is consider as 300/2 sec by default. https://www.boost.org/doc/libs/master/libs/beast/doc/html/beast/using_websocket/timeouts.html Tested: Redirected Virtual media. connection has established successfully. Media instance gets redirected to host machine. Disconnected the client network. Keepalive idle timeout for server role will found stream miss communication status in next 150sec cycle, and virtual media websocket will be stop gracefully. Existing behaviour: 900sec (15 minutes) will be taken for closing the websocket connection due to network disconnection. Signed-off-by: Dhines Kumar E <dhineskumare@ami.com> Change-Id: Id68d6a5c9b0139b1c70f80e9265a3e4d96e2ee87
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.