[dpdk-dev] Why IP_PIPELINE is faster than L2FWD

Bruce Richardson bruce.richardson at intel.com
Thu Dec 22 14:25:42 CET 2016


On Thu, Dec 22, 2016 at 08:48:50PM +0800, Royce Niu wrote:
> But, actually, L3FWD of IP_PIPELINE is also faster than stock L2FWD, which
> also modifies mac addr. How can explain this?
> 
> Actually, I want to know why IP_PIPELINE is much faster and I can learn
> from IP_PIPELINE and make our own program.
> 
> But, the documentation of that is not detailed enough. if it is possible,
> could you tell me where is the key to boost? Thanks!
>

Adding Cristian as IP Pipeline maintainer.

A lot of tuning work went into IP Pipeline and the table and port
libraries it uses, so I'm not sure that there is just one or two key
changes which give it such good performance. L2 forward just hasn't had
the same level of tuning and, while performing well, is also simplified
to make it understandable as an example. Contrast the code in l2fwd
against equivalent vector code in l3fwd-lpm* files e.g. l3fwd_lpm_sse.h.
The latter is very high performing, the former is more readable.

Regards,
/Bruce

> On Thu, Dec 22, 2016 at 7:15 PM, Bruce Richardson <
> bruce.richardson at intel.com> wrote:
> 
> > On Thu, Dec 22, 2016 at 12:18:12AM +0800, Royce Niu wrote:
> > > Hi all,
> > >
> > > I tested default L2FWD and IP_PIPELINE (pass-through). The throughput of
> > > IP_PIPELINE is higher immensely.
> > >
> > > There are only two virtual NICs in KVM. The experiment is just moving
> > > packet from vNIC0  to vNIC1. I think the function is so simple. Why L2FWD
> > > is much slower?
> > >
> > > How can I improve L2FWD, to make L2FWD faster?
> > >
> > Is IP_PIPELINE in passthrough mode modifying the packets? L2FWD swaps
> > the mac addresses on each packet as it processes them, which can slow it
> > down. L2FWD is also more an example of how the APIs work than anything
> > else. For fastest possible port-to-port forwarding, testpmd should give
> > the highest performance.
> >
> > /Bruce
> >
> 
> 
> 
> -- 
> Regards,
> 
> Royce


More information about the dev mailing list