blob: 6b63937e7919d33c6e305091c10c2326ff5e7477 [file] [log] [blame]
akmhoque3d06e792014-05-27 16:23:20 -05001/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
2/**
Ashlesh Gawande85998a12017-12-07 22:22:13 -06003 * Copyright (c) 2014-2019, The University of Memphis,
Vince Lehmanc2e51f62015-01-20 15:03:11 -06004 * Regents of the University of California,
5 * Arizona Board of Regents.
akmhoque3d06e792014-05-27 16:23:20 -05006 *
7 * This file is part of NLSR (Named-data Link State Routing).
8 * See AUTHORS.md for complete list of NLSR authors and contributors.
9 *
10 * NLSR is free software: you can redistribute it and/or modify it under the terms
11 * of the GNU General Public License as published by the Free Software Foundation,
12 * either version 3 of the License, or (at your option) any later version.
13 *
14 * NLSR is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
15 * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
16 * PURPOSE. See the GNU General Public License for more details.
17 *
18 * You should have received a copy of the GNU General Public License along with
19 * NLSR, e.g., in COPYING.md file. If not, see <http://www.gnu.org/licenses/>.
akmhoque3d06e792014-05-27 16:23:20 -050020 **/
Vince Lehmanc2e51f62015-01-20 15:03:11 -060021
dmcoomese689dd62017-03-29 11:05:12 -050022#ifndef NLSR_CONF_PARAMETER_HPP
23#define NLSR_CONF_PARAMETER_HPP
akmhoque53353462014-04-22 08:43:45 -050024
Nick Gordone98480b2017-05-24 11:23:03 -050025#include "common.hpp"
Ashlesh Gawande3909aa12017-07-28 16:01:35 -050026#include "logger.hpp"
Ashlesh Gawande982a58f2018-02-14 17:39:12 -060027#include "test-access-control.hpp"
Ashlesh Gawande85998a12017-12-07 22:22:13 -060028#include "adjacency-list.hpp"
29#include "name-prefix-list.hpp"
30#include "security/certificate-store.hpp"
Ashlesh Gawande3909aa12017-07-28 16:01:35 -050031
akmhoque53353462014-04-22 08:43:45 -050032#include <iostream>
akmhoquefdbddb12014-05-02 18:35:19 -050033#include <boost/cstdint.hpp>
akmhoque31d1d4b2014-05-05 22:08:14 -050034#include <ndn-cxx/face.hpp>
Ashlesh Gawande85998a12017-12-07 22:22:13 -060035#include <ndn-cxx/security/validator-config.hpp>
36#include <ndn-cxx/security/v2/certificate-fetcher-direct-fetch.hpp>
Alexander Afanasyev411ee4b2014-08-16 23:17:03 -070037#include <ndn-cxx/util/time.hpp>
akmhoque53353462014-04-22 08:43:45 -050038
39namespace nlsr {
akmhoque157b0a42014-05-13 00:26:37 -050040
41enum {
42 LSA_REFRESH_TIME_MIN = 240,
43 LSA_REFRESH_TIME_DEFAULT = 1800,
44 LSA_REFRESH_TIME_MAX = 7200
45};
46
47enum {
Ashlesh Gawande32ec3fd2018-07-18 13:42:32 -050048 SYNC_PROTOCOL_CHRONOSYNC = 0,
49 SYNC_PROTOCOL_PSYNC = 1
50};
51
52enum {
Alexander Afanasyev411ee4b2014-08-16 23:17:03 -070053 LSA_INTEREST_LIFETIME_MIN = 1,
54 LSA_INTEREST_LIFETIME_DEFAULT = 4,
55 LSA_INTEREST_LIFETIME_MAX = 60
56};
57
58enum {
Vince Lehman7b616582014-10-17 16:25:39 -050059 ADJ_LSA_BUILD_INTERVAL_MIN = 0,
60 ADJ_LSA_BUILD_INTERVAL_DEFAULT = 5,
61 ADJ_LSA_BUILD_INTERVAL_MAX = 5
62};
63
64enum {
65 FIRST_HELLO_INTERVAL_MIN = 0,
66 FIRST_HELLO_INTERVAL_DEFAULT = 10,
67 FIRST_HELLO_INTERVAL_MAX = 10
68};
69
70enum {
71 ROUTING_CALC_INTERVAL_MIN = 0,
72 ROUTING_CALC_INTERVAL_DEFAULT = 15,
73 ROUTING_CALC_INTERVAL_MAX = 15
74};
75
Nick Gordond5c1a372016-10-31 13:56:23 -050076
77enum {
78 FACE_DATASET_FETCH_TRIES_MIN = 1,
79 FACE_DATASET_FETCH_TRIES_MAX = 10,
80 FACE_DATASET_FETCH_TRIES_DEFAULT = 3
81};
82
83enum {
84 FACE_DATASET_FETCH_INTERVAL_MIN = 1800,
85 FACE_DATASET_FETCH_INTERVAL_MAX = 5400,
86 FACE_DATASET_FETCH_INTERVAL_DEFAULT = 3600
87};
88
Vince Lehman7b616582014-10-17 16:25:39 -050089enum {
akmhoque157b0a42014-05-13 00:26:37 -050090 HELLO_RETRIES_MIN = 1,
91 HELLO_RETRIES_DEFAULT = 3,
92 HELLO_RETRIES_MAX = 15
93};
94
95enum {
96 HELLO_TIMEOUT_MIN = 1,
97 HELLO_TIMEOUT_DEFAULT = 3,
98 HELLO_TIMEOUT_MAX = 15
99};
100
101enum {
102 HELLO_INTERVAL_MIN = 30,
103 HELLO_INTERVAL_DEFAULT = 60,
104 HELLO_INTERVAL_MAX =90
105};
106
107enum {
108 MAX_FACES_PER_PREFIX_MIN = 0,
alvya2228c62014-12-09 10:25:11 -0600109 MAX_FACES_PER_PREFIX_DEFAULT = 0,
akmhoque157b0a42014-05-13 00:26:37 -0500110 MAX_FACES_PER_PREFIX_MAX = 60
111};
112
Nick Gordon5c467f02016-07-13 13:40:10 -0500113enum HyperbolicState {
akmhoque157b0a42014-05-13 00:26:37 -0500114 HYPERBOLIC_STATE_OFF = 0,
115 HYPERBOLIC_STATE_ON = 1,
alvya2228c62014-12-09 10:25:11 -0600116 HYPERBOLIC_STATE_DRY_RUN = 2,
117 HYPERBOLIC_STATE_DEFAULT = 0
akmhoque157b0a42014-05-13 00:26:37 -0500118};
119
Ashlesh Gawandef7da9c52018-02-06 17:36:46 -0600120enum {
121 SYNC_INTEREST_LIFETIME_MIN = 1000,
122 SYNC_INTEREST_LIFETIME_DEFAULT = 60000,
123 SYNC_INTEREST_LIFETIME_MAX = 120000,
124};
125
Nick Gordond0a7df32017-05-30 16:44:34 -0500126/*! \brief A class to house all the configuration parameters for NLSR.
127 *
128 * This class is conceptually a singleton (but not mechanically) which
129 * is just a collection of attributes that serve as a
130 * separation-of-data for NLSR's configuration variables. NLSR refers
131 * to an instance of this class for all its configuration
132 * parameters. This object is typically populated by a
133 * ConfFileProcessor reading a configuration file.
134 *
135 * \sa nlsr::ConfFileProcessor
136 */
akmhoque53353462014-04-22 08:43:45 -0500137class ConfParameter
138{
139
140public:
Ashlesh Gawande85998a12017-12-07 22:22:13 -0600141 ConfParameter(ndn::Face& face, const std::string& confFileName = "nlsr.conf");
142
143 const std::string&
144 getConfFileName()
Alexander Afanasyev411ee4b2014-08-16 23:17:03 -0700145 {
Ashlesh Gawande85998a12017-12-07 22:22:13 -0600146 return m_confFileName;
Alexander Afanasyev411ee4b2014-08-16 23:17:03 -0700147 }
akmhoque53353462014-04-22 08:43:45 -0500148
149 void
Ashlesh Gawande982a58f2018-02-14 17:39:12 -0600150 setNetwork(const ndn::Name& networkName);
akmhoque53353462014-04-22 08:43:45 -0500151
akmhoque31d1d4b2014-05-05 22:08:14 -0500152 const ndn::Name&
Alexander Afanasyev411ee4b2014-08-16 23:17:03 -0700153 getNetwork() const
akmhoque53353462014-04-22 08:43:45 -0500154 {
155 return m_network;
156 }
157
158 void
akmhoque157b0a42014-05-13 00:26:37 -0500159 setRouterName(const ndn::Name& routerName)
160 {
161 m_routerName = routerName;
162 }
163
164 const ndn::Name&
Alexander Afanasyev411ee4b2014-08-16 23:17:03 -0700165 getRouterName() const
akmhoque157b0a42014-05-13 00:26:37 -0500166 {
167 return m_routerName;
168 }
169
170 void
171 setSiteName(const ndn::Name& siteName)
172 {
173 m_siteName = siteName;
174 }
175
176 const ndn::Name&
Alexander Afanasyev411ee4b2014-08-16 23:17:03 -0700177 getSiteName() const
akmhoque157b0a42014-05-13 00:26:37 -0500178 {
179 return m_siteName;
180 }
181
182 void
akmhoque53353462014-04-22 08:43:45 -0500183 buildRouterPrefix()
184 {
akmhoque31d1d4b2014-05-05 22:08:14 -0500185 m_routerPrefix = m_network;
186 m_routerPrefix.append(m_siteName);
187 m_routerPrefix.append(m_routerName);
akmhoque53353462014-04-22 08:43:45 -0500188 }
189
akmhoque31d1d4b2014-05-05 22:08:14 -0500190 const ndn::Name&
Alexander Afanasyev411ee4b2014-08-16 23:17:03 -0700191 getRouterPrefix() const
akmhoque53353462014-04-22 08:43:45 -0500192 {
193 return m_routerPrefix;
194 }
195
akmhoque31d1d4b2014-05-05 22:08:14 -0500196 const ndn::Name&
Ashlesh Gawande85998a12017-12-07 22:22:13 -0600197 getSyncPrefix() const
akmhoque53353462014-04-22 08:43:45 -0500198 {
Ashlesh Gawande85998a12017-12-07 22:22:13 -0600199 return m_syncPrefix;
akmhoque53353462014-04-22 08:43:45 -0500200 }
201
akmhoque157b0a42014-05-13 00:26:37 -0500202 const ndn::Name&
Alexander Afanasyev411ee4b2014-08-16 23:17:03 -0700203 getLsaPrefix() const
akmhoque53353462014-04-22 08:43:45 -0500204 {
akmhoque157b0a42014-05-13 00:26:37 -0500205 return m_lsaPrefix;
akmhoque53353462014-04-22 08:43:45 -0500206 }
207
208 void
alvy5a454952014-12-15 12:49:54 -0600209 setLsaRefreshTime(uint32_t lrt)
akmhoque53353462014-04-22 08:43:45 -0500210 {
211 m_lsaRefreshTime = lrt;
akmhoque53353462014-04-22 08:43:45 -0500212 }
213
alvy5a454952014-12-15 12:49:54 -0600214 uint32_t
Ashlesh Gawande32ec3fd2018-07-18 13:42:32 -0500215 getSyncProtocol() const
216 {
217 return m_syncProtocol;
218 }
219
220 void
221 setSyncProtocol(int32_t syncProtocol)
222 {
223 if (syncProtocol == SYNC_PROTOCOL_CHRONOSYNC || syncProtocol == SYNC_PROTOCOL_PSYNC) {
224 m_syncProtocol = syncProtocol;
225 }
226 }
227
228 uint32_t
Alexander Afanasyev411ee4b2014-08-16 23:17:03 -0700229 getLsaRefreshTime() const
akmhoque53353462014-04-22 08:43:45 -0500230 {
231 return m_lsaRefreshTime;
232 }
233
234 void
Alexander Afanasyev411ee4b2014-08-16 23:17:03 -0700235 setLsaInterestLifetime(const ndn::time::seconds& lifetime)
236 {
237 m_lsaInterestLifetime = lifetime;
238 }
239
240 const ndn::time::seconds&
241 getLsaInterestLifetime() const
242 {
243 return m_lsaInterestLifetime;
244 }
245
246 void
Vince Lehman7b616582014-10-17 16:25:39 -0500247 setAdjLsaBuildInterval(uint32_t interval)
248 {
249 m_adjLsaBuildInterval = interval;
250 }
251
252 uint32_t
253 getAdjLsaBuildInterval() const
254 {
255 return m_adjLsaBuildInterval;
256 }
257
258 void
259 setFirstHelloInterval(uint32_t interval)
260 {
261 m_firstHelloInterval = interval;
262 }
263
264 uint32_t
265 getFirstHelloInterval() const
266 {
267 return m_firstHelloInterval;
268 }
269
270 void
271 setRoutingCalcInterval(uint32_t interval)
272 {
273 m_routingCalcInterval = interval;
274 }
275
276 uint32_t
277 getRoutingCalcInterval() const
278 {
279 return m_routingCalcInterval;
280 }
281
282 void
alvy5a454952014-12-15 12:49:54 -0600283 setRouterDeadInterval(uint32_t rdt)
akmhoque53353462014-04-22 08:43:45 -0500284 {
285 m_routerDeadInterval = rdt;
286 }
287
alvy5a454952014-12-15 12:49:54 -0600288 uint32_t
Alexander Afanasyev411ee4b2014-08-16 23:17:03 -0700289 getRouterDeadInterval() const
akmhoque53353462014-04-22 08:43:45 -0500290 {
291 return m_routerDeadInterval;
292 }
Alexander Afanasyev411ee4b2014-08-16 23:17:03 -0700293
294 void
Nick Gordond5c1a372016-10-31 13:56:23 -0500295 setFaceDatasetFetchTries(uint32_t count)
296 {
297 m_faceDatasetFetchTries = count;
298 }
299
300 uint32_t
301 getFaceDatasetFetchTries() const
302 {
303 return m_faceDatasetFetchTries;
304 }
305
306 void
Ashlesh Gawande3909aa12017-07-28 16:01:35 -0500307 setFaceDatasetFetchInterval(uint32_t interval)
Nick Gordond5c1a372016-10-31 13:56:23 -0500308 {
Ashlesh Gawande3909aa12017-07-28 16:01:35 -0500309 m_faceDatasetFetchInterval = ndn::time::seconds(interval);
Nick Gordond5c1a372016-10-31 13:56:23 -0500310 }
311
312 const ndn::time::seconds
313 getFaceDatasetFetchInterval() const
314 {
315 return m_faceDatasetFetchInterval;
316 }
317
318 void
akmhoque157b0a42014-05-13 00:26:37 -0500319 setInterestRetryNumber(uint32_t irn)
akmhoque53353462014-04-22 08:43:45 -0500320 {
akmhoque157b0a42014-05-13 00:26:37 -0500321 m_interestRetryNumber = irn;
322 }
323
324 uint32_t
Alexander Afanasyev411ee4b2014-08-16 23:17:03 -0700325 getInterestRetryNumber() const
akmhoque157b0a42014-05-13 00:26:37 -0500326 {
327 return m_interestRetryNumber;
328 }
329
330 void
alvy5a454952014-12-15 12:49:54 -0600331 setInterestResendTime(uint32_t irt)
akmhoque157b0a42014-05-13 00:26:37 -0500332 {
333 m_interestResendTime = irt;
akmhoque53353462014-04-22 08:43:45 -0500334 }
335
alvy5a454952014-12-15 12:49:54 -0600336 uint32_t
Alexander Afanasyev411ee4b2014-08-16 23:17:03 -0700337 getInterestResendTime() const
akmhoque53353462014-04-22 08:43:45 -0500338 {
akmhoque157b0a42014-05-13 00:26:37 -0500339 return m_interestResendTime;
akmhoque53353462014-04-22 08:43:45 -0500340 }
341
alvy5a454952014-12-15 12:49:54 -0600342 uint32_t
Alexander Afanasyev411ee4b2014-08-16 23:17:03 -0700343 getInfoInterestInterval() const
akmhoque53353462014-04-22 08:43:45 -0500344 {
akmhoque157b0a42014-05-13 00:26:37 -0500345 return m_infoInterestInterval;
akmhoque53353462014-04-22 08:43:45 -0500346 }
347
348 void
alvy5a454952014-12-15 12:49:54 -0600349 setInfoInterestInterval(uint32_t iii)
akmhoque53353462014-04-22 08:43:45 -0500350 {
akmhoque157b0a42014-05-13 00:26:37 -0500351 m_infoInterestInterval = iii;
352 }
353
354 void
355 setHyperbolicState(int32_t ihc)
356 {
357 m_hyperbolicState = ihc;
akmhoque53353462014-04-22 08:43:45 -0500358 }
359
akmhoquefdbddb12014-05-02 18:35:19 -0500360 int32_t
Alexander Afanasyev411ee4b2014-08-16 23:17:03 -0700361 getHyperbolicState() const
akmhoque53353462014-04-22 08:43:45 -0500362 {
akmhoque157b0a42014-05-13 00:26:37 -0500363 return m_hyperbolicState;
akmhoque53353462014-04-22 08:43:45 -0500364 }
365
akmhoque157b0a42014-05-13 00:26:37 -0500366 bool
akmhoque53353462014-04-22 08:43:45 -0500367 setCorR(double cr)
368 {
akmhoque157b0a42014-05-13 00:26:37 -0500369 if ( cr >= 0 ) {
370 m_corR = cr;
371 return true;
372 }
373 return false;
akmhoque53353462014-04-22 08:43:45 -0500374 }
375
376 double
Alexander Afanasyev411ee4b2014-08-16 23:17:03 -0700377 getCorR() const
akmhoque53353462014-04-22 08:43:45 -0500378 {
379 return m_corR;
380 }
381
382 void
Muktadir R Chowdhuryb00dc2a2016-11-05 10:48:58 -0600383 setCorTheta(const std::vector<double>& ct)
akmhoque53353462014-04-22 08:43:45 -0500384 {
385 m_corTheta = ct;
386 }
387
Muktadir R Chowdhuryb00dc2a2016-11-05 10:48:58 -0600388 std::vector<double>
Alexander Afanasyev411ee4b2014-08-16 23:17:03 -0700389 getCorTheta() const
akmhoque53353462014-04-22 08:43:45 -0500390 {
391 return m_corTheta;
392 }
Alexander Afanasyev411ee4b2014-08-16 23:17:03 -0700393
akmhoque53353462014-04-22 08:43:45 -0500394 void
Vince Lehman942eb7b2014-10-02 10:09:27 -0500395 setMaxFacesPerPrefix(uint32_t mfpp)
akmhoque53353462014-04-22 08:43:45 -0500396 {
akmhoque157b0a42014-05-13 00:26:37 -0500397 m_maxFacesPerPrefix = mfpp;
akmhoque53353462014-04-22 08:43:45 -0500398 }
399
Vince Lehman942eb7b2014-10-02 10:09:27 -0500400 uint32_t
Alexander Afanasyev411ee4b2014-08-16 23:17:03 -0700401 getMaxFacesPerPrefix() const
akmhoque53353462014-04-22 08:43:45 -0500402 {
akmhoque157b0a42014-05-13 00:26:37 -0500403 return m_maxFacesPerPrefix;
akmhoque53353462014-04-22 08:43:45 -0500404 }
405
406 void
dulalsaurab82a34c22019-02-04 17:31:21 +0000407 setStateFileDir(const std::string& ssfd)
akmhoque53353462014-04-22 08:43:45 -0500408 {
dulalsaurab82a34c22019-02-04 17:31:21 +0000409 m_stateFileDir = ssfd;
akmhoque53353462014-04-22 08:43:45 -0500410 }
411
akmhoque157b0a42014-05-13 00:26:37 -0500412 const std::string&
dulalsaurab82a34c22019-02-04 17:31:21 +0000413 getStateFileDir() const
akmhoque53353462014-04-22 08:43:45 -0500414 {
dulalsaurab82a34c22019-02-04 17:31:21 +0000415 return m_stateFileDir;
416 }
417
dulalsaurabd0816a32019-07-26 13:11:24 +0000418 void
419 setConfFileNameDynamic(const std::string& confFileDynamic)
dulalsaurab82a34c22019-02-04 17:31:21 +0000420 {
421 m_confFileNameDynamic = confFileDynamic;
422 }
423
424 const std::string&
425 getConfFileNameDynamic() const
426 {
427 return m_confFileNameDynamic;
akmhoque53353462014-04-22 08:43:45 -0500428 }
429
akmhoque674b0b12014-05-20 14:33:28 -0500430 void
Ashlesh Gawandef7da9c52018-02-06 17:36:46 -0600431 setSyncInterestLifetime(uint32_t syncInterestLifetime)
432 {
433 m_syncInterestLifetime = ndn::time::milliseconds(syncInterestLifetime);
434 }
435
436 const ndn::time::milliseconds&
437 getSyncInterestLifetime() const
438 {
439 return m_syncInterestLifetime;
440 }
441
Ashlesh Gawande85998a12017-12-07 22:22:13 -0600442 AdjacencyList&
443 getAdjacencyList()
444 {
445 return m_adjl;
446 }
447
448 NamePrefixList&
449 getNamePrefixList()
450 {
451 return m_npl;
452 }
453
454 ndn::security::ValidatorConfig&
455 getValidator()
456 {
457 return m_validator;
458 }
459
460 ndn::security::ValidatorConfig&
461 getPrefixUpdateValidator()
462 {
463 return m_prefixUpdateValidator;
464 }
465
466 security::CertificateStore&
467 getCertStore()
468 {
469 return m_certStore;
470 }
471
472 /*! \brief Dump the current state of all attributes to the log.
473 */
Ashlesh Gawandef7da9c52018-02-06 17:36:46 -0600474 void
akmhoque674b0b12014-05-20 14:33:28 -0500475 writeLog();
akmhoque53353462014-04-22 08:43:45 -0500476
477private:
Ashlesh Gawande85998a12017-12-07 22:22:13 -0600478 std::string m_confFileName;
akmhoque31d1d4b2014-05-05 22:08:14 -0500479 ndn::Name m_routerName;
480 ndn::Name m_siteName;
481 ndn::Name m_network;
akmhoque53353462014-04-22 08:43:45 -0500482
akmhoque31d1d4b2014-05-05 22:08:14 -0500483 ndn::Name m_routerPrefix;
484 ndn::Name m_lsaRouterPrefix;
akmhoque53353462014-04-22 08:43:45 -0500485
Ashlesh Gawande85998a12017-12-07 22:22:13 -0600486 ndn::Name m_syncPrefix;
akmhoque157b0a42014-05-13 00:26:37 -0500487 ndn::Name m_lsaPrefix;
488
alvy5a454952014-12-15 12:49:54 -0600489 uint32_t m_lsaRefreshTime;
Vince Lehman7b616582014-10-17 16:25:39 -0500490
491 uint32_t m_adjLsaBuildInterval;
492 uint32_t m_firstHelloInterval;
493 uint32_t m_routingCalcInterval;
494
Nick Gordond5c1a372016-10-31 13:56:23 -0500495 uint32_t m_faceDatasetFetchTries;
496 ndn::time::seconds m_faceDatasetFetchInterval;
497
Alexander Afanasyev411ee4b2014-08-16 23:17:03 -0700498 ndn::time::seconds m_lsaInterestLifetime;
alvy5a454952014-12-15 12:49:54 -0600499 uint32_t m_routerDeadInterval;
akmhoque53353462014-04-22 08:43:45 -0500500
akmhoquefdbddb12014-05-02 18:35:19 -0500501 uint32_t m_interestRetryNumber;
alvy5a454952014-12-15 12:49:54 -0600502 uint32_t m_interestResendTime;
Alexander Afanasyev411ee4b2014-08-16 23:17:03 -0700503
alvy5a454952014-12-15 12:49:54 -0600504 uint32_t m_infoInterestInterval;
Alexander Afanasyev411ee4b2014-08-16 23:17:03 -0700505
akmhoque157b0a42014-05-13 00:26:37 -0500506 int32_t m_hyperbolicState;
akmhoque53353462014-04-22 08:43:45 -0500507 double m_corR;
Muktadir R Chowdhuryb00dc2a2016-11-05 10:48:58 -0600508 std::vector<double> m_corTheta;
akmhoque53353462014-04-22 08:43:45 -0500509
Vince Lehman942eb7b2014-10-02 10:09:27 -0500510 uint32_t m_maxFacesPerPrefix;
Alexander Afanasyev411ee4b2014-08-16 23:17:03 -0700511
dulalsaurab82a34c22019-02-04 17:31:21 +0000512 std::string m_stateFileDir;
513
Ashlesh Gawandef7da9c52018-02-06 17:36:46 -0600514 ndn::time::milliseconds m_syncInterestLifetime;
Ashlesh Gawande982a58f2018-02-14 17:39:12 -0600515
Ashlesh Gawande32ec3fd2018-07-18 13:42:32 -0500516 int32_t m_syncProtocol;
517
dulalsaurab82a34c22019-02-04 17:31:21 +0000518 std::string m_confFileNameDynamic;
519
Ashlesh Gawande982a58f2018-02-14 17:39:12 -0600520PUBLIC_WITH_TESTS_ELSE_PRIVATE:
521 static const uint64_t SYNC_VERSION;
Ashlesh Gawande85998a12017-12-07 22:22:13 -0600522
523 AdjacencyList m_adjl;
524 NamePrefixList m_npl;
525 ndn::security::ValidatorConfig m_validator;
526 ndn::security::ValidatorConfig m_prefixUpdateValidator;
527 security::CertificateStore m_certStore;
akmhoque53353462014-04-22 08:43:45 -0500528};
529
akmhoque53353462014-04-22 08:43:45 -0500530} // namespace nlsr
531
dmcoomese689dd62017-03-29 11:05:12 -0500532#endif // NLSR_CONF_PARAMETER_HPP