Re: Adding more Iperf options
>X-Envelope-From: ai100 --at-- doc.ic.ac.uk
>X-Envelope-To: <mitch --at-- ncsa.uiuc.edu>
>Date: Thu, 17 Jul 2003 16:17:07 +0100 (BST)
>From: Asim Iqbal <ai100 --at-- doc.ic.ac.uk>
>To: Mitch Kutzko <mitch --at-- ncsa.uiuc.edu>
>Subject: Re: Adding more Iperf options
>X-MD5SUM: a27811739b1dcfa7c7fdf3656209a796
>X-SpamBouncer: 1.6 beta (8/16/02)
>X-SBClass: OK
>X-Folder: Default
>
>Hi,
>
>I am currently adapting Iperf to run an additional transport protocol
>called SCTP. SCTP works on exactly the same layer as TCP and UDP. I have
>managed to succesfully port SCTP over to Iperf (with a lot of help from
>Kevin Gibbs) by simply changing the way sockets are opened in
>lib/Socket.cpp . Basically I write over the code where it opens a TCP
>socket and change in to an SCTP socket. So I change:
>
> mSock = socket( domain, type, 0 );
>
>to
>
> mSock = socket( domain, type, IPPROTO_SCTP );
>
>in both void Socket::Listen and void Socket::Connect.
>
>In doing this I am effectively writing over TCP with SCTP, therefore I
>can no longer use TCP. I would like to make a version of Iperf which
>will support both protocols, perhaps by adding a new command line flag
>which sets sctp.
>
>The version of Iperf I am using is iperf-1.6.5, its an older version but
>the guys at work use it because it seems to be better when using large
>bandwiths and they're not so interested in the bi-directional features
>of 1.7.0.
>
>So this is what I have done so far:
>
>(1) Changed src/Settings.cpp to add an extra flag 'z' which selects
>SCTP.
>(2) In src/Settings.hpp added functions GetSCTPRate and GetSCTPRateSet,
>I have altered GetProtocolMode to allow for a third protocol. Added
>mSCTPRate abd mSCTPRateSet varaibles.
>(3) Created a PerfSocket_SCTP.cpp file.
>(4) Changed all references/definitions of socket to incorporate a bool
>inSCTP variable.
>(5) in lib/Socket I have a condition statement which is supposed to
>open an SCTP socket if mSCTP set.
>
>When I run the program it opens a UDP socket and then fails.
>
>[asim --at-- w03gva iperf-1.6.5-hb-sctp-options.old]$ ./iperf -s -z
>sctp selected
>------------------------------------------------------------
>Server listening on UDP port 5001
>Receiving 8192 byte datagrams
>UDP buffer size: 32.0 KByte (default)
>------------------------------------------------------------
>recvfrom failed: Transport endpoint is not connected
>
>I'm not exactly sure how to pass an "sctp set flag" to lib/Socket.cpp
>from src/Settings.cpp. I have been looking at the way UDP is set but am
>a bit confused as to how kmode_UDP is changed to true.
>
>Also what is the value of mTCPRate if you do not select the -a flag?
>
>I do not know how much support you give to iperf-1.6.5, but I thought I
>would run my question by you. Would you be interested in this iperf-sctp
>later on?
>
>Thanks in advance,
>
>Asim
>
>
--
Mitch Kutzko | mitch --at-- dast.nlanr.net | mitch --at-- ncsa.uiuc.edu | 217-333-1199
http://hobbes.ncsa.uiuc.edu/