summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrbalocca <rbalocca@vyatta.com>2008-05-07 15:26:08 -0700
committerrbalocca <rbalocca@vyatta.com>2008-05-07 15:26:08 -0700
commit80e8c9a7cabc4717f58b5cd83047bf1e880df85b (patch)
tree4c1440f5263e6652026dd1af12f55c05c719673b
parent6e4fa7d9e4e3d86d3ad992c2ac9cf561c93973f4 (diff)
parentb805b43fde589feee4823145e1dc7b5ac5d4f080 (diff)
downloadquagga-80e8c9a7cabc4717f58b5cd83047bf1e880df85b.tar.bz2
quagga-80e8c9a7cabc4717f58b5cd83047bf1e880df85b.tar.xz
Merge branch 'hollywood' of git:/git/vyatta-quagga into hollywood
-rw-r--r--zebra/rt_netlink.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/zebra/rt_netlink.c b/zebra/rt_netlink.c
index c387917b..b794f18a 100644
--- a/zebra/rt_netlink.c
+++ b/zebra/rt_netlink.c
@@ -1015,6 +1015,7 @@ netlink_link_change (struct sockaddr_nl *snl, struct nlmsghdr *h)
/* Add interface. */
if (h->nlmsg_type == RTM_NEWLINK)
{
+ unsigned long flag = ifi->ifi_flags & 0x0000fffff;
ifp = if_lookup_by_name (name);
if (ifp == NULL || !CHECK_FLAG (ifp->status, ZEBRA_INTERFACE_ACTIVE))
@@ -1022,8 +1023,11 @@ netlink_link_change (struct sockaddr_nl *snl, struct nlmsghdr *h)
if (ifp == NULL)
ifp = if_get_by_name (name);
+ zlog_info ("interface %s index %d %s added.",
+ name, ifi->ifi_index, if_flag_dump(flag));
+
set_ifindex(ifp, ifi->ifi_index);
- ifp->flags = ifi->ifi_flags & 0x0000fffff;
+ ifp->flags = flag;
ifp->mtu6 = ifp->mtu = *(int *) RTA_DATA (tb[IFLA_MTU]);
ifp->metric = 1;
@@ -1037,9 +1041,11 @@ netlink_link_change (struct sockaddr_nl *snl, struct nlmsghdr *h)
ifp->mtu6 = ifp->mtu = *(int *) RTA_DATA (tb[IFLA_MTU]);
ifp->metric = 1;
+ zlog_info ("interface %s index %d changed %s.",
+ name, ifi->ifi_index, if_flag_dump(flag));
if (if_is_operative (ifp))
{
- ifp->flags = ifi->ifi_flags & 0x0000fffff;
+ ifp->flags = flag;
if (!if_is_operative (ifp))
if_down (ifp);
else
@@ -1065,6 +1071,9 @@ netlink_link_change (struct sockaddr_nl *snl, struct nlmsghdr *h)
name);
return 0;
}
+ else
+ zlog_info ("interface %s index %d deleted.",
+ name, ifi->ifi_index);
if_delete_update (ifp);
}