[Xorp-users] Testing L3 IP packet forward performance on CPU with XORP

Kristian Larsson kristian at spritelink.net
Tue Aug 21 01:37:12 PDT 2007


HJ wrote:
 > Hi, I am HJ. Currently I am working on a self study project on 
getting > the performance benchmarking on L3 IP packet forwarding on x86
 > processor using XORP as the software.

XORP will never touch the forwarding of packets, thus the speed at which 
  you can forward is not linked to the implementation of XORP. Although, 
if XORP eats a lot of resources, less is left to do the actual 
forwarding of packets (which is done in the kernel). So far the fastest 
operating system I know of for forwarding is Linux. Given it's support 
for multiple routing tables and other hacks it is in my opinion the best 
OS for use as a "PC router".

 > I am very new in this space. I would like to seek for the advise in
 > this community on what are the neccessary setup that is needed for
 > this test? Also i plan to run it on multi-threaded processor at later
 > stage, which will modify some of the coding with OpenMP.

Multi-threading won't do _that_ much in forwarding. It's rather 
complicated but if you have a lot of interfaces it can help but in most 
cases it still comes to who has the fastest memory bus.
If you want a high performance router I would recommend a dual CPU one 
where you use one CPU to forward packets and the other for control plane 
related tasks such as running BGP and OSPF.

 > 1. So is like in the config.boot file, what are the element is needed
 > for this?

This is quite clear in the documentation I believe.
Since XORP is a routing protocol suite, I assume, although you don't 
mention it, that you want to run some routing protocol. If all you need 
is static / connected routes you don't need XORP.

 > 2. Do i need a external packet generator like Smart Bit to act as low
 > gen? Or just some test file will do? If it is just a test file, anyway
 > that I can do it?

Well, yes and no. You will need something to push a lot of packets and 
collect measurement data. Smartbits is one way.
There is also a module for the Linux kernel which can generate packets - 
it's bloody fast but won't allow you to do much measuring, that you will 
have to figure out one your own.

 > 3. If i want to do it as just self alone 1 linux box, how do i need to
 > that?

That would be very complicated and given that your machine would have to 
  both generate packets and forward them, your measurements results 
wouldn't be worth much.


    Kristian.




More information about the Xorp-users mailing list