akmhoque | 157b0a4 | 2014-05-13 00:26:37 -0500 | [diff] [blame] | 1 | ; the general section contains all the general settings for router |
akmhoque | ba09474 | 2014-02-28 11:47:21 -0600 | [diff] [blame] | 2 | |
akmhoque | 157b0a4 | 2014-05-13 00:26:37 -0500 | [diff] [blame] | 3 | general |
| 4 | { |
Alexander Afanasyev | 8388ec6 | 2014-08-16 18:38:57 -0700 | [diff] [blame] | 5 | ; mandatory configuration command section network, site and router |
akmhoque | ba09474 | 2014-02-28 11:47:21 -0600 | [diff] [blame] | 6 | |
Alexander Afanasyev | 8388ec6 | 2014-08-16 18:38:57 -0700 | [diff] [blame] | 7 | 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 |
akmhoque | 157b0a4 | 2014-05-13 00:26:37 -0500 | [diff] [blame] | 10 | |
Alexander Afanasyev | 8388ec6 | 2014-08-16 18:38:57 -0700 | [diff] [blame] | 11 | ; lsa-refresh-time is the time in seconds, after which router will refresh its LSAs |
Alexander Afanasyev | 8388ec6 | 2014-08-16 18:38:57 -0700 | [diff] [blame] | 12 | lsa-refresh-time 1800 ; default value 1800. Valid values 240-7200 |
akmhoque | 157b0a4 | 2014-05-13 00:26:37 -0500 | [diff] [blame] | 13 | |
Nick Gordon | d5c1a37 | 2016-10-31 13:56:23 -0500 | [diff] [blame] | 14 | ; router-dead-interval is the time in seconds after which an inactive routers |
Vince Lehman | fc7d5b6 | 2014-12-05 15:02:47 -0600 | [diff] [blame] | 15 | ; 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 Afanasyev | 411ee4b | 2014-08-16 23:17:03 -0700 | [diff] [blame] | 19 | ; InterestLifetime (in seconds) for LSA fetching |
| 20 | lsa-interest-lifetime 4 ; default value 4. Valid values 1-60 |
| 21 | |
Ashlesh Gawande | 32ec3fd | 2018-07-18 13:42:32 -0500 | [diff] [blame] | 22 | ; select sync protocol: chronosync or psync |
| 23 | sync-protocol psync |
| 24 | |
| 25 | ; sync interest lifetime of ChronoSync/PSync in milliseconds |
Ashlesh Gawande | f7da9c5 | 2018-02-06 17:36:46 -0600 | [diff] [blame] | 26 | sync-interest-lifetime 60000 ; default value 60000. Valid values 1000-120,000 |
| 27 | |
dulalsaurab | 82a34c2 | 2019-02-04 17:31:21 +0000 | [diff] [blame] | 28 | state-dir /var/lib/nlsr ; path for intermediate state files including sequence directory (Absolute path) |
akmhoque | 157b0a4 | 2014-05-13 00:26:37 -0500 | [diff] [blame] | 29 | } |
| 30 | |
Nick Gordon | d5c1a37 | 2016-10-31 13:56:23 -0500 | [diff] [blame] | 31 | ; the neighbor's section contains the configuration for router's neighbors and hellos behavior |
akmhoque | 157b0a4 | 2014-05-13 00:26:37 -0500 | [diff] [blame] | 32 | |
| 33 | neighbors |
| 34 | { |
Alexander Afanasyev | 8388ec6 | 2014-08-16 18:38:57 -0700 | [diff] [blame] | 35 | ; in case hello interest timed out, router will try 'hello-retries' times at 'hello-timeout' |
| 36 | ; seconds interval before giving up for any neighbors (deciding link is down) |
akmhoque | 157b0a4 | 2014-05-13 00:26:37 -0500 | [diff] [blame] | 37 | |
| 38 | hello-retries 3 ; interest retries number in integer. Default value 3 |
| 39 | ; valid values 1-10 |
| 40 | |
Ashlesh Gawande | 6b388fc | 2019-09-30 10:14:41 -0500 | [diff] [blame] | 41 | hello-timeout 1 ; interest time out value in seconds. Default value 1 |
akmhoque | 157b0a4 | 2014-05-13 00:26:37 -0500 | [diff] [blame] | 42 | ; Valid values 1-15 |
| 43 | |
| 44 | hello-interval 60 ; interest sending interval in seconds. Default value 60 |
| 45 | ; valid values 30-90 |
akmhoque | 157b0a4 | 2014-05-13 00:26:37 -0500 | [diff] [blame] | 46 | |
Vince Lehman | 7b61658 | 2014-10-17 16:25:39 -0500 | [diff] [blame] | 47 | ; adj-lsa-build-interval is the time to wait in seconds after an Adjacency LSA build is scheduled |
| 48 | ; before actually building the Adjacency LSA |
| 49 | |
Ashlesh Gawande | 6b388fc | 2019-09-30 10:14:41 -0500 | [diff] [blame] | 50 | adj-lsa-build-interval 10 ; default value 10. Valid values 5-30. |
Vince Lehman | 7b61658 | 2014-10-17 16:25:39 -0500 | [diff] [blame] | 51 | |
Nick Gordon | d5c1a37 | 2016-10-31 13:56:23 -0500 | [diff] [blame] | 52 | face-dataset-fetch-tries 3 ; default is 3. Valid values 1-10. The FaceDataset is |
| 53 | ; gotten from NFD, and is needed to configure NLSR |
| 54 | ; correctly. It is recommended not to set this |
Muktadir Chowdhury | f04f989 | 2017-08-20 20:42:56 -0500 | [diff] [blame] | 55 | ; variable too high, because it could cause |
Nick Gordon | d5c1a37 | 2016-10-31 13:56:23 -0500 | [diff] [blame] | 56 | ; congestion for NFD. |
| 57 | |
| 58 | face-dataset-fetch-interval 3600 ; default is 3600. Valid values 1800-5400. |
| 59 | ; This controls how often (in seconds) NLSR will attempt to |
| 60 | ; fetch a FaceStatus dataset from NFD. |
| 61 | |
Alexander Afanasyev | 8388ec6 | 2014-08-16 18:38:57 -0700 | [diff] [blame] | 62 | ; neighbor command is used to configure router's neighbor. Each neighbor will need |
| 63 | ; one block of neighbor command |
| 64 | |
| 65 | neighbor |
| 66 | { |
| 67 | name /ndn/edu/memphis/%C1.Router/cs/castor ; name prefix of the neighbor router consists |
| 68 | ; of network, site-name and router-name |
| 69 | |
| 70 | face-uri udp://castor.cs.memphis.edu ; face uri of the face connected to the neighbor |
| 71 | link-cost 25 ; cost of the connecting link to neighbor |
| 72 | } |
| 73 | |
| 74 | neighbor |
| 75 | { |
| 76 | name /ndn/edu/memphis/%C1.Router/cs/mira ; name prefix of the neighbor router consists |
akmhoque | 157b0a4 | 2014-05-13 00:26:37 -0500 | [diff] [blame] | 77 | ; of network, site-name and router-name |
| 78 | |
Alexander Afanasyev | 8388ec6 | 2014-08-16 18:38:57 -0700 | [diff] [blame] | 79 | face-uri udp://mira.cs.memphis.edu ; face uri of the face connected to the neighbor |
| 80 | link-cost 30 ; cost of the connecting link to neighbor |
| 81 | } |
akmhoque | 157b0a4 | 2014-05-13 00:26:37 -0500 | [diff] [blame] | 82 | } |
| 83 | |
| 84 | ; the hyperbolic section contains the configuration settings of enabling a router to calculate |
| 85 | ; routing table using [hyperbolic routing table calculation](http://arxiv.org/abs/0805.1266) method |
| 86 | |
| 87 | hyperbolic |
| 88 | { |
Alexander Afanasyev | 8388ec6 | 2014-08-16 18:38:57 -0700 | [diff] [blame] | 89 | ; commands in this section follows a strict order |
| 90 | ; the switch is used to set hyperbolic routing calculation in NLSR |
akmhoque | 157b0a4 | 2014-05-13 00:26:37 -0500 | [diff] [blame] | 91 | |
Alexander Afanasyev | 8388ec6 | 2014-08-16 18:38:57 -0700 | [diff] [blame] | 92 | state off ; default value 'off', set value 'on' to enable hyperbolic routing table |
Junxiao Shi | f09e263 | 2015-01-02 18:15:01 -0700 | [diff] [blame] | 93 | ; calculation which turns link state routing 'off'. set value to 'dry-run' |
Alexander Afanasyev | 8388ec6 | 2014-08-16 18:38:57 -0700 | [diff] [blame] | 94 | ; to test hyperbolic routing and compare with link state routing. |
akmhoque | ba09474 | 2014-02-28 11:47:21 -0600 | [diff] [blame] | 95 | |
| 96 | |
Alexander Afanasyev | 8388ec6 | 2014-08-16 18:38:57 -0700 | [diff] [blame] | 97 | radius 123.456 ; radius of the router in hyperbolic coordinate system |
Muktadir R Chowdhury | b00dc2a | 2016-11-05 10:48:58 -0600 | [diff] [blame] | 98 | angle 1.45,2.36 ; angle of the router in hyperbolic coordinate system |
akmhoque | 157b0a4 | 2014-05-13 00:26:37 -0500 | [diff] [blame] | 99 | } |
| 100 | |
| 101 | |
Nick Gordon | d5c1a37 | 2016-10-31 13:56:23 -0500 | [diff] [blame] | 102 | ; the fib section is used to configure fib entrys type to ndn FIB updated by NLSR |
akmhoque | 157b0a4 | 2014-05-13 00:26:37 -0500 | [diff] [blame] | 103 | |
| 104 | fib |
| 105 | { |
Alexander Afanasyev | 8388ec6 | 2014-08-16 18:38:57 -0700 | [diff] [blame] | 106 | ; the max-faces-per-prefix is used to limit the number of faces for each name prefixes |
| 107 | ; by NLSR in ndn FIB |
akmhoque | 157b0a4 | 2014-05-13 00:26:37 -0500 | [diff] [blame] | 108 | |
Alexander Afanasyev | 8388ec6 | 2014-08-16 18:38:57 -0700 | [diff] [blame] | 109 | max-faces-per-prefix 3 ; default value 0. Valid value 0-60. By default (value 0) NLSR adds |
| 110 | ; all available faces for each reachable name prefixes in NDN FIB |
Vince Lehman | 7b61658 | 2014-10-17 16:25:39 -0500 | [diff] [blame] | 111 | |
| 112 | ; routing-calc-interval is the time to wait in seconds after a routing table calculation is |
| 113 | ; scheduled before actually performing the routing table calculation |
| 114 | |
| 115 | routing-calc-interval 15 ; default value 15. Valid values 0-15. It is recommended that |
| 116 | ; routing-calc-interval have a higher value than adj-lsa-build-interval |
akmhoque | 157b0a4 | 2014-05-13 00:26:37 -0500 | [diff] [blame] | 117 | } |
| 118 | |
Yingdi Yu | 20e3a6e | 2014-05-26 23:16:10 -0700 | [diff] [blame] | 119 | ; the advertising section contains the configuration settings of the name prefixes |
akmhoque | 157b0a4 | 2014-05-13 00:26:37 -0500 | [diff] [blame] | 120 | ; hosted by this router |
| 121 | |
| 122 | advertising |
| 123 | { |
Alexander Afanasyev | 8388ec6 | 2014-08-16 18:38:57 -0700 | [diff] [blame] | 124 | ; the ndnname is used to advertised name from the router. To advertise each name prefix |
| 125 | ; configure one block of ndnname configuration command for every name prefix. |
akmhoque | 157b0a4 | 2014-05-13 00:26:37 -0500 | [diff] [blame] | 126 | |
Alexander Afanasyev | 8388ec6 | 2014-08-16 18:38:57 -0700 | [diff] [blame] | 127 | prefix /ndn/edu/memphis/cs/netlab ; name in ndn URI format |
| 128 | prefix /ndn/edu/memphis/sports/basketball |
Yingdi Yu | 20e3a6e | 2014-05-26 23:16:10 -0700 | [diff] [blame] | 129 | } |
| 130 | |
| 131 | security |
| 132 | { |
| 133 | validator |
| 134 | { |
| 135 | rule |
| 136 | { |
Laqin Fan | d8c9d8c | 2017-01-18 21:45:14 +0000 | [diff] [blame] | 137 | id "NLSR Hello Rule" |
Yingdi Yu | 20e3a6e | 2014-05-26 23:16:10 -0700 | [diff] [blame] | 138 | for data |
| 139 | filter |
| 140 | { |
| 141 | type name |
Ashlesh Gawande | cba0ae2 | 2018-03-27 17:57:56 -0500 | [diff] [blame] | 142 | regex ^[^<nlsr><INFO>]*<nlsr><INFO><><>$ |
Yingdi Yu | 20e3a6e | 2014-05-26 23:16:10 -0700 | [diff] [blame] | 143 | } |
| 144 | checker |
| 145 | { |
| 146 | type customized |
| 147 | sig-type rsa-sha256 |
| 148 | key-locator |
| 149 | { |
| 150 | type name |
| 151 | hyper-relation |
| 152 | { |
Ashlesh Gawande | cba0ae2 | 2018-03-27 17:57:56 -0500 | [diff] [blame] | 153 | k-regex ^([^<KEY><nlsr>]*)<nlsr><KEY><>$ |
Yingdi Yu | 6a3a4dd | 2014-06-20 14:10:39 -0700 | [diff] [blame] | 154 | k-expand \\1 |
Yingdi Yu | 20e3a6e | 2014-05-26 23:16:10 -0700 | [diff] [blame] | 155 | h-relation equal |
Ashlesh Gawande | cba0ae2 | 2018-03-27 17:57:56 -0500 | [diff] [blame] | 156 | p-regex ^([^<nlsr><INFO>]*)<nlsr><INFO><><>$ |
Yingdi Yu | 20e3a6e | 2014-05-26 23:16:10 -0700 | [diff] [blame] | 157 | p-expand \\1 |
| 158 | } |
| 159 | } |
| 160 | } |
| 161 | } |
| 162 | |
| 163 | rule |
| 164 | { |
Laqin Fan | d8c9d8c | 2017-01-18 21:45:14 +0000 | [diff] [blame] | 165 | id "NLSR LSA Rule" |
Yingdi Yu | 20e3a6e | 2014-05-26 23:16:10 -0700 | [diff] [blame] | 166 | for data |
| 167 | filter |
| 168 | { |
| 169 | type name |
Ashlesh Gawande | cba0ae2 | 2018-03-27 17:57:56 -0500 | [diff] [blame] | 170 | regex ^[^<nlsr><LSA>]*<nlsr><LSA> |
Yingdi Yu | 20e3a6e | 2014-05-26 23:16:10 -0700 | [diff] [blame] | 171 | } |
| 172 | checker |
| 173 | { |
| 174 | type customized |
| 175 | sig-type rsa-sha256 |
| 176 | key-locator |
| 177 | { |
| 178 | type name |
| 179 | hyper-relation |
| 180 | { |
Ashlesh Gawande | cba0ae2 | 2018-03-27 17:57:56 -0500 | [diff] [blame] | 181 | k-regex ^([^<KEY><nlsr>]*)<nlsr><KEY><>$ |
Yingdi Yu | 6a3a4dd | 2014-06-20 14:10:39 -0700 | [diff] [blame] | 182 | k-expand \\1 |
Yingdi Yu | 20e3a6e | 2014-05-26 23:16:10 -0700 | [diff] [blame] | 183 | h-relation equal |
Muktadir R Chowdhury | aa3b085 | 2015-08-06 13:08:56 -0500 | [diff] [blame] | 184 | ; the last four components in the prefix should be <lsaType><seqNo><version><segmentNo> |
Ashlesh Gawande | cba0ae2 | 2018-03-27 17:57:56 -0500 | [diff] [blame] | 185 | p-regex ^<localhop>([^<nlsr><LSA>]*)<nlsr><LSA>(<>*)<><><><>$ |
Yingdi Yu | 20e3a6e | 2014-05-26 23:16:10 -0700 | [diff] [blame] | 186 | p-expand \\1\\2 |
| 187 | } |
| 188 | } |
| 189 | } |
| 190 | } |
| 191 | |
| 192 | rule |
| 193 | { |
Laqin Fan | d8c9d8c | 2017-01-18 21:45:14 +0000 | [diff] [blame] | 194 | id "NLSR Hierarchy Exception Rule" |
Yingdi Yu | 20e3a6e | 2014-05-26 23:16:10 -0700 | [diff] [blame] | 195 | for data |
| 196 | filter |
| 197 | { |
| 198 | type name |
Ashlesh Gawande | cba0ae2 | 2018-03-27 17:57:56 -0500 | [diff] [blame] | 199 | regex ^[^<KEY><%C1.Router>]*<%C1.Router>[^<KEY><nlsr>]*<KEY><><><>$ |
Yingdi Yu | 20e3a6e | 2014-05-26 23:16:10 -0700 | [diff] [blame] | 200 | } |
| 201 | checker |
| 202 | { |
| 203 | type customized |
| 204 | sig-type rsa-sha256 |
| 205 | key-locator |
| 206 | { |
| 207 | type name |
| 208 | hyper-relation |
| 209 | { |
Muktadir Chowdhury | f04f989 | 2017-08-20 20:42:56 -0500 | [diff] [blame] | 210 | k-regex ^([^<KEY><%C1.Operator>]*)<%C1.Operator>[^<KEY>]*<KEY><>$ |
Yingdi Yu | 20e3a6e | 2014-05-26 23:16:10 -0700 | [diff] [blame] | 211 | k-expand \\1 |
| 212 | h-relation equal |
Muktadir Chowdhury | f04f989 | 2017-08-20 20:42:56 -0500 | [diff] [blame] | 213 | p-regex ^([^<KEY><%C1.Router>]*)<%C1.Router>[^<KEY>]*<KEY><><><>$ |
Yingdi Yu | 20e3a6e | 2014-05-26 23:16:10 -0700 | [diff] [blame] | 214 | p-expand \\1 |
| 215 | } |
| 216 | } |
| 217 | } |
| 218 | } |
| 219 | |
| 220 | rule |
| 221 | { |
Laqin Fan | d8c9d8c | 2017-01-18 21:45:14 +0000 | [diff] [blame] | 222 | id "NLSR Hierarchical Rule" |
Yingdi Yu | 20e3a6e | 2014-05-26 23:16:10 -0700 | [diff] [blame] | 223 | for data |
| 224 | filter |
| 225 | { |
| 226 | type name |
Muktadir Chowdhury | f04f989 | 2017-08-20 20:42:56 -0500 | [diff] [blame] | 227 | regex ^[^<KEY>]*<KEY><><><>$ |
Yingdi Yu | 20e3a6e | 2014-05-26 23:16:10 -0700 | [diff] [blame] | 228 | } |
| 229 | checker |
| 230 | { |
| 231 | type hierarchical |
| 232 | sig-type rsa-sha256 |
| 233 | } |
| 234 | } |
| 235 | |
| 236 | trust-anchor |
| 237 | { |
| 238 | type file |
| 239 | file-name "root.cert" |
| 240 | } |
| 241 | } |
alvy | 297f416 | 2015-03-03 17:15:33 -0600 | [diff] [blame] | 242 | |
| 243 | prefix-update-validator |
| 244 | { |
| 245 | rule |
| 246 | { |
| 247 | id "NLSR ControlCommand Rule" |
| 248 | for interest |
| 249 | filter |
| 250 | { |
| 251 | type name |
Muktadir Chowdhury | f04f989 | 2017-08-20 20:42:56 -0500 | [diff] [blame] | 252 | ; /<prefix>/<management-module>/<command-verb>/<control-parameters> |
| 253 | ; /<timestamp>/<random-value>/<signed-interests-components> |
| 254 | regex ^<localhost><nlsr><prefix-update>[<advertise><withdraw>]<><><>$ |
alvy | 297f416 | 2015-03-03 17:15:33 -0600 | [diff] [blame] | 255 | } |
| 256 | checker |
| 257 | { |
| 258 | type customized |
| 259 | sig-type rsa-sha256 |
| 260 | key-locator |
| 261 | { |
| 262 | type name |
Muktadir Chowdhury | f04f989 | 2017-08-20 20:42:56 -0500 | [diff] [blame] | 263 | regex ^([^<KEY><%C1.Operator>]*)<%C1.Operator>[^<KEY>]*<KEY><>$ |
alvy | 297f416 | 2015-03-03 17:15:33 -0600 | [diff] [blame] | 264 | } |
| 265 | } |
| 266 | } |
| 267 | |
| 268 | rule |
| 269 | { |
| 270 | id "NLSR Hierarchy Rule" |
| 271 | for data |
| 272 | filter |
| 273 | { |
| 274 | type name |
Muktadir Chowdhury | f04f989 | 2017-08-20 20:42:56 -0500 | [diff] [blame] | 275 | regex ^[^<KEY>]*<KEY><><><>$ |
alvy | 297f416 | 2015-03-03 17:15:33 -0600 | [diff] [blame] | 276 | } |
| 277 | checker |
| 278 | { |
| 279 | type hierarchical |
| 280 | sig-type rsa-sha256 |
| 281 | } |
| 282 | } |
| 283 | |
| 284 | trust-anchor |
| 285 | { |
| 286 | type file |
| 287 | file-name "site.cert" |
| 288 | } |
| 289 | } |
Muktadir Chowdhury | f04f989 | 2017-08-20 20:42:56 -0500 | [diff] [blame] | 290 | |
Vince Lehman | 9f51efd | 2014-09-18 14:46:01 -0500 | [diff] [blame] | 291 | ; cert-to-publish "root.cert" ; optional, a file containing the root certificate |
| 292 | ; Only the router that is designated to publish the root cert |
| 293 | ; needs to specify this |
| 294 | |
| 295 | ; cert-to-publish "site.cert" ; optional, a file containing the site certificate |
| 296 | ; Only the router that is designated to publish the site cert |
| 297 | ; needs to specify this |
| 298 | |
| 299 | ; cert-to-publish "operator.cert" ; optional, a file containing the operator certificate |
| 300 | ; Only the router that is designated to publish the operator |
| 301 | ; cert needs to specify this |
| 302 | |
akmhoque | 50125a9 | 2014-06-30 08:54:17 -0500 | [diff] [blame] | 303 | cert-to-publish "router.cert" ; required, a file containing the router certificate. |
akmhoque | 157b0a4 | 2014-05-13 00:26:37 -0500 | [diff] [blame] | 304 | } |