A Discrete-Event Network Simulator
API
Loading...
Searching...
No Matches
ns3::OriginatorRxStatus Class Reference

A class to keep track of the packet originator status. More...

+ Collaboration diagram for ns3::OriginatorRxStatus:

Public Member Functions

 OriginatorRxStatus ()
 
 ~OriginatorRxStatus ()
 
void AccumulateFirstFragment (Ptr< const Packet > packet)
 We have received a first fragmented packet.
 
void AccumulateFragment (Ptr< const Packet > packet)
 We received a fragmented packet (not first and not last).
 
Ptr< PacketAccumulateLastFragment (Ptr< const Packet > packet)
 We have received a last fragment of the fragmented packets (indicated by the no more fragment field).
 
uint16_t GetLastSequenceControl () const
 Return the last sequence control we received.
 
bool IsDeFragmenting () const
 Check if we are de-fragmenting packets.
 
bool IsNextFragment (uint16_t sequenceControl) const
 Check if the sequence control (i.e.
 
void SetSequenceControl (uint16_t sequenceControl)
 Set the last sequence control we received.
 

Private Types

typedef std::list< Ptr< const Packet > > Fragments
 typedef for a list of fragments (i.e.
 
typedef std::list< Ptr< constPacket > >::const_iterator FragmentsCI
 typedef for a const iterator for Fragments
 

Private Attributes

bool m_defragmenting
 flag to indicate whether we are defragmenting
 
Fragments m_fragments
 fragments
 
uint16_t m_lastSequenceControl
 last sequence control
 

Detailed Description

A class to keep track of the packet originator status.

It recomposes the packet from multiple fragments.

Definition at line 37 of file mac-rx-middle.cc.

Member Typedef Documentation

◆ Fragments

typedef std::list<Ptr<const Packet> > ns3::OriginatorRxStatus::Fragments
private

typedef for a list of fragments (i.e.

incomplete Packet).

Definition at line 43 of file mac-rx-middle.cc.

◆ FragmentsCI

typedef std::list<Ptr<constPacket>>::const_iterator ns3::OriginatorRxStatus::FragmentsCI
private

typedef for a const iterator for Fragments

Definition at line 47 of file mac-rx-middle.cc.

Constructor & Destructor Documentation

◆ OriginatorRxStatus()

ns3::OriginatorRxStatus::OriginatorRxStatus ( )
inline

Definition at line 54 of file mac-rx-middle.cc.

References m_defragmenting, and m_lastSequenceControl.

◆ ~OriginatorRxStatus()

ns3::OriginatorRxStatus::~OriginatorRxStatus ( )
inline

Definition at line 61 of file mac-rx-middle.cc.

References m_fragments.

Member Function Documentation

◆ AccumulateFirstFragment()

void ns3::OriginatorRxStatus::AccumulateFirstFragment ( Ptr< const Packet packet)
inline

We have received a first fragmented packet.

We start the deframentation by saving the first fragment.

Parameters
packetthe first fragmented packet

Definition at line 83 of file mac-rx-middle.cc.

References m_defragmenting, m_fragments, and NS_ASSERT.

Referenced by ns3::MacRxMiddle::HandleFragments().

+ Here is the caller graph for this function:

◆ AccumulateFragment()

void ns3::OriginatorRxStatus::AccumulateFragment ( Ptr< const Packet packet)
inline

We received a fragmented packet (not first and not last).

We simply save it into our internal list.

Parameters
packetthe received fragment

Definition at line 120 of file mac-rx-middle.cc.

References m_defragmenting, m_fragments, and NS_ASSERT.

Referenced by ns3::MacRxMiddle::HandleFragments().

+ Here is the caller graph for this function:

◆ AccumulateLastFragment()

Ptr< Packet > ns3::OriginatorRxStatus::AccumulateLastFragment ( Ptr< const Packet packet)
inline

We have received a last fragment of the fragmented packets (indicated by the no more fragment field).

We re-construct the packet from the fragments we saved and return the full packet.

Parameters
packetthe last fragment
Returns
the fully reconstructed packet

Definition at line 100 of file mac-rx-middle.cc.

References m_defragmenting, m_fragments, and NS_ASSERT.

Referenced by ns3::MacRxMiddle::HandleFragments().

+ Here is the caller graph for this function:

◆ GetLastSequenceControl()

uint16_t ns3::OriginatorRxStatus::GetLastSequenceControl ( ) const
inline

Return the last sequence control we received.

Returns
the last sequence control

Definition at line 146 of file mac-rx-middle.cc.

References m_lastSequenceControl.

Referenced by ns3::MacRxMiddle::IsDuplicate(), and ns3::MacRxMiddle::Receive().

+ Here is the caller graph for this function:

◆ IsDeFragmenting()

bool ns3::OriginatorRxStatus::IsDeFragmenting ( ) const
inline

Check if we are de-fragmenting packets.

Returns
true if we are de-fragmenting packets, false otherwise

Definition at line 72 of file mac-rx-middle.cc.

References m_defragmenting.

Referenced by ns3::MacRxMiddle::HandleFragments().

+ Here is the caller graph for this function:

◆ IsNextFragment()

bool ns3::OriginatorRxStatus::IsNextFragment ( uint16_t  sequenceControl) const
inline

Check if the sequence control (i.e.

fragment number) is in order.

Parameters
sequenceControlthe raw sequence control
Returns
true if the sequence control is in order, false otherwise

Definition at line 135 of file mac-rx-middle.cc.

References m_lastSequenceControl.

Referenced by ns3::MacRxMiddle::HandleFragments().

+ Here is the caller graph for this function:

◆ SetSequenceControl()

void ns3::OriginatorRxStatus::SetSequenceControl ( uint16_t  sequenceControl)
inline

Set the last sequence control we received.

Parameters
sequenceControlthe last sequence control we received

Definition at line 156 of file mac-rx-middle.cc.

References m_lastSequenceControl.

Referenced by ns3::MacRxMiddle::HandleFragments(), and ns3::MacRxMiddle::Receive().

+ Here is the caller graph for this function:

Member Data Documentation

◆ m_defragmenting

bool ns3::OriginatorRxStatus::m_defragmenting
private

flag to indicate whether we are defragmenting

Definition at line 49 of file mac-rx-middle.cc.

Referenced by OriginatorRxStatus(), AccumulateFirstFragment(), AccumulateFragment(), AccumulateLastFragment(), and IsDeFragmenting().

◆ m_fragments

Fragments ns3::OriginatorRxStatus::m_fragments
private

◆ m_lastSequenceControl

uint16_t ns3::OriginatorRxStatus::m_lastSequenceControl
private

last sequence control

Definition at line 50 of file mac-rx-middle.cc.

Referenced by OriginatorRxStatus(), GetLastSequenceControl(), IsNextFragment(), and SetSequenceControl().


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