a retransmission suppression decision algorithm that suppresses retransmissions using exponential backoff More...
#include <retx-suppression-exponential.hpp>
Classes | |
class | PitInfo |
Public Types | |
typedef time::microseconds | Duration |
time granularity More... | |
Public Member Functions | |
RetxSuppressionExponential (const Duration &initialInterval=DEFAULT_INITIAL_INTERVAL, float multiplier=DEFAULT_MULTIPLIER, const Duration &maxInterval=DEFAULT_MAX_INTERVAL) | |
RetxSuppressionResult | decidePerPitEntry (pit::Entry &pitEntry) |
determines whether Interest is a retransmission per pit entry and if so, whether it shall be forwarded or suppressed More... | |
RetxSuppressionResult | decidePerUpstream (pit::Entry &pitEntry, Face &outFace) |
determines whether Interest is a retransmission per upstream and if so, whether it shall be forwarded or suppressed More... | |
void | incrementIntervalForOutRecord (pit::OutRecord &outRecord) |
Increment the suppression interval for out record. More... | |
Static Public Attributes | |
static const Duration | DEFAULT_INITIAL_INTERVAL = 1_ms |
static const float | DEFAULT_MULTIPLIER = 2.0f |
static const Duration | DEFAULT_MAX_INTERVAL = 250_ms |
a retransmission suppression decision algorithm that suppresses retransmissions using exponential backoff
The i-th retransmission will be suppressed if the last transmission (out-record) occurred within MIN(initialInterval * multiplier^(i-1), maxInterval)
Definition at line 41 of file retx-suppression-exponential.hpp.
time granularity
Definition at line 46 of file retx-suppression-exponential.hpp.
|
explicit |
Definition at line 57 of file retx-suppression-exponential.cpp.
RetxSuppressionResult nfd::fw::RetxSuppressionExponential::decidePerPitEntry | ( | pit::Entry & | pitEntry | ) |
determines whether Interest is a retransmission per pit entry and if so, whether it shall be forwarded or suppressed
Definition at line 70 of file retx-suppression-exponential.cpp.
References nfd::fw::FORWARD, nfd::fw::getLastOutgoing(), nfd::fw::hasPendingOutRecords(), nfd::StrategyInfoHost::insertStrategyInfo(), nfd::fw::NEW, ndn::time::steady_clock::now(), nfd::fw::SUPPRESS, and nfd::fw::RetxSuppressionExponential::PitInfo::suppressionInterval.
Referenced by nfd::fw::BestRouteStrategy::afterReceiveInterest().
RetxSuppressionResult nfd::fw::RetxSuppressionExponential::decidePerUpstream | ( | pit::Entry & | pitEntry, |
Face & | outFace | ||
) |
determines whether Interest is a retransmission per upstream and if so, whether it shall be forwarded or suppressed
Definition at line 95 of file retx-suppression-exponential.cpp.
References nfd::fw::FORWARD, nfd::pit::Entry::getOutRecord(), nfd::fw::NEW, ndn::time::steady_clock::now(), nfd::pit::Entry::out_end(), nfd::fw::SUPPRESS, and nfd::fw::RetxSuppressionExponential::PitInfo::suppressionInterval.
Referenced by nfd::fw::MulticastStrategy::afterReceiveInterest(), and nfd::fw::asf::AsfStrategy::afterReceiveInterest().
void nfd::fw::RetxSuppressionExponential::incrementIntervalForOutRecord | ( | pit::OutRecord & | outRecord | ) |
Increment the suppression interval for out record.
Definition at line 119 of file retx-suppression-exponential.cpp.
References nfd::StrategyInfoHost::insertStrategyInfo(), and nfd::fw::RetxSuppressionExponential::PitInfo::suppressionInterval.
Referenced by nfd::fw::MulticastStrategy::afterReceiveInterest(), and nfd::fw::asf::AsfStrategy::afterReceiveInterest().
|
static |
Definition at line 73 of file retx-suppression-exponential.hpp.
|
static |
Definition at line 77 of file retx-suppression-exponential.hpp.
|
static |
Definition at line 78 of file retx-suppression-exponential.hpp.