2003-06-19 Vladimir Ivaschenko <hazard@francoudi.com>
* zebra/rt_netlink.c: Debug statements added to
netlink_route_multipath()
* zebra/zebra_rib.c: If route has a gateway, delete only existing
route with that specified gateway.
diff --git a/zebra/rt_netlink.c b/zebra/rt_netlink.c
index 6a3df19..b38df20 100644
--- a/zebra/rt_netlink.c
+++ b/zebra/rt_netlink.c
@@ -1323,13 +1323,24 @@
{
for (nexthop = rib->nexthop; nexthop; nexthop = nexthop->next)
{
+
if ((cmd == RTM_NEWROUTE
&& CHECK_FLAG (nexthop->flags, NEXTHOP_FLAG_ACTIVE))
|| (cmd == RTM_DELROUTE
&& CHECK_FLAG (nexthop->flags, NEXTHOP_FLAG_FIB)))
{
+
if (CHECK_FLAG (nexthop->flags, NEXTHOP_FLAG_RECURSIVE))
{
+ if (IS_ZEBRA_DEBUG_KERNEL) {
+ zlog_info ("netlink_route_multipath(): %s %s/%d via %s if %u",
+ lookup (nlmsg_str, cmd),
+ inet_ntoa (p->u.prefix4),
+ p->prefixlen,
+ inet_ntoa (nexthop->rgate.ipv4),
+ nexthop->rifindex);
+ }
+
if (nexthop->rtype == NEXTHOP_TYPE_IPV4
|| nexthop->rtype == NEXTHOP_TYPE_IPV4_IFINDEX)
addattr_l (&req.n, sizeof req, RTA_GATEWAY,
@@ -1351,6 +1362,15 @@
}
else
{
+ if (IS_ZEBRA_DEBUG_KERNEL) {
+ zlog_info ("netlink_route_multipath(): %s %s/%d via %s if %u",
+ lookup (nlmsg_str, cmd),
+ inet_ntoa (p->u.prefix4),
+ p->prefixlen,
+ inet_ntoa (nexthop->gate.ipv4),
+ nexthop->ifindex);
+ }
+
if (nexthop->type == NEXTHOP_TYPE_IPV4
|| nexthop->type == NEXTHOP_TYPE_IPV4_IFINDEX)
addattr_l (&req.n, sizeof req, RTA_GATEWAY,