From 064d4355ca82c924ec928c67150f243f17f56139 Mon Sep 17 00:00:00 2001 From: Chirag Shah Date: Wed, 6 Dec 2017 18:20:48 -0800 Subject: ospf6d: Fix External routes ECMP Handle RFC 2328 16.4 Calculating AS external routes with ECMP For ASBR route, if it is learnt via new LSA and contains different nexthop list. First lookup route in ospf6 route table if it exists, merge nexthop list to existing and call the callback to install into FIB (zebra). Delete created new route as it is identical to existing entry in route table. Ticket:CM-16139 Testing Done: Run two ASBR with 2 ECMP paths from each DUT neighbor receievs 4 ECMP path to a external route. ospf6 installs all 4 ECMP path to FIB/RIB Signed-off-by: Chirag Shah --- ospf6d/ospf6_intra.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'ospf6d/ospf6_intra.c') diff --git a/ospf6d/ospf6_intra.c b/ospf6d/ospf6_intra.c index b1d940952c..77653ea33f 100644 --- a/ospf6d/ospf6_intra.c +++ b/ospf6d/ospf6_intra.c @@ -1404,7 +1404,8 @@ void ospf6_intra_prefix_lsa_add(struct ospf6_lsa *lsa) if (IS_OSPF6_DEBUG_EXAMIN(INTRA_PREFIX)) { prefix2str(&route->prefix, buf, sizeof(buf)); - zlog_debug(" route %s add", buf); + zlog_debug(" route %s add with nh count %u", buf, + listcount(route->nh_list)); } ospf6_route_add(route, oa->route_table); -- cgit v1.2.3