Configuration File Format » History » Revision 26
Revision 25 (Lan Wang, 05/15/2014 04:38 AM) → Revision 26/27 (A K M Mahmudul Hoque, 07/11/2014 06:52 AM)
## Configuration File Format NLSR is configured using an [INFO file](http://www.boost.org/doc/libs/1_42_0/doc/html/boost_propertytree/parsers.html#boost_propertytree.parsers.info_parser). ## Example configuration ; the general section contains all the general settings for router general { ; mandatory configuration command section network, site and router network /ndn ; name of the network the router belongs to in ndn URI format site /edu/memphis /memphis.edu ; name of the site the router belongs to in ndn URI format router /%C1.Router/cs/pollux /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 for hello interest. Default ; value 1, Valid values 1-15 hello-interval 60 ; hello 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 Uri of the face connected to the neighbor link-cost 20 ; 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. 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 parameters related to FIB computation fib { ; the max-faces-per-prefix is used to limit the number of faces for each name prefix ; 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 { ; to advertise name prefixes owned by or directly reachable by the router, ; configure one block of prefix configuration command for every name prefix /ndn/edu/memphis/cs/netlab ; name in ndn URI format prefix /ndn/edu/memphis/sports/basketball } security { validator { rule { id "NSLR Hello Rule" for data filter { type name regex ^[^<NLSR><INFO>]*<NLSR><INFO><><>$ } checker { type customized sig-type rsa-sha256 key-locator { type name hyper-relation { k-regex ^([^<KEY><NLSR>]*)<NLSR><KEY><ksk-.*><ID-CERT>$ k-expand \\1 h-relation equal p-regex ^([^<NLSR><INFO>]*)<NLSR><INFO><><>$ p-expand \\1 } } } } rule { id "NSLR LSA Rule" for data filter { type name regex ^[^<NLSR><LSA>]*<NLSR><LSA> } checker { type customized sig-type rsa-sha256 key-locator { type name hyper-relation { k-regex ^([^<KEY><NLSR>]*)<NLSR><KEY><ksk-.*><ID-CERT>$ k-expand \\1 h-relation equal p-regex ^([^<NLSR><LSA>]*)<NLSR><LSA>(<>*)<><><>$ p-expand \\1\\2 } } } } rule { id "NSLR Hierarchy Exception Rule" for data filter { type name regex ^[^<KEY><%C1.Router>]*<%C1.Router>[^<KEY><NLSR>]*<KEY><ksk-.*><ID-CERT><>$ } checker { type customized sig-type rsa-sha256 key-locator { type name hyper-relation { k-regex ^([^<KEY><%C1.Operator>]*)<%C1.Operator>[^<KEY>]*<KEY><ksk-.*><ID-CERT>$ k-expand \\1 h-relation equal p-regex ^([^<KEY><%C1.Router>]*)<%C1.Router>[^<KEY>]*<KEY><ksk-.*><ID-CERT><>$ p-expand \\1 } } } } rule { id "NSLR Hierarchical Rule" for data filter { type name regex ^[^<KEY>]*<KEY><ksk-.*><ID-CERT><>$ } checker { type hierarchical sig-type rsa-sha256 } } trust-anchor { type file file-name "root.cert" } } ; cert-to-publish "root.cert" ; optional, a file containing the root certificate. only the router ; that is designated to publish root cert needs to specify this ; cert-to-publish "site.cert" ; optional, a file containing the root certificate. only the router ; that is designated to publish site cert need to specify this ; cert-to-publish "operator.cert" ; optional, a file containing the root certificate. only the ; router that is designated to publish operator cert need to ; specify this cert-to-publish "router.cert" ; required, a file containing the router certificate. }