On Tuesday, there was much whining about single Babel implementation. Luckily T.M.S.[1] to the rescue - ~15 hours after start, routes synchronized unidirectionally, and after fixing bug or two this morning they go both ways, loop-free, etc. So I would argue I have implemented RFC6126 (aka Babel).
Proof (with some github timestamps for amusement from commits): https://github.com/fingon/pybabel Numbers: mstenber@kosame ~/work/pybabel>ohcount pybabel/*.py babeld.py Examining 3 file(s) Ohloh Line Count Summary Language Files Code Comment Comment % Blank Total ---------------- ----- --------- --------- --------- --------- --------- python 3 766 112 12.8% 79 957 ---------------- ----- --------- --------- --------- --------- --------- Total 3 766 112 12.8% 79 957 (+ some more in unit tests) 8430 byte flash footprint on a router (given Python 3.4 interpreter, + some rounding up for blocksize of course) Caveats: - I implemented it like ‘zeroconf IS-IS’ works, that is, without useful cost function. It fully interoperates with more comprehensive implemenations though. - Linux only to deal with FIB (system interface for dealing with routes is ‘ip’ command from iproute2); core developed on OS X - IPv6 only (who wants legacy IP?) - No source routing (I am sure it would maybe add 100 LoC or so) - officially Python 3.4+ required (likely any Python 3+ variant works, sub-3 probably would need some work) Disclaimer: - if you plan to use this for production use, don’t, unless you test it for yourself sufficiently; however, it _does_ work - pull requests welcome as long as footprint does not increase much - bucketloads of money to implement more features are welcome too.. *smirk* Cheers, -Markus [1] My personal consulting company; I have been unable to find funding for weird hacks, I do not know why. _______________________________________________ homenet mailing list [email protected] https://www.ietf.org/mailman/listinfo/homenet
