diff options
author | 2019-03-24 08:20:19 +0000 | |
---|---|---|
committer | 2019-03-24 08:20:19 +0000 | |
commit | d7e4753b9d8035f4898989708bf1dbcd79e59585 (patch) | |
tree | 1f8ece76895df23b43fe8a67bfc5bc0985998cc4 /libtransport/src | |
parent | 8aac03e30ed3fc291542de23e5c02d2c4e05a66f (diff) | |
parent | f9790f48a9f8c91e0c2142d7030b7e0f27c104f0 (diff) |
Merge "[HICN-6] ATS fixes"
Diffstat (limited to 'libtransport/src')
4 files changed, 15 insertions, 1 deletions
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> { 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<Interest::Ptr> 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)); } |