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
This commit is contained in:
schneiderklaus committed 2019-03-15 19:45:37 -07:00
1 parent 0c6fcb58ba
commit 8ff3abde93
7 files changed
+44 -16

No files matched your search

+1 -1
View File
@@ -75,7 +75,7 @@ protected:
Options options;
options.isVerbose = false;
options.interestLifetime = time::seconds(1);
options.maxRetriesOnTimeoutOrNack = 3;
options.maxRetriesOnTimeoutOrNack = 15;
return options;
}
+1 -1
View File
@@ -58,7 +58,7 @@ protected:
{
Options options;
options.isVerbose = false;
options.maxRetriesOnTimeoutOrNack = 3;
options.maxRetriesOnTimeoutOrNack = 15;
return options;
}
};
+18 -1
View File
@@ -179,8 +179,19 @@ BOOST_AUTO_TEST_CASE(Timeout)
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_AUTO_TEST_CASE(Timeout)
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)