A Discrete-Event Network Simulator
API
ns3::SixLowPanNhcExtension Class Reference

LOWPAN_NHC Extension Header Encoding - see RFC 6282. More...

#include "sixlowpan-header.h"

+ Inheritance diagram for ns3::SixLowPanNhcExtension:
+ Collaboration diagram for ns3::SixLowPanNhcExtension:

Public Types

enum  Eid_e {
  EID_HOPBYHOP_OPTIONS_H = 0 , EID_ROUTING_H , EID_FRAGMENTATION_H , EID_DESTINATION_OPTIONS_H ,
  EID_MOBILITY_H , EID_IPv6_H = 7
}
 EID: IPv6 Extension Header ID. More...
 

Public Member Functions

 SixLowPanNhcExtension (void)
 
uint32_t CopyBlob (uint8_t *blob, uint32_t size) const
 Get the option header data blob. More...
 
virtual uint32_t Deserialize (Buffer::Iterator start)
 Deserialize the packet. More...
 
Eid_e GetEid (void) const
 Get the Extension Header Type. More...
 
virtual TypeId GetInstanceTypeId (void) const
 Return the instance type identifier. More...
 
uint8_t GetNextHeader (void) const
 Get the Next Header field value. More...
 
bool GetNh (void) const
 Get the Next Header field value. More...
 
virtual SixLowPanDispatch::NhcDispatch_e GetNhcDispatchType (void) const
 Get the NhcDispatch type. More...
 
virtual uint32_t GetSerializedSize (void) const
 Get the serialized size of the packet. More...
 
virtual void Print (std::ostream &os) const
 
virtual void Serialize (Buffer::Iterator start) const
 Serialize the packet. More...
 
void SetBlob (const uint8_t *blob, uint32_t size)
 Set the option header data blob. More...
 
void SetEid (Eid_e extensionHeaderType)
 Set the Extension Header Type. More...
 
void SetNextHeader (uint8_t nextHeader)
 Set the Next Header field values. More...
 
void SetNh (bool nhField)
 Set the NH field values. More...
 
- Public Member Functions inherited from ns3::Header
virtual ~Header ()
 
virtual uint32_t Deserialize (Buffer::Iterator start)=0
 Deserialize the object from a buffer iterator. More...
 
virtual uint32_t Deserialize (Buffer::Iterator start)=0
 
virtual uint32_t Deserialize (Buffer::Iterator start, Buffer::Iterator end)
 Deserialize the object from a buffer iterator. More...
 
virtual uint32_t GetSerializedSize (void) const =0
 
virtual void Print (std::ostream &os) const =0
 
virtual void Serialize (Buffer::Iterator start) const =0
 
virtual uint32_t Deserialize (Buffer::Iterator start)=0
 Deserialize the object from a buffer iterator. More...
 
virtual uint32_t Deserialize (Buffer::Iterator start, Buffer::Iterator end)
 Deserialize the object from a buffer iterator. More...
 
virtual void Print (std::ostream &os) const =0
 Print the object contents. More...
 
- 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...
 
virtual TypeId GetInstanceTypeId (void) const =0
 Get the most derived TypeId for this Object. 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 ID. 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

uint8_t m_nhcBlob [256]
 NHC compressed header. More...
 
uint8_t m_nhcBlobLength
 Length of the NHC compressed header. More...
 
uint8_t m_nhcExtensionHeader
 NHC extension header type. More...
 
uint8_t m_nhcNextHeader
 Next header. 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

LOWPAN_NHC Extension Header Encoding - see RFC 6282.

Introspection did not find any typical Config paths.

   0   1   2   3   4   5   6   7
 +---+---+---+---+---+---+---+---+
 | 1 | 1 | 1 | 0 |    EID    |NH |
 +---+---+---+---+---+---+---+---+


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

Definition at line 949 of file sixlowpan-header.h.

Member Enumeration Documentation

◆ Eid_e

EID: IPv6 Extension Header ID.

EID: IPv6 Extension Header ID: 0: IPv6 Hop-by-Hop Options Header [RFC 2460] 1: IPv6 Routing Header [RFC 2460] 2: IPv6 Fragment Header [RFC 2460] 3: IPv6 Destination Options Header [RFC 2460] 4: IPv6 Mobility Header [RFC 6275] 5: Reserved 6: Reserved 7: IPv6 Header

Enumerator
EID_HOPBYHOP_OPTIONS_H 
EID_ROUTING_H 
EID_FRAGMENTATION_H 
EID_DESTINATION_OPTIONS_H 
EID_MOBILITY_H 
EID_IPv6_H 

Definition at line 965 of file sixlowpan-header.h.

Constructor & Destructor Documentation

◆ SixLowPanNhcExtension()

ns3::SixLowPanNhcExtension::SixLowPanNhcExtension ( void  )

Definition at line 1433 of file sixlowpan-header.cc.

References m_nhcBlobLength, m_nhcExtensionHeader, and m_nhcNextHeader.

Member Function Documentation

◆ CopyBlob()

uint32_t ns3::SixLowPanNhcExtension::CopyBlob ( uint8_t *  blob,
uint32_t  size 
) const

Get the option header data blob.

Parameters
[in]blobA buffer to copy the blob data into.
[in]sizeThe size of the buffer.
Returns
The length of the copied data.

Definition at line 1542 of file sixlowpan-header.cc.

References m_nhcBlob, m_nhcBlobLength, and NS_ASSERT_MSG.

Referenced by ns3::SixLowPanNetDevice::DecompressLowPanNhc().

+ Here is the caller graph for this function:

◆ Deserialize()

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

Deserialize the packet.

Parameters
[in]startBuffer iterator.
Returns
Size of the packet.

Implements ns3::Header.

Definition at line 1482 of file sixlowpan-header.cc.

References GetNh(), GetSerializedSize(), m_nhcBlob, m_nhcBlobLength, m_nhcExtensionHeader, m_nhcNextHeader, ns3::Buffer::Iterator::Read(), ns3::Buffer::Iterator::ReadU8(), and visualizer.core::start().

+ Here is the call graph for this function:

◆ GetEid()

SixLowPanNhcExtension::Eid_e ns3::SixLowPanNhcExtension::GetEid ( void  ) const

Get the Extension Header Type.

Returns
The Extension Header Type.

Definition at line 1508 of file sixlowpan-header.cc.

References m_nhcExtensionHeader.

Referenced by ns3::SixLowPanNetDevice::DecompressLowPanNhc().

+ Here is the caller graph for this function:

◆ GetInstanceTypeId()

TypeId ns3::SixLowPanNhcExtension::GetInstanceTypeId ( void  ) const
virtual

Return the instance type identifier.

Returns
Instance type ID.

Implements ns3::ObjectBase.

Definition at line 1450 of file sixlowpan-header.cc.

References GetTypeId().

+ Here is the call graph for this function:

◆ GetNextHeader()

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

Get the Next Header field value.

Returns
The Next Header field value.

Definition at line 1518 of file sixlowpan-header.cc.

References m_nhcNextHeader.

Referenced by ns3::SixLowPanNetDevice::DecompressLowPanNhc().

+ Here is the caller graph for this function:

◆ GetNh()

bool ns3::SixLowPanNhcExtension::GetNh ( void  ) const

Get the Next Header field value.

Returns
The NH field value.

Definition at line 1529 of file sixlowpan-header.cc.

References m_nhcExtensionHeader.

Referenced by ns3::SixLowPanNetDevice::DecompressLowPanNhc(), Deserialize(), GetSerializedSize(), and Serialize().

+ Here is the caller graph for this function:

◆ GetNhcDispatchType()

SixLowPanDispatch::NhcDispatch_e ns3::SixLowPanNhcExtension::GetNhcDispatchType ( void  ) const
virtual

Get the NhcDispatch type.

Returns
The NhcDispatch type.

Definition at line 1497 of file sixlowpan-header.cc.

References ns3::SixLowPanDispatch::LOWPAN_NHC.

◆ GetSerializedSize()

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

Get the serialized size of the packet.

Returns
Size.

Implements ns3::Header.

Definition at line 1460 of file sixlowpan-header.cc.

References GetNh(), and m_nhcBlobLength.

Referenced by ns3::SixLowPanNetDevice::CompressLowPanNhc(), Deserialize(), and Print().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetTypeId()

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

Get the type ID.

Returns
The object TypeId.

Definition at line 1441 of file sixlowpan-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:

◆ Print()

void ns3::SixLowPanNhcExtension::Print ( std::ostream &  os) const
virtual
Parameters
osoutput stream This method is used by Packet::Print to print the content of a header as ascii data to a c++ output stream. Although the header is free to format its output as it wishes, it is recommended to follow a few rules to integrate with the packet pretty printer: start with flags, small field values located between a pair of parens. Values should be separated by whitespace. Follow the parens with the important fields, separated by whitespace. i.e.: (field1 val1 field2 val2 field3 val3) field4 val4 field5 val5

Implements ns3::Header.

Definition at line 1455 of file sixlowpan-header.cc.

References GetSerializedSize(), and m_nhcExtensionHeader.

Referenced by ns3::operator<<().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ Serialize()

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

Serialize the packet.

Parameters
[in]startBuffer iterator.

Implements ns3::Header.

Definition at line 1470 of file sixlowpan-header.cc.

References GetNh(), m_nhcBlob, m_nhcBlobLength, m_nhcExtensionHeader, m_nhcNextHeader, visualizer.core::start(), ns3::Buffer::Iterator::Write(), and ns3::Buffer::Iterator::WriteU8().

+ Here is the call graph for this function:

◆ SetBlob()

void ns3::SixLowPanNhcExtension::SetBlob ( const uint8_t *  blob,
uint32_t  size 
)

Set the option header data blob.

Parameters
[in]blobA buffer holding the blob data.
[in]sizeThe data blob size.

Definition at line 1534 of file sixlowpan-header.cc.

References m_nhcBlob, m_nhcBlobLength, and NS_ASSERT_MSG.

Referenced by ns3::SixLowPanNetDevice::CompressLowPanNhc().

+ Here is the caller graph for this function:

◆ SetEid()

void ns3::SixLowPanNhcExtension::SetEid ( Eid_e  extensionHeaderType)

Set the Extension Header Type.

Parameters
[in]extensionHeaderTypeThe Extension Header Type.

Definition at line 1502 of file sixlowpan-header.cc.

References m_nhcExtensionHeader.

Referenced by ns3::SixLowPanNetDevice::CompressLowPanNhc().

+ Here is the caller graph for this function:

◆ SetNextHeader()

void ns3::SixLowPanNhcExtension::SetNextHeader ( uint8_t  nextHeader)

Set the Next Header field values.

Parameters
[in]nextHeaderThe Next Header field value.

Definition at line 1513 of file sixlowpan-header.cc.

References m_nhcNextHeader.

Referenced by ns3::SixLowPanNetDevice::CompressLowPanNhc().

+ Here is the caller graph for this function:

◆ SetNh()

void ns3::SixLowPanNhcExtension::SetNh ( bool  nhField)

Set the NH field values.

Parameters
[in]nhFieldThe NH field value.

Definition at line 1523 of file sixlowpan-header.cc.

References m_nhcExtensionHeader.

Referenced by ns3::SixLowPanNetDevice::CompressLowPanNhc().

+ Here is the caller graph for this function:

Member Data Documentation

◆ m_nhcBlob

uint8_t ns3::SixLowPanNhcExtension::m_nhcBlob[256]
private

NHC compressed header.

Definition at line 1071 of file sixlowpan-header.h.

Referenced by CopyBlob(), Deserialize(), Serialize(), and SetBlob().

◆ m_nhcBlobLength

uint8_t ns3::SixLowPanNhcExtension::m_nhcBlobLength
private

Length of the NHC compressed header.

Definition at line 1070 of file sixlowpan-header.h.

Referenced by SixLowPanNhcExtension(), CopyBlob(), Deserialize(), GetSerializedSize(), Serialize(), and SetBlob().

◆ m_nhcExtensionHeader

uint8_t ns3::SixLowPanNhcExtension::m_nhcExtensionHeader
private

NHC extension header type.

Definition at line 1068 of file sixlowpan-header.h.

Referenced by SixLowPanNhcExtension(), Deserialize(), GetEid(), GetNh(), Print(), Serialize(), SetEid(), and SetNh().

◆ m_nhcNextHeader

uint8_t ns3::SixLowPanNhcExtension::m_nhcNextHeader
private

Next header.

Definition at line 1069 of file sixlowpan-header.h.

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


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