From e7ba0ea5e123460683a0b71ee9283d7ffc8392d9 Mon Sep 17 00:00:00 2001 From: michele papalini Date: Wed, 3 Apr 2019 17:30:31 +0200 Subject: [HICN-167] fixes on timeouts and nacks Change-Id: I4b232bbe7edc4b09d9ebd750724761e7e6c75bf8 Signed-off-by: michele papalini --- libtransport/src/hicn/transport/protocols/rtc.h | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'libtransport/src/hicn/transport/protocols/rtc.h') diff --git a/libtransport/src/hicn/transport/protocols/rtc.h b/libtransport/src/hicn/transport/protocols/rtc.h index 0bb9d9b2e..51a288574 100644 --- a/libtransport/src/hicn/transport/protocols/rtc.h +++ b/libtransport/src/hicn/transport/protocols/rtc.h @@ -38,7 +38,7 @@ // controller constant #define HICN_ROUND_LEN \ 200 // ms interval of time on which we take decisions / measurements -#define HICN_MAX_RTX 128 +#define HICN_MAX_RTX 3 #define HICN_MIN_RTT_WIN 30 // rounds // cwin @@ -126,6 +126,8 @@ class RTCTransportProtocol : public TransportProtocol, public Reassembly { // is not active) bool checkIfProducerIsActive(const ContentObject &content_object); void onNack(const ContentObject &content_object); + //funtcion used to handle nacks for retransmitted interests + void onNackForRtx(const ContentObject &content_object); void onContentObject(Interest::Ptr &&interest, ContentObject::Ptr &&content_object) override; void returnContentToApplication(const ContentObject &content_object); @@ -158,6 +160,9 @@ class RTCTransportProtocol : public TransportProtocol, public Reassembly { uint32_t inflightInterestsCount_; std::queue interestRetransmissions_; std::vector inflightInterests_; + uint32_t lastSegNacked_; //indicates the last segment id in a past Nack. + //we do not ask for retransmissions for samething + //that is older than this value. uint32_t nackedByProducerMaxSize_; std::set nackedByProducer_; // this is used to avoid retransmissions from the -- cgit 1.2.3-korg