summaryrefslogtreecommitdiff
path: root/src/init
diff options
context:
space:
mode:
authorChristian Breunig <christian@breunig.cc>2025-11-07 22:05:59 +0100
committerChristian Breunig <christian@breunig.cc>2026-03-19 22:37:45 +0100
commitb84bdbf8dd25995aa564081632de6251ecf5ad4e (patch)
tree86452996c6cdbe5b17e6fb3187b6aa176e096e9a /src/init
parent653857bfa8dcf8290da0daddfe231127befc271b (diff)
downloadvyos-1x-b84bdbf8dd25995aa564081632de6251ecf5ad4e.tar.gz
vyos-1x-b84bdbf8dd25995aa564081632de6251ecf5ad4e.zip
vyos-netlinkd: T8047: replace netplugd
Implementing a daemon that listens for netlink messages in Python was discussed for many years. This is a proof-of-concept implementation how we can listen for netlink messages and process them in Python. Python 3.10 minimum is required due to the use of case statements which mimics C-style switch/case instructions. Add example: set interfaces ethernet eth1 vif 21 address dhcp set interfaces ethernet eth1 vif 21 address dhcpv6 commit If network cable is unplugged: vyos-netlinkd[12681]: RTM_NEWLINK -> eth3.10, state=DOWN, mac=00:50:56:b3:9d:8e vyos-netlinkd[12681]: Stopping dhclient@eth3.10.service... vyos-netlinkd[12681]: Stopping dhcp6c@eth3.10.service... If cable is plugged back in: vyos-netlinkd[12681]: RTM_NEWLINK -> eth3.10, state=DOWN, mac=00:50:56:b3:9d:8e vyos-netlinkd[12681]: RTM_NEWLINK -> eth3.10, state=UP, mac=00:50:56:b3:9d:8e vyos-netlinkd[12681]: Restarting dhclient@eth3.10.service... vyos-netlinkd[12681]: Restarting dhcp6c@eth3.10.service...
Diffstat (limited to 'src/init')
-rwxr-xr-xsrc/init/vyos-router8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/init/vyos-router b/src/init/vyos-router
index 550c916a1..de3cc071a 100755
--- a/src/init/vyos-router
+++ b/src/init/vyos-router
@@ -681,13 +681,18 @@ start ()
fi
# Start netplug daemon
- systemctl start netplug.service
+ systemctl start vyos-netlinkd.service
}
stop()
{
local -i status=0
log_daemon_msg "Stopping VyOS router"
+
+ # As vyos-netlinkd consumes a configuration, we need to stop it prior
+ # unmounting /config
+ systemctl stop vyos-netlinkd.service
+
for ((i=${#sub_inits[@]} - 1; i >= 0; i--)) ; do
s=${subinit[$i]}
log_progress_msg $s
@@ -699,7 +704,6 @@ stop()
umount ${vyatta_configdir}
log_action_end_msg $?
- systemctl stop netplug.service
systemctl stop vyconfd.service
systemctl stop frr.service