Configuration File Format » History » Version 26
A K M Mahmudul Hoque, 07/11/2014 06:52 AM
1 | 1 | A K M Mahmudul Hoque | ## Configuration File Format |
---|---|---|---|
2 | |||
3 | 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). |
||
4 | |||
5 | ## Example configuration |
||
6 | |||
7 | 16 | A K M Mahmudul Hoque | ; the general section contains all the general settings for router |
8 | |||
9 | general |
||
10 | { |
||
11 | 17 | A K M Mahmudul Hoque | ; mandatory configuration command section network, site and router |
12 | |||
13 | 26 | A K M Mahmudul Hoque | network /ndn ; name of the network the router belongs to in ndn URI format |
14 | site /edu/memphis ; name of the site the router belongs to in ndn URI format |
||
15 | router /%C1.Router/cs/pollux ; name of the network the router belongs to in ndn URI format |
||
16 | 17 | A K M Mahmudul Hoque | |
17 | 16 | A K M Mahmudul Hoque | ; lsa-refresh-time is the time in seconds, after which router will refresh its LSAs |
18 | 8 | A K M Mahmudul Hoque | |
19 | 9 | A K M Mahmudul Hoque | lsa-refresh-time 1800 ; default value 1800. Valid values 240-7200 |
20 | |||
21 | ; log-level is to set the levels of log for NLSR |
||
22 | 1 | A K M Mahmudul Hoque | |
23 | log-level INFO ; default value INFO, valid value DEBUG, INFO |
||
24 | } |
||
25 | |||
26 | 18 | A K M Mahmudul Hoque | ; the neighbors section contains the configuration for router's neighbors and hello's behavior |
27 | |||
28 | neighbors |
||
29 | 1 | A K M Mahmudul Hoque | { |
30 | 20 | A K M Mahmudul Hoque | ; in case hello interest timed out, router will try 'hello-retries' times at 'hello-time-out' |
31 | 18 | A K M Mahmudul Hoque | ; seconds interval before giving up for any neighbors (deciding link is down) |
32 | 16 | A K M Mahmudul Hoque | |
33 | 18 | A K M Mahmudul Hoque | hello-retries 3 ; interest retries number in integer. Default value 3 |
34 | 16 | A K M Mahmudul Hoque | ; valid values 1-10 |
35 | 1 | A K M Mahmudul Hoque | |
36 | 25 | Lan Wang | hello-timeout 1 ; interest time out value for hello interest. Default |
37 | 20 | A K M Mahmudul Hoque | ; value 1, Valid values 1-15 |
38 | |||
39 | hello-interval 60 ; hello interest sending interval in seconds. Default value 60 |
||
40 | ; valid values 30-90 |
||
41 | 9 | A K M Mahmudul Hoque | ; neighbor command is used to configure router's neighbor. Each neighbor will need |
42 | 1 | A K M Mahmudul Hoque | ; one block of neighbor command |
43 | 9 | A K M Mahmudul Hoque | |
44 | 1 | A K M Mahmudul Hoque | neighbor |
45 | { |
||
46 | 12 | A K M Mahmudul Hoque | name /ndn/memphis.edu/cs/castor ; name prefix of the neighbor router consists |
47 | ; of network, site-name and router-name |
||
48 | 1 | A K M Mahmudul Hoque | |
49 | 22 | A K M Mahmudul Hoque | face-uri udp://castor.cs.memphis.edu ; face Uri of the face connected to the neighbor |
50 | 25 | Lan Wang | link-cost 20 ; cost of the connecting link to neighbor |
51 | 1 | A K M Mahmudul Hoque | } |
52 | } |
||
53 | |||
54 | ; the hyperbolic section contains the configuration settings of enabling a router to calculate |
||
55 | 3 | A K M Mahmudul Hoque | ; routing table using [hyperbolic routing table calculation](http://arxiv.org/abs/0805.1266) method |
56 | |||
57 | hyperbolic |
||
58 | { |
||
59 | 9 | A K M Mahmudul Hoque | ; commands in this section follows a strict order |
60 | 2 | A K M Mahmudul Hoque | ; the switch is used to set hyperbolic routing calculation in NLSR |
61 | 1 | A K M Mahmudul Hoque | |
62 | 9 | A K M Mahmudul Hoque | state off ; default value 'off', set value 'on' to enable hyperbolic routing table |
63 | 4 | A K M Mahmudul Hoque | ; calculation which turns link state routing 'off'. set value to 'dry-run" |
64 | 9 | A K M Mahmudul Hoque | ; to test hyperbolic routing and compare with link state routing. |
65 | |||
66 | 1 | A K M Mahmudul Hoque | |
67 | 9 | A K M Mahmudul Hoque | radius 123.456 ; radius of the router in hyperbolic coordinate system |
68 | angle 1.45 ; angle of the router in hyperbolic coordinate system |
||
69 | 5 | A K M Mahmudul Hoque | } |
70 | 1 | A K M Mahmudul Hoque | |
71 | |||
72 | 23 | Lan Wang | ; the fib section is used to configure parameters related to FIB computation |
73 | 1 | A K M Mahmudul Hoque | |
74 | fib |
||
75 | { |
||
76 | 23 | Lan Wang | ; the max-faces-per-prefix is used to limit the number of faces for each name prefix |
77 | 1 | A K M Mahmudul Hoque | ; by NLSR in ndn FIB |
78 | |||
79 | max-faces-per-prefix 3 ; default value 0. Valid value 0-60. By default (value 0) NLSR adds |
||
80 | ; all available faces for each reachable name prefixes in NDN FIB |
||
81 | 14 | A K M Mahmudul Hoque | |
82 | } |
||
83 | 15 | A K M Mahmudul Hoque | |
84 | 14 | A K M Mahmudul Hoque | ; the advertising section contains the configuration settings of the name prefixes |
85 | ; hosted by this router |
||
86 | |||
87 | advertising |
||
88 | { |
||
89 | 25 | Lan Wang | ; to advertise name prefixes owned by or directly reachable by the router, |
90 | 21 | A K M Mahmudul Hoque | ; configure one block of prefix configuration command for every name |
91 | 1 | A K M Mahmudul Hoque | |
92 | prefix /ndn/edu/memphis/cs/netlab ; name in ndn URI format |
||
93 | prefix /ndn/edu/memphis/sports/basketball |
||
94 | 26 | A K M Mahmudul Hoque | } |
95 | |||
96 | security |
||
97 | { |
||
98 | validator |
||
99 | { |
||
100 | rule |
||
101 | { |
||
102 | id "NSLR Hello Rule" |
||
103 | for data |
||
104 | filter |
||
105 | { |
||
106 | type name |
||
107 | regex ^[^<NLSR><INFO>]*<NLSR><INFO><><>$ |
||
108 | } |
||
109 | checker |
||
110 | { |
||
111 | type customized |
||
112 | sig-type rsa-sha256 |
||
113 | key-locator |
||
114 | { |
||
115 | type name |
||
116 | hyper-relation |
||
117 | { |
||
118 | k-regex ^([^<KEY><NLSR>]*)<NLSR><KEY><ksk-.*><ID-CERT>$ |
||
119 | k-expand \\1 |
||
120 | h-relation equal |
||
121 | p-regex ^([^<NLSR><INFO>]*)<NLSR><INFO><><>$ |
||
122 | p-expand \\1 |
||
123 | } |
||
124 | } |
||
125 | } |
||
126 | } |
||
127 | |||
128 | rule |
||
129 | { |
||
130 | id "NSLR LSA Rule" |
||
131 | for data |
||
132 | filter |
||
133 | { |
||
134 | type name |
||
135 | regex ^[^<NLSR><LSA>]*<NLSR><LSA> |
||
136 | } |
||
137 | checker |
||
138 | { |
||
139 | type customized |
||
140 | sig-type rsa-sha256 |
||
141 | key-locator |
||
142 | { |
||
143 | type name |
||
144 | hyper-relation |
||
145 | { |
||
146 | k-regex ^([^<KEY><NLSR>]*)<NLSR><KEY><ksk-.*><ID-CERT>$ |
||
147 | k-expand \\1 |
||
148 | h-relation equal |
||
149 | p-regex ^([^<NLSR><LSA>]*)<NLSR><LSA>(<>*)<><><>$ |
||
150 | p-expand \\1\\2 |
||
151 | } |
||
152 | } |
||
153 | } |
||
154 | } |
||
155 | |||
156 | rule |
||
157 | { |
||
158 | id "NSLR Hierarchy Exception Rule" |
||
159 | for data |
||
160 | filter |
||
161 | { |
||
162 | type name |
||
163 | regex ^[^<KEY><%C1.Router>]*<%C1.Router>[^<KEY><NLSR>]*<KEY><ksk-.*><ID-CERT><>$ |
||
164 | } |
||
165 | checker |
||
166 | { |
||
167 | type customized |
||
168 | sig-type rsa-sha256 |
||
169 | key-locator |
||
170 | { |
||
171 | type name |
||
172 | hyper-relation |
||
173 | { |
||
174 | k-regex ^([^<KEY><%C1.Operator>]*)<%C1.Operator>[^<KEY>]*<KEY><ksk-.*><ID-CERT>$ |
||
175 | k-expand \\1 |
||
176 | h-relation equal |
||
177 | p-regex ^([^<KEY><%C1.Router>]*)<%C1.Router>[^<KEY>]*<KEY><ksk-.*><ID-CERT><>$ |
||
178 | p-expand \\1 |
||
179 | } |
||
180 | } |
||
181 | } |
||
182 | } |
||
183 | |||
184 | rule |
||
185 | { |
||
186 | id "NSLR Hierarchical Rule" |
||
187 | for data |
||
188 | filter |
||
189 | { |
||
190 | type name |
||
191 | regex ^[^<KEY>]*<KEY><ksk-.*><ID-CERT><>$ |
||
192 | } |
||
193 | checker |
||
194 | { |
||
195 | type hierarchical |
||
196 | sig-type rsa-sha256 |
||
197 | } |
||
198 | } |
||
199 | |||
200 | trust-anchor |
||
201 | { |
||
202 | type file |
||
203 | file-name "root.cert" |
||
204 | } |
||
205 | } |
||
206 | ; cert-to-publish "root.cert" ; optional, a file containing the root certificate. only the router |
||
207 | ; that is designated to publish root cert needs to specify this |
||
208 | ; cert-to-publish "site.cert" ; optional, a file containing the root certificate. only the router |
||
209 | ; that is designated to publish site cert need to specify this |
||
210 | ; cert-to-publish "operator.cert" ; optional, a file containing the root certificate. only the |
||
211 | ; router that is designated to publish operator cert need to |
||
212 | ; specify this |
||
213 | cert-to-publish "router.cert" ; required, a file containing the router certificate. |
||
214 | 5 | A K M Mahmudul Hoque | } |