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...
 
void CancelTimeout ()
 Cancel the timeout event. More...
 
Ptr< PacketGetPacket () const
 Get the entire packet. More...
 
Ptr< PacketGetPartialPacket () const
 Get the packet parts so far received. More...
 
bool IsEntire () const
 If all fragments have been added. More...
 
void SetTimeoutEventId (EventId event)
 Set the Timeout EventId. 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)
 Copy constructor. More...
 
uint32_t GetReferenceCount (void) const
 Get the reference count of the object. More...
 
SimpleRefCountoperator= (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...
 
EventId m_timeoutEventId
 Timeout handler event. 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 324 of file ipv6-extension.h.

Constructor & Destructor Documentation

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

Constructor.

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

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

Destructor.

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

Member Function Documentation

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 633 of file ipv6-extension.cc.

References m_moreFragment, and m_packetFragments.

void ns3::Ipv6ExtensionFragment::Fragments::CancelTimeout ( )

Cancel the timeout event.

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

References ns3::EventId::Cancel(), m_timeoutEventId, and NS_OBJECT_ENSURE_REGISTERED.

+ Here is the call graph for this function:

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

Get the entire packet.

Returns
the entire packet

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

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

+ Here is the call graph for this function:

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

Get the packet parts so far received.

Returns
the partial packet

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

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

+ Here is the call graph for this function:

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

If all fragments have been added.

Returns
true if the packet is entire

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

References list, m_moreFragment, and m_packetFragments.

void ns3::Ipv6ExtensionFragment::Fragments::SetTimeoutEventId ( EventId  event)

Set the Timeout EventId.

Parameters
eventThe event.

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

References m_timeoutEventId.

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

Set the unfragmentable part of the packet.

Parameters
unfragmentablePartthe unfragmentable part

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

References m_unfragmentable.

Member Data Documentation

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

If other fragments will be sent.

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

Referenced by AddFragment(), and IsEntire().

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

The current fragments.

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

Referenced by AddFragment(), GetPacket(), GetPartialPacket(), and IsEntire().

EventId ns3::Ipv6ExtensionFragment::Fragments::m_timeoutEventId
private

Timeout handler event.

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

Referenced by CancelTimeout(), and SetTimeoutEventId().

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

The unfragmentable part.

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

Referenced by GetPacket(), GetPartialPacket(), and SetUnfragmentablePart().


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