diff options
Diffstat (limited to 'proto/babel/babel.c')
-rw-r--r-- | proto/babel/babel.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/proto/babel/babel.c b/proto/babel/babel.c index 10974474..54b31c22 100644 --- a/proto/babel/babel.c +++ b/proto/babel/babel.c @@ -760,6 +760,13 @@ babel_send_update_(struct babel_iface *ifa, btime changed, struct fib *rtable) { struct babel_proto *p = ifa->proto; + /* Update increase was requested */ + if (p->update_seqno_inc) + { + p->update_seqno++; + p->update_seqno_inc = 0; + } + FIB_WALK(rtable, struct babel_entry, e) { struct babel_route *r = e->selected_out; @@ -1299,8 +1306,8 @@ babel_handle_seqno_request(union babel_msg *m, struct babel_iface *ifa) /* Seqno is larger; check if we own the router id */ if (msg->router_id == p->router_id) { - /* Ours; update seqno and trigger global update */ - p->update_seqno++; + /* Ours; seqno increase and trigger global update */ + p->update_seqno_inc = 1; babel_trigger_update(p); } else |