blob: d5421eda8a3e128f6be7ad41509ee5536d0a5a8c [file] [log] [blame]
akmhoque157b0a42014-05-13 00:26:37 -05001; the general section contains all the general settings for router
akmhoqueba094742014-02-28 11:47:21 -06002
akmhoque157b0a42014-05-13 00:26:37 -05003general
4{
Alexander Afanasyev8388ec62014-08-16 18:38:57 -07005 ; mandatory configuration command section network, site and router
akmhoqueba094742014-02-28 11:47:21 -06006
Alexander Afanasyev8388ec62014-08-16 18:38:57 -07007 network /ndn/ ; name of the network the router belongs to in ndn URI format
8 site /edu/memphis ; name of the site the router belongs to in ndn URI format
9 router /%C1.Router/cs/pollux ; name of the router in ndn URI format
akmhoque157b0a42014-05-13 00:26:37 -050010
Alexander Afanasyev8388ec62014-08-16 18:38:57 -070011 ; lsa-refresh-time is the time in seconds, after which router will refresh its LSAs
Alexander Afanasyev8388ec62014-08-16 18:38:57 -070012 lsa-refresh-time 1800 ; default value 1800. Valid values 240-7200
akmhoque157b0a42014-05-13 00:26:37 -050013
Nick Gordond5c1a372016-10-31 13:56:23 -050014 ; router-dead-interval is the time in seconds after which an inactive routers
Vince Lehmanfc7d5b62014-12-05 15:02:47 -060015 ; LSAs are removed
16 ;router-dead-interval 3600 ; default value: 2*lsa-refresh-time. Value must be larger
17 ; than lsa-refresh-time
18
Alexander Afanasyev411ee4b2014-08-16 23:17:03 -070019 ; InterestLifetime (in seconds) for LSA fetching
20 lsa-interest-lifetime 4 ; default value 4. Valid values 1-60
21
dmcoomescf8d0ed2017-02-21 11:39:01 -060022 seq-dir /var/lib/nlsr ; path for sequence directory (Absolute path)
akmhoque157b0a42014-05-13 00:26:37 -050023}
24
Nick Gordond5c1a372016-10-31 13:56:23 -050025; the neighbor's section contains the configuration for router's neighbors and hellos behavior
akmhoque157b0a42014-05-13 00:26:37 -050026
27neighbors
28{
Alexander Afanasyev8388ec62014-08-16 18:38:57 -070029 ; in case hello interest timed out, router will try 'hello-retries' times at 'hello-timeout'
30 ; seconds interval before giving up for any neighbors (deciding link is down)
akmhoque157b0a42014-05-13 00:26:37 -050031
32 hello-retries 3 ; interest retries number in integer. Default value 3
33 ; valid values 1-10
34
35 hello-timeout 1 ; interest time out value in integer. Default value 1
36 ; Valid values 1-15
37
38 hello-interval 60 ; interest sending interval in seconds. Default value 60
39 ; valid values 30-90
akmhoque157b0a42014-05-13 00:26:37 -050040
Vince Lehman7b616582014-10-17 16:25:39 -050041 ; adj-lsa-build-interval is the time to wait in seconds after an Adjacency LSA build is scheduled
42 ; before actually building the Adjacency LSA
43
44 adj-lsa-build-interval 5 ; default value 5. Valid values 0-5. It is recommended that
45 ; adj-lsa-build-interval have a lower value than routing-calc-interval
46
47 ; first-hello-interval is the time to wait in seconds before sending the first Hello Interest
48
49 first-hello-interval 10 ; Default value 10. Valid values 0-10
50
Nick Gordond5c1a372016-10-31 13:56:23 -050051 face-dataset-fetch-tries 3 ; default is 3. Valid values 1-10. The FaceDataset is
52 ; gotten from NFD, and is needed to configure NLSR
53 ; correctly. It is recommended not to set this
Muktadir Chowdhuryf04f9892017-08-20 20:42:56 -050054 ; variable too high, because it could cause
Nick Gordond5c1a372016-10-31 13:56:23 -050055 ; congestion for NFD.
56
57 face-dataset-fetch-interval 3600 ; default is 3600. Valid values 1800-5400.
58 ; This controls how often (in seconds) NLSR will attempt to
59 ; fetch a FaceStatus dataset from NFD.
60
Alexander Afanasyev8388ec62014-08-16 18:38:57 -070061 ; neighbor command is used to configure router's neighbor. Each neighbor will need
62 ; one block of neighbor command
63
64 neighbor
65 {
66 name /ndn/edu/memphis/%C1.Router/cs/castor ; name prefix of the neighbor router consists
67 ; of network, site-name and router-name
68
69 face-uri udp://castor.cs.memphis.edu ; face uri of the face connected to the neighbor
70 link-cost 25 ; cost of the connecting link to neighbor
71 }
72
73 neighbor
74 {
75 name /ndn/edu/memphis/%C1.Router/cs/mira ; name prefix of the neighbor router consists
akmhoque157b0a42014-05-13 00:26:37 -050076 ; of network, site-name and router-name
77
Alexander Afanasyev8388ec62014-08-16 18:38:57 -070078 face-uri udp://mira.cs.memphis.edu ; face uri of the face connected to the neighbor
79 link-cost 30 ; cost of the connecting link to neighbor
80 }
akmhoque157b0a42014-05-13 00:26:37 -050081}
82
83; the hyperbolic section contains the configuration settings of enabling a router to calculate
84; routing table using [hyperbolic routing table calculation](http://arxiv.org/abs/0805.1266) method
85
86hyperbolic
87{
Alexander Afanasyev8388ec62014-08-16 18:38:57 -070088 ; commands in this section follows a strict order
89 ; the switch is used to set hyperbolic routing calculation in NLSR
akmhoque157b0a42014-05-13 00:26:37 -050090
Alexander Afanasyev8388ec62014-08-16 18:38:57 -070091 state off ; default value 'off', set value 'on' to enable hyperbolic routing table
Junxiao Shif09e2632015-01-02 18:15:01 -070092 ; calculation which turns link state routing 'off'. set value to 'dry-run'
Alexander Afanasyev8388ec62014-08-16 18:38:57 -070093 ; to test hyperbolic routing and compare with link state routing.
akmhoqueba094742014-02-28 11:47:21 -060094
95
Alexander Afanasyev8388ec62014-08-16 18:38:57 -070096 radius 123.456 ; radius of the router in hyperbolic coordinate system
Muktadir R Chowdhuryb00dc2a2016-11-05 10:48:58 -060097 angle 1.45,2.36 ; angle of the router in hyperbolic coordinate system
akmhoque157b0a42014-05-13 00:26:37 -050098}
99
100
Nick Gordond5c1a372016-10-31 13:56:23 -0500101; the fib section is used to configure fib entrys type to ndn FIB updated by NLSR
akmhoque157b0a42014-05-13 00:26:37 -0500102
103fib
104{
Alexander Afanasyev8388ec62014-08-16 18:38:57 -0700105 ; the max-faces-per-prefix is used to limit the number of faces for each name prefixes
106 ; by NLSR in ndn FIB
akmhoque157b0a42014-05-13 00:26:37 -0500107
Alexander Afanasyev8388ec62014-08-16 18:38:57 -0700108 max-faces-per-prefix 3 ; default value 0. Valid value 0-60. By default (value 0) NLSR adds
109 ; all available faces for each reachable name prefixes in NDN FIB
Vince Lehman7b616582014-10-17 16:25:39 -0500110
111 ; routing-calc-interval is the time to wait in seconds after a routing table calculation is
112 ; scheduled before actually performing the routing table calculation
113
114 routing-calc-interval 15 ; default value 15. Valid values 0-15. It is recommended that
115 ; routing-calc-interval have a higher value than adj-lsa-build-interval
akmhoque157b0a42014-05-13 00:26:37 -0500116}
117
Yingdi Yu20e3a6e2014-05-26 23:16:10 -0700118; the advertising section contains the configuration settings of the name prefixes
akmhoque157b0a42014-05-13 00:26:37 -0500119; hosted by this router
120
121advertising
122{
Alexander Afanasyev8388ec62014-08-16 18:38:57 -0700123 ; the ndnname is used to advertised name from the router. To advertise each name prefix
124 ; configure one block of ndnname configuration command for every name prefix.
akmhoque157b0a42014-05-13 00:26:37 -0500125
Alexander Afanasyev8388ec62014-08-16 18:38:57 -0700126 prefix /ndn/edu/memphis/cs/netlab ; name in ndn URI format
127 prefix /ndn/edu/memphis/sports/basketball
Yingdi Yu20e3a6e2014-05-26 23:16:10 -0700128}
129
130security
131{
132 validator
133 {
134 rule
135 {
Laqin Fand8c9d8c2017-01-18 21:45:14 +0000136 id "NLSR Hello Rule"
Yingdi Yu20e3a6e2014-05-26 23:16:10 -0700137 for data
138 filter
139 {
140 type name
akmhoque93f1a072014-06-19 16:24:28 -0500141 regex ^[^<NLSR><INFO>]*<NLSR><INFO><><>$
Yingdi Yu20e3a6e2014-05-26 23:16:10 -0700142 }
143 checker
144 {
145 type customized
146 sig-type rsa-sha256
147 key-locator
148 {
149 type name
150 hyper-relation
151 {
Muktadir Chowdhuryf04f9892017-08-20 20:42:56 -0500152 k-regex ^([^<KEY><NLSR>]*)<NLSR><KEY><>$
Yingdi Yu6a3a4dd2014-06-20 14:10:39 -0700153 k-expand \\1
Yingdi Yu20e3a6e2014-05-26 23:16:10 -0700154 h-relation equal
akmhoque93f1a072014-06-19 16:24:28 -0500155 p-regex ^([^<NLSR><INFO>]*)<NLSR><INFO><><>$
Yingdi Yu20e3a6e2014-05-26 23:16:10 -0700156 p-expand \\1
157 }
158 }
159 }
160 }
161
162 rule
163 {
Laqin Fand8c9d8c2017-01-18 21:45:14 +0000164 id "NLSR LSA Rule"
Yingdi Yu20e3a6e2014-05-26 23:16:10 -0700165 for data
166 filter
167 {
168 type name
akmhoquea816bee2014-06-24 14:37:40 -0500169 regex ^[^<NLSR><LSA>]*<NLSR><LSA>
Yingdi Yu20e3a6e2014-05-26 23:16:10 -0700170 }
171 checker
172 {
173 type customized
174 sig-type rsa-sha256
175 key-locator
176 {
177 type name
178 hyper-relation
179 {
Muktadir Chowdhuryf04f9892017-08-20 20:42:56 -0500180 k-regex ^([^<KEY><NLSR>]*)<NLSR><KEY><>$
Yingdi Yu6a3a4dd2014-06-20 14:10:39 -0700181 k-expand \\1
Yingdi Yu20e3a6e2014-05-26 23:16:10 -0700182 h-relation equal
Muktadir R Chowdhuryaa3b0852015-08-06 13:08:56 -0500183 ; the last four components in the prefix should be <lsaType><seqNo><version><segmentNo>
Ashlesh Gawande54e726c2017-01-30 12:48:06 -0600184 p-regex ^<localhop>([^<NLSR><LSA>]*)<NLSR><LSA>(<>*)<><><><>$
Yingdi Yu20e3a6e2014-05-26 23:16:10 -0700185 p-expand \\1\\2
186 }
187 }
188 }
189 }
190
191 rule
192 {
Laqin Fand8c9d8c2017-01-18 21:45:14 +0000193 id "NLSR Hierarchy Exception Rule"
Yingdi Yu20e3a6e2014-05-26 23:16:10 -0700194 for data
195 filter
196 {
197 type name
Muktadir Chowdhuryf04f9892017-08-20 20:42:56 -0500198 regex ^[^<KEY><%C1.Router>]*<%C1.Router>[^<KEY><NLSR>]*<KEY><><><>$
Yingdi Yu20e3a6e2014-05-26 23:16:10 -0700199 }
200 checker
201 {
202 type customized
203 sig-type rsa-sha256
204 key-locator
205 {
206 type name
207 hyper-relation
208 {
Muktadir Chowdhuryf04f9892017-08-20 20:42:56 -0500209 k-regex ^([^<KEY><%C1.Operator>]*)<%C1.Operator>[^<KEY>]*<KEY><>$
Yingdi Yu20e3a6e2014-05-26 23:16:10 -0700210 k-expand \\1
211 h-relation equal
Muktadir Chowdhuryf04f9892017-08-20 20:42:56 -0500212 p-regex ^([^<KEY><%C1.Router>]*)<%C1.Router>[^<KEY>]*<KEY><><><>$
Yingdi Yu20e3a6e2014-05-26 23:16:10 -0700213 p-expand \\1
214 }
215 }
216 }
217 }
218
219 rule
220 {
Laqin Fand8c9d8c2017-01-18 21:45:14 +0000221 id "NLSR Hierarchical Rule"
Yingdi Yu20e3a6e2014-05-26 23:16:10 -0700222 for data
223 filter
224 {
225 type name
Muktadir Chowdhuryf04f9892017-08-20 20:42:56 -0500226 regex ^[^<KEY>]*<KEY><><><>$
Yingdi Yu20e3a6e2014-05-26 23:16:10 -0700227 }
228 checker
229 {
230 type hierarchical
231 sig-type rsa-sha256
232 }
233 }
234
235 trust-anchor
236 {
237 type file
238 file-name "root.cert"
239 }
240 }
alvy297f4162015-03-03 17:15:33 -0600241
242 prefix-update-validator
243 {
244 rule
245 {
246 id "NLSR ControlCommand Rule"
247 for interest
248 filter
249 {
250 type name
Muktadir Chowdhuryf04f9892017-08-20 20:42:56 -0500251 ; /<prefix>/<management-module>/<command-verb>/<control-parameters>
252 ; /<timestamp>/<random-value>/<signed-interests-components>
253 regex ^<localhost><nlsr><prefix-update>[<advertise><withdraw>]<><><>$
alvy297f4162015-03-03 17:15:33 -0600254 }
255 checker
256 {
257 type customized
258 sig-type rsa-sha256
259 key-locator
260 {
261 type name
Muktadir Chowdhuryf04f9892017-08-20 20:42:56 -0500262 regex ^([^<KEY><%C1.Operator>]*)<%C1.Operator>[^<KEY>]*<KEY><>$
alvy297f4162015-03-03 17:15:33 -0600263 }
264 }
265 }
266
267 rule
268 {
269 id "NLSR Hierarchy Rule"
270 for data
271 filter
272 {
273 type name
Muktadir Chowdhuryf04f9892017-08-20 20:42:56 -0500274 regex ^[^<KEY>]*<KEY><><><>$
alvy297f4162015-03-03 17:15:33 -0600275 }
276 checker
277 {
278 type hierarchical
279 sig-type rsa-sha256
280 }
281 }
282
283 trust-anchor
284 {
285 type file
286 file-name "site.cert"
287 }
288 }
Muktadir Chowdhuryf04f9892017-08-20 20:42:56 -0500289
Vince Lehman9f51efd2014-09-18 14:46:01 -0500290 ; cert-to-publish "root.cert" ; optional, a file containing the root certificate
291 ; Only the router that is designated to publish the root cert
292 ; needs to specify this
293
294 ; cert-to-publish "site.cert" ; optional, a file containing the site certificate
295 ; Only the router that is designated to publish the site cert
296 ; needs to specify this
297
298 ; cert-to-publish "operator.cert" ; optional, a file containing the operator certificate
299 ; Only the router that is designated to publish the operator
300 ; cert needs to specify this
301
akmhoque50125a92014-06-30 08:54:17 -0500302 cert-to-publish "router.cert" ; required, a file containing the router certificate.
akmhoque157b0a42014-05-13 00:26:37 -0500303}