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
89fee60
TEMP: WiP document
mattiaswal Mar 27, 2026
30907b0
TEMP: Update yanger spec
mattiaswal Mar 28, 2026
0deff25
firewall: simplify
mattiaswal Mar 31, 2026
ce4dd2d
test: system: Make tests more robust
mattiaswal Mar 31, 2026
6d27f67
test: firewall: Make tests more robust
mattiaswal Mar 31, 2026
1e932f0
yangerd: Initial
mattiaswal Mar 31, 2026
35f8d6e
move yanger
mattiaswal Mar 31, 2026
281adb4
statd: Include new yangerd backend for operational
mattiaswal Mar 31, 2026
4131167
update doc
mattiaswal Mar 31, 2026
fdbf00c
Fix routing and ip addresses
mattiaswal Mar 31, 2026
ad67a5a
yangerd: Continues
mattiaswal Mar 31, 2026
7b45f25
zapi: Fix deletion of routes
mattiaswal Apr 24, 2026
4cc9751
Fix interface and bridge race conditions
mattiaswal Apr 27, 2026
02db44b
FRR does not send delete on OSPF route change
mattiaswal Apr 28, 2026
72d3777
Fix ntp and dns status
mattiaswal Apr 28, 2026
61a7c85
test: dhcp: server_subnets: Add longer timeout for polling
mattiaswal Apr 28, 2026
e938c2d
test: case: ntp: Adapt tests for polled yangerd
mattiaswal Apr 28, 2026
6ce28a7
Fix containers, reactive now.
mattiaswal Apr 29, 2026
0cd598d
test: containers: host_commands/test.py: Adapt to new yangerd
mattiaswal Apr 29, 2026
2dffad6
test: usb: adapt to new yangerd
mattiaswal Apr 29, 2026
b40f644
yangerd: Send sighup to yangerd on config change
mattiaswal Apr 29, 2026
9e40383
yangerd: fix stp status
mattiaswal Apr 29, 2026
73f6b52
yangerd: Add wireguard support
mattiaswal Apr 29, 2026
f305bd3
test: wireguard_roadwarrior: Adapt to the new polled world in yangerd
mattiaswal Apr 29, 2026
dc7a86c
test: iface_enable_disable: Simplify test
mattiaswal Apr 29, 2026
ca7447d
yangerd: Do not start in runlevel S
mattiaswal Apr 30, 2026
32bed66
yangerd: Add backoff if ip batch work have crashed
mattiaswal Apr 30, 2026
c7ab211
yangerd: Add WiFi implementation
mattiaswal May 2, 2026
3e23997
yanger: Remove code duplication and fix upgrade
mattiaswal May 20, 2026
56b7904
statd: Remove old code
mattiaswal May 20, 2026
59fbb26
test: upgrade: Add adaptions needed for yangerd
mattiaswal May 22, 2026
6a78def
test: upgrade: Add adaptions needed for yangerd
mattiaswal May 22, 2026
76de342
test: syslog: property_filter: Adapt to changes required by yangerd
mattiaswal May 22, 2026
bf850f5
yangerd: Add support for getting ARP neighbors
mattiaswal May 22, 2026
e9ff748
tests: Adapt to new yangerd
mattiaswal May 22, 2026
ee54995
test: stp_basic: Stabilize test
mattiaswal Jun 5, 2026
5071a1f
test: ntp_client: Adapt to new yangerd daemon
mattiaswal Jun 5, 2026
f50f6ad
test: veth_delete: Adapt to new yangerd
mattiaswal Jun 10, 2026
52c7e4e
test: ospf_unnumbered_interface: Adapt to new yangerd
mattiaswal Jun 10, 2026
98022e2
test: route_pref_ospf: Adapt to yangerd
mattiaswal Jun 10, 2026
0b193cb
test: upgrade: Adapt to yangerd
mattiaswal Jun 10, 2026
39114f8
yangerd: Add missing files
mattiaswal Jun 10, 2026
b662984
test: operational_all: Harden to catch more
mattiaswal Jun 11, 2026
cff66cd
test: upgrade: add missing readme
mattiaswal Jun 11, 2026
a33214d
test: spec: Allow to generate test specification without logical topo…
mattiaswal Jun 11, 2026
51aa4d2
test: ospf_point_to_multipoint: Adapt to yanger
mattiaswal Jun 11, 2026
79ec518
test: hostname: adapt to yanger
mattiaswal Jun 11, 2026
05d4598
test: ntp_client: Update test spec
mattiaswal Jun 11, 2026
7f0b88b
test: route_pref_ospf: Update test spec
mattiaswal Jun 11, 2026
155f74e
test: ospf_default_route_advertise: Make test more robust
mattiaswal Jun 11, 2026
6a669e6
statd: Adapt to yanger keys on module:container path
mattiaswal Jun 12, 2026
d90d0d2
yangerd: Return {} instead of 404 if no match
mattiaswal Jun 12, 2026
8b60e44
yangerd: Fix ntp and lldp status
mattiaswal Jun 12, 2026
01b9c04
test: ntp: client_stratum_selection: Adapt to yangerd behaviour
mattiaswal Jun 12, 2026
7dc1811
test: rip_multihop: Adapt to yangerd changes
mattiaswal Jun 12, 2026
beb2439
test: firewall: ipv6-zone-migration: Adapt to yanger behaviour changes
mattiaswal Jun 12, 2026
7f4c4b6
dhcp: server_subnets: Adapt to yanger behaviour changes
mattiaswal Jun 12, 2026
7d9319b
test: lldp_admin_status: Adapt to yangerd changes
mattiaswal Jun 12, 2026
8fb9e9b
test: mdns_allow_deny: Adapt to yangerd behaviour changes
mattiaswal Jun 12, 2026
127bbdf
REMOVE THIS: TEMPORARY DISABLE PTP TESTS
mattiaswal Jun 12, 2026
8890274
yangerd: add missing files
mattiaswal Jun 12, 2026
b35f4df
yangerd: Add arm 32bit support
mattiaswal Jun 12, 2026
a2937e1
test: speed_duplex_coppar: Adapt to yangerd
mattiaswal Jun 12, 2026
42c8dc0
test: upgrade: Make more robust using yangerd
mattiaswal Jun 14, 2026
4899279
test: dhcp: client_basic: Adapt to changes by yangerd
mattiaswal Jun 14, 2026
f4de58a
yangerd: Fix bugs with containers and boot order in CI
mattiaswal Jun 14, 2026
27dc426
test: operational_all: Try to adapt to yangerd
mattiaswal Jun 14, 2026
8c6f9ce
test: operational_all: Poll for stuff to get removed from yangerd
mattiaswal Jun 15, 2026
013932e
multicast: stream MAC sender continuously like the IPv4 sender
mattiaswal Jun 15, 2026
ce4184e
yangerd: Change containers from polled to reactive
mattiaswal Jun 17, 2026
62b890f
yangerd: Fix containers
mattiaswal Jun 18, 2026
e32b72d
yangerd: containers: widen event debounce to avoid podman contention
mattiaswal Jun 20, 2026
980b9da
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