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