blob: 48f34a60bc0e3c22b50816dd60ff77a0bea658c6 [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
Alexander Afanasyev8388ec62014-08-16 18:38:57 -070017 ; log-level is to set the levels of log for NLSR
akmhoque157b0a42014-05-13 00:26:37 -050018
Alexander Afanasyev8388ec62014-08-16 18:38:57 -070019 log-level INFO ; default value INFO, valid value DEBUG, INFO
20 log-dir /var/log/nlsr/ ; path for log directory (Absolute path)
21 seq-dir /var/lib/nlsr/ ; path for sequence directory (Absolute path)
akmhoque157b0a42014-05-13 00:26:37 -050022}
23
24; the neighbors section contains the configuration for router's neighbors and hello's behavior
25
26neighbors
27{
Alexander Afanasyev8388ec62014-08-16 18:38:57 -070028 ; in case hello interest timed out, router will try 'hello-retries' times at 'hello-timeout'
29 ; seconds interval before giving up for any neighbors (deciding link is down)
akmhoque157b0a42014-05-13 00:26:37 -050030
31 hello-retries 3 ; interest retries number in integer. Default value 3
32 ; valid values 1-10
33
34 hello-timeout 1 ; interest time out value in integer. Default value 1
35 ; Valid values 1-15
36
37 hello-interval 60 ; interest sending interval in seconds. Default value 60
38 ; valid values 30-90
akmhoque157b0a42014-05-13 00:26:37 -050039
Alexander Afanasyev8388ec62014-08-16 18:38:57 -070040 ; neighbor command is used to configure router's neighbor. Each neighbor will need
41 ; one block of neighbor command
42
43 neighbor
44 {
45 name /ndn/edu/memphis/%C1.Router/cs/castor ; name prefix of the neighbor router consists
46 ; of network, site-name and router-name
47
48 face-uri udp://castor.cs.memphis.edu ; face uri of the face connected to the neighbor
49 link-cost 25 ; cost of the connecting link to neighbor
50 }
51
52 neighbor
53 {
54 name /ndn/edu/memphis/%C1.Router/cs/mira ; name prefix of the neighbor router consists
akmhoque157b0a42014-05-13 00:26:37 -050055 ; of network, site-name and router-name
56
Alexander Afanasyev8388ec62014-08-16 18:38:57 -070057 face-uri udp://mira.cs.memphis.edu ; face uri of the face connected to the neighbor
58 link-cost 30 ; cost of the connecting link to neighbor
59 }
akmhoque157b0a42014-05-13 00:26:37 -050060}
61
62; the hyperbolic section contains the configuration settings of enabling a router to calculate
63; routing table using [hyperbolic routing table calculation](http://arxiv.org/abs/0805.1266) method
64
65hyperbolic
66{
Alexander Afanasyev8388ec62014-08-16 18:38:57 -070067 ; commands in this section follows a strict order
68 ; the switch is used to set hyperbolic routing calculation in NLSR
akmhoque157b0a42014-05-13 00:26:37 -050069
Alexander Afanasyev8388ec62014-08-16 18:38:57 -070070 state off ; default value 'off', set value 'on' to enable hyperbolic routing table
71 ; calculation which turns link state routing 'off'. set value to 'dry-run"
72 ; to test hyperbolic routing and compare with link state routing.
akmhoqueba094742014-02-28 11:47:21 -060073
74
Alexander Afanasyev8388ec62014-08-16 18:38:57 -070075 radius 123.456 ; radius of the router in hyperbolic coordinate system
76 angle 1.45 ; angle of the router in hyperbolic coordinate system
akmhoque157b0a42014-05-13 00:26:37 -050077}
78
79
80; the fib section is used to configure fib entry's type to ndn FIB updated by NLSR
81
82fib
83{
Alexander Afanasyev8388ec62014-08-16 18:38:57 -070084 ; the max-faces-per-prefix is used to limit the number of faces for each name prefixes
85 ; by NLSR in ndn FIB
akmhoque157b0a42014-05-13 00:26:37 -050086
Alexander Afanasyev8388ec62014-08-16 18:38:57 -070087 max-faces-per-prefix 3 ; default value 0. Valid value 0-60. By default (value 0) NLSR adds
88 ; all available faces for each reachable name prefixes in NDN FIB
akmhoque157b0a42014-05-13 00:26:37 -050089}
90
Yingdi Yu20e3a6e2014-05-26 23:16:10 -070091; the advertising section contains the configuration settings of the name prefixes
akmhoque157b0a42014-05-13 00:26:37 -050092; hosted by this router
93
94advertising
95{
Alexander Afanasyev8388ec62014-08-16 18:38:57 -070096 ; the ndnname is used to advertised name from the router. To advertise each name prefix
97 ; configure one block of ndnname configuration command for every name prefix.
akmhoque157b0a42014-05-13 00:26:37 -050098
Alexander Afanasyev8388ec62014-08-16 18:38:57 -070099 prefix /ndn/edu/memphis/cs/netlab ; name in ndn URI format
100 prefix /ndn/edu/memphis/sports/basketball
Yingdi Yu20e3a6e2014-05-26 23:16:10 -0700101}
102
103security
104{
105 validator
106 {
107 rule
108 {
109 id "NSLR Hello Rule"
110 for data
111 filter
112 {
113 type name
akmhoque93f1a072014-06-19 16:24:28 -0500114 regex ^[^<NLSR><INFO>]*<NLSR><INFO><><>$
Yingdi Yu20e3a6e2014-05-26 23:16:10 -0700115 }
116 checker
117 {
118 type customized
119 sig-type rsa-sha256
120 key-locator
121 {
122 type name
123 hyper-relation
124 {
125 k-regex ^([^<KEY><NLSR>]*)<NLSR><KEY><ksk-.*><ID-CERT>$
Yingdi Yu6a3a4dd2014-06-20 14:10:39 -0700126 k-expand \\1
Yingdi Yu20e3a6e2014-05-26 23:16:10 -0700127 h-relation equal
akmhoque93f1a072014-06-19 16:24:28 -0500128 p-regex ^([^<NLSR><INFO>]*)<NLSR><INFO><><>$
Yingdi Yu20e3a6e2014-05-26 23:16:10 -0700129 p-expand \\1
130 }
131 }
132 }
133 }
134
135 rule
136 {
137 id "NSLR LSA Rule"
138 for data
139 filter
140 {
141 type name
akmhoquea816bee2014-06-24 14:37:40 -0500142 regex ^[^<NLSR><LSA>]*<NLSR><LSA>
Yingdi Yu20e3a6e2014-05-26 23:16:10 -0700143 }
144 checker
145 {
146 type customized
147 sig-type rsa-sha256
148 key-locator
149 {
150 type name
151 hyper-relation
152 {
153 k-regex ^([^<KEY><NLSR>]*)<NLSR><KEY><ksk-.*><ID-CERT>$
Yingdi Yu6a3a4dd2014-06-20 14:10:39 -0700154 k-expand \\1
Yingdi Yu20e3a6e2014-05-26 23:16:10 -0700155 h-relation equal
akmhoque50125a92014-06-30 08:54:17 -0500156 p-regex ^([^<NLSR><LSA>]*)<NLSR><LSA>(<>*)<><><>$
Yingdi Yu20e3a6e2014-05-26 23:16:10 -0700157 p-expand \\1\\2
158 }
159 }
160 }
161 }
162
163 rule
164 {
165 id "NSLR Hierarchy Exception Rule"
166 for data
167 filter
168 {
169 type name
akmhoquecc827532014-07-09 08:48:49 -0500170 regex ^[^<KEY><%C1.Router>]*<%C1.Router>[^<KEY><NLSR>]*<KEY><ksk-.*><ID-CERT><>$
Yingdi Yu20e3a6e2014-05-26 23:16:10 -0700171 }
172 checker
173 {
174 type customized
175 sig-type rsa-sha256
176 key-locator
177 {
178 type name
179 hyper-relation
180 {
akmhoquecc827532014-07-09 08:48:49 -0500181 k-regex ^([^<KEY><%C1.Operator>]*)<%C1.Operator>[^<KEY>]*<KEY><ksk-.*><ID-CERT>$
Yingdi Yu20e3a6e2014-05-26 23:16:10 -0700182 k-expand \\1
183 h-relation equal
akmhoquecc827532014-07-09 08:48:49 -0500184 p-regex ^([^<KEY><%C1.Router>]*)<%C1.Router>[^<KEY>]*<KEY><ksk-.*><ID-CERT><>$
Yingdi Yu20e3a6e2014-05-26 23:16:10 -0700185 p-expand \\1
186 }
187 }
188 }
189 }
190
191 rule
192 {
193 id "NSLR Hierarchical Rule"
194 for data
195 filter
196 {
197 type name
198 regex ^[^<KEY>]*<KEY><ksk-.*><ID-CERT><>$
199 }
200 checker
201 {
202 type hierarchical
203 sig-type rsa-sha256
204 }
205 }
206
207 trust-anchor
208 {
209 type file
210 file-name "root.cert"
211 }
212 }
akmhoque50125a92014-06-30 08:54:17 -0500213 ; cert-to-publish "root.cert" ; optional, a file containing the root certificate. only the router
214 ; that is designated to publish root cert needs to specify this
215 ; cert-to-publish "site.cert" ; optional, a file containing the root certificate. only the router
216 ; that is designated to publish site cert need to specify this
217 ; cert-to-publish "operator.cert" ; optional, a file containing the root certificate. only the
218 ; router that is designated to publish operator cert need to
219 ; specify this
220 cert-to-publish "router.cert" ; required, a file containing the router certificate.
akmhoque157b0a42014-05-13 00:26:37 -0500221}