2011-07-05 08:42:56     "iperf -r" doesn't work

Document created by Aaronwu Employee on Aug 27, 2013
Version 1Show Document
  • View in full screen mode

2011-07-05 08:42:56     "iperf -r" doesn't work

Gilles Ganault (FRANCE)

Message: 102129   

Hello

 

On uClinux 2010, I wanted to try iperf (2.0.4 from 7 Apr 2008) to check how well the dm9000 Ethernet port worked.

 

When using the "-r" ("reverse") option so that the uClinux client would send data to the workstation, and then reverse and start receiving data, it doesn't work:

 

=========== workstation# iperf -s -m

------------------------------------------------------------

Server listening on TCP port 5001

TCP window size: 85.3 KByte (default)

------------------------------------------------------------

[  4] local 192.168.0.3 port 5001 connected with 192.168.0.9 port 38232

[ ID] Interval       Transfer     Bandwidth

[  4]  0.0-30.0 sec   134 MBytes  37.5 Mbits/sec

[  4] MSS size 1448 bytes (MTU 1500 bytes, ethernet)

------------------------------------------------------------

Client connecting to 192.168.0.9, TCP port 5001

TCP window size: 16.0 KByte (default)

------------------------------------------------------------

[  4] local 192.168.0.3 port 36731 connected with 192.168.0.9 port 5001

 

=========== appliance# iperf -c workstation -t 30 -i 1 -r

...

[ ID] Interval       Transfer     Bandwidth

[  6] 27.0-28.0 sec  4.47 MBytes  37.5 Mbits/sec

[ ID] Interval       Transfer     Bandwidth

[  6] 28.0-29.0 sec  4.48 MBytes  37.6 Mbits/sec

Waiting for server threads to complete. Interrupt again to force quit.

[ ID] Interval       Transfer     Bandwidth

[  6] 29.0-30.0 sec  4.47 MBytes  37.5 Mbits/sec

[ ID] Interval       Transfer     Bandwidth

[  6]  0.0-30.0 sec    134 MBytes  37.5 Mbits/sec

root:~>

===========

 

Apparently, the iperf client on uClinux is unable to start receiving data from the workstation.

 

Has someone experienced this too?

 

Thank you.

QuoteReplyEditDelete

 

 

2011-07-05 09:41:51     Re: "iperf -r" doesn't work

Gilles Ganault (FRANCE)

Message: 102130   

 

So I tried cross-compiling the source directly from the Iperf site, but it fails:

 

/usr/src/iperf-2.0.5# CC=bfin-linux-uclibc-gcc ./configure

 

/usr/src/iperf-2.0.5# make

 

...

 

if bfin-linux-uclibc-gcc -DHAVE_CONFIG_H -I. -I. -I..  -I../include -I../include  -Wall -O2  -MT tcp_window_size.o -MD -MP -MF ".deps/tcp_window_size.Tpo" -c -o tcp_window_size.o tcp_window_size.c; \

 

        then mv -f ".deps/tcp_window_size.Tpo" ".deps/tcp_window_size.Po"; else rm -f ".deps/tcp_window_size.Tpo"; exit 1; fi

 

g++ -Wall -O2    -o iperf -O2  -pthread  -DHAVE_CONFIG_H Client.o Extractor.o Launch.o List.o Listener.o Locale.o PerfSocket.o ReportCSV.o ReportDefault.o Reporter.o Server.o Settings.o SocketAddr.o gnu_getopt.o gnu_getopt_long.o main.o service.o sockets.o stdio.o tcp_window_size.o ../compat/libcompat.a

 

/usr/bin/ld: Extractor.o: Relocations in generic ELF (EM: 106)

 

Extractor.o: could not read symbols: File in wrong format

 

collect2: ld returned 1 exit status

 

make[2]: *** [iperf] Error 1

 

make[2]: Leaving directory `/usr/src/iperf-2.0.5/src'

 

make[1]: *** [all-recursive] Error 1

 

make[1]: Leaving directory `/usr/src/iperf-2.0.5'

 

make: *** [all] Error 2

 

 

/usr/src/iperf-2.0.5# make clean

 

/usr/src/iperf-2.0.5# CC=bfin-linux-uclibc-g++ ./configure

 

/usr/src/iperf-2.0.5# make

 

...

 

if bfin-linux-uclibc-g++ -DHAVE_CONFIG_H -I. -I. -I..  -I../include -I../include  -Wall -O2  -MT ReportCSV.o -MD -MP -MF ".deps/ReportCSV.Tpo" -c -o ReportCSV.o ReportCSV.c; \

 

        then mv -f ".deps/ReportCSV.Tpo" ".deps/ReportCSV.Po"; else rm -f ".deps/ReportCSV.Tpo"; exit 1; fi

 

ReportCSV.c: In function ‘void* CSV_peer(Connection_Info*, int)’:

 

ReportCSV.c:101: error: invalid conversion from ‘void*’ to ‘char*’

 

make[2]: *** [ReportCSV.o] Error 1

 

make[2]: Leaving directory `/usr/src/iperf-2.0.5/src'

 

make[1]: *** [all-recursive] Error 1

 

make[1]: Leaving directory `/usr/src/iperf-2.0.5'

 

make: *** [all] Error 2

QuoteReplyEditDelete

 

 

2011-07-06 06:40:03     Re: "iperf -r" doesn't work

Aaron Wu (CHINA)

Message: 102167   

 

Similar operations between two ubuntu X86 PCs returns the same result:

 

 

 

iperf -s -m

------------------------------------------------------------

Server listening on TCP port 5001

TCP window size: 85.3 KByte (default)

------------------------------------------------------------

[  4] local 10.99.29.99 port 5001 connected with 10.99.22.118 port 34793

[ ID] Interval       Transfer     Bandwidth

[  4]  0.0-10.0 sec    113 MBytes  94.1 Mbits/sec

[  4] MSS size 1448 bytes (MTU 1500 bytes, ethernet)

 

 

Croot@aaron-desktop:/home/aaron/temp# iperf -c 10.99.29.99 -t 10 -i 1 -r

------------------------------------------------------------

Server listening on TCP port 5001

TCP window size: 85.3 KByte (default)

------------------------------------------------------------

------------------------------------------------------------

Client connecting to 10.99.29.99, TCP port 5001

TCP window size:   138 KByte (default)

------------------------------------------------------------

[  5] local 10.99.22.118 port 34793 connected with 10.99.29.99 port 5001

[ ID] Interval       Transfer     Bandwidth

[  5]  0.0- 1.0 sec  11.4 MBytes  95.9 Mbits/sec

[  5]  1.0- 2.0 sec  11.3 MBytes  94.9 Mbits/sec

[  5]  2.0- 3.0 sec  11.4 MBytes  95.4 Mbits/sec

[  5]  3.0- 4.0 sec  11.2 MBytes  93.8 Mbits/sec

[  5]  4.0- 5.0 sec  11.2 MBytes  93.8 Mbits/sec

[  5]  5.0- 6.0 sec  11.2 MBytes  94.3 Mbits/sec

[  5]  6.0- 7.0 sec  11.2 MBytes  93.8 Mbits/sec

[  5]  7.0- 8.0 sec  11.4 MBytes  95.4 Mbits/sec

[  5]  8.0- 9.0 sec  11.2 MBytes  93.8 Mbits/sec

Waiting for server threads to complete. Interrupt again to force quit.

[  5]  9.0-10.0 sec  11.2 MBytes  93.8 Mbits/sec

[  5]  0.0-10.0 sec    113 MBytes  94.4 Mbits/sec

QuoteReplyEditDelete

 

 

2011-07-06 17:57:28     Re: "iperf -r" doesn't work

Gilles Ganault (FRANCE)

Message: 102177   

 

Thanks Aaron. I should have run a test between two x86 hosts to see if this were iperf- or uClinux-related.

QuoteReplyEditDelete

Attachments

    Outcomes