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

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 Duration DEFAULT_MAX_INTERVAL = 250_ms
 
static const float DEFAULT_MULTIPLIER = 2.0f
 

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

time granularity

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

Constructor & Destructor Documentation

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

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

Member Function Documentation

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.

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.

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.

Member Data Documentation

const RetxSuppressionExponential::Duration nfd::fw::RetxSuppressionExponential::DEFAULT_INITIAL_INTERVAL = 1_ms
static

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

const RetxSuppressionExponential::Duration nfd::fw::RetxSuppressionExponential::DEFAULT_MAX_INTERVAL = 250_ms
static

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

const float nfd::fw::RetxSuppressionExponential::DEFAULT_MULTIPLIER = 2.0f
static

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