blob: f204d12c28d913d7cc73a823c029704b34157d7c [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
Alexander Afanasyev411ee4b2014-08-16 23:17:03 -070014 ; InterestLifetime (in seconds) for LSA fetching
15 lsa-interest-lifetime 4 ; default value 4. Valid values 1-60
16
Vince Lehmanf99b87f2014-08-26 15:54:27 -050017 ; log-level is used to set the logging level for NLSR.
18 ; All debugging levels listed above the selected value are enabled.
19 ;
20 ; Valid values:
21 ;
22 ; NONE ; no messages
23 ; ERROR ; error messages
24 ; WARN ; warning messages
25 ; INFO ; informational messages (default)
26 ; DEBUG ; debugging messages
27 ; TRACE ; trace messages (most verbose)
28 ; ALL ; all messages
akmhoque157b0a42014-05-13 00:26:37 -050029
Vince Lehmanf99b87f2014-08-26 15:54:27 -050030 log-level INFO
31
Alexander Afanasyev8388ec62014-08-16 18:38:57 -070032 log-dir /var/log/nlsr/ ; path for log directory (Absolute path)
33 seq-dir /var/lib/nlsr/ ; path for sequence directory (Absolute path)
akmhoque157b0a42014-05-13 00:26:37 -050034}
35
36; the neighbors section contains the configuration for router's neighbors and hello's behavior
37
38neighbors
39{
Alexander Afanasyev8388ec62014-08-16 18:38:57 -070040 ; in case hello interest timed out, router will try 'hello-retries' times at 'hello-timeout'
41 ; seconds interval before giving up for any neighbors (deciding link is down)
akmhoque157b0a42014-05-13 00:26:37 -050042
43 hello-retries 3 ; interest retries number in integer. Default value 3
44 ; valid values 1-10
45
46 hello-timeout 1 ; interest time out value in integer. Default value 1
47 ; Valid values 1-15
48
49 hello-interval 60 ; interest sending interval in seconds. Default value 60
50 ; valid values 30-90
akmhoque157b0a42014-05-13 00:26:37 -050051
Alexander Afanasyev8388ec62014-08-16 18:38:57 -070052 ; neighbor command is used to configure router's neighbor. Each neighbor will need
53 ; one block of neighbor command
54
55 neighbor
56 {
57 name /ndn/edu/memphis/%C1.Router/cs/castor ; name prefix of the neighbor router consists
58 ; of network, site-name and router-name
59
60 face-uri udp://castor.cs.memphis.edu ; face uri of the face connected to the neighbor
61 link-cost 25 ; cost of the connecting link to neighbor
62 }
63
64 neighbor
65 {
66 name /ndn/edu/memphis/%C1.Router/cs/mira ; name prefix of the neighbor router consists
akmhoque157b0a42014-05-13 00:26:37 -050067 ; of network, site-name and router-name
68
Alexander Afanasyev8388ec62014-08-16 18:38:57 -070069 face-uri udp://mira.cs.memphis.edu ; face uri of the face connected to the neighbor
70 link-cost 30 ; cost of the connecting link to neighbor
71 }
akmhoque157b0a42014-05-13 00:26:37 -050072}
73
74; the hyperbolic section contains the configuration settings of enabling a router to calculate
75; routing table using [hyperbolic routing table calculation](http://arxiv.org/abs/0805.1266) method
76
77hyperbolic
78{
Alexander Afanasyev8388ec62014-08-16 18:38:57 -070079 ; commands in this section follows a strict order
80 ; the switch is used to set hyperbolic routing calculation in NLSR
akmhoque157b0a42014-05-13 00:26:37 -050081
Alexander Afanasyev8388ec62014-08-16 18:38:57 -070082 state off ; default value 'off', set value 'on' to enable hyperbolic routing table
83 ; calculation which turns link state routing 'off'. set value to 'dry-run"
84 ; to test hyperbolic routing and compare with link state routing.
akmhoqueba094742014-02-28 11:47:21 -060085
86
Alexander Afanasyev8388ec62014-08-16 18:38:57 -070087 radius 123.456 ; radius of the router in hyperbolic coordinate system
88 angle 1.45 ; angle of the router in hyperbolic coordinate system
akmhoque157b0a42014-05-13 00:26:37 -050089}
90
91
92; the fib section is used to configure fib entry's type to ndn FIB updated by NLSR
93
94fib
95{
Alexander Afanasyev8388ec62014-08-16 18:38:57 -070096 ; the max-faces-per-prefix is used to limit the number of faces for each name prefixes
97 ; by NLSR in ndn FIB
akmhoque157b0a42014-05-13 00:26:37 -050098
Alexander Afanasyev8388ec62014-08-16 18:38:57 -070099 max-faces-per-prefix 3 ; default value 0. Valid value 0-60. By default (value 0) NLSR adds
100 ; all available faces for each reachable name prefixes in NDN FIB
akmhoque157b0a42014-05-13 00:26:37 -0500101}
102
Yingdi Yu20e3a6e2014-05-26 23:16:10 -0700103; the advertising section contains the configuration settings of the name prefixes
akmhoque157b0a42014-05-13 00:26:37 -0500104; hosted by this router
105
106advertising
107{
Alexander Afanasyev8388ec62014-08-16 18:38:57 -0700108 ; the ndnname is used to advertised name from the router. To advertise each name prefix
109 ; configure one block of ndnname configuration command for every name prefix.
akmhoque157b0a42014-05-13 00:26:37 -0500110
Alexander Afanasyev8388ec62014-08-16 18:38:57 -0700111 prefix /ndn/edu/memphis/cs/netlab ; name in ndn URI format
112 prefix /ndn/edu/memphis/sports/basketball
Yingdi Yu20e3a6e2014-05-26 23:16:10 -0700113}
114
115security
116{
117 validator
118 {
119 rule
120 {
121 id "NSLR Hello Rule"
122 for data
123 filter
124 {
125 type name
akmhoque93f1a072014-06-19 16:24:28 -0500126 regex ^[^<NLSR><INFO>]*<NLSR><INFO><><>$
Yingdi Yu20e3a6e2014-05-26 23:16:10 -0700127 }
128 checker
129 {
130 type customized
131 sig-type rsa-sha256
132 key-locator
133 {
134 type name
135 hyper-relation
136 {
137 k-regex ^([^<KEY><NLSR>]*)<NLSR><KEY><ksk-.*><ID-CERT>$
Yingdi Yu6a3a4dd2014-06-20 14:10:39 -0700138 k-expand \\1
Yingdi Yu20e3a6e2014-05-26 23:16:10 -0700139 h-relation equal
akmhoque93f1a072014-06-19 16:24:28 -0500140 p-regex ^([^<NLSR><INFO>]*)<NLSR><INFO><><>$
Yingdi Yu20e3a6e2014-05-26 23:16:10 -0700141 p-expand \\1
142 }
143 }
144 }
145 }
146
147 rule
148 {
149 id "NSLR LSA Rule"
150 for data
151 filter
152 {
153 type name
akmhoquea816bee2014-06-24 14:37:40 -0500154 regex ^[^<NLSR><LSA>]*<NLSR><LSA>
Yingdi Yu20e3a6e2014-05-26 23:16:10 -0700155 }
156 checker
157 {
158 type customized
159 sig-type rsa-sha256
160 key-locator
161 {
162 type name
163 hyper-relation
164 {
165 k-regex ^([^<KEY><NLSR>]*)<NLSR><KEY><ksk-.*><ID-CERT>$
Yingdi Yu6a3a4dd2014-06-20 14:10:39 -0700166 k-expand \\1
Yingdi Yu20e3a6e2014-05-26 23:16:10 -0700167 h-relation equal
akmhoque50125a92014-06-30 08:54:17 -0500168 p-regex ^([^<NLSR><LSA>]*)<NLSR><LSA>(<>*)<><><>$
Yingdi Yu20e3a6e2014-05-26 23:16:10 -0700169 p-expand \\1\\2
170 }
171 }
172 }
173 }
174
175 rule
176 {
177 id "NSLR Hierarchy Exception Rule"
178 for data
179 filter
180 {
181 type name
akmhoquecc827532014-07-09 08:48:49 -0500182 regex ^[^<KEY><%C1.Router>]*<%C1.Router>[^<KEY><NLSR>]*<KEY><ksk-.*><ID-CERT><>$
Yingdi Yu20e3a6e2014-05-26 23:16:10 -0700183 }
184 checker
185 {
186 type customized
187 sig-type rsa-sha256
188 key-locator
189 {
190 type name
191 hyper-relation
192 {
akmhoquecc827532014-07-09 08:48:49 -0500193 k-regex ^([^<KEY><%C1.Operator>]*)<%C1.Operator>[^<KEY>]*<KEY><ksk-.*><ID-CERT>$
Yingdi Yu20e3a6e2014-05-26 23:16:10 -0700194 k-expand \\1
195 h-relation equal
akmhoquecc827532014-07-09 08:48:49 -0500196 p-regex ^([^<KEY><%C1.Router>]*)<%C1.Router>[^<KEY>]*<KEY><ksk-.*><ID-CERT><>$
Yingdi Yu20e3a6e2014-05-26 23:16:10 -0700197 p-expand \\1
198 }
199 }
200 }
201 }
202
203 rule
204 {
205 id "NSLR Hierarchical Rule"
206 for data
207 filter
208 {
209 type name
210 regex ^[^<KEY>]*<KEY><ksk-.*><ID-CERT><>$
211 }
212 checker
213 {
214 type hierarchical
215 sig-type rsa-sha256
216 }
217 }
218
219 trust-anchor
220 {
221 type file
222 file-name "root.cert"
223 }
224 }
akmhoque50125a92014-06-30 08:54:17 -0500225 ; cert-to-publish "root.cert" ; optional, a file containing the root certificate. only the router
226 ; that is designated to publish root cert needs to specify this
227 ; cert-to-publish "site.cert" ; optional, a file containing the root certificate. only the router
228 ; that is designated to publish site cert need to specify this
229 ; cert-to-publish "operator.cert" ; optional, a file containing the root certificate. only the
230 ; router that is designated to publish operator cert need to
231 ; specify this
232 cert-to-publish "router.cert" ; required, a file containing the router certificate.
akmhoque157b0a42014-05-13 00:26:37 -0500233}