[[!template id=project

title="Virtual network stacks"

contact="""
[tech-kern](mailto:tech-kern@NetBSD.org),
[tech-net](mailto:tech-net@NetBSD.org),
[board](mailto:board@NetBSD.org),
[core](mailto:core@NetBSD.org)
"""

category="networking"
difficulty="hard"

description="""
This project proposal is a subtask of [[smp_networking]] and is elegible
for funding independently.

The goal of this project is to implement full virtual network stacks.  A
virtual network stack collects all the global data for an instance of a
network stack (excluding `AF_LOCAL`).  This includes routing table, data
for multiple domains and their protocols, and the mutexes needed for
regulating access to it all.  Instead, a *brane* is an instance of a
networking stack.

An interface belongs to a *brane*, as do processes.  This can be considered
a `chroot(2)` for networking, e.g. `chbrane(2)`.
"""
]]

[[!tag smp_networking]]