Commit Graph

14 Commits

Author SHA1 Message Date
Adolf Belka
734a201469 iperf: Update to version 2.2.0
- Update from version 2.1.8 to 2.2.0
- Update of rootfile not required
- Changelog
    2.2.0
	o new ./configure --enable-summing-debug option to help with summing debug
	o select ahead of writes slow down UDP performance. support ./configure
	  --disable-write-select
	o support fo -b 0 with UDP, unlimited load or no delay between writes
	o support for --sync-transfer-id so client and server will match the ids and
	  give a remap message
	o support --dscp command line option
	o support for application level retries and minimum retry interval of the TCP
	  connect() syscall via --connect-retry-time and --connect-retry-timer,
	  repsectively
	o support for --ignore-shutdown so test will end on writes vs the BDP drain and
	  TCP close/shutdown, recommended not to use this but in rare cases
	o support for --fq-rate-step and --fq-rate-step-interval
	o CCAs per --tcp-cca, --tcp-congestion, etc neeed to be case sensitive
	o support for both packets and bytes inflight taken from tcp_info struct amd pkt
	  calc of (tcp_info_buf.tcpi_unacked - tcp_info_buf.tcpi_sacked -
	  tcp_info_buf.tcpi_lost + tcp_info_buf.tcpi_retrans)
	o man page updates and -h to reflect new options, better descriptions
	o lots of work around summing with parallel threads, new implementation based on
	  interval or slot counters, hopefully should work reliably
	o --bounceback tests are much more reliable and robust
	o Improve event handling around select timeouts, helps with larger -P values and
	  summing
	o use the getsockopt IP_TOS for the displayed output, warn when set and get
	  don't match
	o better tos byte output, include dscp and ecn fields individually
	o better tos setting code for both v6 and v4, so they behave the same around
	  checks and warnings
	o much better NULL events to help with reporter processing even when traffic is
	  not flowing
	o support for a new string report
	o python flows work around CDF based tests
	o rate limit fflush calls to a max of one every millisecond or 1000 per sec
	o remove superfulous fflush calls
	o reports when P = 1 and --sum-only need sum outputs
	o enable summing with --incr-dstip
	o add macro TIME_GET_NOW to set a struct timeval in a portable manner
	o code readability improvements with enums, bools, etc.
	o fix for TCP rate limited and -l less than min burst size
	o only use linux/tcp.h when absolutely needed, otherwise use netinet/tcp.h
	o print bounceback OWD tx/rx in interval reports
	o add flows Makefiles for tarball or make dist-all
	o support interval reports for bounceback histograms
	o support for TCP working loads and UDP primary flows, including UDP
	  isochronous, per ticket 283
	o fix working-load with isoch so working-load streams are capacity seeking
	o exit when CCA not supported or read of the current CCA doesn't match requested
	  CCA
	o add more make check tests
	o add support for omit string (omit code not ready for this release)
	o pyflows qdisc settings and outputs
	o add first send pacing with --tx-starttime so listener threads udp_accept has
	  time to perform udp_accept() between the client threads
	o adjust the sender time per the client delay and the client first write, i.e.
	  subtract out this delay in the calculations
	o fixes for small packets and --tx-starttime
	o use more modern multicast socket options (now in src/iperf_multicast_api.c)
	o warn on bind port not sent with --incr-srcport
	o display fq-rate values in outputs when --fq-rate is used
	o add support for --test-exchange-timeout
	o fixes around wait_tick
	o add support for TCP_TX_DELAY via --tcp-tx-delay <val ms> option on both client
	  and server
	o pass the CCA from client to server
	o support burst-size with different write sizes and don't require --burst-period
	o output traffic thread send scheduling error stats in final ouput
	o output clock unsync stats with --bounceback
	o add warn message on MSG_CTRUNC
	o UDP select fixes
	o enable TCP_NOTSENTLOWAT and set to a default small value with --tcp-write-times
	o default histogram max binning to 10 seconds
	o add a max timestamp to histogram outputs so user can find packets in pcaps or
	  equivalent
	o autoconf change for struct ip_mreqn
	o print errno on writen fail
    2.1.9
	o fixed traffic setitimer to use uintmax_t vs int, supporting large values
	o --bounceback officially supported (including Windows) for repsonsiveness test
	  scenarios
	o deprecated --bounceback-congest introduced in 2.1.8, replaced by --working-loads
	o --working-loads support generalized; works with --bounceback, --connect-only &
	  --burst-period
	o default TCP_NOTSENT_LOWAT with the --working-loads concurrent traffic
	o add support for GMT time formatting via --utc option
	o --trip-times will auto set TCP_NOTSENT_LOWAT
	o CSV output fixes for reverse
	o CSV output regressions fixed per sum outputs using negative transfer ids
	o CSV output support with --enhanced
	o Fix to isoch wait_tick with Windows
	o fix support for --txstart-time with --bounceback
	o Add support for summing histograms in histogram sum outputs
	o Multiple sum report fixes per threading & needing mutex protections
	o Jitter packet IPG calcluations ignore inter frame gaps
	o Isoch jitter output to use running value vs sampled value
	o Add support for --jitter-histograms
	o man page content updates
	o output isoch scheduling errors at end of isoch run
	o PRIdMAX fix for ARM systems
	o better work around in isochronous with Windows per early return of
	  WaitForSingleObject()
	o fix SO_BINDTODEVICE regression
	o fix v6 source port parsing with -B and brackets
	o fix malloc error with --hideips
	o fixes for rate limited TCP with --trip-times
	o add support for TCL_NOTSENT_LOWAT with rate limited TCP
	o permit key now supports -P using listen() with a backlog, no longer single
	  thread limited
	o fixes for zero valued permit-key
	o fixes for multiple permit-key regressions
	o fix token bucket delay with TCP await write
	o fix isMulticast test for ipv4 - previous logic indicate true for 240.x.x.x
	  which is not multicast
	o fix regression on jitter calc - starts on second transit time
	o add cmsg for loop with UDP rx timestamp, cmsg processing best to use loop w/test
	o use stdout and exit(0) for -h and -v (vs stderr and exit(1))
	o add python facetime scripts
	o Fix single thread compile breakage
	o fix windows cross compile
	o multiple spelling error fixes in comments and man page

Signed-off-by: Adolf Belka <adolf.belka@ipfire.org>
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2024-08-13 09:15:02 +00:00
Adolf Belka
40f45315b3 iperf: Update to version 2.1.8
- Update from version 2.1.7 to 2.1.8
- Update of rootfile not required
- Changelog
        2.1.8 (as of August 5th, 2022)
            o Add support for --bounceback to perform a repsonsiveness test (see man page for other options)
            o add support for working loads with --bounceback
            o Fix to wait_tick with Mac OS X
            o Various python pyflows commits
            o add support for client side tcp-write-time histograms and mean/min/max
            o add support for human readable dscp or -T values (see man page)
            o udp_accept no longer accepts packets from a previous run as a new connection, this can occur with long network delays
            o multiple isoch bug fixes for both UDP and TCP
            o isoch server provides mean/min/max/stdev for both frames and packets
            o UDP max MTU discovery, requires configure.ac will support --enable-discover-defaultlen prior to compile

Signed-off-by: Adolf Belka <adolf.belka@ipfire.org>
Reviewed-by: Peter Müller <peter.mueller@ipfire.org>
2023-01-05 10:48:21 +00:00
Adolf Belka
390a55dcfa iperf: Update to version 2.1.7
- Update from version 2.0.14a to 2.1.7
- Update of rootfile not required
- Changelog
   2.1.7 (as of April 5th, 2022)
	o Support for tcp bounceback test
	o Code clean up
	o Regression fixes (see git-log)
   2.1.6
	o Fix to major 2.1.5 regeressions
   2.1.5 change set as of (December 3, 2021)
	o fix some HAVE_IPV6 conditional changes
	o fix SO_TIMEOUT regressiony
	o ren sockets.c to socket_io.c
	o fix compile breakage per abs() returning an int instead of float
	o support for gettcpinfo on Mac OS X (tested on both M1 and x86 silicon)
	o move setsock_blocking from sockets into PerfSocket.cpp
	o don't require -V for v6, instead try v6 when v4 hostname lookup fails, client only
	o add assert in writen
	o add tcp RTT variance to client output
	o use setsockopt to get the nagle status
	o show Nagle and TOS settings on client
	o more on connect-only testing
	o sample and output the initial rtt and cwnd in the connect report
	o fix multiple fullduplex regressions
	o fix for HAVE_TCP_STATS in configure, then linux compile
	o writen can have more than one write, fix accounting when this occurs
	o fix tos with --reverse and --full-duplex
	o add support for --tos-override <value> on server
	o add support for  --tcp-drain, add mmm stats, histograms - experimental feature
	o multiple man page updates
	o fix partial histogram print to not show (f)
	o some new scripts in python flows
	o fixes to incr-srcport
	o fixes for --incr-dstport
	o fix regression on very first UDP packet having transit latency of zero
	o fix --reverse and --isochronous when --trip-times not set
	o fix client_init regression, pull out tcp_shutdown
	o fix reporter startup race and one second delay by setting the threads ready predicate and issuing the signal under a lock
	o fix first send accounting for small -n
	o fix configure.ac to use '=' instead of '=='
   2.1.4 change set as of (August 12, 2021)
	o fix TCP isoch regression
	o fix regression in UDP header exchange for tests like --reverse
	o Add support for TCP_NOTSENT_LOWAT vi --tcp-write-prefetch and select() before write()
	o Add support for TCP_WINDOW_CLAMP
	o Rework recvn() and writen() for when SO_SNDTIMEO and SO_RCVTIMEO are enabled
	o Add support for --histograms on select with --tcp-write-prefetch
	o Add support for bind to device on the listener, i.e. iperf -s -i 1 -e -B 0.0.0.0%eth0, will only accept/receive on the eth0 interface
	o Add support for virtual/tap interfaces
	o Add support for --hide-ips (don't show the ip addresses in the report outputs)
	o Fix units of -pps with --reverse, --fullduplex, -r and -d
	o Remove use of MSG_PEEK by moving the mBuf buffer from client/server object to settings context
	o Use MSG_WAITALL in recvn (collided with MSG_PEEK on Windows)
   2.1.3 change set as of (July 13, 2021)
	o relax cli errors a bit to WARN instead of ERROR
	o fix TCP read fatal error macro
	o fix UDP server to not fatal error on EINTR, use macro
	o handle and warn on failed read of tcp test flags
	o redesign of tcp retry (2.1.2 fix was incomplete)
	o thread exit signals reporter thread condition var for timely exits of the tool
   2.1.2 change set (as of June 25th, 2021)
	o fix TCP retry regression per interval reporting
   2.1.1 change set (as of June 23rd, 2021)
	o isochronous bug fix
	o -P and -B src port will increment for unique quintuple
	o support for port ranges, e.g. -p 6000-6008
	o double free fix per memory corruption when -l is less than 244
	o don't use pthread_join on the client --reverse, symptom hung client
	o fixes for --trip-times and small 64 byte packets
	o udp fail on reverse should exit
	o support for low duty cycle bursts (--burst-period and --burst-size)
	o final report fixes
	o full duplex ouput fixex
	o support for --incr-scrip
	o multicast setsockopt fixes
   2.1.0 change set (as of January 5th, 2021)
	o scaling improvements for -P, i.e. improved support for large numbers of traffic threads
	o major code refactoring (see doc/DESIGN_NOTES) for maintainability, extensibilty, performance, scaling, memory usage
	o support for full duplex traffic using --full-duplex
	o support for reverse traffic using --reverse
	o support for role-reversal character of asterisk in the transfer id
	o transfer id now an incrementing integer and no longer the socket id
	o support for TCP connect only tests with --connect-only
	o isochronous support compiled in by default, must use config to disable
	o support --isochronous for both UDP or TCP traffic to simulate video streams
	o support for low duty cycle traffic patterns via --burst-period and --burst-size
	o use of clock_nanosleep when supported to schedule isochronous burst starts, otherwise use nanosleep delay
	o support for --trip-times indicating the client and server clocks are synchronized to an accuracy sufficient, note: consider the use of precision time protocol as well as ask your data center to provide access to a GPS disciplined reference time source
	o support for --trip-times with -d and -r bidirectional tests
	o output TCP connect times (3WHS) in connect reports
	o support for application level tcp connect retries via --connect-retries n
	o rate-limited options of -b and --fq-rate supported for unidirectional, full duplex and reverse traffic
	o reporter thread designed to automatically cause packet reports to aggregate - mitigating and hopefully removing thread thrashing
	o support for frame or burst based reporting or sampling vs time based via -i [f|F] (experimental)
	o support for UDP traffic only from client to server with --no-udp-fin
	o support for write to read latencies (UDP and TCP) with --trip-times
	o support for sum only outputs with --sum-only
	o support for little's law calculations in --trip-time outputs
	o support for --txstart-time <epoch-time> to schedule client traffic start, timestamp support microseconds, e.g. unix $(expr $(date +%s) + 1).$(date +%N)
	o support for --txdelay-time to insert delay between TCP three way handshake (3WHS) and data transfer
	o support for --no-connect-sync which disables transmit traffic start synchronization when -P is used, defaults to synchronized
	o option of --full-duplex implementation uses a barrier on the client side to synchronize full duplex traffic
	o no limits to group sum reports, i.e. all clients will get its own sum report per a server
	o improved report timestamps, e.g. end to end or client and server based timestamps with --trip-times
	o improved settings messaging
	o improved messaging for --tcp-congestion or -Z
	o re-implemented -U for single UDP server with minimal threading interactions
	o re-implemented -1 or --singleclient where server will serialize traffic runs
	o warning message if the test were likely CPU bound instead of network i/o bound
	o fix the case when -P <value> is set on the server such that summing output is displayed
	o multicast listener will autoset -U (single server), e.g -P > 1 not supported for multicast
	o multicast listener no longer busy drops multicast packets during traffic test, i.e. only server thread receives them
	o immediate bail out on mutually exclusive command line options
	o getaddrinfo bug with -static linkage workaround and DNS lookup one time in setttings context vs twice in Settings and client traffic thread
	o fix -o or --output using freopen to redirect stdout and stderr to a file
	o support for --local-only which sets SO_DONTROUTE on a socket to limit traffic to local hosts (default is off)
	o support compile time option of --local-only to set on by default via ./configure --enable-default-localonly
	o support for date and time of in connect messages,
	  e.g. [  0] local 192.168.1.108%eth0 port 5001 connected with 192.168.1.62 port 36724 (MSS=453) (sock=5) on 2020-12-22 19:43:42 (PST)
	o support for feature of --permit-key and permit-key-timeout (defaults to 20 seconds.) The permit-key must match for the server to accpet the client's traffic. It also sets the transfer id. TCP only.
	o support for experimental feature of --near-congestion (tcp only)
	o man page updates with examples
	o tested with 1000's of traffic streams, WiFi, 10G and 100G

Signed-off-by: Adolf Belka <adolf.belka@ipfire.org>
Reviewed-by: Peter Müller <peter.mueller@ipfire.org>
2022-07-09 09:09:21 +00:00
Peter Müller
9a7e4d8506 Switch checksums from MD5 to BLAKE2
Historically, the MD5 checksums in our LFS files serve as a protection
against broken downloads, or accidentally corrupted source files.

While the sources are nowadays downloaded via HTTPS, it make sense to
beef up integrity protection for them, since transparently intercepting
TLS is believed to be feasible for more powerful actors, and the state
of the public PKI ecosystem is clearly not helping.

Therefore, this patch switches from MD5 to BLAKE2, updating all LFS
files as well as make.sh to deal with this checksum algorithm. BLAKE2 is
notably faster (and more secure) than SHA2, so the performance penalty
introduced by this patch is negligible, if noticeable at all.

In preparation of this patch, the toolchain files currently used have
been supplied with BLAKE2 checksums as well on
https://source.ipfire.org/.

Cc: Michael Tremer <michael.tremer@ipfire.org>
Signed-off-by: Peter Müller <peter.mueller@ipfire.org>
Acked-by: Michael Tremer <michael.tremeripfire.org>
2022-04-02 14:19:25 +00:00
Peter Müller
66c3619872 Early spring clean: Remove trailing whitespaces, and correct licence headers
Bumping across one of our scripts with very long trailing whitespaces, I
thought it might be a good idea to clean these up. Doing so, some
missing or inconsistent licence headers were fixed.

There is no need in shipping all these files en bloc, as their
functionality won't change.

Signed-off-by: Peter Müller <peter.mueller@ipfire.org>
2022-02-18 23:54:57 +00:00
Robin Roevens
f15707c78c buildprocess: Add extra metadata to pak lfs files
* Add a Summary and Services field to all pak lfs files
* Replace occurances of INSTALL_INITSCRIPT with new INSTALL_INITSCRIPTS
  macro in all pak lfs files.

Signed-off-by: Robin Roevens <robin.roevens@disroot.org>
Reviewed-by: Peter Müller <peter.mueller@ipfire.org>
2022-02-11 15:13:15 +00:00
Michael Tremer
54ac6b5333 iperf: Update automake
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2021-03-06 11:14:51 +00:00
Adolf Belka
382f92fa5b iperf: Update to 2.0.14a
- Update from version 2.0.13 to 2.0.14a
- No change in rootfiles
- Release notes for change:-
	o scaling improvements for -P, i.e. improved support for large numbers of traffic threads
	o major code refactoring (see doc/DESIGN_NOTES) for maintainability, extensibilty, performance, scaling, memory usage
	o support for full duplex traffic using --full-duplex
	o support for reverse traffic using --reverse
	o support for role-reversal character of asterisk in the transfer id
	o transfer id now an incrementing integer and no longer the socket id
	o support for TCP connect only tests with --connect-only
	o isochronous support compiled in by default, must use config to disable
	o support --isochronous for both UDP or TCP traffic to simulate video streams
	o use of clock_nanosleep when supported to schedule isochronous burst starts, otherwise use nanosleep delay
	o support for --trip-times indicating the client and server clocks are synchronized to an accuracy sufficient, note: consider the use of precision time protocol as well as ask your data center to provide access to a GPS disciplined reference time source
	o support for --trip-times with -d and -r bidirectional tests
	o output TCP connect times (3WHS) in connect reports
	o support for application level tcp connect retries via --connect-retries n
	o rate-limited options of -b and --fq-rate supported for unidirectional, full duplex and reverse traffic
	o reporter thread designed to automatically cause packet reports to aggregate - mitigating and hopefully removing thread thrashing
	o support for frame or burst based reporting or sampling vs time based via -i [f|F] (experimental)
	o support for UDP traffic only from client to server with --no-udp-fin
	o support for write to read latencies (UDP and TCP) with --trip-times
	o support for sum only outputs with --sum-only
	o support for little's law calculations in --trip-time outputs
	o support for --txstart-time <epoch-time> to schedule client traffic start, timestamp support microseconds, e.g. unix $(expr $(date +%s) + 1).$(date +%N)
	o support for --txdelay-time to insert delay between TCP three way handshake (3WHS) and data transfer
	o support for --no-connect-sync which disables transmit traffic start synchronization when -P is used, defaults to synchronized
	o option of --full-duplex implementation uses a barrier on the client side to synchronize full duplex traffic
	o no limits to group sum reports, i.e. all clients will get its own sum report per a server
	o improved report timestamps, e.g. end to end or client and server based timestamps with --trip-times
	o improved settings messaging
	o improved messaging for --tcp-congestion or -Z
	o re-implemented -U for single UDP server with minimal threading interactions
	o re-implemented -1 or --singleclient where server will serialize traffic runs
	o warning message if the test were likely CPU bound instead of network i/o bound
	o fix the case when -P <value> is set on the server such that summing output is displayed
	o multicast listener will autoset -U (single server), e.g -P > 1 not supported for multicast
	o multicast listener no longer busy drops multicast packets during traffic test, i.e. only server thread receives them
	o immediate bail out on mutually exclusive command line options
	o fix -o or --output using freopen to redirect stdout and stderr to a file
	o man page updates with examples
	o tested with 1000's of traffic streams, WiFi, 10G and 100G

Signed-off-by: Adolf Belka <ahb.ipfire@gmail.com>
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2020-12-28 13:15:24 +00:00
Michael Tremer
2dc2a27803 lfs: Drop quotes in DEPS variable
Not sure why this has ever been there. This simply makes it
nicer to read and edit because we can have line-breaks now.

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Signed-off-by: Arne Fitzenreiter <arne_f@ipfire.org>
2020-03-24 08:57:27 +00:00
Arne Fitzenreiter
e4e1b8718e iperf: update to 2.0.13
Signed-off-by: Arne Fitzenreiter <arne_f@ipfire.org>
2019-07-17 13:15:01 +02:00
Peter Müller
eee037b890 update disclaimer in LFS files
Most of these files still used old dates and/or domain names for contact
mail addresses. This is now replaced by an up-to-date copyright line.

Just some housekeeping... :-)

Signed-off-by: Peter Müller <peter.mueller@link38.eu>
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2018-09-10 19:20:36 +01:00
Michael Tremer
fd2e94fe11 iperf: Update to 2.0.9
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2017-05-18 12:09:34 +01:00
Christian Schmidt
1b22e11a6d Updated iperf to latest stable. 2011-03-14 18:49:20 +01:00
Daniel Glanzmann
034a390e6c Added netcat and iperf. 2008-09-25 19:09:07 +00:00