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

Packet header for IPv6. 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.
virtual uint32_t Deserialize (Buffer::Iterator start)
 Deserialize the packet.
Ipv6Address GetDestinationAddress (void) const
 Get the "Destination address" field.
uint32_t GetFlowLabel (void) const
 Get the "Flow label" field.
uint8_t GetHopLimit (void) const
 Get the "Hop limit" field (TTL).
virtual TypeId GetInstanceTypeId (void) const
 Return the instance type identifier.
uint8_t GetNextHeader (void) const
 Get the next header.
uint16_t GetPayloadLength (void) const
 Get the "Payload length" field.
virtual uint32_t GetSerializedSize (void) const
 Get the serialized size of the packet.
Ipv6Address GetSourceAddress (void) const
 Get the "Source address" field.
uint8_t GetTrafficClass (void) const
 Get the "Traffic class" field.
virtual void Print (std::ostream &os) const
 Print some informations about the packet.
virtual void Serialize (Buffer::Iterator start) const
 Serialize the packet.
void SetDestinationAddress (Ipv6Address dst)
 Set the "Destination address" field.
void SetFlowLabel (uint32_t flow)
 Set the "Flow label" field.
void SetHopLimit (uint8_t limit)
 Set the "Hop limit" field (TTL).
void SetNextHeader (uint8_t next)
 Set the "Next header" field.
void SetPayloadLength (uint16_t len)
 Set the "Payload length" field.
void SetSourceAddress (Ipv6Address src)
 Set the "Source address" field.
void SetTrafficClass (uint8_t traffic)
 Set the "Traffic class" field.
- Public Member Functions inherited from ns3::Header
virtual ~Header ()

Static Public Member Functions

static TypeId GetTypeId (void)
 Get the type identifier.

Private Attributes

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

Additional Inherited Members

- Protected Member Functions inherited from ns3::ObjectBase
void ConstructSelf (const AttributeConstructionList &attributes)
virtual void NotifyConstructionCompleted (void)

Detailed Description

Packet header for IPv6.

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.

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

Get the "Hop limit" field (TTL).

Returns
the hop limit value

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

References m_hopLimit.

Referenced by ns3::Icmpv6L4Protocol::Forward(), ns3::Ipv6L3Protocol::IpMulticastForward(), and ns3::Ipv6ExtensionLooseRouting::Process().

+ Here is the caller graph for this function:

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

Get the next header.

Returns
the next header number

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

References m_nextHeader.

Referenced by ns3::Icmpv6L4Protocol::Forward(), ns3::Ipv6RawSocketImpl::ForwardUp(), ns3::Ipv6ExtensionFragment::GetFragments(), ns3::Ipv6L3Protocol::LocalDeliver(), and ns3::Ipv6L3Protocol::Receive().

+ Here is the caller graph for this function:

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:

uint32_t ns3::Ipv6Header::GetSerializedSize ( void  ) const
virtual

Get the serialized size of the packet.

Returns
size

Implements ns3::Header.

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

Referenced by Deserialize(), ns3::Ipv6ExtensionFragment::GetFragments(), ns3::Icmpv6L4Protocol::HandleDestinationUnreachable(), ns3::Ipv6L3Protocol::LocalDeliver(), and ns3::Ipv6ExtensionLooseRouting::Process().

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

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

Get the type identifier.

This method returns the TypeId associated to ns3::Ipv6Header.

Returns
type identifier

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

Reimplemented from ns3::Header.

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::SetDestinationAddress ( Ipv6Address  dst)

Set the "Destination address" field.

Parameters
dstthe destination address

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

References m_destinationAddress.

Referenced by ns3::Ipv6L3Protocol::BuildHeader(), ns3::UdpSocketImpl::DoSendTo(), Ipv6Header(), ns3::Ipv6ExtensionLooseRouting::Process(), ns3::TcpL4Protocol::Send(), ns3::TcpL4Protocol::SendPacket(), ns3::Ipv6RawSocketImpl::SendTo(), and ns3::TcpSocketBase::SetupEndpoint6().

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

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::Ipv6L3Protocol::IpMulticastForward(), and ns3::Ipv6ExtensionLooseRouting::Process().

+ Here is the caller graph for this function:

void ns3::Ipv6Header::SetNextHeader ( uint8_t  next)

Set the "Next header" field.

Parameters
nextthe next header number

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

References m_nextHeader.

Referenced by ns3::Ipv6L3Protocol::BuildHeader(), ns3::UdpSocketImpl::DoSendTo(), ns3::Ipv6ExtensionFragment::GetFragments(), ns3::Ipv6ExtensionFragment::Process(), ns3::TcpL4Protocol::Send(), and ns3::TcpL4Protocol::SendPacket().

+ Here is the caller graph for this function:

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(), and ns3::Ipv6ExtensionFragment::GetFragments().

+ Here is the caller graph for this function:

void ns3::Ipv6Header::SetSourceAddress ( Ipv6Address  src)

Set the "Source address" field.

Parameters
srcthe source address

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

References m_sourceAddress.

Referenced by ns3::Ipv6L3Protocol::BuildHeader(), ns3::UdpSocketImpl::DoSendTo(), Ipv6Header(), and ns3::TcpL4Protocol::SendPacket().

+ Here is the caller graph for this function:

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.

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: