On Mon, May 06, 2013 at 06:50:10PM -0700, Bao Nguyen wrote:
From host A I do "iperf -c x.x.x.x -P 4" to host B's dummy0 interface, host A iperf seemed to pick a single eth0 or eth1 but not both interfaces and use it to send out traffic on all 4 difference processes. Ideally how would one allow a single application (in this case iperf) with multiple threads/processes to send 2Gbit worth of traffic? Ideally to a logical interface and it's hash automatically to two difference eth0 and eth1?
AFAIK Linux kernel implements ECMP in a way that for each route cache entry just one path is used (and fixed in route cache). I heard that there are patches for different behavior. I don't know how this behavior differs on newer kernels without route cache. Without the current behavior, an application could use different addresses or ports for each thread to use multiple threads, i guess. Or use something completely different, like link-level interface bonding.
I've looked at setting (krt_prefsrc) to source the address as the dummy0 interface on each host. Would that be the answer?
Probably not (although it is probably useful anyway). -- Elen sila lumenn' omentielvo Ondrej 'SanTiago' Zajicek (email: santiago@crfreenet.org) OpenPGP encrypted e-mails preferred (KeyID 0x11DEADC3, wwwkeys.pgp.net) "To err is human -- to blame it on a computer is even more so."