commit da28e1c13c991b2db936ccff3de467be0492b6ab
parent d46be19220fa2b0c740315e9d65e87ceabc19883
Author: finwo <finwo@pm.me>
Date: Fri, 18 Sep 2026 12:59:47 +0200
Unit tests, unosd is now a multi-call binary for subcommands
Diffstat:
6 files changed, 15 insertions(+), 17 deletions(-)
diff --git a/packages/base-files/files/network/interfaces b/packages/base-files/files/network/interfaces
@@ -1,6 +1,8 @@
# UNOS network interfaces
# Cumulus style: `iface <name>` preferred, `inet` is optional.
# See ifupdown2 docs for hooks: pre-up/post-up etc.
+source interfaces.d/*.cnf
+
auto lo
iface lo
address 127.0.0.1/8
diff --git a/packages/base-files/files/network/ports b/packages/base-files/files/network/ports
@@ -31,6 +31,8 @@
# On generic x86_64 there is no ASIC and none of these apply; the kernel
# backend ignores them and Linux does the forwarding.
+source ports.d/*.cnf
+
port swp1
speed 25000
fec rs
diff --git a/packages/linux-longterm/template b/packages/linux-longterm/template
@@ -43,10 +43,10 @@ depends_linux_headers=
# shellcheck disable=SC1091
. "${UNOS_MKDIR}/kernel.inc"
-KDELTA_ENABLE="IKCONFIG IKCONFIG_PROC NET_L3_MASTER_DEV IPV6_MULTIPLE_TABLES BLK_DEV_NVME MMC MMC_BLOCK"
+KDELTA_ENABLE="IKCONFIG IKCONFIG_PROC NET_L3_MASTER_DEV IPV6_MULTIPLE_TABLES BLK_DEV_NVME MMC MMC_BLOCK BRIDGE VLAN_8021Q"
KDELTA_MODULE="NET_VRF"
KDELTA_DISABLE=""
-KASSERT_Y="IPV6 IP_MULTIPLE_TABLES IPV6_MULTIPLE_TABLES NET_L3_MASTER_DEV DEVTMPFS_MOUNT BLK_DEV_INITRD SERIAL_8250_CONSOLE MODULES IKCONFIG IKCONFIG_PROC EFI_STUB BLK_DEV_NVME MMC MMC_BLOCK NVME_CORE"
+KASSERT_Y="IPV6 IP_MULTIPLE_TABLES IPV6_MULTIPLE_TABLES NET_L3_MASTER_DEV DEVTMPFS_MOUNT BLK_DEV_INITRD SERIAL_8250_CONSOLE MODULES IKCONFIG IKCONFIG_PROC EFI_STUB BLK_DEV_NVME MMC MMC_BLOCK NVME_CORE BRIDGE VLAN_8021Q"
KASSERT_M="NET_VRF"
KASSERT_N="MODULE_SIG"
diff --git a/packages/linux-mainline/template b/packages/linux-mainline/template
@@ -41,10 +41,10 @@ depends_linux_headers=
# shellcheck disable=SC1091
. "${UNOS_MKDIR}/kernel.inc"
-KDELTA_ENABLE="IKCONFIG IKCONFIG_PROC NET_L3_MASTER_DEV IPV6_MULTIPLE_TABLES BLK_DEV_NVME MMC MMC_BLOCK"
+KDELTA_ENABLE="IKCONFIG IKCONFIG_PROC NET_L3_MASTER_DEV IPV6_MULTIPLE_TABLES BLK_DEV_NVME MMC MMC_BLOCK BRIDGE VLAN_8021Q"
KDELTA_MODULE="NET_VRF"
KDELTA_DISABLE=""
-KASSERT_Y="IPV6 IP_MULTIPLE_TABLES IPV6_MULTIPLE_TABLES NET_L3_MASTER_DEV DEVTMPFS_MOUNT BLK_DEV_INITRD SERIAL_8250_CONSOLE MODULES IKCONFIG IKCONFIG_PROC EFI_STUB BLK_DEV_NVME MMC MMC_BLOCK NVME_CORE"
+KASSERT_Y="IPV6 IP_MULTIPLE_TABLES IPV6_MULTIPLE_TABLES NET_L3_MASTER_DEV DEVTMPFS_MOUNT BLK_DEV_INITRD SERIAL_8250_CONSOLE MODULES IKCONFIG IKCONFIG_PROC EFI_STUB BLK_DEV_NVME MMC MMC_BLOCK NVME_CORE BRIDGE VLAN_8021Q"
KASSERT_M="NET_VRF"
KASSERT_N="MODULE_SIG"
diff --git a/packages/linux-stable/template b/packages/linux-stable/template
@@ -35,10 +35,10 @@ depends_linux_headers=
# shellcheck disable=SC1091
. "${UNOS_MKDIR}/kernel.inc"
-KDELTA_ENABLE="IKCONFIG IKCONFIG_PROC NET_L3_MASTER_DEV IPV6_MULTIPLE_TABLES BLK_DEV_NVME MMC MMC_BLOCK"
+KDELTA_ENABLE="IKCONFIG IKCONFIG_PROC NET_L3_MASTER_DEV IPV6_MULTIPLE_TABLES BLK_DEV_NVME MMC MMC_BLOCK BRIDGE VLAN_8021Q"
KDELTA_MODULE="NET_VRF"
KDELTA_DISABLE=""
-KASSERT_Y="IPV6 IP_MULTIPLE_TABLES IPV6_MULTIPLE_TABLES NET_L3_MASTER_DEV DEVTMPFS_MOUNT BLK_DEV_INITRD SERIAL_8250_CONSOLE MODULES IKCONFIG IKCONFIG_PROC EFI_STUB BLK_DEV_NVME MMC MMC_BLOCK NVME_CORE"
+KASSERT_Y="IPV6 IP_MULTIPLE_TABLES IPV6_MULTIPLE_TABLES NET_L3_MASTER_DEV DEVTMPFS_MOUNT BLK_DEV_INITRD SERIAL_8250_CONSOLE MODULES IKCONFIG IKCONFIG_PROC EFI_STUB BLK_DEV_NVME MMC MMC_BLOCK NVME_CORE BRIDGE VLAN_8021Q"
KASSERT_M="NET_VRF"
KASSERT_N="MODULE_SIG"
diff --git a/packages/unosd/template b/packages/unosd/template
@@ -1,7 +1,7 @@
# Template file for 'unosd'
pkgname=unosd
version=0.1.0
-revision=3
+revision=4
short_desc="UNOS control plane daemon - kernel netlink mirror into the dataplane"
maintainer="finwo <finwo@pm.me>"
license="GPL-2.0-only"
@@ -9,22 +9,16 @@ homepage="https://unos.finwo.dev"
depends="busybox iproute2"
do_build() {
- # Build unosd via its own Makefile (assembles build/<target> and runs dep)
+ # Single multicall binary (src/main.c dispatch + src/cli/*.c constructors)
make -C "${UNOS_MKDIR}/../src/unosd" -j"$(nproc)"
[ -x "${UNOS_MKDIR}/../src/unosd/build/linux-glibc-amd64/unosd" ] || die "unosd binary missing after build"
- # Build unosc (thin IPC client) directly -- not via the unosd Makefile's wildcard
- # which would incorrectly link it into unosd
- cc -Wall -Wextra -O2 -o "${UNOS_MKDIR}/../src/unosd/build/linux-glibc-amd64/unosc" \
- "${UNOS_MKDIR}/../src/unosd/src/cli/unosc.c"
- [ -x "${UNOS_MKDIR}/../src/unosd/build/linux-glibc-amd64/unosc" ] || die "unosc binary missing"
}
do_install() {
vinstall "${UNOS_MKDIR}/../src/unosd/build/linux-glibc-amd64/unosd" 755 usr/bin unosd
- vinstall "${UNOS_MKDIR}/../src/unosd/build/linux-glibc-amd64/unosc" 755 usr/bin unosc
- # ifup/ifdown/ifquery/ifreload as symlinks to unosc (argv[0] dispatch)
- for link in ifup ifdown ifquery ifreload; do
- ln -sfn unosc "${DESTDIR}/usr/bin/${link}"
+ # multicall: unosc and if* are symlinks to the same binary (argv[0] dispatch in src/main.c)
+ for link in unosc ifup ifdown ifquery ifreload; do
+ ln -sfn unosd "${DESTDIR}/usr/bin/${link}"
done
vinstall ${FILESDIR}/unosd-run 755 etc/sv/unosd run
vinstall ${FILESDIR}/unosd-check 755 etc/sv/unosd check