src: configuration file parsing
used boost::property_tree::info_parser for parsing nlsr's configuration file and
changed configuration command style to info command style. Removed tokenizer from
nlsr
Refs: #1542
Change-Id: If017ddd7eef5caa59b33940bfc27a71aa4de266b
diff --git a/nlsr.conf b/nlsr.conf
index 2f2287b..2f2440f 100644
--- a/nlsr.conf
+++ b/nlsr.conf
@@ -1,14 +1,97 @@
-network ndn
-site-name memphis.edu
-router-name cs/macbook
+; the general section contains all the general settings for router
-ndnneighbor /ndn/memphis.edu/cs/maia 7
-link-cost /ndn/memphis.edu/cs/maia 30
-ndnneighbor /ndn/memphis.edu/cs/pollux 10
-link-cost /ndn/memphis.edu/cs/pollux 25
+general
+{
+; mandatory configuration command section network, site and router
-ndnname /ndn/memphis.edu/cs/macbook/name1
-ndnname /ndn/memphis.edu/cs/macbook/name2
+ network /ndn/ ; name of the network the router belongs to in ndn URI format
+ site /memphis.edu/ ; name of the site the router belongs to in ndn URI format
+ router /cs/pollux/ ; name of the network the router belongs to in ndn URI format
+
+; lsa-refresh-time is the time in seconds, after which router will refresh its LSAs
+
+ lsa-refresh-time 1800 ; default value 1800. Valid values 240-7200
+
+; log-level is to set the levels of log for NLSR
+
+ log-level INFO ; default value INFO, valid value DEBUG, INFO
+}
+
+; the neighbors section contains the configuration for router's neighbors and hello's behavior
+
+neighbors
+{
+; in case hello interest timed out, router will try 'hello-retries' times at 'hello-time-out'
+; seconds interval before giving up for any neighbors (deciding link is down)
+
+ hello-retries 3 ; interest retries number in integer. Default value 3
+ ; valid values 1-10
+
+ hello-timeout 1 ; interest time out value in integer. Default value 1
+ ; Valid values 1-15
+
+ hello-interval 60 ; interest sending interval in seconds. Default value 60
+ ; valid values 30-90
+; neighbor command is used to configure router's neighbor. Each neighbor will need
+; one block of neighbor command
+
+ neighbor
+ {
+ name /ndn/memphis.edu/cs/castor ; name prefix of the neighbor router consists
+ ; of network, site-name and router-name
+
+ face-uri udp://castor.cs.memphis.edu ; face id of the face connected to the neighbor
+ link-cost 25 ; cost of the connecting link to neighbor
+ }
+
+ neighbor
+ {
+ name /ndn/memphis.edu/cs/mira ; name prefix of the neighbor router consists
+ ; of network, site-name and router-name
+
+ face-uri udp://mira.cs.memphis.edu ; face id of the face connected to the neighbor
+ link-cost 30 ; cost of the connecting link to neighbor
+ }
+}
+
+; the hyperbolic section contains the configuration settings of enabling a router to calculate
+; routing table using [hyperbolic routing table calculation](http://arxiv.org/abs/0805.1266) method
+
+hyperbolic
+{
+; commands in this section follows a strict order
+; the switch is used to set hyperbolic routing calculation in NLSR
+
+ state off ; default value 'off', set value 'on' to enable hyperbolic routing table
+ ; calculation which turns link state routing 'off'. set value to 'dry-run"
+ ; to test hyperbolic routing and compare with link state routing.
-!logdir /Users/akmhoque/NLSR-CPP/log
+ radius 123.456 ; radius of the router in hyperbolic coordinate system
+ angle 1.45 ; angle of the router in hyperbolic coordinate system
+}
+
+
+; the fib section is used to configure fib entry's type to ndn FIB updated by NLSR
+
+fib
+{
+; the max-faces-per-prefix is used to limit the number of faces for each name prefixes
+; by NLSR in ndn FIB
+
+ max-faces-per-prefix 3 ; default value 0. Valid value 0-60. By default (value 0) NLSR adds
+ ; all available faces for each reachable name prefixes in NDN FIB
+
+}
+
+; the advertising section contains the configuration settings of the name prefixes
+; hosted by this router
+
+advertising
+{
+; the ndnname is used to advertised name from the router. To advertise each name prefix
+; configure one block of ndnname configuration command for every name prefix.
+
+ prefix /ndn/edu/memphis/cs/netlab ; name in ndn URI format
+ prefix /ndn/edu/memphis/sports/basketball
+}