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 ()
 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. 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...
 

Additional Inherited Members

- Static Public Member Functions inherited from ns3::SimpleRefCount< Fragments >
static void Cleanup (void)
 Noop. 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.

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

Cancel the timeout event.

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

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(), and list.

+ 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(), and list.

+ 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.

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

Set the Timeout EventId.

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

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.

Member Data Documentation

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

If other fragments will be sent.

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

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

The current fragments.

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

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

Timeout handler event.

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

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

The unfragmentable part.

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


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