If using the -l option together with multiple TCP streams then at the end of the data transfer the iperf displays the report for only one stream. There is no report for the other n-1 streams nor for the total sum of all streams.
Looking in Wireshark, it appeared that iperf server sent at the end of the data transfer a TCP FIN only for one stream, so the other n-1 streams remained open and then the report displayed by the iperf was for only that terminated TCP stream.
The issue does not appear if using -l with one single TCP stream, nor if using multiple TCP streams without -l option, so for having this problem it is needed to use -l option AND more than one TCP stream (-P <nb streams="" greater="" than="" 1="">).</nb>
Client connecting to 127.0.0.1, TCP port 5001
TCP window size: 64.0 KByte (default)
[ 4] local 127.0.0.1 port 53773 connected with 127.0.0.1 port 5001
[ 5] local 127.0.0.1 port 53774 connected with 127.0.0.1 port 5001
[ 3] local 127.0.0.1 port 53772 connected with 127.0.0.1 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0-10.0 sec 277 MBytes 232 Mbits/sec
Server listening on TCP port 5001
TCP window size: 64.0 KByte (default)
[ 4] local 127.0.0.1 port 5001 connected with 127.0.0.1 port 53772
[ 5] local 127.0.0.1 port 5001 connected with 127.0.0.1 port 53773
[ 6] local 127.0.0.1 port 5001 connected with 127.0.0.1 port 53774
[ ID] Interval Transfer Bandwidth
[ 4] 0.0-10.0 sec 277 MBytes 232 Mbits/sec
iperf version used 2.0.5 (same behavior if using Win or Linux iperf clients and or servers)
Typo: 'Looking in Wireshark, it appeared that iperf server sent...' should be:
Looking in Wireshark, it appeared that iperf CLIENT sent...'