[quagga-dev 10948] Re: high-bandwidth, low-latency quagga necessary ?

Hasso Tepper hasso.tepper at gmail.com
Wed Dec 4 19:32:34 GMT 2013

Jose Gavine Cueto wrote:
> Hi ,
> Is there a need for a high-bandwidth and low-latency optimization
> for quagga ? I've used Intel's Data Plane Development Kit (DPDK),
> and furthermore I would like to use my experience to contribute
> meaningfully (if time permits) to an open-source project like quagga.
> DPDK basically allows high-bandwidth and low-latency TX/RX through
> some kernel bypass techniques.  It would also be a way to sharpen my
> skills.
> I would like again to know if using Intel DPDK to optimize quagga is 
> necessary or would there be a possible use case for it ?

Without digging much what DPDK exactly is, let me share some thoughts.
Sure, Quagga is a control plane software, doesn't do forwarding etc, but
there are use cases where data plane would help a lot to make
better router with Quagga (or any other routing software).

At first there is an issue with QoS. Basically, a data plane should do
the very best to guarantee arrival of packets to the Quagga. I've seen
too many times in the past that people will give up using Linux/BSD
routers because of the issue. Every modern network hardware gives the
highest priority to the network control traffic in both receive and send
path, letting control plane sessions to stay up even in very difficult
DOS situations, but it's almost impossible task with Linux/BSD routers
on common hardware.

(I know that you can probably do something with high end 10Gb
interfaces, but I haven't investigated it yet, because using these have
always been out of question for other reasons.)

Another area where data plane could help Quagga is there area where
lowest possible latency is needed - BFD and possible other such traffic.
With timers going as low as tens of milliseconds you will appreciate any
help you can. I fact BFD protocol is actually designed in such way that
you can (and should, if possible) offload periodic traffic to data
plane. While writing my non-mature BFD implementation [1] I thought
about it a lot and dreamed about network interface I could offload BFD
to ;).

Just some food of thought and/or my 2 cents.

[1] - http://lists.quagga.net/pipermail/quagga-dev/2013-January/010220.html


Hasso Tepper

More information about the Quagga-dev mailing list