On 24/03/14 17:28, Martin Unzner wrote:
>> This took me a bit longer than planned (doesn't everything?), and it
>> didn't make it into the 20140317, but support is in rump-pktgenif now.
>> See here for how to configure with rumprun:
>> https://github.com/rumpkernel/rump-pktgenif/blob/master/tool/config.sh.example
>>
>> and libvirtif / libpktgenif for what the code looks like.
>>
>> (with jumbo frames and checksum offload my crummy laptop can do 20Gpbs
>> sendto() with one core)
> If I may ask, how did you get 20 Gbps out of the laptop? Or were those
> lookback experiments? If so, which Rump interface did you use?

It says right in the quoted text which interface I used ;)

It's not a loopback, it's just a sink (or a source), and does only UDP 
for now.  I'll probably add a router mode to measure packet forwarding 
speed.  Maybe with some clever packet rewriting it could be tricked to 
work as a TCP peer for itself?

Like I mentioned in the performance thread, since actual packet I/O is 
known to be a fraction of packet generating cost (<<100 cycles vs. ~2k), 
the numbers are not unfeasible for real traffic.  Probably there will be 
some additional slowdown due to doing I/O demanding a larger memory 
footprint, but I'm not going to start guessing the effects of that or 
start buying/constructing hardware setups just to measure that.

You can build the tool & interface with "rumpmake".  Here's how I run it:

(note, since it's a hacky devel tool, when it breaks, whoever is trying 
to use it is expected to fix it ;)

pooka@watou:~/src/rump-pktgenif/tool$ ./testtool -c 1000000 -s 8888 -r 
./config.sh send
Copyright (c) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
     2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014
     The NetBSD Foundation, Inc.  All rights reserved.
Copyright (c) 1982, 1986, 1989, 1991, 1993
     The Regents of the University of California.  All rights reserved.

NetBSD 6.99.36 (RUMP-ROAST) #0: Tue Mar 18 11:04:53 GMT 2014
        pooka@watou:/home/pooka/src/rump-pktgenif/buildrump.sh/obj/lib/librump
total memory = unlimited (host limit)
timecounter: Timecounters tick every 10.000 msec
timecounter: Timecounter "rumpclk" frequency 100 Hz quality 0
cpu0 at thinair0: rump virtual cpu
cpu1 at thinair0: rump virtual cpu
pg0: Ethernet address b2:0a:bf:0b:0e:00
pg0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 9000
        capabilities=3ff00<IP4CSUM_Rx,IP4CSUM_Tx,TCP4CSUM_Rx,TCP4CSUM_Tx>
        capabilities=3ff00<UDP4CSUM_Rx,UDP4CSUM_Tx,TCP6CSUM_Rx,TCP6CSUM_Tx>
        capabilities=3ff00<UDP6CSUM_Rx,UDP6CSUM_Tx>
        enabled=3300<IP4CSUM_Rx,IP4CSUM_Tx,UDP4CSUM_Rx,UDP4CSUM_Tx>
        ec_capabilities=4<JUMBO_MTU>
        ec_enabled=0
        address: b2:0a:bf:0b:0e:00
        inet 1.2.3.4 netmask 0xff000000 broadcast 1.255.255.255
net.inet.udp.sendspace: 9216 -> 200000
starting ...
processed 1000000 packets
total elapsed time: 3.759750 seconds
packet per second: 265975.131325

interface count: 1000001
ratio of I/O's by tool/packets by if: 99.999900%
interface byte count (includes network headers): 8930000042
ratio of bytes by tool/bytes by if: 99.529675%
gigabits per second (on interface): 19.001263

rump kernel halting...
halted

------------------------------------------------------------------------------
Learn Graph Databases - Download FREE O'Reilly Book
"Graph Databases" is the definitive new guide to graph databases and their
applications. Written by three acclaimed leaders in the field,
this first edition is now available. Download your free book today!
http://p.sf.net/sfu/13534_NeoTech
_______________________________________________
rumpkernel-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/rumpkernel-users

Reply via email to