catchunks: increase retx limit and improve statistics
Increased the retx limit from 3 to 15 (default in Linux TCP).
Added statistics about skipped retransmission.
Cleaned up statistic output.
Change-Id: I66ce9ac9fa08f7492f84bec48b7464ddb1228ab1
refs: #4861 #4603
diff --git a/tests/chunks/discover-version-fixture.hpp b/tests/chunks/discover-version-fixture.hpp
index ed18235..d42429a 100644
--- a/tests/chunks/discover-version-fixture.hpp
+++ b/tests/chunks/discover-version-fixture.hpp
@@ -75,7 +75,7 @@
Options options;
options.isVerbose = false;
options.interestLifetime = time::seconds(1);
- options.maxRetriesOnTimeoutOrNack = 3;
+ options.maxRetriesOnTimeoutOrNack = 15;
return options;
}
diff --git a/tests/chunks/discover-version-realtime.t.cpp b/tests/chunks/discover-version-realtime.t.cpp
index 630594b..5bfcfce 100644
--- a/tests/chunks/discover-version-realtime.t.cpp
+++ b/tests/chunks/discover-version-realtime.t.cpp
@@ -58,7 +58,7 @@
{
Options options;
options.isVerbose = false;
- options.maxRetriesOnTimeoutOrNack = 3;
+ options.maxRetriesOnTimeoutOrNack = 15;
return options;
}
};
diff --git a/tests/chunks/pipeline-interests-aimd.t.cpp b/tests/chunks/pipeline-interests-aimd.t.cpp
index 0e6341e..77dc1f0 100644
--- a/tests/chunks/pipeline-interests-aimd.t.cpp
+++ b/tests/chunks/pipeline-interests-aimd.t.cpp
@@ -179,8 +179,19 @@
BOOST_CHECK_CLOSE(aimdPipeline->m_cwnd, 4.5, MARGIN);
BOOST_CHECK_EQUAL(face.sentInterests.size(), nDataSegments); // all the segment requests have been sent
- // timeout segment 3
+ BOOST_CHECK_EQUAL(aimdPipeline->m_nTimeouts, 0);
+ BOOST_CHECK_EQUAL(aimdPipeline->m_nLossDecr, 0);
+ BOOST_CHECK_EQUAL(aimdPipeline->m_nMarkDecr, 0);
+ BOOST_CHECK_EQUAL(aimdPipeline->m_nRetransmitted, 0);
+ BOOST_CHECK_EQUAL(aimdPipeline->m_nSkippedRetx, 0);
+ BOOST_CHECK_EQUAL(aimdPipeline->m_nCongMarks, 0);
+
+ // timeout segment 3 & 6
advanceClocks(io, time::milliseconds(150));
+ BOOST_CHECK_EQUAL(aimdPipeline->m_nTimeouts, 2);
+ BOOST_CHECK_EQUAL(aimdPipeline->m_nRetransmitted, 1);
+ BOOST_CHECK_EQUAL(aimdPipeline->m_nLossDecr, 1);
+ BOOST_CHECK_EQUAL(aimdPipeline->m_nSkippedRetx, 0);
BOOST_CHECK_EQUAL(pipeline->m_nReceived, 5);
BOOST_CHECK_CLOSE(aimdPipeline->m_cwnd, 2.25, MARGIN); // window size drop to 1/2 of previous size
@@ -194,6 +205,12 @@
BOOST_CHECK_CLOSE(aimdPipeline->m_cwnd, 2.75, MARGIN); // congestion avoidance
BOOST_CHECK_EQUAL(aimdPipeline->m_retxQueue.size(), 0);
BOOST_CHECK_EQUAL(aimdPipeline->m_retxCount[3], 1);
+
+ BOOST_CHECK_EQUAL(aimdPipeline->m_nTimeouts, 2);
+ BOOST_CHECK_EQUAL(aimdPipeline->m_nRetransmitted, 2);
+ BOOST_CHECK_EQUAL(aimdPipeline->m_nTimeouts,
+ aimdPipeline->m_nRetransmitted + aimdPipeline->m_nSkippedRetx);
+
}
BOOST_AUTO_TEST_CASE(CongestionMarksWithCwa)