> 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