summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorChristian Breunig <christian@breunig.cc>2026-05-18 17:34:47 +0200
committerGitHub <noreply@github.com>2026-05-18 18:34:47 +0300
commit51ab39e51bb925307c0f9ad1d905d450ceecc0f5 (patch)
treedc6f31ec67ee44efc74c06026db39204aab69e41 /src
parentedccb2fc91163a626ece24c8be14a8bf3d444d8f (diff)
downloadvyos-1x-51ab39e51bb925307c0f9ad1d905d450ceecc0f5.tar.gz
vyos-1x-51ab39e51bb925307c0f9ad1d905d450ceecc0f5.zip
vyos-netlinkd: T8781: try IPRoute.bind() RTNL subscription first (#5207)
Not all pyroute2 versions which ship IPRoute() support subscribing to RTNL multicast groups. If subscribing fails, fallback to all messages.
Diffstat (limited to 'src')
-rwxr-xr-xsrc/services/vyos-netlinkd13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/services/vyos-netlinkd b/src/services/vyos-netlinkd
index addfc8ef9..2b158e05d 100755
--- a/src/services/vyos-netlinkd
+++ b/src/services/vyos-netlinkd
@@ -107,8 +107,17 @@ def main():
syslog.syslog(syslog.LOG_INFO, "VyOS Netlink listener daemon started.")
# Subscribe to link notifications only (not routes/rules/neigh/addr/...).
- ipr = IPRoute(groups=RTMGRP_LINK)
- ipr.bind()
+ ipr = IPRoute()
+ try:
+ # newer pyroute2 versions support bind group in IPRoute() constructor
+ ipr.bind(groups=RTMGRP_LINK)
+ syslog.syslog(syslog.LOG_INFO,
+ 'IPRoute.bind() using groups=RTMGRP_LINK RTNL subscription')
+ except TypeError:
+ syslog.syslog(syslog.LOG_WARNING,
+ 'IPRoute.bind() has no groups= support; using default RTNL subscriptions',
+ )
+ ipr.bind()
fd = ipr.fileno()
global running