A Discrete-Event Network Simulator
API
ns3::TcpFlagErrorModel Class Reference

Error model which drop packets with specified TCP flags. More...

#include "tcp-error-model.h"

+ Inheritance diagram for ns3::TcpFlagErrorModel:
+ Collaboration diagram for ns3::TcpFlagErrorModel:

Public Member Functions

 TcpFlagErrorModel ()
 
void SetFlagToKill (TcpHeader::Flags_t flags)
 Set the flags of the segment that should be killed. More...
 
void SetKillRepeat (int16_t killNumber)
 Set how many packets should be killed. More...
 
- Public Member Functions inherited from ns3::TcpGeneralErrorModel
 TcpGeneralErrorModel ()
 
void SetDropCallback (Callback< void, const Ipv4Header &, const TcpHeader &, Ptr< const Packet >> cb)
 Set the drop callback. More...
 
- Public Member Functions inherited from ns3::ErrorModel
 ErrorModel ()
 
 ~ErrorModel () override
 
void Disable ()
 Disable the error model. More...
 
void Enable ()
 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 () const
 
void Reset ()
 Reset any state associated with the error model. More...
 
- Public Member Functions inherited from ns3::Object
 Object ()
 Constructor. More...
 
 ~Object () override
 Destructor. More...
 
void AggregateObject (Ptr< Object > other)
 Aggregate two Objects together. More...
 
void Dispose ()
 Dispose of this Object. More...
 
AggregateIterator GetAggregateIterator () const
 Get an iterator to the Objects aggregated to this one. More...
 
TypeId GetInstanceTypeId () const override
 Get the most derived TypeId for this Object. More...
 
template<typename T >
Ptr< T > GetObject () const
 Get a pointer to the requested aggregated Object. More...
 
template<>
Ptr< ObjectGetObject () const
 Specialization of () for objects of type ns3::Object. More...
 
template<typename T >
Ptr< T > GetObject (TypeId tid) const
 Get a pointer to the requested aggregated Object by TypeId. More...
 
template<>
Ptr< ObjectGetObject (TypeId tid) const
 Specialization of (TypeId tid) for objects of type ns3::Object. More...
 
void Initialize ()
 Invoke DoInitialize on all Objects aggregated to this one. More...
 
bool IsInitialized () const
 Check if the object has been initialized. More...
 
- Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter >
 SimpleRefCount ()
 Default constructor. More...
 
 SimpleRefCount (const SimpleRefCount &o[[maybe_unused]])
 Copy constructor. More...
 
uint32_t GetReferenceCount () const
 Get the reference count of the object. More...
 
SimpleRefCountoperator= (const SimpleRefCount &o[[maybe_unused]])
 Assignment operator. More...
 
void Ref () const
 Increment the reference count. More...
 
void Unref () const
 Decrement the reference count. More...
 
- Public Member Functions inherited from ns3::ObjectBase
virtual ~ObjectBase ()
 Virtual destructor. More...
 
void GetAttribute (std::string name, AttributeValue &value) const
 Get the value of an attribute, raising fatal errors if unsuccessful. More...
 
bool GetAttributeFailSafe (std::string name, AttributeValue &value) const
 Get the value of an attribute without raising errors. More...
 
void SetAttribute (std::string name, const AttributeValue &value)
 Set a single attribute, raising fatal errors if unsuccessful. More...
 
bool SetAttributeFailSafe (std::string name, const AttributeValue &value)
 Set a single attribute without raising errors. More...
 
bool TraceConnect (std::string name, std::string context, const CallbackBase &cb)
 Connect a TraceSource to a Callback with a context. More...
 
bool TraceConnectWithoutContext (std::string name, const CallbackBase &cb)
 Connect a TraceSource to a Callback without a context. More...
 
bool TraceDisconnect (std::string name, std::string context, const CallbackBase &cb)
 Disconnect from a TraceSource a Callback previously connected with a context. More...
 
bool TraceDisconnectWithoutContext (std::string name, const CallbackBase &cb)
 Disconnect from a TraceSource a Callback previously connected without a context. More...
 

Static Public Member Functions

static TypeId GetTypeId ()
 Get the type ID. More...
 
- Static Public Member Functions inherited from ns3::TcpGeneralErrorModel
static TypeId GetTypeId ()
 Get the type ID. More...
 
- Static Public Member Functions inherited from ns3::ErrorModel
static TypeId GetTypeId ()
 Get the type ID. More...
 
- Static Public Member Functions inherited from ns3::Object
static TypeId GetTypeId ()
 Register this type. More...
 
- Static Public Member Functions inherited from ns3::ObjectBase
static TypeId GetTypeId ()
 Get the type ID. More...
 

Protected Member Functions

bool ShouldDrop (const Ipv4Header &ipHeader, const TcpHeader &tcpHeader, uint32_t packetSize) override
 Check if the packet should be dropped. More...
 
- Protected Member Functions inherited from ns3::Object
 Object (const Object &o)
 Copy an Object. More...
 
virtual void DoDispose ()
 Destructor implementation. More...
 
virtual void DoInitialize ()
 Initialize() implementation. More...
 
virtual void NotifyNewAggregate ()
 Notify all Objects aggregated to this one of a new Object being aggregated. More...
 
- Protected Member Functions inherited from ns3::ObjectBase
void ConstructSelf (const AttributeConstructionList &attributes)
 Complete construction of ObjectBase; invoked by derived classes. More...
 
virtual void NotifyConstructionCompleted ()
 Notifier called once the ObjectBase is fully constructed. More...
 

Protected Attributes

TcpHeader::Flags_t m_flagsToKill
 Flags a packet should have to be dropped. More...
 
int16_t m_killNumber
 The number of times the packet should be killed. More...
 

Private Member Functions

void DoReset () override
 Re-initialize any state. More...
 

Additional Inherited Members

Detailed Description

Error model which drop packets with specified TCP flags.

Set the flags with SetFlagToKill and the number of the packets with such flags which should be killed.

See also
SetFlagToKill
SetKillRepeat

Definition at line 132 of file tcp-error-model.h.

Constructor & Destructor Documentation

◆ TcpFlagErrorModel()

ns3::TcpFlagErrorModel::TcpFlagErrorModel ( )

Definition at line 124 of file tcp-error-model.cc.

References ns3::NONE.

Member Function Documentation

◆ DoReset()

void ns3::TcpFlagErrorModel::DoReset ( )
overrideprivatevirtual

Re-initialize any state.

Implements ns3::ErrorModel.

Definition at line 160 of file tcp-error-model.cc.

References m_flagsToKill, m_killNumber, and ns3::TcpHeader::NONE.

◆ GetTypeId()

TypeId ns3::TcpFlagErrorModel::GetTypeId ( void  )
static

Get the type ID.

Returns
the object TypeId

Definition at line 116 of file tcp-error-model.cc.

References ns3::TypeId::SetParent().

+ Here is the call graph for this function:

◆ SetFlagToKill()

void ns3::TcpFlagErrorModel::SetFlagToKill ( TcpHeader::Flags_t  flags)
inline

Set the flags of the segment that should be killed.

Parameters
flagsFlags

Definition at line 147 of file tcp-error-model.h.

References m_flagsToKill.

◆ SetKillRepeat()

void ns3::TcpFlagErrorModel::SetKillRepeat ( int16_t  killNumber)
inline

Set how many packets should be killed.

If the flags are the same, this specified the numbers of drops:

-1 for infinite drops

0 for no drops

>1 the number of drops

Parameters
killNumberSpecifies the number of times the packet should be killed

Definition at line 163 of file tcp-error-model.h.

References m_killNumber.

◆ ShouldDrop()

bool ns3::TcpFlagErrorModel::ShouldDrop ( const Ipv4Header ipHeader,
const TcpHeader tcpHeader,
uint32_t  packetSize 
)
overrideprotectedvirtual

Check if the packet should be dropped.

Parameters
ipHeaderThe packet IPv4 header.
tcpHeaderThe packet TCP header.
packetSizeThe packet size.
Returns
True if the packet should be dropped.

Implements ns3::TcpGeneralErrorModel.

Definition at line 132 of file tcp-error-model.cc.

References ns3::TcpHeader::GetFlags(), m_flagsToKill, m_killNumber, and NS_LOG_FUNCTION.

+ Here is the call graph for this function:

Member Data Documentation

◆ m_flagsToKill

TcpHeader::Flags_t ns3::TcpFlagErrorModel::m_flagsToKill
protected

Flags a packet should have to be dropped.

Definition at line 174 of file tcp-error-model.h.

Referenced by DoReset(), SetFlagToKill(), and ShouldDrop().

◆ m_killNumber

int16_t ns3::TcpFlagErrorModel::m_killNumber
protected

The number of times the packet should be killed.

Definition at line 175 of file tcp-error-model.h.

Referenced by DoReset(), SetKillRepeat(), and ShouldDrop().


The documentation for this class was generated from the following files: