Contributing

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. Ultimately the project to become self-sustaining. At the present time, the project is bootstrapping: even attaining basic router functionality requires a large amount of effort. We currently lack the functionality to attract users, but perhaps offers enough promise to attract a few bold developers and documenters. As the basic functionality pads out, hopefully we'll attract more users and garner more contributions.

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.

General

  • Feedback on the ease of getting started.

    Any contributions that may help others get started.

Licensing and Copyright

When contributing new code it is simplest from our point of view if the copyright is simply assigned to the International Computer Science Institute. If you wish to retain the copyright then the license must be a BSD-style license as currently used by XORP. In either case, the appropriate credit will be given to the author.

Code contributions

  • Code reviews.

    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.

  • Scripting language support.

    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.

  • Adding multicast support to Click.

    This is a Click-oriented item, but would benefit XORP and potentially benefit other multicast projects.

  • Design and development of a multicast testing framework.
  • MIB implementation.

    We have the SNMP base support, but currently there are very few MIBs that are implemented. Pick a protocol, and add the MIB support for it.

  • Wireless access router.

    For example, an integration of dhcpd, firewall, web interface, and an AAA server into the XORP framework.

  • Web interface for XORP.

    People like Web interfaces. Also, they can be used for cool demos.

  • Add VLAN support.

    Systems like FreeBSD already do have support for VLAN (see FreeBSD VLAN mini HowTo). Configuring VLANs before running XORP is not an elegant solution. A better solution is to integrate the VLAN configuration in XORP.

  • Add packet capturing interface to XORP.

    Various systems provide different mechanisms to capture packets. Add support in the FEA to provide an uniform access to the underlying packet capturing mechanism (e.g., pcap(3)).

Documentation

  • Developer API documentation reviews and feedback.

    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 documentation.

    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.

  • Web site design.

    As with everything in this project, the web pages are available via CVS and CVSWeb. The web site tends to undergo "development" in the run up to releases and remain relatively static the rest of the time.

Donations

We're amenable to donations. Please mail mjh@icir.org if you are interested in making a donation.
  • Hardware/Software.

    Anything from spare machines, network cards, etc, up to 64bit workstations. Preferably equipment with a moderate size user base and publicly available documentation since we have very limited developer resources. At some point in the future, we'd like to be in a position to correlate hardware donations to external project contributors.

  • Financial.

    Money pays the rent, pays interns, and potentially allows us to employ more people full time.


Document id $XORP: www/contributing.html,v 1.35 2008/01/30 05:35:51 atanu Exp $.
Generated on 29/Jan/2008 at 21:29:43.
Feedback, comments, flames to feedback@xorp.org