On Thu, Jul 18, 2019 at 03:07:21PM +0200, Konrad Kręciwilk wrote:
> Hello
> 
> In practice AREA6 contains much more routes (about 150), I send a small
> segment. The same router (R1) has other area NSSA - AREA61:

Hello

Could you build BIRD 1.6.6 with attached patch (which adds some more log
messages related to NSSA translation) and send me an output?

-- 
Elen sila lumenn' omentielvo

Ondrej 'Santiago' Zajicek (email: santi...@crfreenet.org)
OpenPGP encrypted e-mails preferred (KeyID 0x11DEADC3, wwwkeys.pgp.net)
"To err is human -- to blame it on a computer is even more so."
diff --git a/proto/ospf/rt.c b/proto/ospf/rt.c
index 368e3d05..7231dddb 100644
--- a/proto/ospf/rt.c
+++ b/proto/ospf/rt.c
@@ -1055,22 +1055,29 @@ decide_nssa_lsa(struct ospf_proto *p UNUSED4 UNUSED6, ort *nf, struct ospf_lsa_e
 
   if (!rt_is_nssa(nf) || !oa->translate)
     return 0;
+  log(L_INFO "NSSA   1");
 
   /* Condensed area network found */
   if (fib_route(&oa->enet_fib, nf->fn.prefix, nf->fn.pxlen))
     return 0;
+  log(L_INFO "NSSA   2");
 
   if (!en || (en->lsa_type != LSA_T_NSSA))
     return 0;
+  log(L_INFO "NSSA   3");
 
   /* We do not store needed data in struct orta, we have to parse the LSA */
   lsa_parse_ext(en, ospf_is_v2(p), rt);
 
+  log(L_INFO "NSSA   X %I %x %x", rt->fwaddr, (uint) rt->propagate, (uint) rt->pxopts);
+
   if (rt->pxopts & OPT_PX_NU)
     return 0;
+  log(L_INFO "NSSA   4");
 
   if (!rt->propagate || ipa_zero(rt->fwaddr))
     return 0;
+  log(L_INFO "NSSA   5");
 
   return 1;
 }
@@ -1098,6 +1105,9 @@ check_nssa_lsa(struct ospf_proto *p, ort *nf)
     }
   }
 
+  if (rt_is_nssa(nf))
+    log(L_INFO "NSSA net %I/%d %d", nf->fn.prefix, nf->fn.pxlen, nf->n.oa->translate);
+
   /* RFC 3103 3.2 (3) - originate the aggregated address range */
   if (anet && anet->active && !anet->hidden && oa->translate)
     ospf_originate_ext_lsa(p, NULL, nf, LSA_M_RTCALC, anet->metric,

Reply via email to