A retransmission suppression decision algorithm that suppresses retransmissions using exponential backoff. More...
#include <daemon/fw/retx-suppression-exponential.hpp>
Public Types | |
using | Duration = time::milliseconds |
Time granularity. More... | |
Public Member Functions | |
RetxSuppressionExponential (Duration initialInterval=DEFAULT_INITIAL_INTERVAL, Duration maxInterval=DEFAULT_MAX_INTERVAL, float multiplier=DEFAULT_MULTIPLIER) | |
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 an out-record. More... | |
Static Public Member Functions | |
static std::unique_ptr< RetxSuppressionExponential > | construct (const StrategyParameters ¶ms) |
Static Public Attributes | |
static constexpr Duration | DEFAULT_INITIAL_INTERVAL = 10_ms |
static constexpr Duration | DEFAULT_MAX_INTERVAL = 250_ms |
static constexpr float | DEFAULT_MULTIPLIER = 2.0f |
Friends | |
std::ostream & | operator<< (std::ostream &os, const RetxSuppressionExponential &retxSupp) |
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.
using nfd::fw::RetxSuppressionExponential::Duration = time::milliseconds |
Time granularity.
Definition at line 47 of file retx-suppression-exponential.hpp.
|
explicit |
Definition at line 55 of file retx-suppression-exponential.cpp.
|
static |
Definition at line 131 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 74 of file retx-suppression-exponential.cpp.
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 99 of file retx-suppression-exponential.cpp.
void nfd::fw::RetxSuppressionExponential::incrementIntervalForOutRecord | ( | pit::OutRecord & | outRecord | ) |
Increment the suppression interval for an out-record.
Definition at line 123 of file retx-suppression-exponential.cpp.
|
friend |
Definition at line 78 of file retx-suppression-exponential.hpp.
|
staticconstexpr |
Definition at line 87 of file retx-suppression-exponential.hpp.
|
staticconstexpr |
Definition at line 88 of file retx-suppression-exponential.hpp.
|
staticconstexpr |
Definition at line 89 of file retx-suppression-exponential.hpp.