m/n/core/network: add netlink error callback
Add a callback which logs netlink subscription errors. This may be
useful for debugging.
Change-Id: I35c64ef68bfd098139f94e7d952174ff81acaac3
Reviewed-on: https://review.monogon.dev/c/monogon/+/3810
Tested-by: Jenkins CI
Reviewed-by: Lorenz Brun <lorenz@monogon.tech>
diff --git a/metropolis/node/core/network/neigh.go b/metropolis/node/core/network/neigh.go
index c779d73..33cf564 100644
--- a/metropolis/node/core/network/neigh.go
+++ b/metropolis/node/core/network/neigh.go
@@ -28,7 +28,12 @@
func (s *Service) runNeighborAnnounce(ctx context.Context) error {
l := supervisor.Logger(ctx)
linkUpdates := make(chan netlink.LinkUpdate, 10)
- if err := netlink.LinkSubscribe(linkUpdates, ctx.Done()); err != nil {
+ options := netlink.LinkSubscribeOptions{
+ ErrorCallback: func(err error) {
+ l.Errorf("netlink subscription error: %v", err)
+ },
+ }
+ if err := netlink.LinkSubscribeWithOptions(linkUpdates, ctx.Done(), options); err != nil {
return fmt.Errorf("while subscribing to netlink link updates: %w", err)
}
lastIfState := make(map[string]bool)