+2006-01-17 Paul Jakma <paul.jakma@sun.com>
+
+ * kernel_socket.c: (ifam_read) Read metric from RTM_NEWADDR.
+ If interface is an alias, pass the alias as a label for
+ connected_add_ipv{4,6}.
+ * rt_netlink.c: (netlink_interface_addr) print out
+ IFA_CACHEINFO info, if present, when debugging kernel
+ messages.
+
2006-01-17 Gunnar Stigen <gunnar.stigen@axxessit.no>
* connected.c: (connected_up_ipv{4,6}) Include interface metric on
if (ifnlen && strncmp (ifp->name, ifname, INTERFACE_NAMSIZ))
isalias = 1;
+ ifp->metric = ifam->ifam_metric;
+
/* Check interface flag for implicit up of the interface. */
if_refresh (ifp);
if (ifam->ifam_type == RTM_NEWADDR)
connected_add_ipv4 (ifp, 0, &addr.sin.sin_addr,
ip_masklen (mask.sin.sin_addr),
- &brd.sin.sin_addr, NULL);
+ &brd.sin.sin_addr,
+ (isalias ? ifname : NULL));
else
connected_delete_ipv4 (ifp, 0, &addr.sin.sin_addr,
ip_masklen (mask.sin.sin_addr),
connected_add_ipv6 (ifp,
&addr.sin6.sin6_addr,
ip6_masklen (mask.sin6.sin6_addr),
- &brd.sin6.sin6_addr, NULL);
+ &brd.sin6.sin6_addr,
+ (isalias ? ifname : NULL));
else
connected_delete_ipv6 (ifp,
&addr.sin6.sin6_addr,
buf, BUFSIZ), ifa->ifa_prefixlen);
if (tb[IFA_LABEL] && strcmp (ifp->name, RTA_DATA (tb[IFA_LABEL])))
zlog_debug (" IFA_LABEL %s", (char *)RTA_DATA (tb[IFA_LABEL]));
+
+ if (tb[IFA_CACHEINFO])
+ {
+ struct ifa_cacheinfo *ci = RTA_DATA (tb[IFA_CACHEINFO]);
+ zlog_debug (" IFA_CACHEINFO pref %d, valid %d",
+ ci->ifa_prefered, ci->ifa_valid);
+ }
}
if (tb[IFA_ADDRESS] == NULL)