ns-3
ns3::Ipv6Header Class Reference

Packet header for IPv6. More...

#include <ipv6-header.h>

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

List of all members.

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.

Public Member Functions

virtual TypeId GetInstanceTypeId (void) const
 Return the instance type identifier.
 Ipv6Header (void)
 Constructor.
void SetTrafficClass (uint8_t traffic)
 Set the "Traffic class" field.
uint8_t GetTrafficClass (void) const
 Get the "Traffic class" field.
void SetFlowLabel (uint32_t flow)
 Set the "Flow label" field.
uint32_t GetFlowLabel (void) const
 Get the "Flow label" field.
void SetPayloadLength (uint16_t len)
 Set the "Payload length" field.
uint16_t GetPayloadLength (void) const
 Get the "Payload length" field.
void SetNextHeader (uint8_t next)
 Set the "Next header" field.
uint8_t GetNextHeader (void) const
 Get the next header.
void SetHopLimit (uint8_t limit)
 Set the "Hop limit" field (TTL).
uint8_t GetHopLimit (void) const
 Get the "Hop limit" field (TTL).
void SetSourceAddress (Ipv6Address src)
 Set the "Source address" field.
Ipv6Address GetSourceAddress (void) const
 Get the "Source address" field.
void SetDestinationAddress (Ipv6Address dst)
 Set the "Destination address" field.
Ipv6Address GetDestinationAddress (void) const
 Get the "Destination address" field.
virtual void Print (std::ostream &os) const
 Print some informations about the packet.
virtual uint32_t GetSerializedSize (void) const
 Get the serialized size of the packet.
virtual void Serialize (Buffer::Iterator start) const
 Serialize the packet.
virtual uint32_t Deserialize (Buffer::Iterator start)
 Deserialize the packet.

Static Public Member Functions

static TypeId GetTypeId (void)
 Get the type identifier.

Detailed Description

Packet header for IPv6.


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.

References GetSerializedSize(), NS_ASSERT, ns3::Buffer::Iterator::ReadNtohU16(), ns3::Buffer::Iterator::ReadNtohU32(), and ns3::Buffer::Iterator::ReadU8().

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

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

Get the "Flow label" field.

Returns:
the flow label value
uint8_t ns3::Ipv6Header::GetHopLimit ( void  ) const

Get the "Hop limit" field (TTL).

Returns:
the hop limit value

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

TypeId ns3::Ipv6Header::GetInstanceTypeId ( void  ) const [virtual]

Return the instance type identifier.

Returns:
instance type ID

Implements ns3::ObjectBase.

References GetTypeId().

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

Get the next header.

Returns:
the next header number

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

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

Get the "Payload length" field.

Returns:
the payload length

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

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

Get the serialized size of the packet.

Returns:
size

Implements ns3::Header.

Referenced by Deserialize(), ns3::Ipv6ExtensionFragment::GetFragments(), and ns3::Ipv6ExtensionLooseRouting::Process().

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

Get the "Traffic class" field.

Returns:
the traffic value
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.

References ns3::TypeId::SetParent().

Referenced by GetInstanceTypeId().

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.

Set the "Destination address" field.

Parameters:
dstthe destination address

Referenced by Ipv6Header(), ns3::Ipv6ExtensionLooseRouting::Process(), and ns3::Ipv6RawSocketImpl::SendTo().

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

Set the "Flow label" field.

Parameters:
flowthe 20-bit value
void ns3::Ipv6Header::SetHopLimit ( uint8_t  limit)

Set the "Hop limit" field (TTL).

Parameters:
limitthe 8-bit value

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

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

Set the "Next header" field.

Parameters:
nextthe next header number

Referenced by ns3::Ipv6ExtensionFragment::GetFragments().

void ns3::Ipv6Header::SetPayloadLength ( uint16_t  len)

Set the "Payload length" field.

Parameters:
lenthe length of the payload in bytes

Referenced by ns3::Ipv6ExtensionFragment::GetFragments().

Set the "Source address" field.

Parameters:
srcthe source address

Referenced by Ipv6Header().

void ns3::Ipv6Header::SetTrafficClass ( uint8_t  traffic)

Set the "Traffic class" field.

Parameters:
trafficthe 8-bit value

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