blob: 54072c0f864d31709c886241bfacdc5bc01a1e2e [file] [log] [blame] [view]
akmhoquedbfd7912014-01-31 20:15:39 -06001NLSR0.0
2=======
3
4Named Data Link State Routing
5
6Installation:
7
81: Getting NLSR:
9
10git clone https://github.com/NDN-Routing/NLSR0.0
11git checkout nlsr-cpp
12
132: Compiling NLSR
14 a. Run ./configure
15 b. Run make
16 c. For installing run sudo make install
17
18 Prerequisites:
19 i. You must have ndnx install in your machine
20
21 ii. For smooth compilation you will need need autoconf-2.69 which can
22 be fethced from http://ftpmirror.gnu.org/autoconf/autoconf-2.69.tar.gz
23 and automake-1.14 which can be fethed from
24 http://gnu.mirrorcatalogs.com/automake/automake-1.14.tar.gz
25
26Running NLSR:
27
281: Run ndnx daemon
29
302: Add '/ndn/keys' route to your neighboring testbed nodes.
31This can be done by adding routes in your ccnd.conf to all neigbors,
32e.g.
33 add /ndn/keys udp 10.0.XX.XX
34 add /ndn/keys udp 10.0.YY.YY ...
35 add /ndn/keys udp 10.0.ZZ.ZZ
36
373: Create your keys and publish them through repo. Please have
38 a look at https://github.com/named-data/ndn-testbed-key-suite for details.
39
404: create a nlsr configuration file, have a look at
41 macbook.conf and 'Configuration Parameters' section for details
42
437: start nlsr. You can find help for running nlsr with "-h"
44
45
46Configuration Parameter:
47
481. router-name </name/prefix/of/the/router>
49It is a required configuration parameter that is used to set the router name.
50Name prefix of the router must start with `/ndn' and followed by a strict
51hierarchical order of name components up to the hostname of the router. For
52e.g. if router has a hostname host.dept.org.edu pollux.cs.memphis.edu then the
53router name can be `/ndn/org.edu/dept/host..
54
552. ccnneighbor </name/prefix/of/neighbor> [neighbor_ip_addrr]
56This parameter is used to configure the neighboring router. Name prefix of a
57neighbor must start with `/ndn. and followed by a strict hierarchical order of
58name component as mentioned for router-name. If a router has a neighbor having
59hostname `neighbor.dept.org.edu' then configuration command would be
60`ccnneighbor /ndn/org.edu/dept/neighbor. The optional parameter,
61[neighbor_ip_addrr], can be provided for explicitly connecting to a given
62IP. This is useful if there is no entry of the hostname in the DNS.
63
643. ccnname </name/prefix/to/be/advertised>
65ccnname is used to advertise the name prefix of the services hosted by the
66router. Name prefix must follow the ccnx naming convention.
67
684. topo-prefix <name/prefix/of/repo/topo>
69It is used to configure the topological prefix of the `sync. slice created for
70nlsr in a repo. Prefix must follow the ccnx naming convention. Default value
71for topo prefix is `/ndn/routing/nlsr'
72
735. slice-prefix <name/prefix/of/repo/slice>
74This parameter is used to set the sync's slice prefix. All nlsr nodes `must'
75have the same slice prefix and must follow the ccnx naming convention. Default
76value for slice prefix is `/ndn/routing/nlsr/LSA'
77
786. lsa-refresh-time <sec>
79It is the time in seconds, after which router will refresh its LSAs. Default
80value = 1800 sec, Min = 240 sec
81
827. router-dead-interval <sec>
83It is the time after which router will consider its neighbor dead if it does
84not hear anything for that amount of time. If an LSA generated by neighbor has
85a lifetime greater than router-dead-interval then router will simply discard
86the LSA and update name prefix table, routing table and ccnd FIB accordingly.
87Default value = 3600 sec, Min = 360 sec.
88
898. interest-retry <number>
90interest-retry is maximum number of times a router will send same interest if
91the interest is timed out. Default = 3, Min =1 and Max = 10
92
939. interest-resend-time <sec>
94When an interest is timed out, NLSR waits for `interest-resend-time. before
95sending another interest. The interest is retransmitted up to the value of
96`interest-retry.. If the interest doesn.t get satisfied during this time the
97neighbor will be considered as dead. Default value = 15 sec, Min = 1 sec, Max =
9860 sec
99
10010. max-faces-per-prefix <number>
101By default NLSR calculates and add faces for all available faces to a prefix.
102Number of faces can be restricted with this parameter, if this is configured
103NLSR will add <number> or faces per prefixes in ccnd FIB.
104
10511. debug <on/off>
106Enable nlsr debugging by printing out detail messages on the standard output.
107By default it is off.
108
10912. logdir </directory/for/logging/>
110NLSR will start writing log in logdir folder. If logdir is not configured NLSR
111will create a log directory name nlsrLog in user home directory and write log
112into that folder.
113
11413. tunnel-type <udp | tcp>
115This is used to specify the tunnel type that NLSR should create for building an
116overlay network. By default NLSR creates udp tunnels.
117
118**Following Commands are only required for hyperbolic routing**
119
12014. hyperbolic-routing <on|dry_run>
121This option enables hyperbolic routing. With option on, link state routing
122doesn't work while with dry_run option route is calculated by Link State
123routing and hyperbolic routes are just recorded only in log file.Following
124field is required if hyperbolic routing is on.
125
12615. hyperbolic-cordinate <radius> <theta>
127Polar coordinates of a node in a form of radius and theta. Currently, calculation
128of the polar coordinates is an offline process and done by
129the operator of a site.
130
131** Hyperbolic Commands End here **
132
13316. keystore-path </path/to/keystore/file name(.ccnx_keystore)>
134Path to the keystore. The keystore folder is usually created by
135ccninitkeystore. Keys in this folder will be used by NLSR to sign the packets.
136
13717. root-key-prefix </key/prefix>
138Name prefix of the root key; the site key should be signed by this key.
139e.g. root-key-prefix /ndn/keys
140
14118. site-name </name/prefix/of/site>
142Name of the site of which this router is a part.
143
14419. network </name/of/network>
145Name of the networks router belongs to