A Discrete-Event Network Simulator
API
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
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. More...
 
void AccumulateFragment (Ptr< const Packet > packet)
 We received a fragmented packet (not first and not last). More...
 
Ptr< PacketAccumulateLastFragment (Ptr< const Packet > packet)
 We have received a last fragment of the fragmented packets (indicated by the no more fragment field). More...
 
uint16_t GetLastSequenceControl (void)
 Return the last sequence control we received. More...
 
bool IsDeFragmenting (void)
 Check if we are de-fragmenting packets. More...
 
bool IsNextFragment (uint16_t sequenceControl)
 Check if the sequence control (i.e. More...
 
void SetSequenceControl (uint16_t sequenceControl)
 Set the last sequence control we received. More...
 

Private Types

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

Private Attributes

bool m_defragmenting
 
Fragments m_fragments
 
uint16_t m_lastSequenceControl
 

Detailed Description

A class to keep track of the packet originator status.

It recomposes the packet from multiple fragments.

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

Member Typedef Documentation

typedef for a list of fragments (i.e.

incomplete Packet).

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

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

typedef for a const iterator for Fragments

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

Constructor & Destructor Documentation

ns3::OriginatorRxStatus::OriginatorRxStatus ( )
inline

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

References m_defragmenting, and m_lastSequenceControl.

ns3::OriginatorRxStatus::~OriginatorRxStatus ( )
inline

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

References m_fragments.

Member Function Documentation

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 82 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:

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 116 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:

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 97 of file mac-rx-middle.cc.

References ns3::Packet::AddAtEnd(), m_defragmenting, m_fragments, and NS_ASSERT.

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

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

uint16_t ns3::OriginatorRxStatus::GetLastSequenceControl ( void  )
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().

+ Here is the caller graph for this function:

bool ns3::OriginatorRxStatus::IsDeFragmenting ( void  )
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:

bool ns3::OriginatorRxStatus::IsNextFragment ( uint16_t  sequenceControl)
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 129 of file mac-rx-middle.cc.

References m_lastSequenceControl.

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

+ Here is the caller graph for this function:

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 155 of file mac-rx-middle.cc.

References m_lastSequenceControl.

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

+ Here is the caller graph for this function:

Member Data Documentation

bool ns3::OriginatorRxStatus::m_defragmenting
private
Fragments ns3::OriginatorRxStatus::m_fragments
private
uint16_t ns3::OriginatorRxStatus::m_lastSequenceControl
private

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