summaryrefslogtreecommitdiff
path: root/zebra/zebra_rib.c
diff options
context:
space:
mode:
authorDonald Sharp <donaldsharp72@gmail.com>2021-10-28 07:59:54 -0400
committerGitHub <noreply@github.com>2021-10-28 07:59:54 -0400
commit68275b093b472cf60c679566b87ab27809841f9e (patch)
tree6ce0103b965b102e334591cc212f463184c54cd6 /zebra/zebra_rib.c
parent808d0960f34c8e3dfec139b879591434e2a1d31d (diff)
parentf68ce9762785c0d33a4a983e6aa7e64c1107f198 (diff)
Merge pull request #9870 from opensourcerouting/zebra-rib-select-order
zebra: set SELECTED before going into dplane code
Diffstat (limited to 'zebra/zebra_rib.c')
-rw-r--r--zebra/zebra_rib.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/zebra/zebra_rib.c b/zebra/zebra_rib.c
index 8861ac7bec..42fa927d9e 100644
--- a/zebra/zebra_rib.c
+++ b/zebra/zebra_rib.c
@@ -1257,14 +1257,6 @@ static void rib_process(struct route_node *rn)
bool selected_changed = new_selected && CHECK_FLAG(new_selected->status,
ROUTE_ENTRY_CHANGED);
- /* Update fib according to selection results */
- if (new_fib && old_fib)
- rib_process_update_fib(zvrf, rn, old_fib, new_fib);
- else if (new_fib)
- rib_process_add_fib(zvrf, rn, new_fib);
- else if (old_fib)
- rib_process_del_fib(zvrf, rn, old_fib);
-
/* Update SELECTED entry */
if (old_selected != new_selected || selected_changed) {
@@ -1292,6 +1284,14 @@ static void rib_process(struct route_node *rn)
}
}
+ /* Update fib according to selection results */
+ if (new_fib && old_fib)
+ rib_process_update_fib(zvrf, rn, old_fib, new_fib);
+ else if (new_fib)
+ rib_process_add_fib(zvrf, rn, new_fib);
+ else if (old_fib)
+ rib_process_del_fib(zvrf, rn, old_fib);
+
/* Remove all RE entries queued for removal */
RNODE_FOREACH_RE_SAFE (rn, re, next) {
if (CHECK_FLAG(re->status, ROUTE_ENTRY_REMOVED)) {