[ospf6d] Import GNU Zebra CVSps#3559: Fix inter-area as-ext bug, cleanup debug
2005-10-06 Yasuhiro Ohara <yasu@sfc.wide.ad.jp>
* ospf6_asbr.c: fix bug of calculating AS-External routes
in other areas. Add debugging function for border-router
calculation.
* ospf6d.h: version 0.9.7p
diff --git a/ospf6d/ospf6_asbr.c b/ospf6d/ospf6_asbr.c
index 286b5c1..7980a64 100644
--- a/ospf6d/ospf6_asbr.c
+++ b/ospf6d/ospf6_asbr.c
@@ -294,45 +294,43 @@
void
ospf6_asbr_lsentry_add (struct ospf6_route *asbr_entry)
{
- char buf[64];
struct ospf6_lsa *lsa;
u_int16_t type;
u_int32_t router;
- if (IS_OSPF6_DEBUG_EXAMIN (AS_EXTERNAL))
+ if (! CHECK_FLAG (asbr_entry->flag, OSPF6_ROUTE_BEST))
{
- ospf6_linkstate_prefix2str (&asbr_entry->prefix, buf, sizeof (buf));
- zlog_debug ("New ASBR %s found", buf);
+ char buf[16];
+ inet_ntop (AF_INET, &ADV_ROUTER_IN_PREFIX (&asbr_entry->prefix),
+ buf, sizeof (buf));
+ zlog_info ("ignore non-best path: lsentry %s add", buf);
+ return;
}
type = htons (OSPF6_LSTYPE_AS_EXTERNAL);
router = ospf6_linkstate_prefix_adv_router (&asbr_entry->prefix);
- for (lsa = ospf6_lsdb_type_router_head (type, router, ospf6->lsdb);
- lsa; lsa = ospf6_lsdb_type_router_next (type, router, lsa))
+ for (lsa = ospf6_lsdb_type_router_head (type, router, ospf6->lsdb); lsa;
+ lsa = ospf6_lsdb_type_router_next (type, router, lsa))
{
if (! OSPF6_LSA_IS_MAXAGE (lsa))
ospf6_asbr_lsa_add (lsa);
}
-
- if (IS_OSPF6_DEBUG_EXAMIN (AS_EXTERNAL))
- {
- ospf6_linkstate_prefix2str (&asbr_entry->prefix, buf, sizeof (buf));
- zlog_debug ("Calculation for new ASBR %s done", buf);
- }
}
void
ospf6_asbr_lsentry_remove (struct ospf6_route *asbr_entry)
{
- char buf[64];
struct ospf6_lsa *lsa;
u_int16_t type;
u_int32_t router;
- if (IS_OSPF6_DEBUG_EXAMIN (AS_EXTERNAL))
+ if (! CHECK_FLAG (asbr_entry->flag, OSPF6_ROUTE_BEST))
{
- ospf6_linkstate_prefix2str (&asbr_entry->prefix, buf, sizeof (buf));
- zlog_debug ("ASBR %s disappeared", buf);
+ char buf[16];
+ inet_ntop (AF_INET, &ADV_ROUTER_IN_PREFIX (&asbr_entry->prefix),
+ buf, sizeof (buf));
+ zlog_info ("ignore non-best path: lsentry %s remove", buf);
+ return;
}
type = htons (OSPF6_LSTYPE_AS_EXTERNAL);
@@ -340,12 +338,6 @@
for (lsa = ospf6_lsdb_type_router_head (type, router, ospf6->lsdb);
lsa; lsa = ospf6_lsdb_type_router_next (type, router, lsa))
ospf6_asbr_lsa_remove (lsa);
-
- if (IS_OSPF6_DEBUG_EXAMIN (AS_EXTERNAL))
- {
- ospf6_linkstate_prefix2str (&asbr_entry->prefix, buf, sizeof (buf));
- zlog_debug ("Calculation for old ASBR %s done", buf);
- }
}