From f9790f48a9f8c91e0c2142d7030b7e0f27c104f0 Mon Sep 17 00:00:00 2001 From: Mauro Sardara Date: Sat, 23 Mar 2019 21:00:43 +0100 Subject: [HICN-6] ATS fixes Change-Id: I1e9a214ead9d4d9bacd98d797371783ad39909f7 Signed-off-by: Mauro Sardara --- libtransport/src/hicn/transport/core/packet.cc | 8 ++++++++ libtransport/src/hicn/transport/core/packet.h | 2 ++ libtransport/src/hicn/transport/protocols/packet_manager.h | 1 + libtransport/src/hicn/transport/protocols/raaqm.cc | 5 ++++- 4 files changed, 15 insertions(+), 1 deletion(-) (limited to 'libtransport/src/hicn/transport') diff --git a/libtransport/src/hicn/transport/core/packet.cc b/libtransport/src/hicn/transport/core/packet.cc index de8ede421..954266664 100644 --- a/libtransport/src/hicn/transport/core/packet.cc +++ b/libtransport/src/hicn/transport/core/packet.cc @@ -594,6 +594,14 @@ void Packet::separateHeaderPayload() { packet_->append(header_size); } +void Packet::resetPayload() { + if (packet_->isChained()) { + packet_->separateChain(packet_->next(), packet_->prev()); + payload_head_ = nullptr; + updateLength(); + } +} + } // end namespace core } // end namespace transport diff --git a/libtransport/src/hicn/transport/core/packet.h b/libtransport/src/hicn/transport/core/packet.h index 6d8bc7e0f..4ec93205a 100644 --- a/libtransport/src/hicn/transport/core/packet.h +++ b/libtransport/src/hicn/transport/core/packet.h @@ -178,6 +178,8 @@ class Packet : public std::enable_shared_from_this { Packet &setTTL(uint8_t hops); uint8_t getTTL() const; + void resetPayload(); + private: virtual void resetForHash() = 0; void setSignatureSize(std::size_t size_bytes); diff --git a/libtransport/src/hicn/transport/protocols/packet_manager.h b/libtransport/src/hicn/transport/protocols/packet_manager.h index 53486edde..4d4011ecf 100644 --- a/libtransport/src/hicn/transport/protocols/packet_manager.h +++ b/libtransport/src/hicn/transport/protocols/packet_manager.h @@ -53,6 +53,7 @@ class PacketManager { result = interest_pool_.get(); } + result.second->resetPayload(); return std::move(result.second); } diff --git a/libtransport/src/hicn/transport/protocols/raaqm.cc b/libtransport/src/hicn/transport/protocols/raaqm.cc index be76f7c23..b10457f40 100644 --- a/libtransport/src/hicn/transport/protocols/raaqm.cc +++ b/libtransport/src/hicn/transport/protocols/raaqm.cc @@ -102,6 +102,9 @@ void RaaqmTransportProtocol::reset() { core::Name *name; socket_->getSocketOption(GeneralTransportOptions::NETWORK_NAME, &name); index_manager_->setFirstSuffix(name->getSuffix()); + std::queue empty; + std::swap(interest_to_retransmit_, empty); + current_window_size_ = 1; // Reset reassembly component BaseReassembly::reset(); @@ -484,7 +487,7 @@ void RaaqmTransportProtocol::sendInterest(std::uint64_t next_suffix) { return; } - interest_retransmissions_[next_suffix & mask] = ~0; + interest_retransmissions_[next_suffix & mask] = 0; interest_timepoints_[next_suffix & mask] = utils::SteadyClock::now(); sendInterest(std::move(interest)); } -- cgit 1.2.3-korg