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

Reply via email to