Installation:

1: Getting NLSR: 

https://github.com/NDN-Routing/NLSR0.0

2: run make to compile. 

3: Start ccnx daemon (ccnd) and Repo (ccnr).

4: Add '/ndn/keys' route to your neighboring testbed nodes. 
This can be done by adding routes in your ccnd.conf to all neigbors,
e.g.
	add /ndn/keys udp 10.0.XX.XX 
	add /ndn/keys udp 10.0.YY.YY ...  
	add	/ndn/keys udp 10.0.ZZ.ZZ

5: Create your keys and publish them through repo. Please have
	a look at https://github.com/named-data/ndn-testbed-key-suite for details. 

6: create a nlsr configuration file, have a look at
	macbook.conf and 'Configuration Parameters' section  for details 

7: start nlsr 


Configuration Parameter: 

1. router-name </name/prefix/of/the/router> 
It is a required configuration parameter that is used to set the router name.
Name prefix of the router must start with `/ndn' and followed by a strict
hierarchical order of name components up to the hostname of the router. For
e.g. if router has a hostname host.dept.org.edu pollux.cs.memphis.edu then the
router name can be `/ndn/org.edu/dept/host..

2. ccnneighbor </name/prefix/of/neighbor> [neighbor_ip_addrr] 
This parameter is used to configure the neighboring router. Name prefix of a
neighbor must start with `/ndn. and followed by a strict hierarchical order of
name component as mentioned for router-name. If a router has a neighbor having
hostname `neighbor.dept.org.edu' then configuration command would be
`ccnneighbor /ndn/org.edu/dept/neighbor. The optional parameter,
[neighbor_ip_addrr], can be provided for explicitly connecting to a given 
IP. This is useful if there is no entry of the hostname in the DNS. 

3. ccnname </name/prefix/to/be/advertised> 
ccnname is used to advertise the name prefix of the services hosted by the
router. Name prefix must follow the ccnx naming convention.

4. topo-prefix <name/prefix/of/repo/topo> 
It is used to configure the topological prefix of the `sync. slice created for
nlsr in a repo. Prefix must follow the ccnx naming convention. Default value
for topo prefix is `/ndn/routing/nlsr'

5. slice-prefix <name/prefix/of/repo/slice>
This parameter is used to set the sync's slice prefix. All nlsr nodes `must'
have the same slice prefix and must follow the ccnx naming convention. Default
value for slice prefix is `/ndn/routing/nlsr/LSA'

6. lsa-refresh-time <sec> 
It is the time in seconds, after which router will refresh its LSAs. Default
value = 1800 sec, Min = 240 sec

7. router-dead-interval <sec> 
It is the time after which router will consider its neighbor dead if it does
not hear anything for that amount of time. If an LSA generated by neighbor has
a lifetime greater than router-dead-interval then router will simply discard
the LSA and update name prefix table, routing table and ccnd FIB accordingly.
Default value = 3600 sec, Min = 360 sec.

8. interest-retry <number> 
interest-retry is maximum number of times a router will send same interest if
the interest is timed out. Default = 3, Min =1 and Max = 10

9. interest-resend-time <sec>
When an interest is timed out, NLSR waits for `interest-resend-time. before
sending another interest. The interest is retransmitted up to the value of
`interest-retry.. If the interest doesn.t get satisfied during this time the
neighbor will be considered as dead. Default value = 15 sec, Min = 1 sec, Max =
60 sec 

10. max-faces-per-prefix <number>
By default NLSR calculates and add faces for all available faces to a prefix.
Number of faces can be restricted with this parameter, if this is configured
NLSR will add <number> or faces per prefixes in ccnd FIB.

11. debug <on/off> 
Enable nlsr debugging by printing out detail messages on the standard output.
By default it is off. 

12. logdir </directory/for/logging/> 
NLSR will start writing log in logdir folder. If logdir is not configured NLSR
will create a log directory name nlsrLog in user home directory and write log
into that folder.

13. tunnel-type <udp | tcp> 
This is used to specify the tunnel type that NLSR should create for building an
overlay network. By default NLSR creates udp tunnels.

**Following Commands are only required for hyperbolic routing**

14. hyperbolic-routing <on> 
This option enables hyperbolic routing. With this option on, link state routing
doesn't work. Following field is required if hyperbolic routing is on. 

15. hyperbolic-cordinate <radius> <theta> 
Polar coordinates of a node in a form of radius and theta. Currently, calculation 
of the polar coordinates is an offline process and done by 
the operator of a site. 

** Following parameters are required for the key management**

16. keystore-path </path/to/keystore/file name(.ccnx_keystore)>
Path to the keystore. The keystore folder is usually created  by
ccninitkeystore. Keys in this folder will be used by NLSR to sign the packets. 

17. root-key-prefix </key/prefix>   
Name prefix of the root key; the site key should be signed by this key.  
e.g. root-key-prefix /ndn/keys

18. site-name </name/prefix/of/site> 
Name of the site of which this router is a part. 

