File:  [NetBSD Developer Wiki] / wikisrc / projects / project / npf_ipv6.mdwn
Revision 1.1: download - view: text, annotated - select for diffs
Sun Nov 6 01:59:12 2011 UTC (2 years, 5 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="IPv6 support for NPF"


[Mindaugas Rasiukevicius](

duration="3 months"

NPF is a recently developed firewall for the NetBSD system.  One of its
missing features is support for IPv6.  The student would have to add fully
functional and reasonably tested IPv6 support for NPF.  This work should not
require design changes to NPF.  Many modules in NPF contain abstracted
logic/mechanism and do not rely on the length IP addresses.  As an
additional help, there is a task list document, describing specific
steps at code level in order to achieve this objective.

High level deliverables are the following:

* Add support for IPv6 filtering criteria (userland + kernel).
* Adjust components where needed and make sure that stateful filtering works with IPv6 (kernel).
* Handle IPv6 addresses in the NPF tables - a container for a fast lookup (userland + kernel).
* IPv6 reassembly support, re-using NetBSD's network stack code (kernel).

Optionally (hard):

* Analyse IPv6 reassembly implications.
* Add support for protocol translation (NAT46, NAT64) and/or prefix translation (NPTv6).
* Kittens!

Note: good understanding of IPv6, some knowledge of data structures and
concurrency are the prerequisites.

[[!tag gsoc]]
[[!tag hard]]
[[!tag kernel]]

CVSweb for NetBSD wikisrc <> software: FreeBSD-CVSweb