nfd::fw::RetxSuppressionExponential Class Reference

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< RetxSuppressionExponentialconstruct (const StrategyParameters &params)
 

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)
 

Detailed Description

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.

Member Typedef Documentation

◆ Duration

Time granularity.

Definition at line 47 of file retx-suppression-exponential.hpp.

Constructor & Destructor Documentation

◆ RetxSuppressionExponential()

nfd::fw::RetxSuppressionExponential::RetxSuppressionExponential ( Duration  initialInterval = DEFAULT_INITIAL_INTERVAL,
Duration  maxInterval = DEFAULT_MAX_INTERVAL,
float  multiplier = DEFAULT_MULTIPLIER 
)
explicit

Definition at line 55 of file retx-suppression-exponential.cpp.

Member Function Documentation

◆ construct()

std::unique_ptr< RetxSuppressionExponential > nfd::fw::RetxSuppressionExponential::construct ( const StrategyParameters params)
static

Definition at line 131 of file retx-suppression-exponential.cpp.

◆ decidePerPitEntry()

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.

◆ decidePerUpstream()

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.

◆ incrementIntervalForOutRecord()

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.

Friends And Related Function Documentation

◆ operator<<

std::ostream& operator<< ( std::ostream &  os,
const RetxSuppressionExponential retxSupp 
)
friend

Definition at line 78 of file retx-suppression-exponential.hpp.

Member Data Documentation

◆ DEFAULT_INITIAL_INTERVAL

constexpr Duration nfd::fw::RetxSuppressionExponential::DEFAULT_INITIAL_INTERVAL = 10_ms
staticconstexpr

Definition at line 87 of file retx-suppression-exponential.hpp.

◆ DEFAULT_MAX_INTERVAL

constexpr Duration nfd::fw::RetxSuppressionExponential::DEFAULT_MAX_INTERVAL = 250_ms
staticconstexpr

Definition at line 88 of file retx-suppression-exponential.hpp.

◆ DEFAULT_MULTIPLIER

constexpr float nfd::fw::RetxSuppressionExponential::DEFAULT_MULTIPLIER = 2.0f
staticconstexpr

Definition at line 89 of file retx-suppression-exponential.hpp.