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