Looks like bug #320 is finally fixed now.
diff --git a/zebra/ChangeLog b/zebra/ChangeLog
index abe8199..fa90cd1 100644
--- a/zebra/ChangeLog
+++ b/zebra/ChangeLog
@@ -3,6 +3,8 @@
* ioctl_solaris.c: (if_get_mtu) Don't break things if either
IPv6 was disabled at compile time or the current interface
hasn't it enabled.
+ * kernel_socket.c: (ifm_read) Don't forget to call if_get_mtu()
+ for updated interfaces.
2007-08-17 Denis Ovsienko
diff --git a/zebra/kernel_socket.c b/zebra/kernel_socket.c
index 9d2310b..ff858bd 100644
--- a/zebra/kernel_socket.c
+++ b/zebra/kernel_socket.c
@@ -472,6 +472,15 @@
if_delete_update (ifp);
}
#endif /* RTM_IFANNOUNCE */
+ if (if_is_up (ifp))
+ {
+#if defined(__bsdi__)
+ if_kvm_get_mtu (ifp);
+#else
+ if_get_mtu (ifp);
+#endif /* __bsdi__ */
+ if_get_metric (ifp);
+ }
}
#ifdef HAVE_NET_RT_IFLIST