d0b6dc877bc61193fb7023557880fd24e6db442f
[oweals/tinc.git] / rt / README
1 Routing subsystem
2 =================
3
4 The routing part of tinc reads/writes packets to/from the virtual network
5 device, sets up tunnels on demand and routes packets to/from the virtual
6 network device and the tunnels.  It can also exchange information about other
7 daemons using the tunnels.
8
9 The following datatypes are used in this subsystem:
10
11 struct node
12 -----------
13
14 This represents a tinc daemon. It keeps track of the best way to reach this
15 daemon (if it is reachable at all), which subnets are associated with this
16 daemon, and the connections it has with other daemons.
17
18 struct subnet
19 -------------
20
21 This represents a subnet, can have an expiry time and is associated with a node.
22
23 struct edge
24 -----------
25
26 This represents a connection from one tinc daemon to another. The edges have a
27 specific direction, and normally if there really is a connection between tinc
28 daemon A and B, there will be two edges, A -> B and B -> A.  This seems
29 redundant, but is necessary to allow disparities between information learned
30 from A and information learned from B.
31