summaryrefslogtreecommitdiffstats
path: root/ospf6d/ospf6_intra.c
diff options
context:
space:
mode:
authorDinesh Dutt <ddutt@cumulusnetworks.com>2013-08-25 03:03:31 +0000
committerDavid Lamparter <equinox@opensourcerouting.org>2013-11-07 18:15:43 -0800
commit01879114f73adaf1cd4c9f5e7ae1550b72ff9ca9 (patch)
tree95f60a636ad4e2ebb0c55f31301a897fb6559b24 /ospf6d/ospf6_intra.c
parente68a67672ccfabefadac36c66e88af997fb572b2 (diff)
downloadquagga-01879114f73adaf1cd4c9f5e7ae1550b72ff9ca9.tar.bz2
quagga-01879114f73adaf1cd4c9f5e7ae1550b72ff9ca9.tar.xz
ospf6d: handle Prefix and Router Options bits correctly
Ensure that prefixes with the NU/LA bit set do not get added to the routing table. Ensure that routers with the V6/R bit set do not get added as transit routes. Signed-off-by: Dinesh Dutt <ddutt at cumulusnetworks.com> [DL: adjust to rebase] Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
Diffstat (limited to 'ospf6d/ospf6_intra.c')
-rw-r--r--ospf6d/ospf6_intra.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/ospf6d/ospf6_intra.c b/ospf6d/ospf6_intra.c
index 9c84e657..e86e46bf 100644
--- a/ospf6d/ospf6_intra.c
+++ b/ospf6d/ospf6_intra.c
@@ -1562,6 +1562,10 @@ ospf6_intra_brouter_calculation (struct ospf6_area *oa)
! CHECK_FLAG (brouter->path.router_bits, OSPF6_ROUTER_BIT_B))
continue;
+ if (! OSPF6_OPT_ISSET (brouter->path.options, OSPF6_OPT_V6) ||
+ ! OSPF6_OPT_ISSET (brouter->path.options, OSPF6_OPT_R))
+ continue;
+
copy = ospf6_route_copy (brouter);
copy->type = OSPF6_DEST_TYPE_ROUTER;
copy->path.area_id = oa->area_id;