1-----BEGIN PGP SIGNED MESSAGE----- 2 3 thrulay-0.7 release notes 4 5This release incorporates the results of the work of Bernhard Lutzmann 6on his Google Summer of Code project. Bernhard's project report is 7appended to these release notes. I would like to thank Bernhard for 8his hard work on thrulay this summer and to congratulate him on the 9excellent results. 10 11We are in the process of incorporating of changes made by Huadong Liu 12in his Google Summer of Code project into the main code base. These 13should be included in a future release. Most importantly, they would 14include (i) an API for programmatic access to thrulay tests (this is 15useful for tools that wrap thrulay in other code for the purposes of 16regular monitoring, coordination of tests or additional access 17control) and (ii) improvements to on-the-fly quantile calculations. 18 19In addition, Huadong will serve as a release engineer for the project. 20 21The new thrulay release can be found at SourceForge or in the usual 22direct location: 23 24http://sourceforge.net/projects/thrulay/ 25 26http://www.internet2.edu/~shalunov/thrulay/thrulay-0.7.tar.gz 27 28SHA1(thrulay-0.7.tar.gz) = 881709982ae9bde1477818dd14a20ca448400685 29 30 --Stanislav 31 32-----BEGIN PGP SIGNATURE----- 33Version: PGPfreeware 5.0i for non-commercial use 34 35iQCVAwUBQ1QL15RUn1EgN49xAQF32gP6A+mj/Q5R1tFhf1SfGHhmluFw5Wxlsc3R 36VNFlDDvRniMOjspMS7RPkv1da7aO1A0rJ+/Em+adkUWMMaVEYb7uqoNs+vCPfwNe 37ESO9H6uiaE8OVGeaRpwephOHsSPHqnZJhdEaI0qjhxbt4jsPMAb48kHOGUg2BJum 38HK5NGLicuLQ= 39=lMxE 40-----END PGP SIGNATURE----- 41-- 42Stanislav Shalunov http://www.internet2.edu/~shalunov/ 43 44Just my 0.086g of Ag. 45 46 47 48 49 50 thrulay-ng: Enhancements for thrulay 51 FINAL REPORT 52 53 Bernhard Lutzmann 54 <belu@users.sf.net> 55 56 September 1, 2005 57 58 59 601. INTRODUCTION 61 62This is the final report for "thrulay-ng: Enhancements for thrulay", 63a Google "Summer of Code" [1] project. It summarizes all the accomplishments 64that have been made during the summer. 65 66For additional information about thrulay-ng please visit the project homepage 67at http://thrulay-ng.sf.net/ 68 69 70 712. ACCOMPLISHMENTS 72 73The features are listed in chronological order of implementation. 74 75* GNU autotools 76In the initial phase, the source code of thrulay 0.6 [2] has been adapted 77and support for GNU autotools has been added. This allows users to easily 78configure and build the programs from the source code. At this stage, 79thrulay worked under the FreeBSD and Linux operating system. This source 80code base has been integrated into the SourceForge.net CVS repository where 81all future development took place. 82 83* multiple TCP streams 84Next, I decided to implement support to run multiple TCP streams. I started 85out with using POSIX threads for this. Testing an initial version of the 86multi-stream code on several operating systems revealed that implementing 87this with threads was a bad idea. The results were everything else than 88satisfactory. After discussing this with Stanislav and Jeff, Stanislav wrote 89a very nice article [3] on the different possibilites on how to implement 90parallel tasks. Based upon this article and digging in "Stevens, UNIX Network 91Programming, Vol. 1" I descided to try an event-based approach. Changing from 92threads to events was not that expensive, but fortunately results looked much 93better now. 94 95* API for programmatic execution of tests 96While implementing multi-stream support, the client-code has also been 97rearranged into several functions. This revealed in a basic client API that 98could be used to run tests. 99 100* Report MTU/MSS, set DSCP value for TOS byte 101After this, code has been integrated to guess the Maximum Transmission Unit 102(MTU) and Maximum Segment Size (MSS) if a TCP test is started. The client is 103now also able to set a Differentiated Services Code Point (DSCP) value for 104the Type of Service (TOS) byte in the IP header. 105 106* SPARC/Solaris support 107The source code has then been ported to SPARC/Solaris. 108 109* IPv6 support 110Some of the network code has also been changed to be less protocol specific 111and that the client and server also work in an IPv6 environment. 112 113* documentation: manual pages 114To better document the usage of the client and server program, manual pages 115have been written. 116 117* UDP statistics: duplication, reordering 118The next point was to improve the statistics reported in UDP mode. In a first 119step, I fixed some little bugs in the current UDP code. Then I added support 120so the server is able to calculate duplication and reordering [4] of packets. 121 122* client authorization 123After that, the server has been enhanced to be able to perform client 124authorization based on netmasks. 125 126* integration of TSC timekeeping projects 127At this point of development, the TSC timekeeping projects fasttime [5] and 128TSC-I2 [6] reached a usable state. So support for these have been added to 129thrulay-ng. The configure script automatically detects if one of them is 130installed and uses it as a replacement for the gettimeofday() system call. 131 132* UDP statistics: quantiles 133Then I added another statistic in UDP mode: quantiles. This has been 134implemented as described in [7] using the "New Algorithm". thrulayd now 135calculates the 0th (minimum), 50th (median) and 95th quantile. 136 137* code review issues 138In the middle of August, Jeff posted his valuable code review [8]. Fixing the 139noted issues was the work of the following days. In an IRC session he also 140mentioned that it would be fine to be able to easily build a release out of 141the CVS version. Thus I have added a script and the file README.release, 142which documents how to release a new version of thrulay. 143 144* Mac OS X port 145At the end of the project, thrulay has also been ported to Mac OS X and 146currently supports Linux, BSD (FreeBSD, OpenBSD, NetBSD), Mac OS X and 147Solaris. 148 149Version 0.6.2 of thrulay-ng has been released at the end of August. This 150package contains all the changes noted above. You are invited to give it 151a trial. The source code can be downloaded from [9]. 152 153 154 1553. ACKNOWLEDGEMENT 156 157First I would like to thank my mentors Jeff W. Boote and Stanislav Shalunov 158of Internet2 for their great support and guidance. 159 160Second I would like to thank all the students from the soc2005 mailing list. 161 162Many thanks also to Google for sponsoring this project. The "Summer of Code" 163was a nice happening. 164 165Last but not least I would like to thank my friends Christian Schwind and 166Bernhard Wachter for books, wine and discussion. 167 168 169 1704. REFERENCES 171 172[1] Google Summer of Code, http://code.google.com/summerofcode.html 173[2] thrulay, http://www.internet2.edu/~shalunov/thrulay/ 174[3] "Threads, Tasks, Coroutines, Processes, and Events" by Stanislav Shalunov, 175 http://www.internet2.edu/~shalunov/writing/threads-tasks.html 176[4] "Definition of IP Packet Reordering Metric" by Stanislav Shalunov, 177 http://www.internet2.edu/~shalunov/ippm/draft-shalunov-reordering-definition-01.txt 178[5] fasttime, http://fasttime.sf.net/ 179[6] TSC-I2, http://tsc-xluo.sf.net/ 180[7] "Approximate Medians and other Quantiles in One Pass and with Limited 181 Memory" by Manku, Rajagopalan and Lindsay, 182 http://www-db.stanford.edu/~manku/papers/98sigmod-quantiles.pdf 183[8] https://mail.internet2.edu/wws/arc/soc2005/2005-08/msg00061.html 184[9] http://sourceforge.net/project/showfiles.php?group_id=142602 185