Skip to content
Draft

Yangerd #1536

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
73 commits
Select commit Hold shift + click to select a range
0ef64b7
TEMP: WiP document
mattiaswal Mar 27, 2026
f0449dd
TEMP: Update yanger spec
mattiaswal Mar 28, 2026
d277c0d
firewall: simplify
mattiaswal Mar 31, 2026
78dbaf9
test: system: Make tests more robust
mattiaswal Mar 31, 2026
673253b
test: firewall: Make tests more robust
mattiaswal Mar 31, 2026
9e8cbbc
yangerd: Initial
mattiaswal Mar 31, 2026
442d742
move yanger
mattiaswal Mar 31, 2026
01fc6aa
statd: Include new yangerd backend for operational
mattiaswal Mar 31, 2026
cdb9cca
update doc
mattiaswal Mar 31, 2026
30d9608
Fix routing and ip addresses
mattiaswal Mar 31, 2026
9dc539a
yangerd: Continues
mattiaswal Mar 31, 2026
714a9ef
zapi: Fix deletion of routes
mattiaswal Apr 24, 2026
54cafe8
Fix interface and bridge race conditions
mattiaswal Apr 27, 2026
7f411b9
FRR does not send delete on OSPF route change
mattiaswal Apr 28, 2026
a8d22e0
Fix ntp and dns status
mattiaswal Apr 28, 2026
d40f1cf
test: dhcp: server_subnets: Add longer timeout for polling
mattiaswal Apr 28, 2026
5ce26d4
test: case: ntp: Adapt tests for polled yangerd
mattiaswal Apr 28, 2026
73ad0ec
Fix containers, reactive now.
mattiaswal Apr 29, 2026
a28e1d9
test: containers: host_commands/test.py: Adapt to new yangerd
mattiaswal Apr 29, 2026
f6df3a8
test: usb: adapt to new yangerd
mattiaswal Apr 29, 2026
65e98f2
yangerd: Send sighup to yangerd on config change
mattiaswal Apr 29, 2026
4ab7c86
yangerd: fix stp status
mattiaswal Apr 29, 2026
d07dac4
yangerd: Add wireguard support
mattiaswal Apr 29, 2026
357d54e
test: wireguard_roadwarrior: Adapt to the new polled world in yangerd
mattiaswal Apr 29, 2026
7ef6da5
test: iface_enable_disable: Simplify test
mattiaswal Apr 29, 2026
1972d77
yangerd: Do not start in runlevel S
mattiaswal Apr 30, 2026
bdaae55
yangerd: Add backoff if ip batch work have crashed
mattiaswal Apr 30, 2026
f2cc292
yangerd: Add WiFi implementation
mattiaswal May 2, 2026
ba94be3
yanger: Remove code duplication and fix upgrade
mattiaswal May 20, 2026
8d44303
statd: Remove old code
mattiaswal May 20, 2026
5b8adbc
test: upgrade: Add adaptions needed for yangerd
mattiaswal May 22, 2026
da4f592
test: upgrade: Add adaptions needed for yangerd
mattiaswal May 22, 2026
434fb6d
test: syslog: property_filter: Adapt to changes required by yangerd
mattiaswal May 22, 2026
1e9e98b
yangerd: Add support for getting ARP neighbors
mattiaswal May 22, 2026
231987e
tests: Adapt to new yangerd
mattiaswal May 22, 2026
a085cec
test: stp_basic: Stabilize test
mattiaswal Jun 5, 2026
36fa20e
test: ntp_client: Adapt to new yangerd daemon
mattiaswal Jun 5, 2026
2d5dc3b
test: veth_delete: Adapt to new yangerd
mattiaswal Jun 10, 2026
8903306
test: ospf_unnumbered_interface: Adapt to new yangerd
mattiaswal Jun 10, 2026
48e6549
test: route_pref_ospf: Adapt to yangerd
mattiaswal Jun 10, 2026
6d4c77a
test: upgrade: Adapt to yangerd
mattiaswal Jun 10, 2026
cba084e
yangerd: Add missing files
mattiaswal Jun 10, 2026
1f186a3
test: operational_all: Harden to catch more
mattiaswal Jun 11, 2026
aa7830c
test: upgrade: add missing readme
mattiaswal Jun 11, 2026
279dcc0
test: spec: Allow to generate test specification without logical topo…
mattiaswal Jun 11, 2026
ad90e18
test: ospf_point_to_multipoint: Adapt to yanger
mattiaswal Jun 11, 2026
6c6d4ad
test: hostname: adapt to yanger
mattiaswal Jun 11, 2026
fe96268
test: ntp_client: Update test spec
mattiaswal Jun 11, 2026
e3b2523
test: route_pref_ospf: Update test spec
mattiaswal Jun 11, 2026
d58b9f7
test: ospf_default_route_advertise: Make test more robust
mattiaswal Jun 11, 2026
581d3d5
statd: Adapt to yanger keys on module:container path
mattiaswal Jun 12, 2026
b7745f2
yangerd: Return {} instead of 404 if no match
mattiaswal Jun 12, 2026
31410b9
yangerd: Fix ntp and lldp status
mattiaswal Jun 12, 2026
f6539e2
test: ntp: client_stratum_selection: Adapt to yangerd behaviour
mattiaswal Jun 12, 2026
c6027b3
test: rip_multihop: Adapt to yangerd changes
mattiaswal Jun 12, 2026
2a33a9e
test: firewall: ipv6-zone-migration: Adapt to yanger behaviour changes
mattiaswal Jun 12, 2026
a0373fa
dhcp: server_subnets: Adapt to yanger behaviour changes
mattiaswal Jun 12, 2026
c8cda45
test: lldp_admin_status: Adapt to yangerd changes
mattiaswal Jun 12, 2026
279632e
test: mdns_allow_deny: Adapt to yangerd behaviour changes
mattiaswal Jun 12, 2026
64d5c0e
REMOVE THIS: TEMPORARY DISABLE PTP TESTS
mattiaswal Jun 12, 2026
42b24aa
yangerd: add missing files
mattiaswal Jun 12, 2026
912aa5c
yangerd: Add arm 32bit support
mattiaswal Jun 12, 2026
5f15e98
test: speed_duplex_coppar: Adapt to yangerd
mattiaswal Jun 12, 2026
0cfb0fa
test: upgrade: Make more robust using yangerd
mattiaswal Jun 14, 2026
ffed424
test: dhcp: client_basic: Adapt to changes by yangerd
mattiaswal Jun 14, 2026
f8d6a77
yangerd: Fix bugs with containers and boot order in CI
mattiaswal Jun 14, 2026
cdedc17
test: operational_all: Try to adapt to yangerd
mattiaswal Jun 14, 2026
f3935c5
test: operational_all: Poll for stuff to get removed from yangerd
mattiaswal Jun 15, 2026
cebb313
multicast: stream MAC sender continuously like the IPv4 sender
mattiaswal Jun 15, 2026
515e826
yangerd: Change containers from polled to reactive
mattiaswal Jun 17, 2026
4321a30
yangerd: Fix containers
mattiaswal Jun 18, 2026
05f55dd
yangerd: containers: widen event debounce to avoid podman contention
mattiaswal Jun 20, 2026
e584778
rauc: Enable streaming of upgrades
mattiaswal Jun 20, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
1 change: 1 addition & 0 deletions board/x86_64/linux_defconfig
Original file line number Diff line number Diff line change
Expand Up @@ -244,6 +244,7 @@ CONFIG_FW_CFG_SYSFS_CMDLINE=y
CONFIG_BLK_DEV_NULL_BLK=y
CONFIG_BLK_DEV_LOOP=y
CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_NBD=y
CONFIG_VIRTIO_BLK=y
CONFIG_BLK_DEV_SD=y
CONFIG_BLK_DEV_SR=y
Expand Down
1 change: 1 addition & 0 deletions configs/aarch64_defconfig
Original file line number Diff line number Diff line change
Expand Up @@ -162,6 +162,7 @@ BR2_PACKAGE_CURIOS_HTTPD=y
BR2_PACKAGE_CURIOS_NFTABLES=y
BR2_PACKAGE_GENCERT=y
BR2_PACKAGE_STATD=y
BR2_PACKAGE_YANGERD=y
BR2_PACKAGE_FACTORY=y
BR2_PACKAGE_FINIT_PLUGIN_HOTPLUG=y
BR2_PACKAGE_FINIT_PLUGIN_HOOK_SCRIPTS=y
Expand Down
1 change: 1 addition & 0 deletions configs/aarch64_minimal_defconfig
Original file line number Diff line number Diff line change
Expand Up @@ -131,6 +131,7 @@ BR2_PACKAGE_NETD=y
BR2_PACKAGE_CONFD_TEST_MODE=y
BR2_PACKAGE_GENCERT=y
BR2_PACKAGE_STATD=y
BR2_PACKAGE_YANGERD=y
BR2_PACKAGE_FACTORY=y
BR2_PACKAGE_FINIT_PLUGIN_HOTPLUG=y
BR2_PACKAGE_FINIT_PLUGIN_HOOK_SCRIPTS=y
Expand Down
1 change: 1 addition & 0 deletions configs/arm_defconfig
Original file line number Diff line number Diff line change
Expand Up @@ -149,6 +149,7 @@ BR2_PACKAGE_NETD=y
BR2_PACKAGE_CONFD_TEST_MODE=y
BR2_PACKAGE_GENCERT=y
BR2_PACKAGE_STATD=y
BR2_PACKAGE_YANGERD=y
BR2_PACKAGE_FACTORY=y
BR2_PACKAGE_FINIT_PLUGIN_HOTPLUG=y
BR2_PACKAGE_FINIT_PLUGIN_HOOK_SCRIPTS=y
Expand Down
1 change: 1 addition & 0 deletions configs/arm_minimal_defconfig
Original file line number Diff line number Diff line change
Expand Up @@ -129,6 +129,7 @@ BR2_PACKAGE_NETD=y
BR2_PACKAGE_CONFD_TEST_MODE=y
BR2_PACKAGE_GENCERT=y
BR2_PACKAGE_STATD=y
BR2_PACKAGE_YANGERD=y
BR2_PACKAGE_FACTORY=y
BR2_PACKAGE_FINIT_PLUGIN_HOTPLUG=y
BR2_PACKAGE_FINIT_PLUGIN_HOOK_SCRIPTS=y
Expand Down
1 change: 1 addition & 0 deletions configs/riscv64_defconfig
Original file line number Diff line number Diff line change
Expand Up @@ -181,6 +181,7 @@ BR2_PACKAGE_CONFD=y
BR2_PACKAGE_NETD=y
BR2_PACKAGE_GENCERT=y
BR2_PACKAGE_STATD=y
BR2_PACKAGE_YANGERD=y
BR2_PACKAGE_FACTORY=y
BR2_PACKAGE_FINIT_PLUGIN_HOTPLUG=y
BR2_PACKAGE_FINIT_PLUGIN_HOOK_SCRIPTS=y
Expand Down
2 changes: 2 additions & 0 deletions configs/x86_64_defconfig
Original file line number Diff line number Diff line change
Expand Up @@ -110,6 +110,7 @@ BR2_PACKAGE_RAUC=y
BR2_PACKAGE_RAUC_DBUS=y
BR2_PACKAGE_RAUC_GPT=y
BR2_PACKAGE_RAUC_NETWORK=y
BR2_PACKAGE_RAUC_STREAMING=y
BR2_PACKAGE_RAUC_JSON=y
BR2_PACKAGE_SYSKLOGD=y
BR2_PACKAGE_SYSKLOGD_LOGGER=y
Expand Down Expand Up @@ -156,6 +157,7 @@ BR2_PACKAGE_CURIOS_HTTPD=y
BR2_PACKAGE_CURIOS_NFTABLES=y
BR2_PACKAGE_GENCERT=y
BR2_PACKAGE_STATD=y
BR2_PACKAGE_YANGERD=y
BR2_PACKAGE_FACTORY=y
BR2_PACKAGE_FINIT_PLUGIN_HOTPLUG=y
BR2_PACKAGE_FINIT_PLUGIN_HOOK_SCRIPTS=y
Expand Down
1 change: 1 addition & 0 deletions configs/x86_64_minimal_defconfig
Original file line number Diff line number Diff line change
Expand Up @@ -128,6 +128,7 @@ BR2_PACKAGE_NETD=y
BR2_PACKAGE_CONFD_TEST_MODE=y
BR2_PACKAGE_GENCERT=y
BR2_PACKAGE_STATD=y
BR2_PACKAGE_YANGERD=y
BR2_PACKAGE_FACTORY=y
BR2_PACKAGE_FINIT_PLUGIN_HOTPLUG=y
BR2_PACKAGE_FINIT_PLUGIN_HOOK_SCRIPTS=y
Expand Down
1 change: 1 addition & 0 deletions package/Config.in
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ source "$BR2_EXTERNAL_INFIX_PATH/package/curios-httpd/Config.in"
source "$BR2_EXTERNAL_INFIX_PATH/package/curios-nftables/Config.in"
source "$BR2_EXTERNAL_INFIX_PATH/package/gencert/Config.in"
source "$BR2_EXTERNAL_INFIX_PATH/package/statd/Config.in"
source "$BR2_EXTERNAL_INFIX_PATH/package/yangerd/Config.in"
source "$BR2_EXTERNAL_INFIX_PATH/package/factory/Config.in"
source "$BR2_EXTERNAL_INFIX_PATH/package/faux/Config.in"
source "$BR2_EXTERNAL_INFIX_PATH/package/finit/Config.in"
Expand Down
7 changes: 7 additions & 0 deletions package/yangerd/Config.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
config BR2_PACKAGE_YANGERD
bool "yangerd"
depends on BR2_PACKAGE_HOST_GO_TARGET_ARCH_SUPPORTS
help
Operational data daemon for YANG/NETCONF/RESTCONF.
Replaces Python yanger scripts with a persistent Go daemon
serving operational data over a Unix socket IPC protocol.
3 changes: 3 additions & 0 deletions package/yangerd/yangerd.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
service <> name:yangerd log:prio:daemon.notice,tag:yangerd \
env:-/etc/default/yangerd \
[2345] yangerd -- Operational data daemon
35 changes: 35 additions & 0 deletions package/yangerd/yangerd.mk
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
################################################################################
#
# yangerd
#
################################################################################

YANGERD_VERSION = 1.0.0
YANGERD_SITE = $(BR2_EXTERNAL_INFIX_PATH)/src/yangerd
YANGERD_SITE_METHOD = local
YANGERD_GOMOD = github.com/kernelkit/infix/src/yangerd
YANGERD_LICENSE = BSD-2-Clause
YANGERD_LICENSE_FILES = LICENSE
YANGERD_REDISTRIBUTE = NO

YANGERD_BUILD_TARGETS = cmd/yangerd cmd/yangerctl
YANGERD_INSTALL_BINS = yangerd yangerctl

define YANGERD_INSTALL_EXTRA
$(INSTALL) -D -m 0644 $(YANGERD_PKGDIR)/yangerd.conf \
$(FINIT_D)/available/yangerd.conf
ln -sf ../available/yangerd.conf $(FINIT_D)/enabled/yangerd.conf
$(INSTALL) -d $(TARGET_DIR)/etc/default
echo '# yangerd build-time feature flags (generated by yangerd.mk)' \
> $(TARGET_DIR)/etc/default/yangerd
echo 'YANGERD_ENABLE_WIFI=$(if $(BR2_PACKAGE_IW),true,false)' \
>> $(TARGET_DIR)/etc/default/yangerd
echo 'YANGERD_ENABLE_CONTAINERS=$(if $(BR2_PACKAGE_PODMAN),true,false)' \
>> $(TARGET_DIR)/etc/default/yangerd
echo 'YANGERD_ENABLE_GPS=$(if $(BR2_PACKAGE_GPSD),true,false)' \
>> $(TARGET_DIR)/etc/default/yangerd
echo 'YANGERD_LOG_LEVEL=deug' >> $(TARGET_DIR)/etc/default/yangerd
endef
YANGERD_POST_INSTALL_TARGET_HOOKS += YANGERD_INSTALL_EXTRA

$(eval $(golang-package))
9 changes: 9 additions & 0 deletions src/confd/src/core.c
Original file line number Diff line number Diff line change
Expand Up @@ -674,6 +674,15 @@ static int change_cb(sr_session_ctx_t *session, uint32_t sub_id, const char *mod
return SR_ERR_SYS;
}

/*
Send sighup to yangerd to trigger a poll of polled values.
This will make sure that there is no stale data.
*/
if (systemf("initctl -b reload yangerd")) {
EMERG("Failed reloading yangerd");
return SR_ERR_SYS;
}

AUDIT("The new configuration has been applied.");
}

Expand Down
2 changes: 1 addition & 1 deletion src/statd/Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ DISTCLEANFILES = *~ *.d
ACLOCAL_AMFLAGS = -I m4

sbin_PROGRAMS = statd
statd_SOURCES = statd.c shared.c shared.h journal.c journal_retention.c journal.h avahi.c avahi.h
statd_SOURCES = statd.c shared.c shared.h journal.c journal_retention.c journal.h avahi.c avahi.h yangerd.c yangerd.h
statd_CPPFLAGS = -D_DEFAULT_SOURCE -D_GNU_SOURCE
statd_CFLAGS = -W -Wall -Wextra
statd_CFLAGS += $(jansson_CFLAGS) $(libyang_CFLAGS) $(sysrepo_CFLAGS)
Expand Down
Loading
Loading