Subject: SoC: Adding teredo support to NetBSD
To: None <tech-net@NetBSD.org>
From: Arnaud Lacombe <al@sigfpe.info>
List: tech-net
Date: 05/01/2006 18:47:46
Hi,

After searching on the NetBSD project's page I find two project which
interested me. The first one was adding mDNS support to NetBSD, the
second was adding teredo support. After few research, I find that work
left on mDNS was not really clear (it was a part of last year SoC
(zeroconf), the responderd works, the nss module almost works too,
nothing at first sight would justify nearly three month of work).

So I chose my second choice: adding teredo support to NetBSD. 

 About the project

The main goal is add teredo[1] support to NetBSD. After searching over
different site, it seems that an implementation already exist for
FreeBSD[2], this implementation is a kernel module using the netgraph
framework, but it is quite broken by now (does not compile on FreeBSD
6.0, maybe also not on 5.x due to API change) [maybe M. Kabassanov could
confirm, as he is one of the autors of this module].
An implementation also exists for Linux[3] (which works also on FreeBSD
and NetBSD), after looking at sources, it seems to be a userland
implementation. It is released under the GPL.

The project will be a complete rewrite under G^HBSD license, done in
three parts: the server will be done first (as it is the central
component of teredo), then the relay, and finaly the client. The two
first part will be mandatory, maybe not the last part (depending on
comments, mentors opinion ...).  It's aim will be to be integrated into
NetBSD (4.99.x at least, as 4.0 release is not so far).

I think that the best choice for portability is to make a userland
program, which won't be dependant of specific OS' API. I guess it will
use socket & related framework.


 About me

Currently, I've not taken part to really big public project, however I
participate for over two years in debugging and sending patch to some
projects (including NetBSD, mostly in the hpcarm port [4]). As private
project for my school, we had to do for the beginning of the year a
multithreaded client/server (using POSIX API).

Most of the time I use C as a programming language, CVS/RCS as
versionning system (for historical reason, and also because it is
installed by defaut on most OS).

Even if application's submit already started, I'll wait the middle of the
week to post mine.

any comments/question appreciated,

Arnaud

[1]: http://www.ietf.org/rfc/rfc4380.txt
[2]: http://www-rp.lip6.fr/teredo/
[3]: http://www.simphalempin.com/dev/miredo/
[4]: http://mail-index.netbsd.org/port-hpcarm/2006/03/25/0001.html (small patch, but hard to track down :/),
     http://mail-index.netbsd.org/port-hpcarm/2006/03/25/0000.html