diff options
| author | Christian Breunig <christian@breunig.cc> | 2025-11-07 22:05:59 +0100 |
|---|---|---|
| committer | Christian Breunig <christian@breunig.cc> | 2026-03-19 22:37:45 +0100 |
| commit | b84bdbf8dd25995aa564081632de6251ecf5ad4e (patch) | |
| tree | 86452996c6cdbe5b17e6fb3187b6aa176e096e9a /src/init | |
| parent | 653857bfa8dcf8290da0daddfe231127befc271b (diff) | |
| download | vyos-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-x | src/init/vyos-router | 8 |
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 |
