; the general section contains all the general settings for router

$GENERAL_SECTION

; the neighbors section contains the configuration for router's neighbors and hello's behavior

$NEIGHBORS_SECTION

; 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_SECTION


; the fib section is used to configure fib entry's type to ndn FIB updated by NLSR

$FIB_SECTION

; the advertising section contains the configuration settings of the name prefixes
; hosted by this router

$ADVERTISING_SECTION

$SECURITY_SECTION
