commit | 11b49b836902877fa5f25906225f773322d1532b | [log] [tgz] |
---|---|---|
author | Tomáš Pecka <tomas.pecka@cesnet.cz> | Mon Oct 21 14:28:30 2024 +0200 |
committer | Jan Kundrát <jan.kundrat@cesnet.cz> | Tue Oct 22 22:01:09 2024 +0200 |
tree | 161d38bbf341b30c370789ff6016e7713a0f8509 | |
parent | 8f4075b7158998ad2cb37e07e83d017a03eaaf92 [diff] |
hardware: don't update alarm-inventory in sideLoadedAlarms if not needed The original code tried to update ietf-alarms:alarm-inventory every time, even if the update was not necessary. We tried to add an entry into ietf-alarms:alarm-inventory/alarm-type/resource leaf-list even when we knew (or could have known) the entry was already there. The solution is simple -- cache what we pushed into the list. The original tests even assumed this happens -- see the diff. There is an expectation that the update will happen at least once. It happened in every invocation of the polling loop. I modified the tests to check that we write into the alarm-inventory only once. Change-Id: I61685559ad18985092737bb5e0ab2b38585534a8
Together with sysrepo, this software provides "general system management" of embedded devices. The target platform is anything that runs Linux with systemd. This runs in production on CzechLight SDN DWDM devices.
This component tracks the overal health state of the system, including various sensors, or the state of systemd
units. As an operator-friendly LED at the front panel of the appliance shows the aggregated health state.
Firmware can be updated via RAUC, and various aspects of the system's configuration can be adjusted. This includes a firewall, basic network settings, and authentication management.
For a full list, consult the yang/
directory in this repository.
ietf-access-control-list
, RFC 8519 (with deviations)ietf-hardware
, RFC 8348ietf-system
, RFC 7317 (partial support)ietf-interfaces
, RFC 8343 (generating config for systemd-networkd
, with extensions)ietf-routing
, RFC 8349 (see above)czechlight-system
For building, one needs:
1.78
)pkg-config
libnl-route
for talking to the Linux kernellibsystemd
and systemd
at runtimelibyang-cpp
- C++ bindings for libyangsysrepo-cpp
- C++ bindings for sysrepospdlog
- a logging librarysdbus-c++
- C++ library for D-Busfmt
- C++ string formatting librarynlohmann_json
- C++ JSON librarydocopt
for CLI option parsingnft
- the netfilter tooliproute2
- the ip
tool for testingjq
to run some CLI utilities and for testing themThe build process uses CMake. A quick-and-dirty build with no fancy options can be as simple as mkdir build && cd build && cmake .. && make && make install
.