chunks: respect common options in AIMD pipeline
Change-Id: Ic759950be9b6335efa2119c4cfbd22e3911b69ab
diff --git a/tools/chunks/catchunks/ndncatchunks.cpp b/tools/chunks/catchunks/ndncatchunks.cpp
index e123ade..38cb23b 100644
--- a/tools/chunks/catchunks/ndncatchunks.cpp
+++ b/tools/chunks/catchunks/ndncatchunks.cpp
@@ -1,8 +1,8 @@
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
/**
- * Copyright (c) 2016, Regents of the University of California,
- * Colorado State University,
- * University Pierre & Marie Curie, Sorbonne University.
+ * Copyright (c) 2016-2017, Regents of the University of California,
+ * Colorado State University,
+ * University Pierre & Marie Curie, Sorbonne University.
*
* This file is part of ndn-tools (Named Data Networking Essential Tools).
* See AUTHORS.md for complete list of ndn-tools authors and contributors.
@@ -231,8 +231,7 @@
rttEstimator = make_unique<aimd::RttEstimator>(optionsRttEst);
- PipelineInterestsAimd::Options optionsPipeline;
- optionsPipeline.isVerbose = options.isVerbose;
+ PipelineInterestsAimd::Options optionsPipeline(options);
optionsPipeline.disableCwa = disableCwa;
optionsPipeline.resetCwndToInit = resetCwndToInit;
optionsPipeline.initCwnd = static_cast<double>(initCwnd);
diff --git a/tools/chunks/catchunks/pipeline-interests-aimd.hpp b/tools/chunks/catchunks/pipeline-interests-aimd.hpp
index 1670fda..b51c59f 100644
--- a/tools/chunks/catchunks/pipeline-interests-aimd.hpp
+++ b/tools/chunks/catchunks/pipeline-interests-aimd.hpp
@@ -37,14 +37,21 @@
namespace chunks {
namespace aimd {
-struct PipelineInterestsAimdOptions : public Options
+class PipelineInterestsAimdOptions : public Options
{
- bool isVerbose = false;
+public:
+ explicit
+ PipelineInterestsAimdOptions(const Options& options = Options())
+ : Options(options)
+ {
+ }
+
+public:
double initCwnd = 1.0; ///< initial congestion window size
- double initSsthresh = std::numeric_limits<double>::max(); ///< initial slow start threshold
+ double initSsthresh = std::numeric_limits<double>::max(); ///< initial slow start threshold
+ double aiStep = 1.0; ///< additive increase step (in segments)
double mdCoef = 0.5; ///< multiplicative decrease coefficient
- double aiStep = 1.0; ///< additive increase step (unit: segment)
- time::milliseconds rtoCheckInterval = time::milliseconds(10); ///< time interval for checking retransmission timer
+ time::milliseconds rtoCheckInterval{10}; ///< interval for checking retransmission timer
bool disableCwa = false; ///< disable Conservative Window Adaptation
bool resetCwndToInit = false; ///< reduce cwnd to initCwnd when loss event occurs
};