A Discrete-Event Network Simulator
API
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  DscpType {
  DscpDefault = 0x00, DSCP_CS1 = 0x08, DSCP_AF11 = 0x0A, DSCP_AF12 = 0x0C,
  DSCP_AF13 = 0x0E, DSCP_CS2 = 0x10, DSCP_AF21 = 0x12, DSCP_AF22 = 0x14,
  DSCP_AF23 = 0x16, DSCP_CS3 = 0x18, DSCP_AF31 = 0x1A, DSCP_AF32 = 0x1C,
  DSCP_AF33 = 0x1E, DSCP_CS4 = 0x20, DSCP_AF41 = 0x22, DSCP_AF42 = 0x24,
  DSCP_AF43 = 0x26, DSCP_CS5 = 0x28, DSCP_EF = 0x2E, DSCP_CS6 = 0x30,
  DSCP_CS7 = 0x38
}
 DiffServ Code Points Code Points defined in Assured Forwarding (AF) RFC 2597 Expedited Forwarding (EF) RFC 2598 Default and Class Selector (CS) RFC 2474 More...
 
enum  EcnType { ECN_NotECT = 0x00, ECN_ECT1 = 0x01, ECN_ECT0 = 0x02, ECN_CE = 0x03 }
 ECN field bits. More...
 
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...
 
std::string DscpTypeToString (DscpType dscp) const
 
std::string EcnTypeToString (EcnType ecn) const
 
Ipv6Address GetDestinationAddress (void) const
 Get the "Destination address" field. More...
 
DscpType GetDscp (void) const
 
EcnType GetEcn (void) const
 
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 SetDscp (DscpType dscp)
 Set DSCP Field. More...
 
void SetEcn (EcnType ecn)
 Set ECN field bits. 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
 Get the value of an attribute, raising fatal errors if unsuccessful. More...
 
bool GetAttributeFailSafe (std::string name, AttributeValue &value) const
 Get the value of an attribute without raising erros. More...
 
void SetAttribute (std::string name, const AttributeValue &value)
 Set a single attribute, raising fatal errors if unsuccessful. More...
 
bool SetAttributeFailSafe (std::string name, const AttributeValue &value)
 Set a single attribute without raising errors. More...
 
bool TraceConnect (std::string name, std::string context, const CallbackBase &cb)
 Connect a TraceSource to a Callback with a context. More...
 
bool TraceConnectWithoutContext (std::string name, const CallbackBase &cb)
 Connect a TraceSource to a Callback without a context. More...
 
bool TraceDisconnect (std::string name, std::string context, const CallbackBase &cb)
 Disconnect from a TraceSource a Callback previously connected with a context. More...
 
bool TraceDisconnectWithoutContext (std::string name, const CallbackBase &cb)
 Disconnect from a TraceSource a Callback previously connected without a context. More...
 

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

Additional Inherited Members

- Protected Member Functions inherited from ns3::ObjectBase
void ConstructSelf (const AttributeConstructionList &attributes)
 Complete construction of ObjectBase; invoked by derived classes. More...
 
virtual void NotifyConstructionCompleted (void)
 Notifier called once the ObjectBase is fully constructed. More...
 

Detailed Description

Packet header for IPv6.

Introspection did not find any typical Config paths.


No Attributes are defined for this type.
No TraceSources are defined for this type.
Size of this type is 48 bytes (on a 64-bit architecture).

Definition at line 34 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, NS_LOG_WARN, 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:

std::string ns3::Ipv6Header::DscpTypeToString ( DscpType  dscp) const
Parameters
dscpthe dscp
Returns
std::string of DSCPType

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

References DSCP_AF11, DSCP_AF12, DSCP_AF13, DSCP_AF21, DSCP_AF22, DSCP_AF23, DSCP_AF31, DSCP_AF32, DSCP_AF33, DSCP_AF41, DSCP_AF42, DSCP_AF43, DSCP_CS1, DSCP_CS2, DSCP_CS3, DSCP_CS4, DSCP_CS5, DSCP_CS6, DSCP_CS7, DSCP_EF, DscpDefault, and NS_LOG_FUNCTION.

Referenced by Print().

+ Here is the caller graph for this function:

std::string ns3::Ipv6Header::EcnTypeToString ( EcnType  ecn) const
Parameters
ecnthe ECNType
Returns
std::string of ECNType

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

References ECN_CE, ECN_ECT0, ECN_ECT1, ECN_NotECT, and NS_LOG_FUNCTION.

Ipv6Header::DscpType ns3::Ipv6Header::GetDscp ( void  ) const
Returns
the DSCP field of this packet.

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

References m_trafficClass, and NS_LOG_FUNCTION.

Referenced by ns3::Ipv6FlowClassifier::Classify(), and Print().

+ Here is the caller graph for this function:

Ipv6Header::EcnType ns3::Ipv6Header::GetEcn ( void  ) const
Returns
the ECN field bits of this packet.

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

References m_trafficClass, and NS_LOG_FUNCTION.

Referenced by ns3::Ipv6QueueDiscItem::Mark().

+ 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 60 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:

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

Get the "Payload length" field.

Returns
the payload length

Definition at line 70 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 50 of file ipv6-header.cc.

References m_trafficClass.

Referenced by ns3::SixLowPanNetDevice::CompressLowPanHc1(), ns3::SixLowPanNetDevice::CompressLowPanIphc(), ns3::Ipv6RawSocketImpl::ForwardUp(), ns3::UdpSocketImpl::ForwardUp6(), and ns3::Ipv6QueueDiscItem::GetUint8Value().

+ Here is the caller graph for this function:

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

Get the type identifier.

Returns
type identifier

Definition at line 115 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 DscpTypeToString(), GetDscp(), m_destinationAddress, m_flowLabel, m_hopLimit, m_nextHeader, m_payloadLength, m_sourceAddress, and m_trafficClass.

+ Here is the call graph for this function:

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::SetDscp ( DscpType  dscp)

Set DSCP Field.

Parameters
dscpDSCP value

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

References m_trafficClass, and NS_LOG_FUNCTION.

void ns3::Ipv6Header::SetEcn ( EcnType  ecn)

Set ECN field bits.

Parameters
ecnECN field bits

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

References m_trafficClass, and NS_LOG_FUNCTION.

Referenced by ns3::Ipv6QueueDiscItem::Mark().

+ 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 55 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)
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 65 of file ipv6-header.cc.

References m_payloadLength.

Referenced by ns3::Ipv6L3Protocol::BuildHeader(), ns3::SixLowPanNetDevice::DecompressLowPanHc1(), ns3::SixLowPanNetDevice::DecompressLowPanIphc(), ns3::Icmpv6L4Protocol::ForgeEchoRequest(), 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 45 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 310 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 285 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 300 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 295 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 290 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 305 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 279 of file ipv6-header.h.

Referenced by Deserialize(), GetDscp(), GetEcn(), GetTrafficClass(), Print(), Serialize(), SetDscp(), SetEcn(), and SetTrafficClass().


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