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 | |
int64_t | AssignStreams (int64_t stream) |
double | GetBurstRate (void) const |
void | SetBurstRate (double rate) |
void | SetRandomBurstSize (Ptr< RandomVariableStream >) |
void | SetRandomVariable (Ptr< RandomVariableStream >) |
Public Member Functions inherited from ns3::ErrorModel | |
void | Disable (void) |
void | Enable (void) |
bool | IsCorrupt (Ptr< Packet > pkt) |
bool | IsEnabled (void) const |
void | Reset (void) |
Public Member Functions inherited from ns3::Object | |
void | AggregateObject (Ptr< Object > other) |
void | Dispose (void) |
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) |
Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter > | |
SimpleRefCount (const SimpleRefCount &o) | |
uint32_t | GetReferenceCount (void) const |
SimpleRefCount & | operator= (const SimpleRefCount &o) |
void | Ref (void) const |
void | Unref (void) const |
Public Member Functions inherited from ns3::ObjectBase | |
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 Public Member Functions inherited from ns3::ErrorModel | |
static TypeId | GetTypeId (void) |
Static Public Member Functions inherited from ns3::Object | |
static TypeId | GetTypeId (void) |
Static Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter > | |
static void | Cleanup (void) |
Static Public Member Functions inherited from ns3::ObjectBase | |
static TypeId | GetTypeId (void) |
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 | |
Protected Member Functions inherited from ns3::Object | |
Object (const Object &o) | |
virtual void | DoDispose (void) |
virtual void | DoInitialize (void) |
virtual void | NotifyNewAggregate (void) |
Protected Member Functions inherited from ns3::ObjectBase | |
void | ConstructSelf (const AttributeConstructionList &attributes) |
virtual void | NotifyConstructionCompleted (void) |
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.
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 350 of file error-model.cc.
References NS_LOG_FUNCTION, and ns3::RandomVariableStream::SetStream().
Referenced by BurstErrorModelSimple::DoRun().
double ns3::BurstErrorModel::GetBurstRate | ( | void | ) | const |
Definition at line 322 of file error-model.cc.
References NS_LOG_FUNCTION.
void ns3::BurstErrorModel::SetBurstRate | ( | double | rate | ) |
burstRate | the error rate to be used by the model |
Definition at line 329 of file error-model.cc.
References NS_LOG_FUNCTION.
void ns3::BurstErrorModel::SetRandomBurstSize | ( | Ptr< RandomVariableStream > | burstSz | ) |
burstSize | A random variable distribution to generate random burst size |
Definition at line 343 of file error-model.cc.
References NS_LOG_FUNCTION.
void ns3::BurstErrorModel::SetRandomVariable | ( | Ptr< RandomVariableStream > | ranVar | ) |
ranVariable | A random variable distribution to generate random variates |
Definition at line 336 of file error-model.cc.
References NS_LOG_FUNCTION.
Referenced by BurstErrorModelSimple::DoRun().