Taking IPv6 support out of the Sun client as you suggested worked great. The Sun server now can accept UDP connections. I have a new problem though
I have a test where I send short bursts of small packets with iperf. The following is the Windows out
C:\>iperf -c 192.168.3.200 -u -l 18 -n 54
------------------------------------------------------------
Client connecting to 192.168.3.200, UDP port 5001
Sending 18 byte datagrams
UDP buffer size: 8.00 KByte (default)
------------------------------------------------------------
[140] local 0.0.0.0 port 2038 connected with 192.168.3.200 port 5001
[ ID] Interval Transfer Bandwidth
[140] 0.0- 0.0 sec 54.0 Bytes 43.1 Kbits/sec
read failed: Message too long
C:\>
The transfer works as reported by the Sun server
[ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams
[ 3] 0.0- 0.0 sec 54.0 Bytes 62.6 Kbits/sec 0.031 ms 0/ 3 (0%)
I was just concerned about the error message at the end of the run on the Windows NT machine, which is running an unmodified 1.6.5.
Thanks
Paul
-----Original Message-----
From: Kevin Gibbs [mailto:kgibbs --at-- ncsa.uiuc.edu]
Sent: Thursday, February 06, 2003 4:05 PM
To: paul shields
Cc: iperf-users --at-- dast.nlanr.net
Subject: Re: Iperf UDP issue
On Thu, 6 Feb 2003, paul shields wrote:
> It seems that iperf clients expect an acknowledgement of the last UDP packet
> sent and if they don't get it, resend the last packet 10 times. Also, when
> the client drops the connection finally, the server also quits with a can't
> getpeeraddress error.
>
> 1. Why does the client expect a response on UDP traffic.
Well the way that Iperf is written there are resources on the server that
need to be freed when a client is done sending (Not true for lots of UDP
applications like say DNS). Since the first final packet is sent at the
speed of the test there is a good chance that packet will get dropped if
the sending rate is too high. As such the client will resend it 10 times
at 1 sec intervals so as to increase the likelihood that it makes it to
the server and the server can release its resources. The response lets the
client know that it can stop the resend process. Yes there are lots of
different ways of doing this but that is were we are right now.
> 2. Can the server be made to stay up in UDP mode when a client disconnects?
As Vivek restated a temporary fix is to change the FAIL_errno() to
WARN_errno() for your case the one you want is in lib/Socket.cpp line 332
(in the Iperf 1.6.5 source). There are a LOT of errors that result in
closing the server, which is not always neccessary or practical. I need to
spend a significant amount of time looking into all of them and making
permanent fixes/changes.
Kevin