Re: [iperf]: Bug fixes in DCCP support

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



2008/2/11, Gerrit Renker <gerrit@xxxxxxxxxxxxxx>:
> I found that iperf still had several bugs, some of these involving the
> DCCP support.
>
> The bugs have been fixed and the updated version of iperf has been uploaded to
> http://www.erg.abdn.ac.uk/users/gerrit/dccp/apps/#iperf
>
> A tarball with all changes is on
> http://www.erg.abdn.ac.uk/users/gerrit/dccp/apps/iperf/zip/iperf-2.0.2_DCCP-patched-CBR-continuous.tar.bz2
>
> (NB - test tree also updated today).
>
> Details of changes:
> -------------------
>  * fixed counting bugs when DCCP was used in packet-oriented mode
>    (now the packet count is correct and works across UDP/DCCP);
>
>  * enabled UDP-like reporting of statistics also for DCCP;
>
>  * rewrote the algorithm to compute the inter-packet-gap in CBR mode:
>    - in DCCP it tried to stuff the pipe without accounting for the time
>      it spent, thus producing more packets than specified;
>    - in tests this was observed to cause overflow;
>    - the algorithm now measures the actual inter-packet gap of each packet
>      and compares it to the target; adjusting for each send time;
>    - it is more accurate than the previous implementation, in particular
>      so for DCCP.
>  * replaced the delay_loop(), which was using a spin-loop of constantly
>    calling gettimeofday(), with nanosleep(). While the spinloop worked
>    reasonably in many cases, it sometimes caused unwanted delays of
>    50milliseconds or more (process preempted?); it does not block signals
>    like nanosleep; and nanosleep uses the hrtimers interface internally
>    (/usr/src/davem-2.6/Documentation/hrtimers/hrtimers.txt)
>
>  * separated setting TCP window size and SO_{RCV,SND}BUF settings;
>
>  * completely overhauled the IPv6 support, it is in the order of 359 insertions
>    versus 759 deletions; the -V flag is no longer necessary - iperf can now take
>    any v4/v6 hostname, v4/v6 literal address. This required a minor change for
>    the dual test and the tradeoff test (options -2 and -r): they no longer do a
>    check for the reverse-lookup when the reverse connection comes in, instead
>    the peer address is copied from the connection, which will do in almost any
>    conceivable case (doing a reverse lookup leads to complications since it
>    requires complex case distinctions of v4/v6-mapped-v6/v6 addresses).
>
> * IPv4 multicast support did not work well when the server-bind argument (-B)
>   was used on a host with multiple interfaces. This has now been fixed for both
>   IPv4 and IPv6 multicast using the `-j' `-J' arguments (for join-interface).
>   For example:
>         iperf -s -u -B 224.1.2.3          # works if there is only one interface
>         iperf -s -u -B 224.1.2.3 -j eth1  # wanted to join on that one
>         iperf -s -u -B FF00::c0de -J eth2 # IPv6 multicast, same semantics
>
> Hence if anyone is using iperf for DCCP, using the new version is much encouraged,
> as it will produce more reliable and accurate results.
>
> Still - when encountering any problems with this version of iperf, please do report
> these.

Good news Gerrit, but in details of changes you mentioned this:

* enabled UDP-like reporting of statistics also for DCCP;

But according to my tests, I had this for UDP

------------------------------------------------------------
Server listening on UDP port 5001
Receiving 1470 byte datagrams
UDP datagram buffer size:  105 KByte (default)
------------------------------------------------------------
[  3] local 127.0.0.1 port 5001 connected with 127.0.0.1 port 48341
[  3]  0.0- 1.0 sec   129 KBytes  1.06 Mbits/sec   0.007 ms    0/   90 (0%)
[  3]  1.0- 2.0 sec   128 KBytes  1.05 Mbits/sec   0.006 ms    0/   89 (0%)
(...)

and for DCCP

------------------------------------------------------------
Server listening on DCCP port 5001
NOTE: running in bytestream-mode (maximum speed)
DCCP datagram buffer size:  105 KByte (default)
------------------------------------------------------------
[  4] local 127.0.0.1 port 5001 connected with 127.0.0.1 port 45839
[  4]  0.0- 1.0 sec  56.7 MBytes   476 Mbits/sec
[  4]  1.0- 2.0 sec  57.1 MBytes   479 Mbits/sec
[  4]  2.0- 3.0 sec  57.0 MBytes   478 Mbits/sec
[  4]  3.0- 4.0 sec  56.9 MBytes   477 Mbits/sec


What is different for the previous version of your patches?

Thanks,

Leandro.
-
To unsubscribe from this list: send the line "unsubscribe dccp" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel]     [IETF DCCP]     [Linux Networking]     [Git]     [Security]     [Linux Assembly]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]

  Powered by Linux