A Discrete-Event Network Simulator
API
ns3::Ipv6ExtensionFragment::Fragments Class Reference

This class stores the fragments of a packet waiting to be rebuilt. More...

+ Inheritance diagram for ns3::Ipv6ExtensionFragment::Fragments:
+ Collaboration diagram for ns3::Ipv6ExtensionFragment::Fragments:

Public Member Functions

 Fragments ()
 Constructor. More...
 
 ~Fragments ()
 Destructor. More...
 
void AddFragment (Ptr< Packet > fragment, uint16_t fragmentOffset, bool moreFragment)
 Add a fragment. More...
 
Ptr< PacketGetPacket () const
 Get the entire packet. More...
 
Ptr< PacketGetPartialPacket () const
 Get the packet parts so far received. More...
 
FragmentsTimeoutsListI_t GetTimeoutIter ()
 Get the Timeout iterator. More...
 
bool IsEntire () const
 If all fragments have been added. More...
 
void SetTimeoutIter (FragmentsTimeoutsListI_t iter)
 Set the Timeout iterator. More...
 
void SetUnfragmentablePart (Ptr< Packet > unfragmentablePart)
 Set the unfragmentable part of the packet. More...
 
- Public Member Functions inherited from ns3::SimpleRefCount< Fragments >
 SimpleRefCount ()
 Default constructor. More...
 
 SimpleRefCount (const SimpleRefCount &o[[maybe_unused]])
 Copy constructor. More...
 
uint32_t GetReferenceCount (void) const
 Get the reference count of the object. More...
 
SimpleRefCountoperator= ([[maybe_unused]] const SimpleRefCount &o)
 Assignment operator. More...
 
void Ref (void) const
 Increment the reference count. More...
 
void Unref (void) const
 Decrement the reference count. More...
 

Private Attributes

bool m_moreFragment
 If other fragments will be sent. More...
 
std::list< std::pair< Ptr< Packet >, uint16_t > > m_packetFragments
 The current fragments. More...
 
FragmentsTimeoutsListI_t m_timeoutIter
 Timeout iterator to "event" handler. More...
 
Ptr< Packetm_unfragmentable
 The unfragmentable part. More...
 

Detailed Description

This class stores the fragments of a packet waiting to be rebuilt.

Definition at line 340 of file ipv6-extension.h.

Constructor & Destructor Documentation

◆ Fragments()

ns3::Ipv6ExtensionFragment::Fragments::Fragments ( )

Constructor.

Definition at line 670 of file ipv6-extension.cc.

◆ ~Fragments()

ns3::Ipv6ExtensionFragment::Fragments::~Fragments ( )

Destructor.

Definition at line 675 of file ipv6-extension.cc.

Member Function Documentation

◆ AddFragment()

void ns3::Ipv6ExtensionFragment::Fragments::AddFragment ( Ptr< Packet fragment,
uint16_t  fragmentOffset,
bool  moreFragment 
)

Add a fragment.

Parameters
fragmentthe fragment
fragmentOffsetthe offset of the fragment
moreFragmentthe bit "More Fragment"

Definition at line 679 of file ipv6-extension.cc.

References NS_LOG_FUNCTION.

Referenced by ns3::Ipv6ExtensionFragment::Process().

+ Here is the caller graph for this function:

◆ GetPacket()

Ptr< Packet > ns3::Ipv6ExtensionFragment::Fragments::GetPacket ( ) const

Get the entire packet.

Returns
the entire packet

Definition at line 729 of file ipv6-extension.cc.

References ns3::Packet::AddAtEnd(), ns3::Packet::Copy(), and list.

Referenced by ns3::Ipv6ExtensionFragment::Process().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetPartialPacket()

Ptr< Packet > ns3::Ipv6ExtensionFragment::Fragments::GetPartialPacket ( ) const

Get the packet parts so far received.

Returns
the partial packet

Definition at line 741 of file ipv6-extension.cc.

References ns3::Packet::AddAtEnd(), ns3::Packet::Copy(), and list.

Referenced by ns3::Ipv6ExtensionFragment::HandleFragmentsTimeout().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetTimeoutIter()

Ipv6ExtensionFragment::FragmentsTimeoutsListI_t ns3::Ipv6ExtensionFragment::Fragments::GetTimeoutIter ( )

Get the Timeout iterator.

Returns
The iterator.

Definition at line 776 of file ipv6-extension.cc.

Referenced by ns3::Ipv6ExtensionFragment::Process().

+ Here is the caller graph for this function:

◆ IsEntire()

bool ns3::Ipv6ExtensionFragment::Fragments::IsEntire ( ) const

If all fragments have been added.

Returns
true if the packet is entire

Definition at line 706 of file ipv6-extension.cc.

References list.

Referenced by ns3::Ipv6ExtensionFragment::Process().

+ Here is the caller graph for this function:

◆ SetTimeoutIter()

void ns3::Ipv6ExtensionFragment::Fragments::SetTimeoutIter ( FragmentsTimeoutsListI_t  iter)

Set the Timeout iterator.

Parameters
iterThe iterator.

Definition at line 769 of file ipv6-extension.cc.

References NS_LOG_FUNCTION.

Referenced by ns3::Ipv6ExtensionFragment::Process().

+ Here is the caller graph for this function:

◆ SetUnfragmentablePart()

void ns3::Ipv6ExtensionFragment::Fragments::SetUnfragmentablePart ( Ptr< Packet unfragmentablePart)

Set the unfragmentable part of the packet.

Parameters
unfragmentablePartthe unfragmentable part

Definition at line 700 of file ipv6-extension.cc.

References NS_LOG_FUNCTION.

Referenced by ns3::Ipv6ExtensionFragment::Process().

+ Here is the caller graph for this function:

Member Data Documentation

◆ m_moreFragment

bool ns3::Ipv6ExtensionFragment::Fragments::m_moreFragment
private

If other fragments will be sent.

Definition at line 401 of file ipv6-extension.h.

◆ m_packetFragments

std::list<std::pair<Ptr<Packet>, uint16_t> > ns3::Ipv6ExtensionFragment::Fragments::m_packetFragments
private

The current fragments.

Definition at line 406 of file ipv6-extension.h.

◆ m_timeoutIter

FragmentsTimeoutsListI_t ns3::Ipv6ExtensionFragment::Fragments::m_timeoutIter
private

Timeout iterator to "event" handler.

Definition at line 416 of file ipv6-extension.h.

◆ m_unfragmentable

Ptr<Packet> ns3::Ipv6ExtensionFragment::Fragments::m_unfragmentable
private

The unfragmentable part.

Definition at line 411 of file ipv6-extension.h.


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