Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 24 Jul 2014 10:22:10 -0700
From:      Juli Mallett <jmallett@FreeBSD.org>
To:        Carlos Ferreira <carlosmf.pt@gmail.com>
Cc:        FreeBSD Net <freebsd-net@freebsd.org>, John Jasen <jjasen@gmail.com>
Subject:   Re: fastforward/routing: a 3 million packet-per-second system?
Message-ID:  <CACVs6=-kYaJ47hPRno5rFr2Pz3Rxy0=z2byqikBKbW9LVapuVA@mail.gmail.com>
In-Reply-To: <CAJpYY6XhbPdyRruGM%2B0aQaidAmejAzxbxdEMmCjEXC%2BHP9ZBKQ@mail.gmail.com>
References:  <53CE80DD.9090109@gmail.com> <20140722174117.GC43962@funkthat.com> <53CEAF40.7030406@gmail.com> <CAJpYY6XhbPdyRruGM%2B0aQaidAmejAzxbxdEMmCjEXC%2BHP9ZBKQ@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, Jul 22, 2014 at 12:23 PM, Carlos Ferreira <carlosmf.pt@gmail.com>
wrote:

> I think the results presented at the paper are regarding one port sending
> or receiving at 14.88Mpps. Using several ports at the same time will surely
> give much lower results. But then again, if one wants 8, 16, 24 or even
> more ports at 10Gb/s, then it should look for FPGA implementations.


This is incorrect and misleading speculation, assuming your hardware is not
set up badly in some way.  With netmap it is quite easy to have additional
threads handling other ports, so long as you have enough real cores to run
those threads on (ideally pinned, and with nothing else running.)  If
you've got the RAM and the CPU, 8 ports of 10GbE with netmap on FreeBSD is
not at all infeasible.  The question is always how much work you need to be
able to do per-packet and whether you're able to do that work in an
efficient way that fits with the model.  So something with a
slightly-specific or at least sneaky architecture is very important here,
so that you can just swap buffers rather than having to do a gratuitous
copy.  And a very careful design even just for parsing the packets, let
alone the process of doing the routing.

Using several ports at the same time on a single CPU absolutely gives lower
results, but someone with 8 10GbE ports can hopefully pretty well handle
providing 16 cores to get the job done and still have a meaningful control
plane.  The idea that netmap or similar solutions would be bottlenecked
otherwise is wrong, unless there's something wrong with your hardware (not
so uncommon as one might like.)  (For cache performance, etc., you really
don't want to use hyperthreads for something as timing-sensitive and
data-hungry as this kind of packet processing; your results may vary.)

Juli.

On 22 July 2014 19:36, John Jasen <jjasen@gmail.com> wrote:
>
> >
> > On 07/22/2014 01:41 PM, John-Mark Gurney wrote:
> > > John Jasen wrote this message on Tue, Jul 22, 2014 at 11:18 -0400:
> > >> Feedback and/or tips and tricks more than welcome.
> > > You should look at netmap if you really want high PPS routing...
> >
> > Originally, I assumed an interface supporting netmap was required, but
> > the manpage disabuses me of this. Besides, I think the Chelsio cards got
> > netmap recently.
> >
> > I presume either the use of bridge in tools/netmap, or vale-ctl in the
> > same location would start providing me sufficient clue on this?
> > Unfortunately, both seem to be pretty short on verbosity ... More clue
> > is always welcome!
> >
> >
> > _______________________________________________
> > freebsd-net@freebsd.org mailing list
> > http://lists.freebsd.org/mailman/listinfo/freebsd-net
> > To unsubscribe, send any mail to "freebsd-net-unsubscribe@freebsd.org"
> >
>
>
>
> --
>
> Carlos Miguel Ferreira
> Researcher at Telecommunications Institute
> Aveiro - Portugal
> Work E-mail - cmf@av.it.pt
> Skype & GTalk -> carlosmf.pt@gmail.com
> LinkedIn -> http://www.linkedin.com/in/carlosmferreira
> _______________________________________________
> freebsd-net@freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-net
> To unsubscribe, send any mail to "freebsd-net-unsubscribe@freebsd.org"
>



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CACVs6=-kYaJ47hPRno5rFr2Pz3Rxy0=z2byqikBKbW9LVapuVA>