|
1 -TCA Readme |
|
2 |
|
3 These are some basic configuration and usage notes about the TCA |
|
4 (Tetherless Computing Architecture) implementation. For a higher-level |
|
5 view of TCA, see the documentation at www.mindstream.watsmore.net |
|
6 |
|
7 |
|
8 1 Configuration |
|
9 |
|
10 The following are important TCA directives in dtn.conf : |
|
11 |
|
12 # There are two types of tca nodes: routers and gateways: |
|
13 route set type [ tca_router | tca_gateway] |
|
14 |
|
15 # A tca endpointid uses the tca scheme, of the form: "tca://guid/app" |
|
16 route local_eid "tca://hail" |
|
17 |
|
18 # All tca nodes must have a tcp0 contact interface |
|
19 interface add tcp0 tcp local_addr=192.168.1.6 local_port=5000 |
|
20 |
|
21 # All tca_routers must have a default route toward a gateway as follows: |
|
22 # Note that tca_gateways must *not* have a default route |
|
23 link add default hurricane.cs.uwaterloo.ca:5000 ONDEMAND tcp |
|
24 route add tca://* default |
|
25 |
|
26 |
|
27 2 Using TCA |
|
28 |
|
29 A new mobile endpoint (hail/app) can register as follows: |
|
30 dtnsend -s tca://hail/app -d tca://registry -t m -p "register" |
|
31 |
|
32 Once hail has registered, another node (windstorm) can send it a |
|
33 bundle like this: |
|
34 |
|
35 dtnsend -s tca://windstorm/test_app -d |
|
36 tca://hail/test_app -t m -p "windstorm says hi" |
|
37 |
|
38 |
|
39 3 Unimplemented Features, Known Bugs, and Limitations |
|
40 |
|
41 - Limitation. OpenDHT nodes are hard-coded at the moment. There should |
|
42 be a file of nodes to use instead. |
|
43 |
|
44 - Limitation. OpenDHT nodes are tested on startup and only those nodes |
|
45 that are responsive are kept. This process should be repeated |
|
46 periodically to refresh the list of "live" OpenDHT nodes. |
|
47 |
|
48 - Limitation. Entries in the DHT are set to time out at 1 week, the |
|
49 maximum TTL allowed by OpenDHT. This value is hard-coded. |
|
50 |
|
51 - Unimplemented. The rules for registration lifetime are not quite |
|
52 settled. When a gateway receives a bundle for an unregistered node |
|
53 (perhaps never registered, perhaps previously registered but expired) |
|
54 the bundle is kept in the gateway's queue until the bundle times out. |
|
55 |
|
56 - Bug. Undeliverable control bundles are not deleted. They remain in the |
|
57 pending bundle list until timeout. This is an error but it affects performance, |
|
58 not correctness. |
|
59 |
|
60 4 Modified Files |
|
61 |
|
62 The key new classes in the implementation are TcaController and TcaRouter. |
|
63 |
|
64 This is a complete list of files that were modified or added to DTN |
|
65 as part of the TCA implementation: |
|
66 |
|
67 servlib/naming/TCAScheme.* |
|
68 New singleton class, borrowed heavily from DTNScheme. |
|
69 |
|
70 servlib/naming/SchemeTable.cc |
|
71 Added an instance of TCAScheme to the scheme table. |
|
72 |
|
73 servlib/routing/BundleRouter.cc |
|
74 Added TcaRouter instantiations to factory method. |
|
75 |
|
76 servlib/routing/TableBasedRouter.h |
|
77 Made some bundle handler functions virtual. |
|
78 |
|
79 apps/tca_admin |
|
80 New directory for tca controller app. |
|
81 |
|
82 apps/tca_admin/tca_lib/* |
|
83 Third-party tools. |
|
84 |
|
85 apps/tca_admin/TcaRegistry.* |
|
86 New class for accessing the TCA registry. |
|
87 |
|
88 apps/tca_admin/TcaEndpointID.* |
|
89 New class for manipulating TCA endpoint ids. |
|
90 |
|
91 apps/tca_admin/TcaController.* |
|
92 Main implementation of TCA Control logic at the control layer. |
|
93 |
|
94 apps/tca_admin/tca_admin.cc |
|
95 The TCA controller's command-line parsing and main() function. |
|
96 |
|
97 /servlib/routing/TcaEndpointID.* |
|
98 New class for manipulating TCA endpoint ids, subclassed from EndpointID. |
|
99 |
|
100 /servlib/routing/TcaControlBundle.* |
|
101 New class for manipulating TCA control bundles. |
|
102 |
|
103 /servlib/routing/TcaRouter.* |
|
104 Main implementation of TCA Control logic at the bundle routing layer. |
|
105 |
|
106 servlib/Makefile |
|
107 Modified to include TcaRouter and related sources |
|
108 |
|
109 apps/Makefile |
|
110 Modified to include tca_admin app and related sources |
|
111 |