blob: 654bb5ab2f8197526e670b24c1a017fe02ee2b73 [file] [log] [blame]
Obaid Amin561ac802013-03-27 18:25:20 -05001Installation:
2
31: Getting NLSR:
4
5https://github.com/NDN-Routing/NLSR0.0
6
72: run make to compile.
8
93: Start ccnx daemon (ccnd) and Repo (ccnr).
10
114: Add '/ndn/keys' route to your neighboring testbed nodes.
12This can be done by adding routes in your ccnd.conf to all neigbors,
13e.g.
14 add /ndn/keys udp 10.0.XX.XX
15 add /ndn/keys udp 10.0.YY.YY ...
16 add /ndn/keys udp 10.0.ZZ.ZZ
17
185: Create your keys and publish them through repo. Please have
19 a look at https://github.com/named-data/ndn-testbed-key-suite for details.
20
216: create a nlsr configuration file, have a look at
22 macbook.conf and 'Configuration Parameters' section for details
23
247: start nlsr
25
26
27Configuration Parameter:
28
291. router-name </name/prefix/of/the/router>
30It is a required configuration parameter that is used to set the router name.
31Name prefix of the router must start with `/ndn' and followed by a strict
32hierarchical order of name components up to the hostname of the router. For
33e.g. if router has a hostname host.dept.org.edu pollux.cs.memphis.edu then the
34router name can be `/ndn/org.edu/dept/host..
35
362. ccnneighbor </name/prefix/of/neighbor> [neighbor_ip_addrr]
37This parameter is used to configure the neighboring router. Name prefix of a
38neighbor must start with `/ndn. and followed by a strict hierarchical order of
39name component as mentioned for router-name. If a router has a neighbor having
40hostname `neighbor.dept.org.edu' then configuration command would be
41`ccnneighbor /ndn/org.edu/dept/neighbor. The optional parameter,
42[neighbor_ip_addrr], can be provided for explicitly connecting to a given
43IP. This is useful if there is no entry of the hostname in the DNS.
44
453. ccnname </name/prefix/to/be/advertised>
46ccnname is used to advertise the name prefix of the services hosted by the
47router. Name prefix must follow the ccnx naming convention.
48
494. topo-prefix <name/prefix/of/repo/topo>
50It is used to configure the topological prefix of the `sync. slice created for
51nlsr in a repo. Prefix must follow the ccnx naming convention. Default value
52for topo prefix is `/ndn/routing/nlsr'
53
545. slice-prefix <name/prefix/of/repo/slice>
55This parameter is used to set the sync's slice prefix. All nlsr nodes `must'
56have the same slice prefix and must follow the ccnx naming convention. Default
57value for slice prefix is `/ndn/routing/nlsr/LSA'
58
596. lsa-refresh-time <sec>
60It is the time in seconds, after which router will refresh its LSAs. Default
61value = 1800 sec, Min = 240 sec
62
637. router-dead-interval <sec>
64It is the time after which router will consider its neighbor dead if it does
65not hear anything for that amount of time. If an LSA generated by neighbor has
66a lifetime greater than router-dead-interval then router will simply discard
67the LSA and update name prefix table, routing table and ccnd FIB accordingly.
68Default value = 3600 sec, Min = 360 sec.
69
708. interest-retry <number>
71interest-retry is maximum number of times a router will send same interest if
72the interest is timed out. Default = 3, Min =1 and Max = 10
73
749. interest-resend-time <sec>
75When an interest is timed out, NLSR waits for `interest-resend-time. before
76sending another interest. The interest is retransmitted up to the value of
77`interest-retry.. If the interest doesn.t get satisfied during this time the
78neighbor will be considered as dead. Default value = 15 sec, Min = 1 sec, Max =
7960 sec
80
8110. max-faces-per-prefix <number>
82By default NLSR calculates and add faces for all available faces to a prefix.
83Number of faces can be restricted with this parameter, if this is configured
84NLSR will add <number> or faces per prefixes in ccnd FIB.
85
8611. debug <on/off>
87Enable nlsr debugging by printing out detail messages on the standard output.
88By default it is off.
89
9012. logdir </directory/for/logging/>
91NLSR will start writing log in logdir folder. If logdir is not configured NLSR
92will create a log directory name nlsrLog in user home directory and write log
93into that folder.
94
9513. tunnel-type <udp | tcp>
96This is used to specify the tunnel type that NLSR should create for building an
97overlay network. By default NLSR creates udp tunnels.
98
99**Following Commands are only required for hyperbolic routing**
100
akmhoque4438c3e2013-06-14 10:44:30 -050010114. hyperbolic-routing <on|dry_run>
102This option enables hyperbolic routing. With option on, link state routing
103doesn't work while with dry_run option route is calculated by Link State
104routing and hyperbolic routes are just recorded only in log file.Following
105field is required if hyperbolic routing is on.
Obaid Amin561ac802013-03-27 18:25:20 -0500106
10715. hyperbolic-cordinate <radius> <theta>
108Polar coordinates of a node in a form of radius and theta. Currently, calculation
109of the polar coordinates is an offline process and done by
110the operator of a site.
111
Obaid Amin561ac802013-03-27 18:25:20 -050011216. keystore-path </path/to/keystore/file name(.ccnx_keystore)>
113Path to the keystore. The keystore folder is usually created by
114ccninitkeystore. Keys in this folder will be used by NLSR to sign the packets.
115
11617. root-key-prefix </key/prefix>
117Name prefix of the root key; the site key should be signed by this key.
118e.g. root-key-prefix /ndn/keys
119
12018. site-name </name/prefix/of/site>
121Name of the site of which this router is a part.
122
akmhoquedf9f97b2013-08-16 14:49:08 -050012319. network </name/of/network>
124Name of the networks router belongs to