Hi, Almost exactly one year ago [1], I mentioned that I would be working on implementing NHRP as Quagga module. While the work was postponed several times for different reasons, I've finally come to the point where I'm willing to publish my work so far.
The module is not complete, nor well tested yet. However, it does seem to work in my specific test environment. The executive summary is basically: spoke (NHC) functionality works, but hub (NHS) functionality is not yet there. It's also missing Cisco NAT extension handling. However, the code is more advanced wrt/ opennhrp state with the fact that IPv6 protocol address handling is mostly there (completely untested though). And that nhrpd is integrated tightly with zebra and does for example Zebra covering prefix monitoring (when announced route changes, shortcuts are automatically refreshed). I hope to finish the important bits in few weeks time. The code is available at: http://git.alpinelinux.org/cgit/tteras/quagga/log/?h=nhrp Some brief instructions and implementation notes are at [2]. Additionally, I've worked quite a bit on zebra. Most notably I've introduced the concept of "fib override" routes. And I've fixed the zebra FIB kernel updates to be atomic (using replace route messages instead of delete + add). Thus, this is a review/pull request for the non-nhrp work. For quagga devels: please look commits up to the 'tteras' branch tag: http://git.alpinelinux.org/cgit/tteras/quagga/log/?h=tteras I'm happy to work towards getting these commits to mainline. Additionally, please take a look at also the nhrp module's list.h, zbuf.h and znl.h infrastructure. I would be happy to work on getting these APIs in lib/. Including refactoring the existing list APIs (queue.h, linklist.h and several duplicate inline implementations all around the code), as well as some of the stream.h usage to use the new APIs if they are deemed acceptable for lib/. I anticipate the zbuf.h API can be debatable whether it is suitable for this or not, but I'm hoping to discuss it / make changes as needed. Thanks, Timo [1] https://lists.quagga.net/pipermail/quagga-dev/2014-May/011356.html [2] http://git.alpinelinux.org/cgit/tteras/quagga/diff/nhrpd/README.nhrpd?h=nhrp _______________________________________________ Quagga-dev mailing list [email protected] https://lists.quagga.net/mailman/listinfo/quagga-dev
