[PATCH 6/7] Babel: Don't keep an infeasible route as selected.

Toke Høiland-Jørgensen toke at toke.dk
Mon May 2 19:07:54 CEST 2016


When a route becomes infeasible it shouldn't be kept as selected; this
is forbidden by section 3.6 of the RFC and prevents subsequent updates
from the same router ID from replacing it.

Signed-off-by: Toke Høiland-Jørgensen <toke at toke.dk>
---
 proto/babel/babel.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/proto/babel/babel.c b/proto/babel/babel.c
index 399d5f4..a40d848 100644
--- a/proto/babel/babel.c
+++ b/proto/babel/babel.c
@@ -565,6 +565,11 @@ babel_select_route(struct babel_entry *e)
 
       babel_send_seqno_request(e);
       babel_announce_rte(p, e);
+
+      /* Section 3.6 of the RFC forbids an infeasible from being selected. This
+	 is cleared after announcing the route to the core to make sure an
+	 unreachable route is propagated first. */
+      e->selected_in = NULL;
     }
     else
     {
-- 
2.8.0



More information about the Bird-users mailing list