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 ()
 
- Public Member Functions inherited from ns3::Chunk
virtual uint32_t Deserialize (Buffer::Iterator start, Buffer::Iterator end)
 Deserialize the object from a buffer iterator. 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...
 
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 960 of file sixlowpan-header.h.

Member Enumeration Documentation

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 976 of file sixlowpan-header.h.

Constructor & Destructor Documentation

ns3::SixLowPanNhcExtension::SixLowPanNhcExtension ( void  )

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

Member Function Documentation

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 1596 of file sixlowpan-header.cc.

References NS_ASSERT_MSG().

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

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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 1536 of file sixlowpan-header.cc.

References ns3::SixLowPanFragN::GetSerializedSize(), ns3::Buffer::Iterator::Read(), ns3::Buffer::Iterator::ReadU8(), and visualizer.core::start().

+ Here is the call graph for this function:

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

Get the Extension Header Type.

Returns
The Extension Header Type.

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

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

+ Here is the caller graph for this function:

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

Return the instance type identifier.

Returns
Instance type ID.

Implements ns3::ObjectBase.

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

References ns3::SixLowPanFragN::GetTypeId().

+ Here is the call graph for this function:

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

Get the Next Header field value.

Returns
The Next Header field value.

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

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

+ Here is the caller graph for this function:

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

Get the Next Header field value.

Returns
The NH field value.

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

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

+ Here is the caller graph for this function:

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

Get the NhcDispatch type.

Returns
The NhcDispatch type.

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

References ns3::SixLowPanDispatch::LOWPAN_NHC.

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

Get the serialized size of the packet.

Returns
Size.

Implements ns3::Header.

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

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

+ Here is the caller graph for this function:

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

Get the type ID.

Returns
The object TypeId.

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

References ns3::TypeId::SetParent().

+ Here is the call graph for this function:

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 1509 of file sixlowpan-header.cc.

References ns3::SixLowPanFragN::GetSerializedSize().

Referenced by ns3::operator<<().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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

Serialize the packet.

Parameters
[in]startBuffer iterator.

Implements ns3::Header.

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

References visualizer.core::start(), ns3::Buffer::Iterator::Write(), and ns3::Buffer::Iterator::WriteU8().

+ Here is the call graph for this function:

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 1588 of file sixlowpan-header.cc.

References NS_ASSERT_MSG().

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

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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

Set the Extension Header Type.

Parameters
[in]extensionHeaderTypeThe Extension Header Type.

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

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

+ Here is the caller graph for this function:

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

Set the Next Header field values.

Parameters
[in]nextHeaderThe Next Header field value.

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

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

+ Here is the caller graph for this function:

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

Set the NH field values.

Parameters
[in]nhFieldThe NH field value.

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

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

+ Here is the caller graph for this function:

Member Data Documentation

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

NHC compressed header.

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

uint8_t ns3::SixLowPanNhcExtension::m_nhcBlobLength
private

Length of the NHC compressed header.

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

uint8_t ns3::SixLowPanNhcExtension::m_nhcExtensionHeader
private

NHC extension header type.

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

uint8_t ns3::SixLowPanNhcExtension::m_nhcNextHeader
private

Next header.

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


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