Update README and add contrib dir
This commit is contained in:
82
contrib/tsn/model/frer-base-recovery-function.cc
Normal file
82
contrib/tsn/model/frer-base-recovery-function.cc
Normal file
@@ -0,0 +1,82 @@
|
||||
#include "frer-base-recovery-function.h"
|
||||
|
||||
#include "ns3/log.h"
|
||||
|
||||
namespace ns3
|
||||
{
|
||||
|
||||
NS_LOG_COMPONENT_DEFINE("BaseRecoveryFunction");
|
||||
|
||||
NS_OBJECT_ENSURE_REGISTERED(BaseRecoveryFunction);
|
||||
|
||||
TypeId
|
||||
BaseRecoveryFunction::GetTypeId()
|
||||
{
|
||||
static TypeId tid =
|
||||
TypeId("ns3::BaseRecoveryFunction")
|
||||
.SetParent<Object>()
|
||||
.SetGroupName("tsn")
|
||||
.AddConstructor<BaseRecoveryFunction>()
|
||||
.AddAttribute("ResetTimer",
|
||||
"Reset timer duration for recovery algorithm",
|
||||
TimeValue(MilliSeconds(10000)),
|
||||
MakeTimeAccessor(&BaseRecoveryFunction::m_frerSeqRcvyResetMSec),
|
||||
MakeTimeChecker())
|
||||
.AddAttribute("MinResetTimer",
|
||||
"Min reset timer duration for recovery algorithm",
|
||||
TimeValue(Seconds(0)),
|
||||
MakeTimeAccessor(&BaseRecoveryFunction::m_frerMinSeqRcvyResetMSec),
|
||||
MakeTimeChecker())
|
||||
.AddAttribute("MaxResetTimer",
|
||||
"Max reset timer duration for recovery algorithm",
|
||||
TimeValue(Seconds(65535)),
|
||||
MakeTimeAccessor(&BaseRecoveryFunction::m_frerMaxSeqRcvyResetMSec),
|
||||
MakeTimeChecker());
|
||||
return tid;
|
||||
}
|
||||
|
||||
|
||||
BaseRecoveryFunction::BaseRecoveryFunction()
|
||||
{
|
||||
NS_LOG_FUNCTION(this);
|
||||
}
|
||||
|
||||
BaseRecoveryFunction::~BaseRecoveryFunction()
|
||||
{
|
||||
NS_LOG_FUNCTION(this);
|
||||
}
|
||||
|
||||
|
||||
uint
|
||||
BaseRecoveryFunction::GetFrerCpsSeqRcvyPassedPackets()
|
||||
{
|
||||
NS_LOG_FUNCTION(this);
|
||||
return m_frerCpsSeqRcvyPassedPackets;
|
||||
}
|
||||
|
||||
uint
|
||||
BaseRecoveryFunction::GetFrerCpsSeqRcvyDiscardedPackets()
|
||||
{
|
||||
NS_LOG_FUNCTION(this);
|
||||
return m_frerCpsSeqRcvyDiscardedPackets;
|
||||
}
|
||||
|
||||
|
||||
bool
|
||||
BaseRecoveryFunction::DoRecovery(uint16_t seqNumber)
|
||||
{
|
||||
NS_LOG_FUNCTION(this);
|
||||
NS_ASSERT_MSG(m_frerSeqRcvyResetMSec >= m_frerMinSeqRcvyResetMSec, "Trying to use a shorter recovery reset timer than " << m_frerMinSeqRcvyResetMSec << ".");
|
||||
NS_ASSERT_MSG(m_frerSeqRcvyResetMSec <= m_frerMaxSeqRcvyResetMSec, "Trying to use a longer recovery reset timer than " << m_frerMaxSeqRcvyResetMSec << ".");
|
||||
return false;
|
||||
}
|
||||
|
||||
void
|
||||
BaseRecoveryFunction::resetRecoveryFunction()
|
||||
{
|
||||
NS_LOG_FUNCTION(this);
|
||||
NS_LOG_INFO("Reset FRER recovery function !");
|
||||
m_takeAny = true;
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user