File:  [NetBSD Developer Wiki] / wikisrc / projects / project / rump-networkvisualizer.mdwn
Revision 1.1: download - view: text, annotated - select for diffs
Sun Nov 6 01:59:12 2011 UTC (10 years, 7 months ago) by jmmv
Branches: MAIN
CVS tags: HEAD
Move existing project definitions from projects/gsoc_2011/ to
projects/project/ .

The goal for this reorganization is to remove any knowledge of the projects
classification from the file hierarchy: the classification goes into tags,
and projects indexes automatically list projects based on such tags.

Also, the current gsoc_2011 name was wrong anyway, because GSoC 2011 has
already concluded and projects would have had to move to a gsoc_2012 directory

Lastly, yes, "projects/project/*" is slightly redundant.  But I want to keep
the project lists from the projects "database" clearly separated.

This is as proposed in www@.

[[!template id=project

title="Visualization tool for arbitrary network topology"


[Antti Kantee](

duration="3 months"

Using kernel virtualization offered by [rump]( it is possible to start a virtually unlimited amount of TCP/IP stacks on one host and interlink the networking stacks in an arbitrary fashion.  The goal of this project is to create a visual GUI tool for creating and managing the networks of rump kernel instances.  The main goal is to support testing and development activities.

The implementation should be split into a GUI frontend and a command-line network-control backend.  The former can be used to design and edit the network setup, while the latter can be used to start and monitor the virtual network from e.g. automated tests.

The GUI frontend can be implemented in any language that is convenient.  The backend should be implemented in a language and fashion which makes it acceptable to import into the NetBSD base system.

The suggested milestones for the project are:

1. get familiar and comfortable with starting and stopping rump kernels and configuring virtual network topologies
2. come up with an initial backend command language. It can be something as simple as bourne shell functions.
3. come with an initial specification and implementation of the GUI tool.
4. make the GUI tool be able to save and load network specifications.
5. create a number of automated tests to evaluate the usefulness of the tool in test creation.

In case of a capable student, the project goals can be set on a more demanding level.  Examples of additional features include:

* defining network characteristics such as jitter and packet loss for links
* real-time monitoring of network parameters during a test run
* UI gimmicks such as zooming and node grouping

[[!tag gsoc]]
[[!tag medium]]
[[!tag userland]]

CVSweb for NetBSD wikisrc <> software: FreeBSD-CVSweb