hardware hacking on fq_codel in FPGA form at 10GigE

Jonathan Morton chromatix99 at gmail.com
Thu Dec 20 03:27:11 EST 2012


A small CPU can be made in perhaps 35K gates - something like an ARM7TDMI
or a Cortex-M0. It is common to stick one of those in a special purpose
chip to help with control logic.

But that would operate at a few hundred MHz, which leaves only a few cycles
per packet for small packets. That's not enough to run even a relatively
simple algorithm like codel.

Dedicated logic that *is* fast enough to run the algorithm on each packet
shouldn't be any bigger than such a CPU.

- Jonathan Morton
 On Dec 20, 2012 10:17 AM, "Hal Murray" <hmurray at megapathdsl.net> wrote:

>
> If I was going to do something like that, I'd build a small/simple CPU and
> do
> the work in microcode.
>
> > implementing {n,e,s}fq_codel onboard looks very feasible
>
> How many lines of assembler code would it take?
>
> How many registers do you need?  Do you need any memory other than queues?
> Maybe counters?
>
>
> > The only thing that is seriously serial about fq_codel is shooting the
> > biggest flow when the queue limit is exceeded, and that could be made
> > embarrassingly parallel with enough gates.There are no doubt other tricky
> > issues.
>
> Would it be better to do the fq work in the main CPU and let the FPGA grab
> packets from some shared  data structure in memory?  Can you work out a
> memory structure that doesn't need locks?
>
>
> --
> These are my opinions.  I hate spam.
>
>
>
> _______________________________________________
> Bloat-devel mailing list
> Bloat-devel at lists.bufferbloat.net
> https://lists.bufferbloat.net/listinfo/bloat-devel
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.bufferbloat.net/pipermail/bloat-devel/attachments/20121220/5701743c/attachment-0002.html>


More information about the Bloat-devel mailing list