Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 24 Jul 2014 18:59:21 +0100
From:      Carlos Ferreira <carlosmf.pt@gmail.com>
To:        Juli Mallett <jmallett@freebsd.org>
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:  <CAJpYY6X0nvr_ncifF-siYTw=L78g1g16FopB0rcJ3x31ARsxJw@mail.gmail.com>
In-Reply-To: <CACVs6=-kYaJ47hPRno5rFr2Pz3Rxy0=z2byqikBKbW9LVapuVA@mail.gmail.com>
References:  <53CE80DD.9090109@gmail.com> <20140722174117.GC43962@funkthat.com> <53CEAF40.7030406@gmail.com> <CAJpYY6XhbPdyRruGM%2B0aQaidAmejAzxbxdEMmCjEXC%2BHP9ZBKQ@mail.gmail.com> <CACVs6=-kYaJ47hPRno5rFr2Pz3Rxy0=z2byqikBKbW9LVapuVA@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Juliet, a network equipment with eight SFP 10Gb Ethernet port is a small
solution. Network operators usually have solutions with 24, 48 or even more
ports mounted in racks. Check out the OLT solutions that Cisco has to offer.
Thinking that more cores always solves the problem is incorrect because you
will end up strangling the bus at the motherboard. Also, there's always a
limit to how many generic cpu cores you can add to a single system and the
power they need to operate.
There's a good reason why the optical network equipments cards use FPGA's.
It's not just deterministic execution, power consumption, reliability and
maintenance cost but also that dedicated digital circuit implementation
will always be faster than a generic cpu implementation.

I simply cannot imagine someone installing a network solution with eight
10GbE ports with a generic processor with 16 cores. But then again, I'm
humble enough to accept and study a solution of that kind, and the reasons
why someone would want to implement such solution in an operator network.
If you have seen such solution, please tell me where I can find it.


On 24 July 2014 18:22, Juli Mallett <jmallett@freebsd.org> wrote:

> 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"
>>
>
>


-- 

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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAJpYY6X0nvr_ncifF-siYTw=L78g1g16FopB0rcJ3x31ARsxJw>