blob: 29f9f9cab7b8c4347e4b77cdd44bf685f9674425 [file] [log] [blame]
akmhoque3d06e792014-05-27 16:23:20 -05001/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
2/**
Nick Gordonc6a85222017-01-03 16:54:34 -06003 * Copyright (c) 2014-2017, 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
Ashlesh Gawande3909aa12017-07-28 16:01:35 -050025#include "logger.hpp"
26
akmhoque53353462014-04-22 08:43:45 -050027#include <iostream>
akmhoquefdbddb12014-05-02 18:35:19 -050028#include <boost/cstdint.hpp>
akmhoque31d1d4b2014-05-05 22:08:14 -050029#include <ndn-cxx/common.hpp>
30#include <ndn-cxx/face.hpp>
Alexander Afanasyev411ee4b2014-08-16 23:17:03 -070031#include <ndn-cxx/util/time.hpp>
akmhoque53353462014-04-22 08:43:45 -050032
33namespace nlsr {
akmhoque157b0a42014-05-13 00:26:37 -050034
35enum {
36 LSA_REFRESH_TIME_MIN = 240,
37 LSA_REFRESH_TIME_DEFAULT = 1800,
38 LSA_REFRESH_TIME_MAX = 7200
39};
40
41enum {
Alexander Afanasyev411ee4b2014-08-16 23:17:03 -070042 LSA_INTEREST_LIFETIME_MIN = 1,
43 LSA_INTEREST_LIFETIME_DEFAULT = 4,
44 LSA_INTEREST_LIFETIME_MAX = 60
45};
46
47enum {
Vince Lehman7b616582014-10-17 16:25:39 -050048 ADJ_LSA_BUILD_INTERVAL_MIN = 0,
49 ADJ_LSA_BUILD_INTERVAL_DEFAULT = 5,
50 ADJ_LSA_BUILD_INTERVAL_MAX = 5
51};
52
53enum {
54 FIRST_HELLO_INTERVAL_MIN = 0,
55 FIRST_HELLO_INTERVAL_DEFAULT = 10,
56 FIRST_HELLO_INTERVAL_MAX = 10
57};
58
59enum {
60 ROUTING_CALC_INTERVAL_MIN = 0,
61 ROUTING_CALC_INTERVAL_DEFAULT = 15,
62 ROUTING_CALC_INTERVAL_MAX = 15
63};
64
Nick Gordond5c1a372016-10-31 13:56:23 -050065
66enum {
67 FACE_DATASET_FETCH_TRIES_MIN = 1,
68 FACE_DATASET_FETCH_TRIES_MAX = 10,
69 FACE_DATASET_FETCH_TRIES_DEFAULT = 3
70};
71
72enum {
73 FACE_DATASET_FETCH_INTERVAL_MIN = 1800,
74 FACE_DATASET_FETCH_INTERVAL_MAX = 5400,
75 FACE_DATASET_FETCH_INTERVAL_DEFAULT = 3600
76};
77
Vince Lehman7b616582014-10-17 16:25:39 -050078enum {
akmhoque157b0a42014-05-13 00:26:37 -050079 HELLO_RETRIES_MIN = 1,
80 HELLO_RETRIES_DEFAULT = 3,
81 HELLO_RETRIES_MAX = 15
82};
83
84enum {
85 HELLO_TIMEOUT_MIN = 1,
86 HELLO_TIMEOUT_DEFAULT = 3,
87 HELLO_TIMEOUT_MAX = 15
88};
89
90enum {
91 HELLO_INTERVAL_MIN = 30,
92 HELLO_INTERVAL_DEFAULT = 60,
93 HELLO_INTERVAL_MAX =90
94};
95
96enum {
97 MAX_FACES_PER_PREFIX_MIN = 0,
alvya2228c62014-12-09 10:25:11 -060098 MAX_FACES_PER_PREFIX_DEFAULT = 0,
akmhoque157b0a42014-05-13 00:26:37 -050099 MAX_FACES_PER_PREFIX_MAX = 60
100};
101
Nick Gordon5c467f02016-07-13 13:40:10 -0500102enum HyperbolicState {
akmhoque157b0a42014-05-13 00:26:37 -0500103 HYPERBOLIC_STATE_OFF = 0,
104 HYPERBOLIC_STATE_ON = 1,
alvya2228c62014-12-09 10:25:11 -0600105 HYPERBOLIC_STATE_DRY_RUN = 2,
106 HYPERBOLIC_STATE_DEFAULT = 0
akmhoque157b0a42014-05-13 00:26:37 -0500107};
108
Nick Gordond0a7df32017-05-30 16:44:34 -0500109/*! \brief A class to house all the configuration parameters for NLSR.
110 *
111 * This class is conceptually a singleton (but not mechanically) which
112 * is just a collection of attributes that serve as a
113 * separation-of-data for NLSR's configuration variables. NLSR refers
114 * to an instance of this class for all its configuration
115 * parameters. This object is typically populated by a
116 * ConfFileProcessor reading a configuration file.
117 *
118 * \sa nlsr::ConfFileProcessor
119 */
akmhoque53353462014-04-22 08:43:45 -0500120class ConfParameter
121{
122
123public:
124 ConfParameter()
akmhoque157b0a42014-05-13 00:26:37 -0500125 : m_lsaRefreshTime(LSA_REFRESH_TIME_DEFAULT)
Vince Lehman7b616582014-10-17 16:25:39 -0500126 , m_adjLsaBuildInterval(ADJ_LSA_BUILD_INTERVAL_DEFAULT)
127 , m_firstHelloInterval(FIRST_HELLO_INTERVAL_DEFAULT)
128 , m_routingCalcInterval(ROUTING_CALC_INTERVAL_DEFAULT)
Ashlesh Gawande3909aa12017-07-28 16:01:35 -0500129 , m_faceDatasetFetchInterval(ndn::time::seconds(static_cast<int>(FACE_DATASET_FETCH_INTERVAL_DEFAULT)))
Alexander Afanasyev411ee4b2014-08-16 23:17:03 -0700130 , m_lsaInterestLifetime(ndn::time::seconds(static_cast<int>(LSA_INTEREST_LIFETIME_DEFAULT)))
Alexander Afanasyev1cf1e102014-08-17 19:47:57 -0700131 , m_routerDeadInterval(2 * LSA_REFRESH_TIME_DEFAULT)
akmhoque157b0a42014-05-13 00:26:37 -0500132 , m_logLevel("INFO")
133 , m_interestRetryNumber(HELLO_RETRIES_DEFAULT)
134 , m_interestResendTime(HELLO_TIMEOUT_DEFAULT)
135 , m_infoInterestInterval(HELLO_INTERVAL_DEFAULT)
136 , m_hyperbolicState(HYPERBOLIC_STATE_OFF)
akmhoque53353462014-04-22 08:43:45 -0500137 , m_corR(0)
akmhoque157b0a42014-05-13 00:26:37 -0500138 , m_maxFacesPerPrefix(MAX_FACES_PER_PREFIX_MIN)
Muktadir R Chowdhurybfa27602014-10-31 10:57:41 -0500139 , m_isLog4cxxConfAvailable(false)
Alexander Afanasyev411ee4b2014-08-16 23:17:03 -0700140 {
141 }
akmhoque53353462014-04-22 08:43:45 -0500142
143 void
akmhoque157b0a42014-05-13 00:26:37 -0500144 setNetwork(const ndn::Name& networkName)
akmhoque53353462014-04-22 08:43:45 -0500145 {
akmhoque157b0a42014-05-13 00:26:37 -0500146 m_network = networkName;
Ashlesh Gawande44395232016-12-13 14:35:29 -0600147
148 m_chronosyncPrefix.append("localhop");
Ashlesh Gawande8bfd1242017-06-21 14:55:27 -0500149 m_chronosyncPrefix.append(m_network);
akmhoquea816bee2014-06-24 14:37:40 -0500150 m_chronosyncPrefix.append("NLSR");
akmhoque157b0a42014-05-13 00:26:37 -0500151 m_chronosyncPrefix.append("sync");
Alexander Afanasyev411ee4b2014-08-16 23:17:03 -0700152
Ashlesh Gawande6077ea92017-01-19 11:48:29 -0600153 m_lsaPrefix.append("localhop");
154 m_lsaPrefix.append(m_network);
akmhoquea816bee2014-06-24 14:37:40 -0500155 m_lsaPrefix.append("NLSR");
akmhoque157b0a42014-05-13 00:26:37 -0500156 m_lsaPrefix.append("LSA");
akmhoque53353462014-04-22 08:43:45 -0500157 }
158
akmhoque31d1d4b2014-05-05 22:08:14 -0500159 const ndn::Name&
Alexander Afanasyev411ee4b2014-08-16 23:17:03 -0700160 getNetwork() const
akmhoque53353462014-04-22 08:43:45 -0500161 {
162 return m_network;
163 }
164
165 void
akmhoque157b0a42014-05-13 00:26:37 -0500166 setRouterName(const ndn::Name& routerName)
167 {
168 m_routerName = routerName;
169 }
170
171 const ndn::Name&
Alexander Afanasyev411ee4b2014-08-16 23:17:03 -0700172 getRouterName() const
akmhoque157b0a42014-05-13 00:26:37 -0500173 {
174 return m_routerName;
175 }
176
177 void
178 setSiteName(const ndn::Name& siteName)
179 {
180 m_siteName = siteName;
181 }
182
183 const ndn::Name&
Alexander Afanasyev411ee4b2014-08-16 23:17:03 -0700184 getSiteName() const
akmhoque157b0a42014-05-13 00:26:37 -0500185 {
186 return m_siteName;
187 }
188
189 void
akmhoque53353462014-04-22 08:43:45 -0500190 buildRouterPrefix()
191 {
akmhoque31d1d4b2014-05-05 22:08:14 -0500192 m_routerPrefix = m_network;
193 m_routerPrefix.append(m_siteName);
194 m_routerPrefix.append(m_routerName);
akmhoque53353462014-04-22 08:43:45 -0500195 }
196
akmhoque31d1d4b2014-05-05 22:08:14 -0500197 const ndn::Name&
Alexander Afanasyev411ee4b2014-08-16 23:17:03 -0700198 getRouterPrefix() const
akmhoque53353462014-04-22 08:43:45 -0500199 {
200 return m_routerPrefix;
201 }
202
akmhoque157b0a42014-05-13 00:26:37 -0500203
akmhoque31d1d4b2014-05-05 22:08:14 -0500204 const ndn::Name&
Alexander Afanasyev411ee4b2014-08-16 23:17:03 -0700205 getChronosyncPrefix() const
akmhoque53353462014-04-22 08:43:45 -0500206 {
akmhoque157b0a42014-05-13 00:26:37 -0500207 return m_chronosyncPrefix;
akmhoque53353462014-04-22 08:43:45 -0500208 }
209
akmhoque157b0a42014-05-13 00:26:37 -0500210 const ndn::Name&
Alexander Afanasyev411ee4b2014-08-16 23:17:03 -0700211 getLsaPrefix() const
akmhoque53353462014-04-22 08:43:45 -0500212 {
akmhoque157b0a42014-05-13 00:26:37 -0500213 return m_lsaPrefix;
akmhoque53353462014-04-22 08:43:45 -0500214 }
215
216 void
alvy5a454952014-12-15 12:49:54 -0600217 setLsaRefreshTime(uint32_t lrt)
akmhoque53353462014-04-22 08:43:45 -0500218 {
219 m_lsaRefreshTime = lrt;
akmhoque53353462014-04-22 08:43:45 -0500220 }
221
alvy5a454952014-12-15 12:49:54 -0600222 uint32_t
Alexander Afanasyev411ee4b2014-08-16 23:17:03 -0700223 getLsaRefreshTime() const
akmhoque53353462014-04-22 08:43:45 -0500224 {
225 return m_lsaRefreshTime;
226 }
227
228 void
Alexander Afanasyev411ee4b2014-08-16 23:17:03 -0700229 setLsaInterestLifetime(const ndn::time::seconds& lifetime)
230 {
231 m_lsaInterestLifetime = lifetime;
232 }
233
234 const ndn::time::seconds&
235 getLsaInterestLifetime() const
236 {
237 return m_lsaInterestLifetime;
238 }
239
240 void
Vince Lehman7b616582014-10-17 16:25:39 -0500241 setAdjLsaBuildInterval(uint32_t interval)
242 {
243 m_adjLsaBuildInterval = interval;
244 }
245
246 uint32_t
247 getAdjLsaBuildInterval() const
248 {
249 return m_adjLsaBuildInterval;
250 }
251
252 void
253 setFirstHelloInterval(uint32_t interval)
254 {
255 m_firstHelloInterval = interval;
256 }
257
258 uint32_t
259 getFirstHelloInterval() const
260 {
261 return m_firstHelloInterval;
262 }
263
264 void
265 setRoutingCalcInterval(uint32_t interval)
266 {
267 m_routingCalcInterval = interval;
268 }
269
270 uint32_t
271 getRoutingCalcInterval() const
272 {
273 return m_routingCalcInterval;
274 }
275
276 void
alvy5a454952014-12-15 12:49:54 -0600277 setRouterDeadInterval(uint32_t rdt)
akmhoque53353462014-04-22 08:43:45 -0500278 {
279 m_routerDeadInterval = rdt;
280 }
281
alvy5a454952014-12-15 12:49:54 -0600282 uint32_t
Alexander Afanasyev411ee4b2014-08-16 23:17:03 -0700283 getRouterDeadInterval() const
akmhoque53353462014-04-22 08:43:45 -0500284 {
285 return m_routerDeadInterval;
286 }
Alexander Afanasyev411ee4b2014-08-16 23:17:03 -0700287
288 void
Nick Gordond5c1a372016-10-31 13:56:23 -0500289 setFaceDatasetFetchTries(uint32_t count)
290 {
291 m_faceDatasetFetchTries = count;
292 }
293
294 uint32_t
295 getFaceDatasetFetchTries() const
296 {
297 return m_faceDatasetFetchTries;
298 }
299
300 void
Ashlesh Gawande3909aa12017-07-28 16:01:35 -0500301 setFaceDatasetFetchInterval(uint32_t interval)
Nick Gordond5c1a372016-10-31 13:56:23 -0500302 {
Ashlesh Gawande3909aa12017-07-28 16:01:35 -0500303 m_faceDatasetFetchInterval = ndn::time::seconds(interval);
Nick Gordond5c1a372016-10-31 13:56:23 -0500304 }
305
306 const ndn::time::seconds
307 getFaceDatasetFetchInterval() const
308 {
309 return m_faceDatasetFetchInterval;
310 }
311
312 void
akmhoque157b0a42014-05-13 00:26:37 -0500313 setLogLevel(const std::string& logLevel)
314 {
315 m_logLevel = logLevel;
316 }
Alexander Afanasyev411ee4b2014-08-16 23:17:03 -0700317
318 const std::string&
319 getLogLevel() const
akmhoque157b0a42014-05-13 00:26:37 -0500320 {
321 return m_logLevel;
322 }
akmhoque53353462014-04-22 08:43:45 -0500323
324 void
akmhoque157b0a42014-05-13 00:26:37 -0500325 setInterestRetryNumber(uint32_t irn)
akmhoque53353462014-04-22 08:43:45 -0500326 {
akmhoque157b0a42014-05-13 00:26:37 -0500327 m_interestRetryNumber = irn;
328 }
329
330 uint32_t
Alexander Afanasyev411ee4b2014-08-16 23:17:03 -0700331 getInterestRetryNumber() const
akmhoque157b0a42014-05-13 00:26:37 -0500332 {
333 return m_interestRetryNumber;
334 }
335
336 void
alvy5a454952014-12-15 12:49:54 -0600337 setInterestResendTime(uint32_t irt)
akmhoque157b0a42014-05-13 00:26:37 -0500338 {
339 m_interestResendTime = irt;
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 getInterestResendTime() const
akmhoque53353462014-04-22 08:43:45 -0500344 {
akmhoque157b0a42014-05-13 00:26:37 -0500345 return m_interestResendTime;
akmhoque53353462014-04-22 08:43:45 -0500346 }
347
alvy5a454952014-12-15 12:49:54 -0600348 uint32_t
Alexander Afanasyev411ee4b2014-08-16 23:17:03 -0700349 getInfoInterestInterval() const
akmhoque53353462014-04-22 08:43:45 -0500350 {
akmhoque157b0a42014-05-13 00:26:37 -0500351 return m_infoInterestInterval;
akmhoque53353462014-04-22 08:43:45 -0500352 }
353
354 void
alvy5a454952014-12-15 12:49:54 -0600355 setInfoInterestInterval(uint32_t iii)
akmhoque53353462014-04-22 08:43:45 -0500356 {
akmhoque157b0a42014-05-13 00:26:37 -0500357 m_infoInterestInterval = iii;
358 }
359
360 void
361 setHyperbolicState(int32_t ihc)
362 {
363 m_hyperbolicState = ihc;
akmhoque53353462014-04-22 08:43:45 -0500364 }
365
akmhoquefdbddb12014-05-02 18:35:19 -0500366 int32_t
Alexander Afanasyev411ee4b2014-08-16 23:17:03 -0700367 getHyperbolicState() const
akmhoque53353462014-04-22 08:43:45 -0500368 {
akmhoque157b0a42014-05-13 00:26:37 -0500369 return m_hyperbolicState;
akmhoque53353462014-04-22 08:43:45 -0500370 }
371
akmhoque157b0a42014-05-13 00:26:37 -0500372 bool
akmhoque53353462014-04-22 08:43:45 -0500373 setCorR(double cr)
374 {
akmhoque157b0a42014-05-13 00:26:37 -0500375 if ( cr >= 0 ) {
376 m_corR = cr;
377 return true;
378 }
379 return false;
akmhoque53353462014-04-22 08:43:45 -0500380 }
381
382 double
Alexander Afanasyev411ee4b2014-08-16 23:17:03 -0700383 getCorR() const
akmhoque53353462014-04-22 08:43:45 -0500384 {
385 return m_corR;
386 }
387
388 void
Muktadir R Chowdhuryb00dc2a2016-11-05 10:48:58 -0600389 setCorTheta(const std::vector<double>& ct)
akmhoque53353462014-04-22 08:43:45 -0500390 {
391 m_corTheta = ct;
392 }
393
Muktadir R Chowdhuryb00dc2a2016-11-05 10:48:58 -0600394 std::vector<double>
Alexander Afanasyev411ee4b2014-08-16 23:17:03 -0700395 getCorTheta() const
akmhoque53353462014-04-22 08:43:45 -0500396 {
397 return m_corTheta;
398 }
Alexander Afanasyev411ee4b2014-08-16 23:17:03 -0700399
akmhoque53353462014-04-22 08:43:45 -0500400 void
Vince Lehman942eb7b2014-10-02 10:09:27 -0500401 setMaxFacesPerPrefix(uint32_t mfpp)
akmhoque53353462014-04-22 08:43:45 -0500402 {
akmhoque157b0a42014-05-13 00:26:37 -0500403 m_maxFacesPerPrefix = mfpp;
akmhoque53353462014-04-22 08:43:45 -0500404 }
405
Vince Lehman942eb7b2014-10-02 10:09:27 -0500406 uint32_t
Alexander Afanasyev411ee4b2014-08-16 23:17:03 -0700407 getMaxFacesPerPrefix() const
akmhoque53353462014-04-22 08:43:45 -0500408 {
akmhoque157b0a42014-05-13 00:26:37 -0500409 return m_maxFacesPerPrefix;
akmhoque53353462014-04-22 08:43:45 -0500410 }
411
412 void
akmhoque674b0b12014-05-20 14:33:28 -0500413 setLogDir(const std::string& logDir)
414 {
415 m_logDir = logDir;
416 }
417
418 const std::string&
Alexander Afanasyev411ee4b2014-08-16 23:17:03 -0700419 getLogDir() const
akmhoque674b0b12014-05-20 14:33:28 -0500420 {
421 return m_logDir;
422 }
423
424 void
akmhoque157b0a42014-05-13 00:26:37 -0500425 setSeqFileDir(const std::string& ssfd)
akmhoque53353462014-04-22 08:43:45 -0500426 {
akmhoque157b0a42014-05-13 00:26:37 -0500427 m_seqFileDir = ssfd;
akmhoque53353462014-04-22 08:43:45 -0500428 }
429
akmhoque157b0a42014-05-13 00:26:37 -0500430 const std::string&
Alexander Afanasyev411ee4b2014-08-16 23:17:03 -0700431 getSeqFileDir() const
akmhoque53353462014-04-22 08:43:45 -0500432 {
akmhoque157b0a42014-05-13 00:26:37 -0500433 return m_seqFileDir;
akmhoque53353462014-04-22 08:43:45 -0500434 }
435
Muktadir R Chowdhurybfa27602014-10-31 10:57:41 -0500436 bool
437 isLog4CxxConfAvailable() const
438 {
439 return m_isLog4cxxConfAvailable;
440 }
441
442 void
443 setLog4CxxConfPath(const std::string& path)
444 {
445 m_log4CxxConfPath = path;
446 m_isLog4cxxConfAvailable = true;
447 }
448
449 const std::string&
450 getLog4CxxConfPath() const
451 {
452 return m_log4CxxConfPath;
453 }
454
Nick Gordond0a7df32017-05-30 16:44:34 -0500455 /*! \brief Dump the current state of all attributes to the log.
456 */
akmhoque674b0b12014-05-20 14:33:28 -0500457 void
458 writeLog();
akmhoque53353462014-04-22 08:43:45 -0500459
460private:
akmhoque31d1d4b2014-05-05 22:08:14 -0500461 ndn::Name m_routerName;
462 ndn::Name m_siteName;
463 ndn::Name m_network;
akmhoque53353462014-04-22 08:43:45 -0500464
akmhoque31d1d4b2014-05-05 22:08:14 -0500465 ndn::Name m_routerPrefix;
466 ndn::Name m_lsaRouterPrefix;
akmhoque53353462014-04-22 08:43:45 -0500467
akmhoque157b0a42014-05-13 00:26:37 -0500468 ndn::Name m_chronosyncPrefix;
469 ndn::Name m_lsaPrefix;
470
alvy5a454952014-12-15 12:49:54 -0600471 uint32_t m_lsaRefreshTime;
Vince Lehman7b616582014-10-17 16:25:39 -0500472
473 uint32_t m_adjLsaBuildInterval;
474 uint32_t m_firstHelloInterval;
475 uint32_t m_routingCalcInterval;
476
Nick Gordond5c1a372016-10-31 13:56:23 -0500477 uint32_t m_faceDatasetFetchTries;
478 ndn::time::seconds m_faceDatasetFetchInterval;
479
Alexander Afanasyev411ee4b2014-08-16 23:17:03 -0700480 ndn::time::seconds m_lsaInterestLifetime;
alvy5a454952014-12-15 12:49:54 -0600481 uint32_t m_routerDeadInterval;
akmhoque157b0a42014-05-13 00:26:37 -0500482 std::string m_logLevel;
akmhoque53353462014-04-22 08:43:45 -0500483
akmhoquefdbddb12014-05-02 18:35:19 -0500484 uint32_t m_interestRetryNumber;
alvy5a454952014-12-15 12:49:54 -0600485 uint32_t m_interestResendTime;
Alexander Afanasyev411ee4b2014-08-16 23:17:03 -0700486
alvy5a454952014-12-15 12:49:54 -0600487 uint32_t m_infoInterestInterval;
Alexander Afanasyev411ee4b2014-08-16 23:17:03 -0700488
akmhoque157b0a42014-05-13 00:26:37 -0500489 int32_t m_hyperbolicState;
akmhoque53353462014-04-22 08:43:45 -0500490 double m_corR;
Muktadir R Chowdhuryb00dc2a2016-11-05 10:48:58 -0600491 std::vector<double> m_corTheta;
akmhoque53353462014-04-22 08:43:45 -0500492
Vince Lehman942eb7b2014-10-02 10:09:27 -0500493 uint32_t m_maxFacesPerPrefix;
Alexander Afanasyev411ee4b2014-08-16 23:17:03 -0700494
akmhoque674b0b12014-05-20 14:33:28 -0500495 std::string m_logDir;
akmhoque157b0a42014-05-13 00:26:37 -0500496 std::string m_seqFileDir;
akmhoque53353462014-04-22 08:43:45 -0500497
Muktadir R Chowdhurybfa27602014-10-31 10:57:41 -0500498 bool m_isLog4cxxConfAvailable;
499 std::string m_log4CxxConfPath;
akmhoque53353462014-04-22 08:43:45 -0500500};
501
akmhoque53353462014-04-22 08:43:45 -0500502} // namespace nlsr
503
dmcoomese689dd62017-03-29 11:05:12 -0500504#endif // NLSR_CONF_PARAMETER_HPP