> Over the last couple of weeks, I've amused myself with doing a
> clean-slate implementation of the Babel protocol in the Bird routing
> daemon

Excellent news, Toke.  I've had a first read over your code, and it looks
almost correct (I have some minor nits).  I'll read it again, and do
a detailed review with stupid questions about the bits I don't understand.

For the record, while Toke and I are friends, this is a completely
independent implementation of the IPv6 subset of RFC 6126 together with
Appendices A and B (I once looked over Toke's shoulder when he was hacking
at it, and he quickly shooed me away).

> The main thing that I found confusing in the text was the mention of
> 'id' in section 3.5; took me a while to realise that this was supposed
> to be the router id.

Noted, thanks.

> The second thing I would have liked to have available is some more
> guidance on how to ensure an implementation is actually compliant to the
> RFC. I.e. a test suite, or at least some description of what kind of
> edge cases to test (tricky topologies, that sort of thing).

Point taken.

I may be biased, but in my experience the only tricky bit in the protocol
is reacting to starvation.  Everytime I touch this code, I put a router in
the middle of the network then increase the cost to all neighbours, and
check that seqno requests behave according to spec.  If they don't, you'll
notice right away -- either there'll be a request storm, or your routes
will remain unreachable for a long time.

If anybody knows how to write a test suite for a routing protocol, I'm
interested.  I imagine a set of scripts that set up some virtual machines
and perform some tests, but I have trouble imagining how it could perform
a test such as the one described above.

> The main part of the implementation took about a week, with another week
> to fix bugs and convince myself that it actually works as intended;

Impressive.  I'll dust some old laptops, and we'll do some more serious
testing when you come to Paris.

-- Juliusz

_______________________________________________
homenet mailing list
homenet@ietf.org
https://www.ietf.org/mailman/listinfo/homenet

Reply via email to