summaryrefslogtreecommitdiff
path: root/ospf6d/ospf6_route.h
diff options
context:
space:
mode:
authorChirag Shah <chirag@cumulusnetworks.com>2018-04-23 15:21:33 -0700
committerChirag Shah <chirag@cumulusnetworks.com>2018-05-01 16:29:21 -0700
commit6942698da457dd8da4b5d16ecdf7bb24d1d80096 (patch)
tree4e2d113b8d901e1d4abd23f150203633e1787e49 /ospf6d/ospf6_route.h
parent4fb6f519289a3e8bf7f72f86fe5cde6f5a3034b6 (diff)
ospf6d: fix intra prefix ecmp
When there are multiple advertisers/paths to reach Intra-Prefix route, if any path is removed, re-added back, it does add to the same route node. ospf6 intra prefix, first stored in oa->route_table then as part of add cb, it would add to ospf6->route_table which adds to FIB. When copying a route with its paths & NHs from oa->table to ospf6->table the path origin should not be modified otherwise ospf6->table would not find existing node rather it appends new node. Use spf_table to fetch nexthops for a given advertisers/path, to form effective nexthop list for a route. Ticket:CM-16139 Testing Done: R2 ---- R3 | | R1 ---- R4 Inject Intra Ara Prefix LSA from R1 & R3, validate R2 and R4 having two origination point/paths to reach for a route. Trigger link flap, frr restart or remove/readd R3's INP one of the injection point. Remove link between R4 to R1 and validate R3 carrying single path to reach prefix. Signed-off-by: Chirag Shah <chirag@cumulusnetworks.com>
Diffstat (limited to 'ospf6d/ospf6_route.h')
-rw-r--r--ospf6d/ospf6_route.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/ospf6d/ospf6_route.h b/ospf6d/ospf6_route.h
index a69e9a920f..02002533e6 100644
--- a/ospf6d/ospf6_route.h
+++ b/ospf6d/ospf6_route.h
@@ -91,6 +91,9 @@ struct ospf6_path {
/* Cost */
uint8_t metric_type;
uint32_t cost;
+
+ struct prefix ls_prefix;
+
union {
uint32_t cost_e2;
uint32_t cost_config;