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

Doxygen introspection did not find any typical Config paths. More...

#include <ipv6-header.h>

+ Inheritance diagram for ns3::Ipv6Header:
+ Collaboration diagram for ns3::Ipv6Header:

Public Types

enum  NextHeader_e {
  IPV6_EXT_HOP_BY_HOP = 0, IPV6_IPV4 = 4, IPV6_TCP = 6, IPV6_UDP = 17,
  IPV6_IPV6 = 41, IPV6_EXT_ROUTING = 43, IPV6_EXT_FRAGMENTATION = 44, IPV6_EXT_CONFIDENTIALITY = 50,
  IPV6_EXT_AUTHENTIFICATION = 51, IPV6_ICMPV6 = 58, IPV6_EXT_END = 59, IPV6_EXT_DESTINATION = 60,
  IPV6_SCTP = 135, IPV6_EXT_MOBILITY = 135, IPV6_UDP_LITE = 136
}
 IPv6 next-header value. More...
 

Public Member Functions

 Ipv6Header (void)
 Constructor. More...
 
virtual uint32_t Deserialize (Buffer::Iterator start)
 Deserialize the packet. More...
 
Ipv6Address GetDestinationAddress (void) const
 Get the "Destination address" field. More...
 
uint32_t GetFlowLabel (void) const
 Get the "Flow label" field. More...
 
uint8_t GetHopLimit (void) const
 Get the "Hop limit" field (TTL). More...
 
virtual TypeId GetInstanceTypeId (void) const
 Return the instance type identifier. More...
 
uint8_t GetNextHeader (void) const
 Get the next header. More...
 
uint16_t GetPayloadLength (void) const
 Get the "Payload length" field. More...
 
virtual uint32_t GetSerializedSize (void) const
 Get the serialized size of the packet. More...
 
Ipv6Address GetSourceAddress (void) const
 Get the "Source address" field. More...
 
uint8_t GetTrafficClass (void) const
 Get the "Traffic class" field. More...
 
virtual void Print (std::ostream &os) const
 Print some informations about the packet. More...
 
virtual void Serialize (Buffer::Iterator start) const
 Serialize the packet. More...
 
void SetDestinationAddress (Ipv6Address dst)
 Set the "Destination address" field. More...
 
void SetFlowLabel (uint32_t flow)
 Set the "Flow label" field. More...
 
void SetHopLimit (uint8_t limit)
 Set the "Hop limit" field (TTL). More...
 
void SetNextHeader (uint8_t next)
 Set the "Next header" field. More...
 
void SetPayloadLength (uint16_t len)
 Set the "Payload length" field. More...
 
void SetSourceAddress (Ipv6Address src)
 Set the "Source address" field. More...
 
void SetTrafficClass (uint8_t traffic)
 Set the "Traffic class" field. More...
 
- Public Member Functions inherited from ns3::Header
virtual ~Header ()
 
- Public Member Functions inherited from ns3::ObjectBase
virtual ~ObjectBase ()
 Virtual destructor. More...
 
void GetAttribute (std::string name, AttributeValue &value) const
 
bool GetAttributeFailSafe (std::string name, AttributeValue &attribute) const
 
void SetAttribute (std::string name, const AttributeValue &value)
 
bool SetAttributeFailSafe (std::string name, const AttributeValue &value)
 
bool TraceConnect (std::string name, std::string context, const CallbackBase &cb)
 
bool TraceConnectWithoutContext (std::string name, const CallbackBase &cb)
 
bool TraceDisconnect (std::string name, std::string context, const CallbackBase &cb)
 
bool TraceDisconnectWithoutContext (std::string name, const CallbackBase &cb)
 

Static Public Member Functions

static TypeId GetTypeId (void)
 Get the type identifier. More...
 
- Static Public Member Functions inherited from ns3::Header
static TypeId GetTypeId (void)
 Get the type ID. More...
 
- Static Public Member Functions inherited from ns3::Chunk
static TypeId GetTypeId (void)
 Get the type ID. More...
 
- Static Public Member Functions inherited from ns3::ObjectBase
static TypeId GetTypeId (void)
 Get the type ID. More...
 

Private Attributes

Ipv6Address m_destinationAddress
 The destination address. More...
 
uint32_t m_flowLabel: 20
 The flow label. More...
 
uint8_t m_hopLimit
 The Hop limit value. More...
 
uint8_t m_nextHeader
 The Next header number. More...
 
uint16_t m_payloadLength
 The payload length. More...
 
Ipv6Address m_sourceAddress
 The source address. More...
 
uint32_t m_trafficClass: 8
 The traffic class. More...
 
uint32_t m_version: 4
 The version (always equal to 6). More...
 

Additional Inherited Members

- Protected Member Functions inherited from ns3::ObjectBase
void ConstructSelf (const AttributeConstructionList &attributes)
 
virtual void NotifyConstructionCompleted (void)
 This method is invoked once all member attributes have been initialized. More...
 

Detailed Description

Doxygen introspection did not find any typical Config paths.

Packet header for IPv6.


No Attributes are defined for this type.
No TraceSources are defined for this type.

Definition at line 33 of file ipv6-header.h.

Member Enumeration Documentation

IPv6 next-header value.

Enumerator
IPV6_EXT_HOP_BY_HOP 
IPV6_IPV4 
IPV6_TCP 
IPV6_UDP 
IPV6_IPV6 
IPV6_EXT_ROUTING 
IPV6_EXT_FRAGMENTATION 
IPV6_EXT_CONFIDENTIALITY 
IPV6_EXT_AUTHENTIFICATION 
IPV6_ICMPV6 
IPV6_EXT_END 
IPV6_EXT_DESTINATION 
IPV6_SCTP 
IPV6_EXT_MOBILITY 
IPV6_UDP_LITE 

Definition at line 40 of file ipv6-header.h.

Constructor & Destructor Documentation

ns3::Ipv6Header::Ipv6Header ( void  )

Constructor.

Definition at line 34 of file ipv6-header.cc.

References SetDestinationAddress(), and SetSourceAddress().

+ Here is the call graph for this function:

Member Function Documentation

uint32_t ns3::Ipv6Header::Deserialize ( Buffer::Iterator  start)
virtual

Deserialize the packet.

Parameters
startBuffer iterator
Returns
size of the packet

Implements ns3::Header.

Definition at line 164 of file ipv6-header.cc.

References GetSerializedSize(), m_destinationAddress, m_flowLabel, m_hopLimit, m_nextHeader, m_payloadLength, m_sourceAddress, m_trafficClass, m_version, NS_ASSERT, ns3::ReadFrom(), ns3::Buffer::Iterator::ReadNtohU16(), ns3::Buffer::Iterator::ReadNtohU32(), ns3::Buffer::Iterator::ReadU8(), and visualizer.core::start().

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

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

uint32_t ns3::Ipv6Header::GetFlowLabel ( void  ) const

Get the "Flow label" field.

Returns
the flow label value

Definition at line 61 of file ipv6-header.cc.

References m_flowLabel.

Referenced by ns3::SixLowPanNetDevice::CompressLowPanHc1(), and ns3::SixLowPanNetDevice::CompressLowPanIphc().

+ Here is the caller graph for this function:

uint8_t ns3::Ipv6Header::GetHopLimit ( void  ) const
TypeId ns3::Ipv6Header::GetInstanceTypeId ( void  ) const
virtual

Return the instance type identifier.

Returns
instance type ID

Implements ns3::ObjectBase.

Definition at line 125 of file ipv6-header.cc.

References GetTypeId().

+ Here is the call graph for this function:

uint8_t ns3::Ipv6Header::GetNextHeader ( void  ) const
uint16_t ns3::Ipv6Header::GetPayloadLength ( void  ) const

Get the "Payload length" field.

Returns
the payload length

Definition at line 71 of file ipv6-header.cc.

References m_payloadLength.

Referenced by ns3::Ipv6L3Protocol::Receive().

+ Here is the caller graph for this function:

uint8_t ns3::Ipv6Header::GetTrafficClass ( void  ) const

Get the "Traffic class" field.

Returns
the traffic value

Definition at line 51 of file ipv6-header.cc.

References m_trafficClass.

Referenced by ns3::SixLowPanNetDevice::CompressLowPanHc1(), ns3::SixLowPanNetDevice::CompressLowPanIphc(), and ns3::UdpSocketImpl::ForwardUp6().

+ Here is the caller graph for this function:

TypeId ns3::Ipv6Header::GetTypeId ( void  )
static

Get the type identifier.

Returns
type identifier

Definition at line 116 of file ipv6-header.cc.

References ns3::TypeId::SetParent().

Referenced by GetInstanceTypeId().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::Ipv6Header::Print ( std::ostream &  os) const
virtual

Print some informations about the packet.

Parameters
osoutput stream
Returns
info about this packet

Implements ns3::Header.

Definition at line 130 of file ipv6-header.cc.

References m_destinationAddress, m_flowLabel, m_hopLimit, m_nextHeader, m_payloadLength, m_sourceAddress, m_trafficClass, and m_version.

void ns3::Ipv6Header::Serialize ( Buffer::Iterator  start) const
virtual

Serialize the packet.

Parameters
startBuffer iterator

Implements ns3::Header.

Definition at line 148 of file ipv6-header.cc.

References m_destinationAddress, m_flowLabel, m_hopLimit, m_nextHeader, m_payloadLength, m_sourceAddress, m_trafficClass, visualizer.core::start(), ns3::Buffer::Iterator::WriteHtonU16(), ns3::Buffer::Iterator::WriteHtonU32(), ns3::WriteTo(), and ns3::Buffer::Iterator::WriteU8().

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

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::Ipv6Header::SetFlowLabel ( uint32_t  flow)

Set the "Flow label" field.

Parameters
flowthe 20-bit value

Definition at line 56 of file ipv6-header.cc.

References m_flowLabel.

Referenced by ns3::SixLowPanNetDevice::DecompressLowPanHc1(), and ns3::SixLowPanNetDevice::DecompressLowPanIphc().

+ Here is the caller graph for this function:

void ns3::Ipv6Header::SetHopLimit ( uint8_t  limit)

Set the "Hop limit" field (TTL).

Parameters
limitthe 8-bit value

Definition at line 86 of file ipv6-header.cc.

References m_hopLimit.

Referenced by ns3::Ipv6L3Protocol::BuildHeader(), ns3::SixLowPanNetDevice::DecompressLowPanHc1(), ns3::SixLowPanNetDevice::DecompressLowPanIphc(), ns3::Ipv6L3Protocol::IpForward(), ns3::Ipv6L3Protocol::IpMulticastForward(), and ns3::Ipv6ExtensionLooseRouting::Process().

+ Here is the caller graph for this function:

void ns3::Ipv6Header::SetNextHeader ( uint8_t  next)
void ns3::Ipv6Header::SetPayloadLength ( uint16_t  len)

Set the "Payload length" field.

Parameters
lenthe length of the payload in bytes

Definition at line 66 of file ipv6-header.cc.

References m_payloadLength.

Referenced by ns3::Ipv6L3Protocol::BuildHeader(), ns3::SixLowPanNetDevice::DecompressLowPanHc1(), ns3::SixLowPanNetDevice::DecompressLowPanIphc(), and ns3::Ipv6ExtensionFragment::GetFragments().

+ Here is the caller graph for this function:

void ns3::Ipv6Header::SetSourceAddress ( Ipv6Address  src)
void ns3::Ipv6Header::SetTrafficClass ( uint8_t  traffic)

Set the "Traffic class" field.

Parameters
trafficthe 8-bit value

Definition at line 46 of file ipv6-header.cc.

References m_trafficClass.

Referenced by ns3::Ipv6L3Protocol::BuildHeader(), ns3::SixLowPanNetDevice::DecompressLowPanHc1(), and ns3::SixLowPanNetDevice::DecompressLowPanIphc().

+ Here is the caller graph for this function:

Member Data Documentation

Ipv6Address ns3::Ipv6Header::m_destinationAddress
private

The destination address.

Definition at line 225 of file ipv6-header.h.

Referenced by Deserialize(), GetDestinationAddress(), Print(), Serialize(), and SetDestinationAddress().

uint32_t ns3::Ipv6Header::m_flowLabel
private

The flow label.

Note
This is 20-bit value.

Definition at line 200 of file ipv6-header.h.

Referenced by Deserialize(), GetFlowLabel(), Print(), Serialize(), and SetFlowLabel().

uint8_t ns3::Ipv6Header::m_hopLimit
private

The Hop limit value.

Definition at line 215 of file ipv6-header.h.

Referenced by Deserialize(), GetHopLimit(), Print(), Serialize(), and SetHopLimit().

uint8_t ns3::Ipv6Header::m_nextHeader
private

The Next header number.

Definition at line 210 of file ipv6-header.h.

Referenced by Deserialize(), GetNextHeader(), Print(), Serialize(), and SetNextHeader().

uint16_t ns3::Ipv6Header::m_payloadLength
private

The payload length.

Definition at line 205 of file ipv6-header.h.

Referenced by Deserialize(), GetPayloadLength(), Print(), Serialize(), and SetPayloadLength().

Ipv6Address ns3::Ipv6Header::m_sourceAddress
private

The source address.

Definition at line 220 of file ipv6-header.h.

Referenced by Deserialize(), GetSourceAddress(), Print(), Serialize(), and SetSourceAddress().

uint32_t ns3::Ipv6Header::m_trafficClass
private

The traffic class.

Definition at line 194 of file ipv6-header.h.

Referenced by Deserialize(), GetTrafficClass(), Print(), Serialize(), and SetTrafficClass().

uint32_t ns3::Ipv6Header::m_version
private

The version (always equal to 6).

Definition at line 190 of file ipv6-header.h.

Referenced by Deserialize(), and Print().


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