XORP is an open source project: we want people to contribute. We'd like to build a community of users and a community of developers. Please post to the Mailing Lists to discuss any work you are considering.
Listed below are a few areas where contributions could usefully be made now. If you are interested in these, have additional suggestions, or are generally interested in getting involved, we'd like to hear from you. It could be that someone is already working on some of the items, so always send an email before starting the work.
Any contributions that may help others get started.
Code contributed to XORP is licensed under the GPL and copyright ownership stays with the contributor.
Pick a module. Look it over. Read the source. Read the kdoc documentation (see ${XORP}/docs/kdoc). Compare and contrast the design documents (under ${XORP}/docs) with the code. Code reviews are most welcome.
It would be great to be able to call XORP code from other languages. One way this might be done for maximal benefit and moderate effort would to use SWIG. SWIG generates wrappers for C and C++ code allowing it to be called from a wide range of scripting languages.
This is a Click-oriented item, but would benefit XORP and potentially benefit other multicast projects.
For example, an integration of dhcpd, firewall, web interface, and an AAA server into the XORP framework.
People like Web interfaces. Also, they can be used for cool demos.
kdoc comments are embedded in the C++ header files and turned into html documentation using kdoc. This documentation is always a work-in-progress and always has room for improvement. Feedback and patches are welcome.
Design documents are available online here and are accessible in the source tree under ${XORP}/docs. If you have the time please read them over, and feel free to make suggestions, point out areas of ambiguity, and inconsistencies, etc.
As with everything in this project, the web pages are available in the main source repository. The web site tends to undergo "development" in the run up to releases and remain relatively static the rest of the time.