A Discrete-Event Network Simulator
API
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
ns3::Ipv6ExtensionFragment::Fragments Class Reference

A Set of Fragment. 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

A Set of Fragment.

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

Constructor & Destructor Documentation

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

Constructor.

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

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

Destructor.

Definition at line 605 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 609 of file ipv6-extension.cc.

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

Cancel the timeout event.

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

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

Get the entire packet.

Returns
the entire packet

Definition at line 657 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 669 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 634 of file ipv6-extension.cc.

References list.

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

Set the Timeout EventId.

Definition at line 697 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 629 of file ipv6-extension.cc.

Member Data Documentation

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

If other fragments will be sent.

Definition at line 362 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 367 of file ipv6-extension.h.

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

Timeout handler event.

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

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

The unfragmentable part.

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


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