blob: d6f31bc9ee6a7d44c28fe505c6aa3035984702ab [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{
5; mandatory configuration command section network, site and router
akmhoqueba094742014-02-28 11:47:21 -06006
akmhoque157b0a42014-05-13 00:26:37 -05007 network /ndn/ ; name of the network the router belongs to in ndn URI format
akmhoque93f1a072014-06-19 16:24:28 -05008 site /edu/memphis ; name of the site the router belongs to in ndn URI format
9 router /%C1.O.R./cs/pollux ; name of the router in ndn URI format
akmhoque157b0a42014-05-13 00:26:37 -050010
11; lsa-refresh-time is the time in seconds, after which router will refresh its LSAs
12
13 lsa-refresh-time 1800 ; default value 1800. Valid values 240-7200
14
15; log-level is to set the levels of log for NLSR
16
akmhoque674b0b12014-05-20 14:33:28 -050017 log-level INFO ; default value INFO, valid value DEBUG, INFO
18 log-dir /var/log/nlsr/ ; path for log directory (Absolute path)
19 seq-dir /var/lib/nlsr/ ; path for sequence directory (Absolute path)
akmhoque157b0a42014-05-13 00:26:37 -050020}
21
22; the neighbors section contains the configuration for router's neighbors and hello's behavior
23
24neighbors
25{
26; in case hello interest timed out, router will try 'hello-retries' times at 'hello-time-out'
27; seconds interval before giving up for any neighbors (deciding link is down)
28
29 hello-retries 3 ; interest retries number in integer. Default value 3
30 ; valid values 1-10
31
32 hello-timeout 1 ; interest time out value in integer. Default value 1
33 ; Valid values 1-15
34
35 hello-interval 60 ; interest sending interval in seconds. Default value 60
36 ; valid values 30-90
37; neighbor command is used to configure router's neighbor. Each neighbor will need
38; one block of neighbor command
39
40 neighbor
41 {
akmhoque93f1a072014-06-19 16:24:28 -050042 name /ndn/edu/memphis/%C1.O.R./cs/castor ; name prefix of the neighbor router consists
akmhoque157b0a42014-05-13 00:26:37 -050043 ; of network, site-name and router-name
44
45 face-uri udp://castor.cs.memphis.edu ; face id of the face connected to the neighbor
46 link-cost 25 ; cost of the connecting link to neighbor
47 }
Yingdi Yu20e3a6e2014-05-26 23:16:10 -070048
akmhoque157b0a42014-05-13 00:26:37 -050049 neighbor
50 {
akmhoque93f1a072014-06-19 16:24:28 -050051 name /ndn/edu/memphis/%C1.O.R./cs/mira ; name prefix of the neighbor router consists
akmhoque157b0a42014-05-13 00:26:37 -050052 ; of network, site-name and router-name
53
54 face-uri udp://mira.cs.memphis.edu ; face id of the face connected to the neighbor
55 link-cost 30 ; cost of the connecting link to neighbor
56 }
57}
58
59; the hyperbolic section contains the configuration settings of enabling a router to calculate
60; routing table using [hyperbolic routing table calculation](http://arxiv.org/abs/0805.1266) method
61
62hyperbolic
63{
64; commands in this section follows a strict order
65; the switch is used to set hyperbolic routing calculation in NLSR
66
Yingdi Yu20e3a6e2014-05-26 23:16:10 -070067 state off ; default value 'off', set value 'on' to enable hyperbolic routing table
akmhoque157b0a42014-05-13 00:26:37 -050068 ; calculation which turns link state routing 'off'. set value to 'dry-run"
69 ; to test hyperbolic routing and compare with link state routing.
akmhoqueba094742014-02-28 11:47:21 -060070
71
akmhoque157b0a42014-05-13 00:26:37 -050072 radius 123.456 ; radius of the router in hyperbolic coordinate system
73 angle 1.45 ; angle of the router in hyperbolic coordinate system
74}
75
76
77; the fib section is used to configure fib entry's type to ndn FIB updated by NLSR
78
79fib
80{
81; the max-faces-per-prefix is used to limit the number of faces for each name prefixes
82; by NLSR in ndn FIB
83
84 max-faces-per-prefix 3 ; default value 0. Valid value 0-60. By default (value 0) NLSR adds
85 ; all available faces for each reachable name prefixes in NDN FIB
86
87}
88
Yingdi Yu20e3a6e2014-05-26 23:16:10 -070089; the advertising section contains the configuration settings of the name prefixes
akmhoque157b0a42014-05-13 00:26:37 -050090; hosted by this router
91
92advertising
93{
94; the ndnname is used to advertised name from the router. To advertise each name prefix
95; configure one block of ndnname configuration command for every name prefix.
96
97 prefix /ndn/edu/memphis/cs/netlab ; name in ndn URI format
Yingdi Yu20e3a6e2014-05-26 23:16:10 -070098 prefix /ndn/edu/memphis/sports/basketball
99}
100
101security
102{
103 validator
104 {
105 rule
106 {
107 id "NSLR Hello Rule"
108 for data
109 filter
110 {
111 type name
akmhoque93f1a072014-06-19 16:24:28 -0500112 regex ^[^<NLSR><INFO>]*<NLSR><INFO><><>$
Yingdi Yu20e3a6e2014-05-26 23:16:10 -0700113 }
114 checker
115 {
116 type customized
117 sig-type rsa-sha256
118 key-locator
119 {
120 type name
121 hyper-relation
122 {
123 k-regex ^([^<KEY><NLSR>]*)<NLSR><KEY><ksk-.*><ID-CERT>$
Yingdi Yu6a3a4dd2014-06-20 14:10:39 -0700124 k-expand \\1
Yingdi Yu20e3a6e2014-05-26 23:16:10 -0700125 h-relation equal
akmhoque93f1a072014-06-19 16:24:28 -0500126 p-regex ^([^<NLSR><INFO>]*)<NLSR><INFO><><>$
Yingdi Yu20e3a6e2014-05-26 23:16:10 -0700127 p-expand \\1
128 }
129 }
130 }
131 }
132
133 rule
134 {
135 id "NSLR LSA Rule"
136 for data
137 filter
138 {
139 type name
akmhoquea816bee2014-06-24 14:37:40 -0500140 regex ^[^<NLSR><LSA>]*<NLSR><LSA>
Yingdi Yu20e3a6e2014-05-26 23:16:10 -0700141 }
142 checker
143 {
144 type customized
145 sig-type rsa-sha256
146 key-locator
147 {
148 type name
149 hyper-relation
150 {
151 k-regex ^([^<KEY><NLSR>]*)<NLSR><KEY><ksk-.*><ID-CERT>$
Yingdi Yu6a3a4dd2014-06-20 14:10:39 -0700152 k-expand \\1
Yingdi Yu20e3a6e2014-05-26 23:16:10 -0700153 h-relation equal
akmhoque50125a92014-06-30 08:54:17 -0500154 p-regex ^([^<NLSR><LSA>]*)<NLSR><LSA>(<>*)<><><>$
Yingdi Yu20e3a6e2014-05-26 23:16:10 -0700155 p-expand \\1\\2
156 }
157 }
158 }
159 }
160
161 rule
162 {
163 id "NSLR Hierarchy Exception Rule"
164 for data
165 filter
166 {
167 type name
akmhoque50125a92014-06-30 08:54:17 -0500168 regex ^[^<KEY><%C1.O.R.>]*<%C1.O.R.>[^<KEY><NLSR>]*<KEY><ksk-.*><ID-CERT><>$
Yingdi Yu20e3a6e2014-05-26 23:16:10 -0700169 }
170 checker
171 {
172 type customized
173 sig-type rsa-sha256
174 key-locator
175 {
176 type name
177 hyper-relation
178 {
akmhoque50125a92014-06-30 08:54:17 -0500179 k-regex ^([^<KEY><%C1.O.N.>]*)<%C1.O.N.>[^<KEY>]*<KEY><ksk-.*><ID-CERT>$
Yingdi Yu20e3a6e2014-05-26 23:16:10 -0700180 k-expand \\1
181 h-relation equal
akmhoque50125a92014-06-30 08:54:17 -0500182 p-regex ^([^<KEY><%C1.O.R.>]*)<%C1.O.R.>[^<KEY>]*<KEY><ksk-.*><ID-CERT><>$
Yingdi Yu20e3a6e2014-05-26 23:16:10 -0700183 p-expand \\1
184 }
185 }
186 }
187 }
188
189 rule
190 {
191 id "NSLR Hierarchical Rule"
192 for data
193 filter
194 {
195 type name
196 regex ^[^<KEY>]*<KEY><ksk-.*><ID-CERT><>$
197 }
198 checker
199 {
200 type hierarchical
201 sig-type rsa-sha256
202 }
203 }
204
205 trust-anchor
206 {
207 type file
208 file-name "root.cert"
209 }
210 }
akmhoque50125a92014-06-30 08:54:17 -0500211 ; cert-to-publish "root.cert" ; optional, a file containing the root certificate. only the router
212 ; that is designated to publish root cert needs to specify this
213 ; cert-to-publish "site.cert" ; optional, a file containing the root certificate. only the router
214 ; that is designated to publish site cert need to specify this
215 ; cert-to-publish "operator.cert" ; optional, a file containing the root certificate. only the
216 ; router that is designated to publish operator cert need to
217 ; specify this
218 cert-to-publish "router.cert" ; required, a file containing the router certificate.
akmhoque157b0a42014-05-13 00:26:37 -0500219}