aboutsummaryrefslogtreecommitdiffstats
path: root/libtransport/src/hicn/transport/protocols/manifest_indexing_manager.h
diff options
context:
space:
mode:
authorOlivier Roques <olvrqs@gmail.com>2019-11-20 13:53:12 +0000
committerOlivier Roques <olvrqs@gmail.com>2019-11-20 15:07:36 +0000
commit0010de10dcb9183e6c6876fcaaf2283a0ef1ed86 (patch)
treeaab02000bdf77ef5ed5eb4266742aca1a22020d1 /libtransport/src/hicn/transport/protocols/manifest_indexing_manager.h
parent1d1c54db773d8b9f81f15295fe6ecea872ce2883 (diff)
[HICN-402] Limit in-flight interests for manifests
Currently, interests for manifests are sent independently of the transport protocol. When receiving a manifest, interests for next manifests are sent until the next window would be full of data segments. But there is no limit on the number of interests for manifests that can be sent. After a while, the interest input buffer in the producer's side is full of them and cannot satisfy the requests quickly enough. This results in a large drop of bandwidth on the consumer side. This patch allows to limit the number of in-flight interests for manifests. Signed-off-by: Olivier Roques <olvrqs@gmail.com> Change-Id: Ic497bd55fd92233e4b47b04635fb9bf75506375e
Diffstat (limited to 'libtransport/src/hicn/transport/protocols/manifest_indexing_manager.h')
-rw-r--r--libtransport/src/hicn/transport/protocols/manifest_indexing_manager.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/libtransport/src/hicn/transport/protocols/manifest_indexing_manager.h b/libtransport/src/hicn/transport/protocols/manifest_indexing_manager.h
index 5f74ef0bf..74c86eb60 100644
--- a/libtransport/src/hicn/transport/protocols/manifest_indexing_manager.h
+++ b/libtransport/src/hicn/transport/protocols/manifest_indexing_manager.h
@@ -21,6 +21,9 @@
#include <list>
+/* #define MAX_MANIFESTS_IN_FLIGHT std::numeric_limits<uint32_t>::max() */
+#define MAX_MANIFESTS_IN_FLIGHT 10
+
namespace transport {
namespace protocol {
@@ -57,6 +60,7 @@ class ManifestIndexManager : public IncrementalIndexManager,
void onManifestTimeout(Interest::Ptr &&i);
protected:
+ uint32_t manifests_in_flight_;
SuffixQueue suffix_queue_;
SuffixQueue::iterator next_reassembly_segment_;
SuffixQueue::iterator next_to_retrieve_segment_;