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 
+}