What you describe is perfectly correct.
I have two questions w.r.t. this sequence of events:
1) How is router restart and seqnos supposed to be handled without waiting for route timeout?
It's worse than that, actually -- it's not the route timeout, it's the source GC time. The issue is a consequence of having a stateful loop-avoidance algorithm: if the state is lost, the loop-avoidance algorithm gets confused, and only recovers after the state has expired. Babeld currently has two workarounds: - it stores the current seqno on disk when it shuts down, so that it can use the same seqno when it restarts; - it can optionally draw a random router-id at startup, so that the old and new states don't interfere. It would be great to design a procedure to recover from this case without a timeout, but I haven't given it much thought yet. So for now consider it as a flaw in the protocol. -- Juliusz