From: Mitch K. <mi...@nc...> - 2003-07-17 17:18:57
|
>X-Envelope-From: ai...@do... >X-Envelope-To: <mi...@nc...> >Date: Thu, 17 Jul 2003 16:17:07 +0100 (BST) >From: Asim Iqbal <ai...@do...> >To: Mitch Kutzko <mi...@nc...> >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@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 | mi...@da... | mi...@nc... | 217-333-1199 http://hobbes.ncsa.uiuc.edu/ |