[Click] Quagga to Click interface for routes pushing

Piotr Jurkiewicz piotr.jerzy.jurkiewicz at gmail.com
Thu May 2 06:05:19 EDT 2013


I am a MSc student at AGH University of Science and Technology, Krakow,
Poland. We are using Click in many research projects here. It is a really
great tool. However, as you may know, there is a problem with using dynamic
routing protocols together with Click. There are two widespread open source
routing protocols daemons: XORP and Quagga.

XORP has built in Click support, but integrating it with Click is pretty
tricky. Many users are unable to cope with that (basing on opinions found
on forums and mailing lists).

Quagga is more popular and better maintained suit from XORP. But it lacks
of Click support. Last time Quagga has introduced FIB push interface (
http://www.nongnu.org/quagga/docs/docs-info.html#zebra-FIB-push-interface).
It could be used for pushing routing information to the (hardware or
software) dataplane.

Quagga is participating this year in Google Summer of Code. Therefore, I
came up with the idea of implementing Quagga -> Click interface as my GSoC
project. The plan for now is as follows:

- create Click element which will accept connection from Quagga interface,
for example: "QuaggaSocket(IPRouteTable rt)"
- the element will receive route updates from Quagga and update table rt
inside the Click
- this will work in case of userlevel Click

In case of kernel Click I plan as follows:

- implement ability for pushing FIB data through the file socket (in
addition to existing TCP socket support) in Quagga's FIB push interface
- element "QuaggaSocket(IPRouteTable rt)" in case of kernel will receive
data from Quagga through the handler (file in /click filesystem which will
Quagga write into)

I have already submitted that idea to Quagga developers and I received a
moderate enthusiasm. I am very keen on this idea. I think that the
implementation of Click -> Quagga interface could be very profitable for
both. The choice of the accepted projects will be made by Quagga
maintainers. Therefore, I would be very grateful if you could support my
proposal. For example you could write a post on the Quagga dev mailing list
supporting the idea:
http://lists.quagga.net/pipermail/quagga-dev/2013-April/010490.html


You can found my proposal here:
http://www.google-melange.com/gsoc/proposal/review/google/gsoc2013/piotrjurkiewicz/1


More information about the click mailing list