blob: beed576305bceacf6e5e76a5428ea0c68f1f24db [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
Ashlesh Gawandef7da9c52018-02-06 17:36:46 -060022 ; sync interest lifetime of ChronoSync in milliseconds
23 sync-interest-lifetime 60000 ; default value 60000. Valid values 1000-120,000
24
dmcoomescf8d0ed2017-02-21 11:39:01 -060025 seq-dir /var/lib/nlsr ; path for sequence directory (Absolute path)
akmhoque157b0a42014-05-13 00:26:37 -050026}
27
Nick Gordond5c1a372016-10-31 13:56:23 -050028; the neighbor's section contains the configuration for router's neighbors and hellos behavior
akmhoque157b0a42014-05-13 00:26:37 -050029
30neighbors
31{
Alexander Afanasyev8388ec62014-08-16 18:38:57 -070032 ; in case hello interest timed out, router will try 'hello-retries' times at 'hello-timeout'
33 ; seconds interval before giving up for any neighbors (deciding link is down)
akmhoque157b0a42014-05-13 00:26:37 -050034
35 hello-retries 3 ; interest retries number in integer. Default value 3
36 ; valid values 1-10
37
38 hello-timeout 1 ; interest time out value in integer. Default value 1
39 ; Valid values 1-15
40
41 hello-interval 60 ; interest sending interval in seconds. Default value 60
42 ; valid values 30-90
akmhoque157b0a42014-05-13 00:26:37 -050043
Vince Lehman7b616582014-10-17 16:25:39 -050044 ; adj-lsa-build-interval is the time to wait in seconds after an Adjacency LSA build is scheduled
45 ; before actually building the Adjacency LSA
46
47 adj-lsa-build-interval 5 ; default value 5. Valid values 0-5. It is recommended that
48 ; adj-lsa-build-interval have a lower value than routing-calc-interval
49
50 ; first-hello-interval is the time to wait in seconds before sending the first Hello Interest
51
52 first-hello-interval 10 ; Default value 10. Valid values 0-10
53
Nick Gordond5c1a372016-10-31 13:56:23 -050054 face-dataset-fetch-tries 3 ; default is 3. Valid values 1-10. The FaceDataset is
55 ; gotten from NFD, and is needed to configure NLSR
56 ; correctly. It is recommended not to set this
Muktadir Chowdhuryf04f9892017-08-20 20:42:56 -050057 ; variable too high, because it could cause
Nick Gordond5c1a372016-10-31 13:56:23 -050058 ; congestion for NFD.
59
60 face-dataset-fetch-interval 3600 ; default is 3600. Valid values 1800-5400.
61 ; This controls how often (in seconds) NLSR will attempt to
62 ; fetch a FaceStatus dataset from NFD.
63
Alexander Afanasyev8388ec62014-08-16 18:38:57 -070064 ; neighbor command is used to configure router's neighbor. Each neighbor will need
65 ; one block of neighbor command
66
67 neighbor
68 {
69 name /ndn/edu/memphis/%C1.Router/cs/castor ; name prefix of the neighbor router consists
70 ; of network, site-name and router-name
71
72 face-uri udp://castor.cs.memphis.edu ; face uri of the face connected to the neighbor
73 link-cost 25 ; cost of the connecting link to neighbor
74 }
75
76 neighbor
77 {
78 name /ndn/edu/memphis/%C1.Router/cs/mira ; name prefix of the neighbor router consists
akmhoque157b0a42014-05-13 00:26:37 -050079 ; of network, site-name and router-name
80
Alexander Afanasyev8388ec62014-08-16 18:38:57 -070081 face-uri udp://mira.cs.memphis.edu ; face uri of the face connected to the neighbor
82 link-cost 30 ; cost of the connecting link to neighbor
83 }
akmhoque157b0a42014-05-13 00:26:37 -050084}
85
86; the hyperbolic section contains the configuration settings of enabling a router to calculate
87; routing table using [hyperbolic routing table calculation](http://arxiv.org/abs/0805.1266) method
88
89hyperbolic
90{
Alexander Afanasyev8388ec62014-08-16 18:38:57 -070091 ; commands in this section follows a strict order
92 ; the switch is used to set hyperbolic routing calculation in NLSR
akmhoque157b0a42014-05-13 00:26:37 -050093
Alexander Afanasyev8388ec62014-08-16 18:38:57 -070094 state off ; default value 'off', set value 'on' to enable hyperbolic routing table
Junxiao Shif09e2632015-01-02 18:15:01 -070095 ; calculation which turns link state routing 'off'. set value to 'dry-run'
Alexander Afanasyev8388ec62014-08-16 18:38:57 -070096 ; to test hyperbolic routing and compare with link state routing.
akmhoqueba094742014-02-28 11:47:21 -060097
98
Alexander Afanasyev8388ec62014-08-16 18:38:57 -070099 radius 123.456 ; radius of the router in hyperbolic coordinate system
Muktadir R Chowdhuryb00dc2a2016-11-05 10:48:58 -0600100 angle 1.45,2.36 ; angle of the router in hyperbolic coordinate system
akmhoque157b0a42014-05-13 00:26:37 -0500101}
102
103
Nick Gordond5c1a372016-10-31 13:56:23 -0500104; the fib section is used to configure fib entrys type to ndn FIB updated by NLSR
akmhoque157b0a42014-05-13 00:26:37 -0500105
106fib
107{
Alexander Afanasyev8388ec62014-08-16 18:38:57 -0700108 ; the max-faces-per-prefix is used to limit the number of faces for each name prefixes
109 ; by NLSR in ndn FIB
akmhoque157b0a42014-05-13 00:26:37 -0500110
Alexander Afanasyev8388ec62014-08-16 18:38:57 -0700111 max-faces-per-prefix 3 ; default value 0. Valid value 0-60. By default (value 0) NLSR adds
112 ; all available faces for each reachable name prefixes in NDN FIB
Vince Lehman7b616582014-10-17 16:25:39 -0500113
114 ; routing-calc-interval is the time to wait in seconds after a routing table calculation is
115 ; scheduled before actually performing the routing table calculation
116
117 routing-calc-interval 15 ; default value 15. Valid values 0-15. It is recommended that
118 ; routing-calc-interval have a higher value than adj-lsa-build-interval
akmhoque157b0a42014-05-13 00:26:37 -0500119}
120
Yingdi Yu20e3a6e2014-05-26 23:16:10 -0700121; the advertising section contains the configuration settings of the name prefixes
akmhoque157b0a42014-05-13 00:26:37 -0500122; hosted by this router
123
124advertising
125{
Alexander Afanasyev8388ec62014-08-16 18:38:57 -0700126 ; the ndnname is used to advertised name from the router. To advertise each name prefix
127 ; configure one block of ndnname configuration command for every name prefix.
akmhoque157b0a42014-05-13 00:26:37 -0500128
Alexander Afanasyev8388ec62014-08-16 18:38:57 -0700129 prefix /ndn/edu/memphis/cs/netlab ; name in ndn URI format
130 prefix /ndn/edu/memphis/sports/basketball
Yingdi Yu20e3a6e2014-05-26 23:16:10 -0700131}
132
133security
134{
135 validator
136 {
137 rule
138 {
Laqin Fand8c9d8c2017-01-18 21:45:14 +0000139 id "NLSR Hello Rule"
Yingdi Yu20e3a6e2014-05-26 23:16:10 -0700140 for data
141 filter
142 {
143 type name
Ashlesh Gawandecba0ae22018-03-27 17:57:56 -0500144 regex ^[^<nlsr><INFO>]*<nlsr><INFO><><>$
Yingdi Yu20e3a6e2014-05-26 23:16:10 -0700145 }
146 checker
147 {
148 type customized
149 sig-type rsa-sha256
150 key-locator
151 {
152 type name
153 hyper-relation
154 {
Ashlesh Gawandecba0ae22018-03-27 17:57:56 -0500155 k-regex ^([^<KEY><nlsr>]*)<nlsr><KEY><>$
Yingdi Yu6a3a4dd2014-06-20 14:10:39 -0700156 k-expand \\1
Yingdi Yu20e3a6e2014-05-26 23:16:10 -0700157 h-relation equal
Ashlesh Gawandecba0ae22018-03-27 17:57:56 -0500158 p-regex ^([^<nlsr><INFO>]*)<nlsr><INFO><><>$
Yingdi Yu20e3a6e2014-05-26 23:16:10 -0700159 p-expand \\1
160 }
161 }
162 }
163 }
164
165 rule
166 {
Laqin Fand8c9d8c2017-01-18 21:45:14 +0000167 id "NLSR LSA Rule"
Yingdi Yu20e3a6e2014-05-26 23:16:10 -0700168 for data
169 filter
170 {
171 type name
Ashlesh Gawandecba0ae22018-03-27 17:57:56 -0500172 regex ^[^<nlsr><LSA>]*<nlsr><LSA>
Yingdi Yu20e3a6e2014-05-26 23:16:10 -0700173 }
174 checker
175 {
176 type customized
177 sig-type rsa-sha256
178 key-locator
179 {
180 type name
181 hyper-relation
182 {
Ashlesh Gawandecba0ae22018-03-27 17:57:56 -0500183 k-regex ^([^<KEY><nlsr>]*)<nlsr><KEY><>$
Yingdi Yu6a3a4dd2014-06-20 14:10:39 -0700184 k-expand \\1
Yingdi Yu20e3a6e2014-05-26 23:16:10 -0700185 h-relation equal
Muktadir R Chowdhuryaa3b0852015-08-06 13:08:56 -0500186 ; the last four components in the prefix should be <lsaType><seqNo><version><segmentNo>
Ashlesh Gawandecba0ae22018-03-27 17:57:56 -0500187 p-regex ^<localhop>([^<nlsr><LSA>]*)<nlsr><LSA>(<>*)<><><><>$
Yingdi Yu20e3a6e2014-05-26 23:16:10 -0700188 p-expand \\1\\2
189 }
190 }
191 }
192 }
193
194 rule
195 {
Laqin Fand8c9d8c2017-01-18 21:45:14 +0000196 id "NLSR Hierarchy Exception Rule"
Yingdi Yu20e3a6e2014-05-26 23:16:10 -0700197 for data
198 filter
199 {
200 type name
Ashlesh Gawandecba0ae22018-03-27 17:57:56 -0500201 regex ^[^<KEY><%C1.Router>]*<%C1.Router>[^<KEY><nlsr>]*<KEY><><><>$
Yingdi Yu20e3a6e2014-05-26 23:16:10 -0700202 }
203 checker
204 {
205 type customized
206 sig-type rsa-sha256
207 key-locator
208 {
209 type name
210 hyper-relation
211 {
Muktadir Chowdhuryf04f9892017-08-20 20:42:56 -0500212 k-regex ^([^<KEY><%C1.Operator>]*)<%C1.Operator>[^<KEY>]*<KEY><>$
Yingdi Yu20e3a6e2014-05-26 23:16:10 -0700213 k-expand \\1
214 h-relation equal
Muktadir Chowdhuryf04f9892017-08-20 20:42:56 -0500215 p-regex ^([^<KEY><%C1.Router>]*)<%C1.Router>[^<KEY>]*<KEY><><><>$
Yingdi Yu20e3a6e2014-05-26 23:16:10 -0700216 p-expand \\1
217 }
218 }
219 }
220 }
221
222 rule
223 {
Laqin Fand8c9d8c2017-01-18 21:45:14 +0000224 id "NLSR Hierarchical Rule"
Yingdi Yu20e3a6e2014-05-26 23:16:10 -0700225 for data
226 filter
227 {
228 type name
Muktadir Chowdhuryf04f9892017-08-20 20:42:56 -0500229 regex ^[^<KEY>]*<KEY><><><>$
Yingdi Yu20e3a6e2014-05-26 23:16:10 -0700230 }
231 checker
232 {
233 type hierarchical
234 sig-type rsa-sha256
235 }
236 }
237
238 trust-anchor
239 {
240 type file
241 file-name "root.cert"
242 }
243 }
alvy297f4162015-03-03 17:15:33 -0600244
245 prefix-update-validator
246 {
247 rule
248 {
249 id "NLSR ControlCommand Rule"
250 for interest
251 filter
252 {
253 type name
Muktadir Chowdhuryf04f9892017-08-20 20:42:56 -0500254 ; /<prefix>/<management-module>/<command-verb>/<control-parameters>
255 ; /<timestamp>/<random-value>/<signed-interests-components>
256 regex ^<localhost><nlsr><prefix-update>[<advertise><withdraw>]<><><>$
alvy297f4162015-03-03 17:15:33 -0600257 }
258 checker
259 {
260 type customized
261 sig-type rsa-sha256
262 key-locator
263 {
264 type name
Muktadir Chowdhuryf04f9892017-08-20 20:42:56 -0500265 regex ^([^<KEY><%C1.Operator>]*)<%C1.Operator>[^<KEY>]*<KEY><>$
alvy297f4162015-03-03 17:15:33 -0600266 }
267 }
268 }
269
270 rule
271 {
272 id "NLSR Hierarchy Rule"
273 for data
274 filter
275 {
276 type name
Muktadir Chowdhuryf04f9892017-08-20 20:42:56 -0500277 regex ^[^<KEY>]*<KEY><><><>$
alvy297f4162015-03-03 17:15:33 -0600278 }
279 checker
280 {
281 type hierarchical
282 sig-type rsa-sha256
283 }
284 }
285
286 trust-anchor
287 {
288 type file
289 file-name "site.cert"
290 }
291 }
Muktadir Chowdhuryf04f9892017-08-20 20:42:56 -0500292
Vince Lehman9f51efd2014-09-18 14:46:01 -0500293 ; cert-to-publish "root.cert" ; optional, a file containing the root certificate
294 ; Only the router that is designated to publish the root cert
295 ; needs to specify this
296
297 ; cert-to-publish "site.cert" ; optional, a file containing the site certificate
298 ; Only the router that is designated to publish the site cert
299 ; needs to specify this
300
301 ; cert-to-publish "operator.cert" ; optional, a file containing the operator certificate
302 ; Only the router that is designated to publish the operator
303 ; cert needs to specify this
304
akmhoque50125a92014-06-30 08:54:17 -0500305 cert-to-publish "router.cert" ; required, a file containing the router certificate.
akmhoque157b0a42014-05-13 00:26:37 -0500306}