This is a collection of start and stop scripts for several routing protocols. The start scripts are executed in very instance. The stop script kill all instances at once so far (TODO). Feel free to modifiy them and add new scripts.
Use ./software.py start <protocol>
to call protocols/<protocol>_start.sh
on each virtual node (network namespace).
All of the following protocols are proactive protocols. They are also written in the C programming language - unless stated otherwise.
- website
- distance vector
- successor of batmand
- batmand is a layer 3, user space daemon
- routes layer 2 packets (bat0 interface can be bridged)
- Linux kernel module
- used by most Freifunk communities
- website
- distance vector
- Videos
- website
- distance vector
- fork of batmand
- Website
- distance vector
- rewrite of BMX 6 with trusted nodes / authentication mechanism
- CJDNS
- distance vector
- source routing
- used primarily as overlay over the Internet
- website
- link state
- website
- link state
- rewrite of OLSR 1 as a framework
- website
- research project, geared towards P2P Matrix, written in Go
- Ironwood routing library for Yggdrasil 0.4.x
- Pinecone is very similar to Ironwood, meant for P2P Matrix (some documentation)
- runs as overlay over Internet with manual peering
-
5000 nodes
-
- general algorithm (0.3.x/0.4.x/0.5.x)
- distance vector
- spanning tree
- end to end encryption (node identifiers are derive from crypto keys)
- Videos
- each minor version so far is a different (incompatible) routing protocol
- the research network transitions to each new iteration of the protocol
- spanning tree
- switch to new DHT (Chord) from Kademlia
- spanning tree
- source routing
- uses new linear DHT design (SNEK)
- spanning tree
- greedy routing (instead of source routing)
- leave nodes send bloom filters towards root
- a meshenger that uses a gossip protocol
- provides core functionality as a daemon
- does not provide a network tunnel
- for ping tests, a wrapper needs to be used