-
Notifications
You must be signed in to change notification settings - Fork 2
Home
The Mesh Information Daemon helps with distributing information within a layer 3 mesh. It provides a socket where local clients can connect to emit and retrieve information.
This software is built to work in tandem with babeld. It'll connect to babeld's front-end where it'll listen for mesh neighbours discovered by babeld.
mid connects to babeld's front-end port and listens for "add neighbour", "change neighbour" and "flush neighbour" events. It'll update its internal list of neighbours accordingly. When a new neighbor appears, mid will perform a handshake to determine whether it is running mid, too.
Paths are UTF-8 strings with /
as separator. A valid path may look like this: l3roamd/seek/2001:db8::1
- PUT (timeout, path, payload)
- GET (path) → [(valid_until, path, payload)]
- SUBSCRIBE (path) → [(valid_until, path, payload)]
- UNSUBSCRIBE (path)
For GET and SUBSCRIBE path is considered to be a prefix. Any entry matching this prefix will be returned. Payload may be empty.
SUBSCRIBE will initiate a stream of entries. Any entry present in the local database will be returned immediately after subscription.
- connect to babeld
- listen for neighbours
- automatically create sockets as needed
- decrement TTL in packet itself
- identify seen packets by