Overnet is a suite of protocols, libraries and binaries that provide routed and structured overlay networking to Fuchsia.
Overnet provides a mesh network that sits atop other protocols, such as traditional networking stacks and provides message routing.
The Overnet implementation is intended to be portable - that is it can be built on a wide variety of operating systems and provides cross-system connectivity.
Users wishing to establish a host-target Overnet network are best serviced using the fx overnet
tool. The process is as follows:
fx ascendd
. Ascendd provides the host “Overnet node”.fx overnet
. This creates a host-pipe connection between the host ascendd
and the current fx
target device.fx onet list-peers
.In the subtree, users will find the following items:
There are two examples available:
core is the central implementation of Overnet providing facilities for programs operating either/both as server or client. The implementation defines the protocols for routing, secure transport, service discovery and many other features.
hoist provides a set of portability shims that when used enable a single code base to be usable in both a Fuchsia environment, as well as a Unix style environment (wherever the underlying IO reactor primitives operate). Hoist abstracts over service connections.
Overnetstack is a Fuchsia component that hosts Overnet service routing on a Fuchsia device. It also implements node and service discovery via mDNS.
ascendd The ascend daemon is a host (Unix/POSIX) program that provides Overnet node capabilities on a non-Fuchsia system. It binds to a Unix socket that Overnet client programs can use to establish Overnet connections, and both export and consume Overnet services.
onet The onet tool is a debugging tool for Overnet that performs a variety *of functions, such as enumerating an Overnet network. It also provides a *connection proxying facility that can be used in concert with ascendd to *establish a connection between ascendd and a Fuchsia target device.