summaryrefslogtreecommitdiffstats
path: root/proto/ospf/topology.c
diff options
context:
space:
mode:
authorOndrej Zajicek <santiago@crfreenet.org>2011-07-22 20:00:24 +0200
committerOndrej Zajicek <santiago@crfreenet.org>2011-07-22 20:00:24 +0200
commit4160a9dd9416ee5afd215750bdd6c6e7a4e7ed1f (patch)
tree969093f281b848a3e96a660a7be37bfe084102f6 /proto/ospf/topology.c
parent41b612c31be05409e69e7365db82b3d1aefc4ca3 (diff)
downloadbird-4160a9dd9416ee5afd215750bdd6c6e7a4e7ed1f.tar
bird-4160a9dd9416ee5afd215750bdd6c6e7a4e7ed1f.zip
OSPF NSSA translator election.
Diffstat (limited to 'proto/ospf/topology.c')
-rw-r--r--proto/ospf/topology.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/proto/ospf/topology.c b/proto/ospf/topology.c
index 54bc09c..f5f041e 100644
--- a/proto/ospf/topology.c
+++ b/proto/ospf/topology.c
@@ -222,6 +222,9 @@ originate_rt_lsa_body(struct ospf_area *oa, u16 *length)
if (po->areano > 1)
rt->options |= OPT_RT_B;
+ if ((po->areano > 1) && oa_is_nssa(oa) && oa->ac->translator)
+ rt->options |= OPT_RT_NT;
+
if (po->ebit && !oa_is_stub(oa))
rt->options |= OPT_RT_E;
@@ -388,6 +391,9 @@ originate_rt_lsa_body(struct ospf_area *oa, u16 *length)
if (po->areano > 1)
rt->options |= OPT_RT_B;
+ if ((po->areano > 1) && oa_is_nssa(oa) && oa->ac->translator)
+ rt->options |= OPT_RT_NT;
+
if (po->ebit && !oa_is_stub(oa))
rt->options |= OPT_RT_E;