diff options
author | michele papalini <micpapal@cisco.com> | 2019-10-09 10:07:38 +0200 |
---|---|---|
committer | michele papalini <micpapal@cisco.com> | 2019-10-09 10:07:38 +0200 |
commit | d61668ec9ee63307eef161e197e09981f327b984 (patch) | |
tree | 9fb94854e5cefb6b3e6c686e850ee8dd372d45c7 | |
parent | 4802315ae6800dd9c433296f9012373244df19e5 (diff) |
[HICN-308] delete interests from interest map
Signed-off-by: michele papalini <micpapal@cisco.com>
Change-Id: Ie69909e3984faac777f9fc3b3e0625e8de3a7771
-rw-r--r-- | libtransport/src/hicn/transport/interfaces/rtc_socket_producer.cc | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/libtransport/src/hicn/transport/interfaces/rtc_socket_producer.cc b/libtransport/src/hicn/transport/interfaces/rtc_socket_producer.cc index 446b9ef8e..5667b0640 100644 --- a/libtransport/src/hicn/transport/interfaces/rtc_socket_producer.cc +++ b/libtransport/src/hicn/transport/interfaces/rtc_socket_producer.cc @@ -82,6 +82,7 @@ RTCProducerSocket::RTCProducerSocket() bytesProductionRate_(INIT_PACKET_PRODUCTION_RATE * 1400), packetsProductionRate_(INIT_PACKET_PRODUCTION_RATE), perSecondFactor_(MILLI_IN_A_SEC / STATS_INTERVAL_DURATION), + timer_on_(false), active_(false) { lastStats_ = std::chrono::duration_cast<std::chrono::milliseconds>( std::chrono::steady_clock::now().time_since_epoch()) @@ -183,6 +184,7 @@ void RTCProducerSocket::produce(std::unique_ptr<utils::MemBuf> &&buffer) { break; } } + seqs_map_.erase(it_seqs); } } @@ -214,9 +216,14 @@ void RTCProducerSocket::onInterest(Interest::Ptr &&interest) { } } + if(interestSeg > HICN_MAX_DATA_SEQ){ + sendNack(interestSeg, isActive); + return; + } + // if the production rate is less than MIN_PRODUCTION_RATE we put the // interest in a queue, otherwise we handle it in the usual way - if(bytesProductionRate_ < MIN_PRODUCTION_RATE){ + if(bytesProductionRate_ < MIN_PRODUCTION_RATE && interestSeg > currentSeg_){ utils::SpinLock::Acquire locked(interests_cache_lock_); @@ -269,11 +276,6 @@ void RTCProducerSocket::onInterest(Interest::Ptr &&interest) { return; } - if(interestSeg > HICN_MAX_DATA_SEQ){ - sendNack(interestSeg, isActive); - return; - } - if (TRANSPORT_EXPECT_FALSE(!isActive)) { sendNack(interestSeg, false); return; |