1*7ab6e6acSAndroid Build Coastguard Worker.. _faq: 2*7ab6e6acSAndroid Build Coastguard Worker 3*7ab6e6acSAndroid Build Coastguard Workeriperf3 FAQ 4*7ab6e6acSAndroid Build Coastguard Worker========== 5*7ab6e6acSAndroid Build Coastguard Worker 6*7ab6e6acSAndroid Build Coastguard WorkerWhat is the history of iperf3, and what is the difference between iperf2 and iperf3? 7*7ab6e6acSAndroid Build Coastguard Worker iperf2 was orphaned in the late 2000s at version 2.0.5, despite some 8*7ab6e6acSAndroid Build Coastguard Worker known bugs and issues. After spending some time trying to fix 9*7ab6e6acSAndroid Build Coastguard Worker iperf2's problems, ESnet decided by 2010 that a new, simpler tool 10*7ab6e6acSAndroid Build Coastguard Worker was needed, and began development of iperf3. The goal was make the 11*7ab6e6acSAndroid Build Coastguard Worker tool as simple as possible, so others could contribute to the code 12*7ab6e6acSAndroid Build Coastguard Worker base. For this reason, it was decided to make the tool single 13*7ab6e6acSAndroid Build Coastguard Worker threaded, and not worry about backwards compatibility with 14*7ab6e6acSAndroid Build Coastguard Worker iperf2. Many of the feature requests for iperf3 came from the 15*7ab6e6acSAndroid Build Coastguard Worker perfSONAR project (http://www.perfsonar.net). 16*7ab6e6acSAndroid Build Coastguard Worker 17*7ab6e6acSAndroid Build Coastguard Worker Then in 2014, Bob (Robert) McMahon from Broadcom restarted 18*7ab6e6acSAndroid Build Coastguard Worker development of iperf2 (See 19*7ab6e6acSAndroid Build Coastguard Worker https://sourceforge.net/projects/iperf2/). He fixed many of the 20*7ab6e6acSAndroid Build Coastguard Worker problems with iperf2, and added a number of new features similar to 21*7ab6e6acSAndroid Build Coastguard Worker iperf3. iperf2.0.8, released in 2015, made iperf2 a useful tool. iperf2's 22*7ab6e6acSAndroid Build Coastguard Worker current development is focused is on using UDP for latency testing, as well 23*7ab6e6acSAndroid Build Coastguard Worker as broad platform support. 24*7ab6e6acSAndroid Build Coastguard Worker 25*7ab6e6acSAndroid Build Coastguard Worker As of this writing (2017), both iperf2 and iperf3 are being actively 26*7ab6e6acSAndroid Build Coastguard Worker (although independently) developed. We recommend being familiar with 27*7ab6e6acSAndroid Build Coastguard Worker both tools, and use whichever tool’s features best match your needs. 28*7ab6e6acSAndroid Build Coastguard Worker 29*7ab6e6acSAndroid Build Coastguard Worker A feature comparison of iperf2, iperf3, and nuttcp is available at: 30*7ab6e6acSAndroid Build Coastguard Worker https://fasterdata.es.net/performance-testing/network-troubleshooting-tools/throughput-tool-comparision/ 31*7ab6e6acSAndroid Build Coastguard Worker 32*7ab6e6acSAndroid Build Coastguard Workeriperf3 parallel stream performance is much less than iperf2. Why? 33*7ab6e6acSAndroid Build Coastguard Worker iperf3 is single threaded, and iperf2 is multi-threaded. We 34*7ab6e6acSAndroid Build Coastguard Worker recommend using iperf2 for parallel streams. 35*7ab6e6acSAndroid Build Coastguard Worker If you want to use multiple iperf3 streams use the method described `here <https://fasterdata.es.net/performance-testing/network-troubleshooting-tools/iperf/multi-stream-iperf3/>`_. 36*7ab6e6acSAndroid Build Coastguard Worker 37*7ab6e6acSAndroid Build Coastguard WorkerI’m trying to use iperf3 on Windows, but having trouble. What should I do? 38*7ab6e6acSAndroid Build Coastguard Worker iperf3 is not officially supported on Windows, but iperf2 is. We 39*7ab6e6acSAndroid Build Coastguard Worker recommend you use iperf2. 40*7ab6e6acSAndroid Build Coastguard Worker 41*7ab6e6acSAndroid Build Coastguard Worker Some people are using Cygwin to run iperf3 in Windows, but not all 42*7ab6e6acSAndroid Build Coastguard Worker options will work. Some community-provided binaries of iperf3 for 43*7ab6e6acSAndroid Build Coastguard Worker Windows exist. 44*7ab6e6acSAndroid Build Coastguard Worker 45*7ab6e6acSAndroid Build Coastguard WorkerHow can I build a statically-linked executable of iperf3? 46*7ab6e6acSAndroid Build Coastguard Worker There are a number of reasons for building an iperf3 executable with 47*7ab6e6acSAndroid Build Coastguard Worker no dependencies on any shared libraries. Unfortunately this isn't 48*7ab6e6acSAndroid Build Coastguard Worker quite a straight-forward process. 49*7ab6e6acSAndroid Build Coastguard Worker 50*7ab6e6acSAndroid Build Coastguard Worker The steps below have nominally been tested on CentOS 7.4, but 51*7ab6e6acSAndroid Build Coastguard Worker can probably be adapted for use with other Linux distributions: 52*7ab6e6acSAndroid Build Coastguard Worker 53*7ab6e6acSAndroid Build Coastguard Worker #. If necessary, install the static C libraries; for CentOS this is 54*7ab6e6acSAndroid Build Coastguard Worker the ``glibc-static`` package. 55*7ab6e6acSAndroid Build Coastguard Worker 56*7ab6e6acSAndroid Build Coastguard Worker #. If OpenSSL is installed, be sure that its static libraries are 57*7ab6e6acSAndroid Build Coastguard Worker also installed, from the ``openssl-static`` package. 58*7ab6e6acSAndroid Build Coastguard Worker 59*7ab6e6acSAndroid Build Coastguard Worker #. Be sure that ``lksctp-*`` packages are not installed, because 60*7ab6e6acSAndroid Build Coastguard Worker as of this writing, there do not appear to be any static 61*7ab6e6acSAndroid Build Coastguard Worker libraries available for SCTP. 62*7ab6e6acSAndroid Build Coastguard Worker 63*7ab6e6acSAndroid Build Coastguard Worker #. Configure iperf3 thusly: ``configure "LDFLAGS=--static" 64*7ab6e6acSAndroid Build Coastguard Worker --disable-shared`` These options are necessary to disable the 65*7ab6e6acSAndroid Build Coastguard Worker generation of shared libraries and link the executable 66*7ab6e6acSAndroid Build Coastguard Worker statically. For iperf-3.8 or later, configuring as ``configure 67*7ab6e6acSAndroid Build Coastguard Worker --enable-static-bin`` is another, shorter way to accomplish 68*7ab6e6acSAndroid Build Coastguard Worker this. If SCTP is installed on the system it might also be 69*7ab6e6acSAndroid Build Coastguard Worker necessary to pass the ``--without-sctp`` flag at configure 70*7ab6e6acSAndroid Build Coastguard Worker time. 71*7ab6e6acSAndroid Build Coastguard Worker 72*7ab6e6acSAndroid Build Coastguard Worker #. Compile as normal. 73*7ab6e6acSAndroid Build Coastguard Worker 74*7ab6e6acSAndroid Build Coastguard Worker It appears that for FreeBSD (tested on FreeBSD 11.1-RELEASE), only 75*7ab6e6acSAndroid Build Coastguard Worker the last two steps are needed to produce a static executable. 76*7ab6e6acSAndroid Build Coastguard Worker 77*7ab6e6acSAndroid Build Coastguard WorkerHow can I build on a system that doesn't support profiled executables? 78*7ab6e6acSAndroid Build Coastguard Worker This problem has been noted by users attempting to build iperf3 for 79*7ab6e6acSAndroid Build Coastguard Worker Android systems, as well as some recent versions of macOS. 80*7ab6e6acSAndroid Build Coastguard Worker There are several workarounds. In order from least 81*7ab6e6acSAndroid Build Coastguard Worker effort to most effort: 82*7ab6e6acSAndroid Build Coastguard Worker 83*7ab6e6acSAndroid Build Coastguard Worker #. Beginning with iperf-3.8, profiled executables are actually not 84*7ab6e6acSAndroid Build Coastguard Worker built by default, so this question becomes somewhat moot. Pass 85*7ab6e6acSAndroid Build Coastguard Worker the ``--enable-profiling`` flag to ``configure`` to build 86*7ab6e6acSAndroid Build Coastguard Worker profiled executables. 87*7ab6e6acSAndroid Build Coastguard Worker 88*7ab6e6acSAndroid Build Coastguard Worker #. In iperf-3.6 and iperf-3.7, the ``--disable-profiling`` flag can be 89*7ab6e6acSAndroid Build Coastguard Worker passed to ``configure`` to disable the building of profiled 90*7ab6e6acSAndroid Build Coastguard Worker object files and the profiled executable. 91*7ab6e6acSAndroid Build Coastguard Worker 92*7ab6e6acSAndroid Build Coastguard Worker #. At the time the linking of the iperf3 profiled executable fails, 93*7ab6e6acSAndroid Build Coastguard Worker the "normal" iperf3 executable is probably already created. So if 94*7ab6e6acSAndroid Build Coastguard Worker you are willing to accept the error exit from the make process 95*7ab6e6acSAndroid Build Coastguard Worker (and a little bit of wasted work on the build host), you might 96*7ab6e6acSAndroid Build Coastguard Worker not need to do anything. 97*7ab6e6acSAndroid Build Coastguard Worker 98*7ab6e6acSAndroid Build Coastguard Worker #. After the configure step, there will be a definition in 99*7ab6e6acSAndroid Build Coastguard Worker ``src/Makefile`` that looks like this:: 100*7ab6e6acSAndroid Build Coastguard Worker 101*7ab6e6acSAndroid Build Coastguard Worker noinst_PROGRAMS = t_timer$(EXEEXT) t_units$(EXEEXT) t_uuid$(EXEEXT) \ 102*7ab6e6acSAndroid Build Coastguard Worker iperf3_profile$(EXEEXT) 103*7ab6e6acSAndroid Build Coastguard Worker 104*7ab6e6acSAndroid Build Coastguard Worker If you edit it to look like this, it will disable the build of the profiled iperf3:: 105*7ab6e6acSAndroid Build Coastguard Worker 106*7ab6e6acSAndroid Build Coastguard Worker noinst_PROGRAMS = t_timer$(EXEEXT) t_units$(EXEEXT) t_uuid$(EXEEXT) 107*7ab6e6acSAndroid Build Coastguard Worker 108*7ab6e6acSAndroid Build Coastguard Worker #. Similar to item 2 above, but more permanent...if you edit 109*7ab6e6acSAndroid Build Coastguard Worker ``src/Makefile.am`` and change the line reading like this:: 110*7ab6e6acSAndroid Build Coastguard Worker 111*7ab6e6acSAndroid Build Coastguard Worker noinst_PROGRAMS = t_timer t_units t_uuid iperf3_profile 112*7ab6e6acSAndroid Build Coastguard Worker 113*7ab6e6acSAndroid Build Coastguard Worker To look like this:: 114*7ab6e6acSAndroid Build Coastguard Worker 115*7ab6e6acSAndroid Build Coastguard Worker noinst_PROGRAMS = t_timer t_units t_uuid 116*7ab6e6acSAndroid Build Coastguard Worker 117*7ab6e6acSAndroid Build Coastguard Worker And then run ``./bootstrap.sh``, that will regenerate the project 118*7ab6e6acSAndroid Build Coastguard Worker Makefiles to make the exclusion of the profiled iperf3 executable 119*7ab6e6acSAndroid Build Coastguard Worker permanant (within that source tree). 120*7ab6e6acSAndroid Build Coastguard Worker 121*7ab6e6acSAndroid Build Coastguard WorkerI'm seeing quite a bit of unexpected UDP loss. Why? 122*7ab6e6acSAndroid Build Coastguard Worker First, confirm you are using iperf 3.1.5 or higher. There was an 123*7ab6e6acSAndroid Build Coastguard Worker issue with the default UDP send size that was fixed in 124*7ab6e6acSAndroid Build Coastguard Worker 3.1.5. Second, try adding the flag ``-w2M`` to increase the socket 125*7ab6e6acSAndroid Build Coastguard Worker buffer sizes. That seems to make a big difference on some hosts. 126*7ab6e6acSAndroid Build Coastguard Worker 127*7ab6e6acSAndroid Build Coastguard Workeriperf3 UDP does not seem to work at bandwidths less than 100Kbps. Why? 128*7ab6e6acSAndroid Build Coastguard Worker You'll need to reduce the default packet length to get UDP rates of less that 100Kbps. Try ``-l100``. 129*7ab6e6acSAndroid Build Coastguard Worker 130*7ab6e6acSAndroid Build Coastguard WorkerTCP throughput drops to (almost) zero during a test, what's going on? 131*7ab6e6acSAndroid Build Coastguard Worker A drop in throughput to almost zero, except maybe for the first 132*7ab6e6acSAndroid Build Coastguard Worker reported interval(s), may be related to problems in NIC TCP Offload, 133*7ab6e6acSAndroid Build Coastguard Worker which is used to offload TCP functionality to the NIC (see 134*7ab6e6acSAndroid Build Coastguard Worker https://en.wikipedia.org/wiki/TCP_offload_engine). The goal of TCP 135*7ab6e6acSAndroid Build Coastguard Worker Offload is to save main CPU performance, mainly in the areas of 136*7ab6e6acSAndroid Build Coastguard Worker segmentation and reassembly of large packets and checksum 137*7ab6e6acSAndroid Build Coastguard Worker computation. 138*7ab6e6acSAndroid Build Coastguard Worker 139*7ab6e6acSAndroid Build Coastguard Worker When TCP packets are sent with the "Don't Fragment" flag set, which 140*7ab6e6acSAndroid Build Coastguard Worker is the recommended setting, segmentation is done by the TCP stack 141*7ab6e6acSAndroid Build Coastguard Worker based on the reported next hop MSS in the ICMP Fragmentation Needed 142*7ab6e6acSAndroid Build Coastguard Worker message. With TCP Offload, active segmentation is done by the NIC on 143*7ab6e6acSAndroid Build Coastguard Worker the sending side, which is known as TCP Segmentation offload (TSO) 144*7ab6e6acSAndroid Build Coastguard Worker or in Windows as Large Send Offload (LSO). It seems that there are 145*7ab6e6acSAndroid Build Coastguard Worker TSO/LSO implementations which for some reason ignore the reported 146*7ab6e6acSAndroid Build Coastguard Worker MSS and therefore don’t perform segmentation. In these cases, when 147*7ab6e6acSAndroid Build Coastguard Worker large packets are sent, e.g. the default iperf3 128KB (131,072 148*7ab6e6acSAndroid Build Coastguard Worker bytes), iperf3 will show that data was sent in the first interval, 149*7ab6e6acSAndroid Build Coastguard Worker but since the packets don’t get to the server, no ack is received 150*7ab6e6acSAndroid Build Coastguard Worker and therefore no data is sent in the following intervals. It may 151*7ab6e6acSAndroid Build Coastguard Worker happen that after certain timeout the main CPU will re-send the 152*7ab6e6acSAndroid Build Coastguard Worker packet by re-segmenting it, and in these cases data will get to the 153*7ab6e6acSAndroid Build Coastguard Worker server after a while. However, it seems that segmentation is not 154*7ab6e6acSAndroid Build Coastguard Worker automatically continued with the next packet, so the data transfer 155*7ab6e6acSAndroid Build Coastguard Worker rate be very low. 156*7ab6e6acSAndroid Build Coastguard Worker 157*7ab6e6acSAndroid Build Coastguard Worker The recommended solution in such a case is to disable TSO/LSO, at 158*7ab6e6acSAndroid Build Coastguard Worker least on the relevant port. See for example: 159*7ab6e6acSAndroid Build Coastguard Worker https://atomicit.ca/kb/articles/slow-network-speed-windows-10/. If 160*7ab6e6acSAndroid Build Coastguard Worker that doesn’t help then "Don't Fragment" TCP flag may be 161*7ab6e6acSAndroid Build Coastguard Worker disabled. See for example: 162*7ab6e6acSAndroid Build Coastguard Worker https://support.microsoft.com/en-us/help/900926/recommended-tcp-ip-settings-for-wan-links-with-a-mtu-size-of-less-than. However, 163*7ab6e6acSAndroid Build Coastguard Worker note that disabling the “Don’t Fragment” flag may cause other 164*7ab6e6acSAndroid Build Coastguard Worker issues. 165*7ab6e6acSAndroid Build Coastguard Worker 166*7ab6e6acSAndroid Build Coastguard Worker To test whether TSO/LSO may be the problem, do the following: 167*7ab6e6acSAndroid Build Coastguard Worker 168*7ab6e6acSAndroid Build Coastguard Worker * If different machine configurations are used for the client and 169*7ab6e6acSAndroid Build Coastguard Worker server, try the iperf3 reverse mode (``-R``). If TSO/LSO is only 170*7ab6e6acSAndroid Build Coastguard Worker enabled on the client machine, this test should succeed. 171*7ab6e6acSAndroid Build Coastguard Worker * Reduce the sending length to a small value that should not require 172*7ab6e6acSAndroid Build Coastguard Worker segmentation, using the iperf3 ``-l`` option, e.g. ``-l 512``. It 173*7ab6e6acSAndroid Build Coastguard Worker may also help to reduce the MTU by using the iperf3 ``-M`` option, 174*7ab6e6acSAndroid Build Coastguard Worker e.g. ``-M 1460``. 175*7ab6e6acSAndroid Build Coastguard Worker * Using tools like Wireshark, identify the required MSS in the ICMP 176*7ab6e6acSAndroid Build Coastguard Worker Fragmentation Needed messages (if reported). Run tests with the 177*7ab6e6acSAndroid Build Coastguard Worker ``-l`` value set to 2 times the MSS and then 4 times, 6 times, 178*7ab6e6acSAndroid Build Coastguard Worker etc. With TSO/LSO issue in each test the throughput should be 179*7ab6e6acSAndroid Build Coastguard Worker reduced more. It may help to increase the testing time beyond the 180*7ab6e6acSAndroid Build Coastguard Worker default 10 seconds to better see the behavior (iperf3 ``-t`` 181*7ab6e6acSAndroid Build Coastguard Worker option). 182*7ab6e6acSAndroid Build Coastguard Worker 183*7ab6e6acSAndroid Build Coastguard WorkerWhat congestion control algorithms are supported? 184*7ab6e6acSAndroid Build Coastguard Worker On Linux, run this command to see the available congestion control 185*7ab6e6acSAndroid Build Coastguard Worker algorithms (note that some algorithms are packaged as kernel 186*7ab6e6acSAndroid Build Coastguard Worker modules, which must be loaded before they can be used):: 187*7ab6e6acSAndroid Build Coastguard Worker 188*7ab6e6acSAndroid Build Coastguard Worker /sbin/sysctl net.ipv4.tcp_available_congestion_control 189*7ab6e6acSAndroid Build Coastguard Worker 190*7ab6e6acSAndroid Build Coastguard Worker On FreeBSD, the equivalent command is:: 191*7ab6e6acSAndroid Build Coastguard Worker 192*7ab6e6acSAndroid Build Coastguard Worker /sbin/sysctl net.inet.tcp.cc.available 193*7ab6e6acSAndroid Build Coastguard Worker 194*7ab6e6acSAndroid Build Coastguard WorkerI’m using the ``--logfile`` option. How do I see file output in real time? 195*7ab6e6acSAndroid Build Coastguard Worker Use the ``--forceflush`` flag. 196*7ab6e6acSAndroid Build Coastguard Worker 197*7ab6e6acSAndroid Build Coastguard WorkerI'm using the --fq-rate flag, but it does not seem to be working. Why? 198*7ab6e6acSAndroid Build Coastguard Worker You need to add 'net.core.default_qdisc = fq' to /etc/sysctl.conf for that option to work. 199*7ab6e6acSAndroid Build Coastguard Worker 200*7ab6e6acSAndroid Build Coastguard WorkerI'm having trouble getting iperf3 to work on Windows, Android, etc. Where can I get help? 201*7ab6e6acSAndroid Build Coastguard Worker iperf3 only supports Linux, FreeBSD, and OSX. For other platforms we recommend using iperf2. 202*7ab6e6acSAndroid Build Coastguard Worker 203*7ab6e6acSAndroid Build Coastguard WorkerI managed to get a Windows executable built, but why do I get a BSOD on Windows 7? 204*7ab6e6acSAndroid Build Coastguard Worker There seems to be a bug in Windows 7 where running iperf3 from a 205*7ab6e6acSAndroid Build Coastguard Worker network filesystem can cause a system crash (in other words Blue 206*7ab6e6acSAndroid Build Coastguard Worker Screen of Death, or BSOD). This is a Windows bug addressed in kb2839149: 207*7ab6e6acSAndroid Build Coastguard Worker 208*7ab6e6acSAndroid Build Coastguard Worker https://support.microsoft.com/en-us/help/2839149/stop-error-0x00000027-in-the-rdbss-sys-process-in-windows-7-or-windows 209*7ab6e6acSAndroid Build Coastguard Worker 210*7ab6e6acSAndroid Build Coastguard Worker A hotfix is available under kb2732673: 211*7ab6e6acSAndroid Build Coastguard Worker 212*7ab6e6acSAndroid Build Coastguard Worker https://support.microsoft.com/en-us/help/2732673/-delayed-write-failed-error-message-when--pst-files-are-stored-on-a-ne 213*7ab6e6acSAndroid Build Coastguard Worker 214*7ab6e6acSAndroid Build Coastguard WorkerWhy can’t I run a UDP client with no server? 215*7ab6e6acSAndroid Build Coastguard Worker This is potentially dangerous, and an attacker could use this for a 216*7ab6e6acSAndroid Build Coastguard Worker denial of service attack. We don't want iperf3 to be an attack tool. 217*7ab6e6acSAndroid Build Coastguard Worker 218*7ab6e6acSAndroid Build Coastguard WorkerI'm trying to use iperf3 to test a 40G/100G link...What do I need to know? 219*7ab6e6acSAndroid Build Coastguard Worker See the following pages on fasterdata.es.net: 220*7ab6e6acSAndroid Build Coastguard Worker 221*7ab6e6acSAndroid Build Coastguard Worker - https://fasterdata.es.net/host-tuning/100g-tuning/ 222*7ab6e6acSAndroid Build Coastguard Worker - https://fasterdata.es.net/performance-testing/network-troubleshooting-tools/iperf/multi-stream-iperf3/ 223*7ab6e6acSAndroid Build Coastguard Worker 224*7ab6e6acSAndroid Build Coastguard WorkerMy receiver didn't get all the bytes that got sent but there was no loss. Huh? 225*7ab6e6acSAndroid Build Coastguard Worker iperf3 uses a control connection between the client and server to 226*7ab6e6acSAndroid Build Coastguard Worker manage the start and end of each test. Sometimes the commands on 227*7ab6e6acSAndroid Build Coastguard Worker the control connection can be received and acted upon before all of 228*7ab6e6acSAndroid Build Coastguard Worker the test data has been processed. Thus the test ends with data 229*7ab6e6acSAndroid Build Coastguard Worker still in flight. This effect can be significant for short (a few 230*7ab6e6acSAndroid Build Coastguard Worker seconds) tests, but is probably negligible for longer tests. 231*7ab6e6acSAndroid Build Coastguard Worker 232*7ab6e6acSAndroid Build Coastguard WorkerA file sent using the ``-F`` option got corrupted...what happened? 233*7ab6e6acSAndroid Build Coastguard Worker The ``-F`` option to iperf3 is not a file transfer utility. It's a 234*7ab6e6acSAndroid Build Coastguard Worker way of testing the end-to-end performance of a file transfer, 235*7ab6e6acSAndroid Build Coastguard Worker including filesystem and disk overheads. So while the test will 236*7ab6e6acSAndroid Build Coastguard Worker mimic an actual file transfer, the data stored to disk may not be 237*7ab6e6acSAndroid Build Coastguard Worker the same as what was sent. In particular, the file size will be 238*7ab6e6acSAndroid Build Coastguard Worker rounded up to the next larger multiple of the transfer block size, 239*7ab6e6acSAndroid Build Coastguard Worker and for UDP tests, iperf's metadata (containing timestamps and 240*7ab6e6acSAndroid Build Coastguard Worker sequence numbers) will overwrite the start of every UDP packet 241*7ab6e6acSAndroid Build Coastguard Worker payload. 242*7ab6e6acSAndroid Build Coastguard Worker 243*7ab6e6acSAndroid Build Coastguard WorkerI have a question regarding iperf3...what's the best way to get help? 244*7ab6e6acSAndroid Build Coastguard Worker Searching on the Internet is a good first step. 245*7ab6e6acSAndroid Build Coastguard Worker http://stackoverflow.com/ has a number of iperf3-related questions 246*7ab6e6acSAndroid Build Coastguard Worker and answers, but a simple query into your favorite search engine can 247*7ab6e6acSAndroid Build Coastguard Worker also yield some results. 248*7ab6e6acSAndroid Build Coastguard Worker 249*7ab6e6acSAndroid Build Coastguard Worker There is a mailing list nominally used for iperf3 development, 250*7ab6e6acSAndroid Build Coastguard Worker [email protected]. 251*7ab6e6acSAndroid Build Coastguard Worker 252*7ab6e6acSAndroid Build Coastguard Worker We discourage the use of the iperf3 issue tracker on GitHub for 253*7ab6e6acSAndroid Build Coastguard Worker support questions. Actual bug reports, enhancement requests, or 254*7ab6e6acSAndroid Build Coastguard Worker pull requests are encouraged, however. 255*7ab6e6acSAndroid Build Coastguard Worker 256*7ab6e6acSAndroid Build Coastguard Worker 257