Andre Oppermann, FreeBSD Committer <*andre*@freebsd.org>
(remove asterisks)
15. July 2005 - Update 28. July 2005: Target reached!!!
TCP/IP Cleanup and Optimizations
The TCP code in FreeBSD has evolved significantly since the fork from 4.4BSD-Lite2 in 1994 primarily
due to new features and refinements of the TCP specifications.
The TCP code now needs a general overhaul, streamlining and cleanup to make it easily comprehensible,
maintainable and extensible again. In addition there are many little optimizations that can be done
during such an operation, propelling FreeBSD back at the top of the best performing TCP/IP stacks again,
a position it has held for the longest time in the 90's.
This overhaul is a very involved and delicate matter and needs extensive formal and actual testing to
ensure no regressions compared to the current code. The effort needed for this work is about three man-month
of fully focused and dedicated time. To get it done I need funding to take time off my day job and to dedicate
me to FreeBSD work much the way PHK did with his buffer cache and vnode rework projects.
I've got the opportunity to work up to three man-month exclusively full-time on FreeBSD during the second
half of 2005. That means up to 720 hours of full-steam coding (at 60 hours/week)! I will work as much as
the fundraise provides.
I need to raise enough money for each month from donations from the FreeBSD community to cover my fixed
cost of living, office and associated overhead. These fixed cost amount to US$6,300/month (€5,200 or
CHF8,000). Yes, Switzerland is not the cheapest place to live. :)
I will spend the funded time according the following schedule:
- TCP code (40% of funded time):
- TCP code cleanup and refactoring for much better maintainablility
- TCP Reassembly rewrite for maximum efficiency (over 60% already done in my spare time)
- TTCPv2 (Transactional TCP version 2) rewrite (over 80% already done in my spare time)
- TCP input and output code path optimizations
- TCP input tcpcb lookup and SMP optimizations
- Implement contemporary TCP RFC performance enhancements
- Other smaller items in TCP code
- IPv4 Routing code (40% of funded time):
- Further optimization of IP Fastforward
- Streamlining and refactoring PATRICIA trie routing table
- Packet header CPU cache prefetching (over 40% already done in my spare time)
- Various IPv4 input and output cleanups
- Implementing highly optimized IPv4 multi-bit trie routing table (more than twice as fast)
- Cleaning up and optimzing IPFW2
- Other small items in IP code
- General Network code (20% of funded time):
- Cleanups and streamlining general network code
- Other small items in network code
With these bullet points done I estimate performance improvements in IP of up to 40-50% and in TCP of
up to 30%.
For corporate sponsors I can write invoices to those wishing to sponsor this work through expenses. We
can also structure it as maintainance work and expenses. Tax exempt donations can probably be arranged
through the FreeBSD foundation. My company is fully incorporated and has a VAT number. Contact me at
<andre@freebsd.org> to discuss the options.
Sponsors and their donations:
- Required for full three month are US$18,900 (€15,600 or CHF24,000)
- 18. July 2005: Solnet.ch, received CHF3,000 (US$2,365 / €1,950) Thank you very much!
- 18. July 2005: Jan Lenhardt, received €20 Thank you very much!
- 19. July 2005: Thomas Vogt, received US$100 Thank you very much!
- 22. July 2005: Randy Bush, received US$100 Thank you very much!
- 22. July 2005: Ryan Dean, received US$100 Thank you very much!
- 22. July 2005: ardelean @ Uni Erlangen, received €25 Thank you very much!
- 22. July 2005: Anonymous, received US$20 Thank you very much!
- 22. July 2005: Christian Elmerot, received €25 Thank you very much!
- 23. July 2005: Niall Murphy, received €50 Thank you very much!
- 23. July 2005: Siebrand Mazeland, received US$35 Thank you very much!
- 23. July 2005: Mark Hobden, received €50 Thank you very much!
- 23. July 2005: Gustav Bylesjö, received €25 Thank you very much!
- 23. July 2005: Mike Tancsa, received US$100 Thank you very much!
- 24. July 2005: Philippe Lang, received CHF200 Thank you very much!
- 24. July 2005: FreeBSD.se, received €20 Thank you very much!
- 24. July 2005: Oleg Polyakov, received US$100 Thank you very much!
- 24. July 2005: Gerard Dupont III, received US$25 Thank you very much!
- 24. July 2005: Michael Proto, received US$20 Thank you very much!
- 24. July 2005: Andrew Snow, received US$50 Thank you very much!
- 25. July 2005: Alex Chircop, received US$100 Thank you very much!
- 25. July 2005: Phillip Grasso-Nguyen, received US$100 Thank you very much!
- 25. July 2005: Matthew Grooms, received US$50 Thank you very much!
- 25. July 2005: Paul Jason Brazile, received CHF250 Thank you very much!
- 26. July 2005: sickos.org, received €30 Thank you very much!
- 26. July 2005: kvedulv.de, received €100 Thank you very much!
- 26. July 2005: bytemark.co.uk, pledged GB£500 Thank you very much!
- 26. July 2005: Chris LIljenstolpe, received US$100 Thank you very much!
- 26. July 2005: Pair Networks, pledged US$14,000 Thank you very much!
- 26. July 2005: Nicholas Evans, received US$50 Thank you very much!
- 26. July 2005: Anton Schmidbauer, received €50 Thank you very much!
- 26. July 2005: Seamus Hartmann, received US$100 Thank you very much!
- 27. July 2005: Gheorghe Ardelean, received €25 Thank you very much!
- 27. July 2005: Max Boyarov, pledged US$50 Thank you very much!
- 27. July 2005: Martin Olsson, received €20 Thank you very much!
- 27. July 2005: Manfred Pusch, pledged US$??? (on the way by wire transfer)Thank you very much!
- 27. July 2005: Business Network Communications AG, pledged CHF500 Thank you very much!
- 27. July 2005: Leslie Jensen, pledged €100 Thank you very much!
- 28. July 2005: MIchael Moll, received €100 Thank you very much!
- 28. July 2005: The target is reached, received/pledged are now a little bit over CHF25,000 Thank you guys!
- 29. July 2005: Max Boyarov, received US$42 Thank you very much!
- 2. August 2005: freebsd.org.za, received €440 Thank you very much!
- Week of 8. August 2005: The work is scheduled to start at full steam!
For small donations you can use Paypal and send money to the PaypalID <contact@networx.ch>. Please
put "FreeBSD TCP/IP Cleanup and Optimizations" into the subject line.
Thanks for your donations
Andre Oppermann, FreeBSD developer