diff options
author | michele papalini <micpapal@cisco.com> | 2019-04-02 17:34:38 +0200 |
---|---|---|
committer | michele papalini <micpapal@cisco.com> | 2019-04-02 18:44:08 +0200 |
commit | c99eeb5ff63ba5081087272c9c3f77e887f920dd (patch) | |
tree | 8dc974fbe564655a8c62f761093c06e8f88f6517 /libtransport/src/hicn/transport/protocols/rtc.h | |
parent | 3cc0a6bbae4fd3dadb65a0e9789b48e2cea9d303 (diff) |
[HICN-94] Handle nacks when the producer socket is not active
Change-Id: Ibc8b9ef65feaf6fbe12dbaa285ddcd738e1cd197
Signed-off-by: michele papalini <micpapal@cisco.com>
Diffstat (limited to 'libtransport/src/hicn/transport/protocols/rtc.h')
-rw-r--r-- | libtransport/src/hicn/transport/protocols/rtc.h | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/libtransport/src/hicn/transport/protocols/rtc.h b/libtransport/src/hicn/transport/protocols/rtc.h index 58c143988..0bb9d9b2e 100644 --- a/libtransport/src/hicn/transport/protocols/rtc.h +++ b/libtransport/src/hicn/transport/protocols/rtc.h @@ -121,6 +121,10 @@ class RTCTransportProtocol : public TransportProtocol, public Reassembly { void scheduleNextInterests() override; void scheduleAppNackRtx(std::vector<uint32_t> &nacks); void onTimeout(Interest::Ptr &&interest) override; + // checkIfProducerIsActive: return true if we need to schedule an interest + // immediatly after, false otherwise (this happens when the producer socket + // is not active) + bool checkIfProducerIsActive(const ContentObject &content_object); void onNack(const ContentObject &content_object); void onContentObject(Interest::Ptr &&interest, ContentObject::Ptr &&content_object) override; @@ -142,18 +146,11 @@ class RTCTransportProtocol : public TransportProtocol, public Reassembly { // controller var std::chrono::steady_clock::time_point lastRoundBegin_; - // bool allPacketsInSync_; - // unsigned numberOfRoundsInSync_; - // unsigned numberOfCatchUpRounds_; - // bool catchUpPhase_; unsigned currentState_; - // uint32_t inProduction_; - // cwin var uint32_t currentCWin_; uint32_t maxCWin_; - // uint32_t previousCWin_; // names/packets var uint32_t actualSegment_; @@ -167,6 +164,10 @@ class RTCTransportProtocol : public TransportProtocol, public Reassembly { // application for pakets for which we already got a // past NACK by the producer these packet are too old, // they will never be retrived + bool nack_timer_used_; + std::unique_ptr<asio::steady_timer> nack_timer_; // timer used to schedule + // a nack retransmission in + // of inactive prod socket uint32_t modMask_; @@ -185,7 +186,6 @@ class RTCTransportProtocol : public TransportProtocol, public Reassembly { // vector std::unordered_map<uint32_t, std::shared_ptr<RTCDataPath>> pathTable_; uint32_t roundCounter_; - // std::vector<uint64_t> minRTTwin_; uint64_t minRtt_; // CC var |