Determine which bursts of packets are errored corresponding to an underlying distribution, burst rate, and burst size. More...
#include <error-model.h>
Public Member Functions | |
BurstErrorModel () | |
virtual | ~BurstErrorModel () |
int64_t | AssignStreams (int64_t stream) |
Assign a fixed random variable stream number to the random variables used by this model. More... | |
double | GetBurstRate (void) const |
void | SetBurstRate (double rate) |
void | SetRandomBurstSize (Ptr< RandomVariableStream > burstSz) |
void | SetRandomVariable (Ptr< RandomVariableStream > ranVar) |
![]() | |
ErrorModel () | |
virtual | ~ErrorModel () |
void | Disable (void) |
Disable the error model. More... | |
void | Enable (void) |
Enable the error model. More... | |
bool | IsCorrupt (Ptr< Packet > pkt) |
Note: Depending on the error model, this function may or may not alter the contents of the packet upon returning true. More... | |
bool | IsEnabled (void) const |
void | Reset (void) |
Reset any state associated with the error model. More... | |
![]() | |
Object () | |
virtual | ~Object () |
void | AggregateObject (Ptr< Object > other) |
void | Dispose (void) |
Run the DoDispose methods of this object and all the objects aggregated to it. More... | |
AggregateIterator | GetAggregateIterator (void) const |
virtual TypeId | GetInstanceTypeId (void) const |
template<typename T > | |
Ptr< T > | GetObject (void) const |
template<typename T > | |
Ptr< T > | GetObject (TypeId tid) const |
void | Initialize (void) |
This method calls the virtual DoInitialize method on all the objects aggregated to this object. More... | |
![]() | |
SimpleRefCount () | |
Constructor. More... | |
SimpleRefCount (const SimpleRefCount &o) | |
Copy constructor. More... | |
uint32_t | GetReferenceCount (void) const |
Get the reference count of the object. More... | |
SimpleRefCount & | operator= (const SimpleRefCount &o) |
Assignment. More... | |
void | Ref (void) const |
Increment the reference count. More... | |
void | Unref (void) const |
Decrement the reference count. More... | |
![]() | |
virtual | ~ObjectBase () |
Virtual destructor. More... | |
void | GetAttribute (std::string name, AttributeValue &value) const |
bool | GetAttributeFailSafe (std::string name, AttributeValue &attribute) const |
void | SetAttribute (std::string name, const AttributeValue &value) |
bool | SetAttributeFailSafe (std::string name, const AttributeValue &value) |
bool | TraceConnect (std::string name, std::string context, const CallbackBase &cb) |
bool | TraceConnectWithoutContext (std::string name, const CallbackBase &cb) |
bool | TraceDisconnect (std::string name, std::string context, const CallbackBase &cb) |
bool | TraceDisconnectWithoutContext (std::string name, const CallbackBase &cb) |
Static Public Member Functions | |
static TypeId | GetTypeId (void) |
![]() | |
static TypeId | GetTypeId (void) |
![]() | |
static TypeId | GetTypeId (void) |
Register this type. More... | |
![]() | |
static void | Cleanup (void) |
Noop. More... | |
![]() | |
static TypeId | GetTypeId (void) |
Get the type ID. More... | |
Private Member Functions | |
virtual bool | DoCorrupt (Ptr< Packet > p) |
virtual void | DoReset (void) |
Private Attributes | |
double | m_burstRate |
Ptr< RandomVariableStream > | m_burstSize |
Ptr< RandomVariableStream > | m_burstStart |
uint32_t | m_counter |
uint32_t | m_currentBurstSz |
Additional Inherited Members | |
![]() | |
Object (const Object &o) | |
virtual void | DoDispose (void) |
This method is called by Object::Dispose or by the object's destructor, whichever comes first. More... | |
virtual void | DoInitialize (void) |
This method is called only once by Object::Initialize. More... | |
virtual void | NotifyNewAggregate (void) |
This method is invoked whenever two sets of objects are aggregated together. More... | |
![]() | |
void | ConstructSelf (const AttributeConstructionList &attributes) |
virtual void | NotifyConstructionCompleted (void) |
This method is invoked once all member attributes have been initialized. More... | |
Determine which bursts of packets are errored corresponding to an underlying distribution, burst rate, and burst size.
This object is used to flag packets as being lost/errored or not. The two parameters that govern the behavior are the burst rate (or equivalently, the mean duration/spacing between between error events), and the burst size (or equivalently, the number of packets being flagged as errored at each error event).
Users can optionally provide RandomVariableStream objects; the default for the decision variable is to use a Uniform(0,1) distribution; the default for the burst size (number of packets) is to use a discrete Uniform[1,4] distribution.
For every packet, the model generates a random number based on the decision variable, and compares it with the burst error rate to determine if a burst error event should occur. If a new error event occurs, the model to will generate a new burst size to determine how many packets should be dropped in this particular burst error event in addition to the current packet.
When a second packet arrives, the model again determines if a new error event should occur based on a newly generated decision variable and the burst error rate. If a new error event is determined to occur, the model will restart with a new burst size. Otherwise, the model will resume the last error event and drop the packet provided that the total number of packets that has been dropped does not exceed the burst size.
IsCorrupt() will not modify the packet data buffer
ns3::BurstErrorModel is accessible through the following paths with Config::Set and Config::Connect:
No TraceSources are defined for this type.
Definition at line 267 of file error-model.h.
ns3::BurstErrorModel::BurstErrorModel | ( | ) |
Definition at line 314 of file error-model.cc.
|
virtual |
Definition at line 319 of file error-model.cc.
References NS_LOG_FUNCTION.
int64_t ns3::BurstErrorModel::AssignStreams | ( | int64_t | stream | ) |
Assign a fixed random variable stream number to the random variables used by this model.
Return the number of streams (possibly zero) that have been assigned.
stream | first stream index to use |
Definition at line 353 of file error-model.cc.
References m_burstSize, m_burstStart, NS_LOG_FUNCTION, and ns3::RandomVariableStream::SetStream().
Referenced by BurstErrorModelSimple::DoRun().
Implements ns3::ErrorModel.
Definition at line 362 of file error-model.cc.
References ns3::RandomVariableStream::GetInteger(), ns3::RandomVariableStream::GetValue(), ns3::ErrorModel::IsEnabled(), m_burstRate, m_burstSize, m_burstStart, m_counter, m_currentBurstSz, NS_LOG_DEBUG, NS_LOG_FUNCTION, and NS_LOG_WARN.
|
privatevirtual |
Implements ns3::ErrorModel.
Definition at line 405 of file error-model.cc.
References m_counter, m_currentBurstSz, and NS_LOG_FUNCTION.
double ns3::BurstErrorModel::GetBurstRate | ( | void | ) | const |
Definition at line 325 of file error-model.cc.
References m_burstRate, and NS_LOG_FUNCTION.
|
static |
Definition at line 292 of file error-model.cc.
References m_burstRate, m_burstSize, m_burstStart, and ns3::TypeId::SetParent().
void ns3::BurstErrorModel::SetBurstRate | ( | double | rate | ) |
rate | the error rate to be used by the model |
Definition at line 332 of file error-model.cc.
References m_burstRate, and NS_LOG_FUNCTION.
void ns3::BurstErrorModel::SetRandomBurstSize | ( | Ptr< RandomVariableStream > | burstSz | ) |
burstSz | A random variable distribution to generate random burst size |
Definition at line 346 of file error-model.cc.
References m_burstSize, and NS_LOG_FUNCTION.
void ns3::BurstErrorModel::SetRandomVariable | ( | Ptr< RandomVariableStream > | ranVar | ) |
ranVar | A random variable distribution to generate random variates |
Definition at line 339 of file error-model.cc.
References m_burstStart, and NS_LOG_FUNCTION.
Referenced by BurstErrorModelSimple::DoRun().
|
private |
Definition at line 308 of file error-model.h.
Referenced by DoCorrupt(), GetBurstRate(), GetTypeId(), and SetBurstRate().
|
private |
Definition at line 312 of file error-model.h.
Referenced by AssignStreams(), DoCorrupt(), GetTypeId(), and SetRandomBurstSize().
|
private |
Definition at line 310 of file error-model.h.
Referenced by AssignStreams(), DoCorrupt(), GetTypeId(), and SetRandomVariable().
|
private |
Definition at line 314 of file error-model.h.
Referenced by DoCorrupt(), and DoReset().
|
private |
Definition at line 317 of file error-model.h.
Referenced by DoCorrupt(), and DoReset().