6LoWPAN HC1 header - see RFC 4944. More...
#include "sixlowpan-header.h"
Public Types | |
enum | LowPanHc1Addr_e { HC1_PIII = 0x00 , HC1_PIIC = 0x01 , HC1_PCII = 0x02 , HC1_PCIC = 0x03 } |
Kind of address compression. More... | |
enum | LowPanHc1NextHeader_e { HC1_NC = 0x00 , HC1_UDP = 0x01 , HC1_ICMP = 0x02 , HC1_TCP = 0x03 } |
Next header information. More... | |
Public Member Functions | |
SixLowPanHc1 () | |
uint32_t | Deserialize (Buffer::Iterator start) override |
Deserialize the packet. | |
LowPanHc1Addr_e | GetDstCompression () const |
Get Destination Compression type. | |
const uint8_t * | GetDstInterface () const |
Get the destination interface. | |
const uint8_t * | GetDstPrefix () const |
Get the destination prefix. | |
uint32_t | GetFlowLabel () const |
Get the Flow Label value. | |
uint8_t | GetHopLimit () const |
Get the "Hop limit" field (TTL). | |
TypeId | GetInstanceTypeId () const override |
Return the instance type identifier. | |
uint8_t | GetNextHeader () const |
Get the Next Header value. | |
uint32_t | GetSerializedSize () const override |
Get the serialized size of the packet. | |
LowPanHc1Addr_e | GetSrcCompression () const |
Get Source Compression type. | |
const uint8_t * | GetSrcInterface () const |
Get the source interface. | |
const uint8_t * | GetSrcPrefix () const |
Get the source prefix. | |
uint8_t | GetTrafficClass () const |
Get the Traffic Class value. | |
bool | IsHc2HeaderPresent () const |
Check if there is a HC2 compressed header. | |
bool | IsTcflCompression () const |
Check if the Traffic Class and Flow Labels are compressed. | |
void | Print (std::ostream &os) const override |
void | Serialize (Buffer::Iterator start) const override |
Serialize the packet. | |
void | SetDstCompression (LowPanHc1Addr_e dstCompression) |
Set Destination Compression type. | |
void | SetDstInterface (const uint8_t *dstInterface) |
Set the destination interface. | |
void | SetDstPrefix (const uint8_t *dstPrefix) |
Set the destination prefix. | |
void | SetFlowLabel (uint32_t flowLabel) |
Set the Flow Label value. | |
void | SetHc2HeaderPresent (bool hc2HeaderPresent) |
Set the next header a HC2 compressed header. | |
void | SetHopLimit (uint8_t limit) |
Set the "Hop limit" field (TTL). | |
void | SetNextHeader (uint8_t nextHeader) |
Set the Next Header value. | |
void | SetSrcCompression (LowPanHc1Addr_e srcCompression) |
Set Source Compression type. | |
void | SetSrcInterface (const uint8_t *srcInterface) |
Set the source interface. | |
void | SetSrcPrefix (const uint8_t *srcPrefix) |
Set the source prefix. | |
void | SetTcflCompression (bool tcflCompression) |
Set the Traffic Class and Flow Labels as compressed. | |
void | SetTrafficClass (uint8_t trafficClass) |
Set the Traffic Class value. | |
Public Member Functions inherited from ns3::Header | |
~Header () override | |
uint32_t | Deserialize (Buffer::Iterator start) override=0 |
virtual uint32_t | Deserialize (Buffer::Iterator start)=0 |
Deserialize the object from a buffer iterator. | |
virtual uint32_t | Deserialize (Buffer::Iterator start, Buffer::Iterator end) |
Deserialize the object from a buffer iterator. | |
virtual uint32_t | GetSerializedSize () const =0 |
void | Print (std::ostream &os) const override=0 |
virtual void | Serialize (Buffer::Iterator start) const =0 |
virtual uint32_t | Deserialize (Buffer::Iterator start)=0 |
Deserialize the object from a buffer iterator. | |
virtual uint32_t | Deserialize (Buffer::Iterator start, Buffer::Iterator end) |
Deserialize the object from a buffer iterator. | |
virtual void | Print (std::ostream &os) const =0 |
Print the object contents. | |
Public Member Functions inherited from ns3::ObjectBase | |
virtual | ~ObjectBase () |
Virtual destructor. | |
void | GetAttribute (std::string name, AttributeValue &value) const |
Get the value of an attribute, raising fatal errors if unsuccessful. | |
bool | GetAttributeFailSafe (std::string name, AttributeValue &value) const |
Get the value of an attribute without raising errors. | |
virtual TypeId | GetInstanceTypeId () const =0 |
Get the most derived TypeId for this Object. | |
void | SetAttribute (std::string name, const AttributeValue &value) |
Set a single attribute, raising fatal errors if unsuccessful. | |
bool | SetAttributeFailSafe (std::string name, const AttributeValue &value) |
Set a single attribute without raising errors. | |
bool | TraceConnect (std::string name, std::string context, const CallbackBase &cb) |
Connect a TraceSource to a Callback with a context. | |
bool | TraceConnectWithoutContext (std::string name, const CallbackBase &cb) |
Connect a TraceSource to a Callback without a context. | |
bool | TraceDisconnect (std::string name, std::string context, const CallbackBase &cb) |
Disconnect from a TraceSource a Callback previously connected with a context. | |
bool | TraceDisconnectWithoutContext (std::string name, const CallbackBase &cb) |
Disconnect from a TraceSource a Callback previously connected without a context. | |
Static Public Member Functions | |
static TypeId | GetTypeId () |
Get the type ID. | |
Static Public Member Functions inherited from ns3::Header | |
static TypeId | GetTypeId () |
Get the type ID. | |
Static Public Member Functions inherited from ns3::Chunk | |
static TypeId | GetTypeId () |
Get the type ID. | |
Static Public Member Functions inherited from ns3::ObjectBase | |
static TypeId | GetTypeId () |
Get the type ID. | |
Private Attributes | |
LowPanHc1Addr_e | m_dstCompression |
Destination compression type. | |
uint8_t | m_dstInterface [8] |
Destination interface. | |
uint8_t | m_dstPrefix [8] |
Destination prefix. | |
uint32_t | m_flowLabel |
Flow Label. | |
bool | m_hc2HeaderPresent |
Is next header HC2 compressed. | |
uint8_t | m_hopLimit |
Hop Limit. | |
uint8_t | m_nextHeader |
Next header. | |
LowPanHc1NextHeader_e | m_nextHeaderCompression |
Next header compression. | |
LowPanHc1Addr_e | m_srcCompression |
Source compression type. | |
uint8_t | m_srcInterface [8] |
Source interface. | |
uint8_t | m_srcPrefix [8] |
Source prefix. | |
bool | m_tcflCompression |
Is TC and FL compressed. | |
uint8_t | m_trafficClass |
Traffic Class. | |
Additional Inherited Members | |
Protected Member Functions inherited from ns3::ObjectBase | |
void | ConstructSelf (const AttributeConstructionList &attributes) |
Complete construction of ObjectBase; invoked by derived classes. | |
virtual void | NotifyConstructionCompleted () |
Notifier called once the ObjectBase is fully constructed. | |
Related Functions inherited from ns3::ObjectBase | |
static TypeId | GetObjectIid () |
Ensure the TypeId for ObjectBase gets fully configured to anchor the inheritance tree properly. | |
6LoWPAN HC1 header - see RFC 4944.
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 72 bytes (on a 64-bit architecture).
Definition at line 130 of file sixlowpan-header.h.
Kind of address compression.
The address compression is handled in 4 bits and might mean: PI: Prefix inline, PC: Prefix Compressed, II: Interface Identifier, Inline, IC: Interface Identifier Compressed.
Enumerator | |
---|---|
HC1_PIII | |
HC1_PIIC | |
HC1_PCII | |
HC1_PCIC |
Definition at line 140 of file sixlowpan-header.h.
Next header information.
The Next header compression is handled in 4 bits and might mean: NC: Not Compressed, UDP, ICMP or TCP.
Enumerator | |
---|---|
HC1_NC | |
HC1_UDP | |
HC1_ICMP | |
HC1_TCP |
Definition at line 154 of file sixlowpan-header.h.
ns3::SixLowPanHc1::SixLowPanHc1 | ( | ) |
Definition at line 98 of file sixlowpan-header.cc.
|
overridevirtual |
Deserialize the packet.
[in] | start | Buffer iterator. |
Implements ns3::Header.
Definition at line 276 of file sixlowpan-header.cc.
References GetSerializedSize(), HC1_ICMP, HC1_NC, HC1_PCIC, HC1_PCII, HC1_PIIC, HC1_PIII, HC1_TCP, HC1_UDP, ns3::Ipv6Header::IPV6_ICMPV6, ns3::Ipv6Header::IPV6_TCP, ns3::Ipv6Header::IPV6_UDP, ns3::SixLowPanDispatch::LOWPAN_HC1, m_dstCompression, m_dstInterface, m_dstPrefix, m_flowLabel, m_hc2HeaderPresent, m_hopLimit, m_nextHeader, m_nextHeaderCompression, m_srcCompression, m_srcInterface, m_srcPrefix, m_tcflCompression, m_trafficClass, NS_ASSERT_MSG, ns3::Buffer::Iterator::Read(), and ns3::Buffer::Iterator::ReadU8().
SixLowPanHc1::LowPanHc1Addr_e ns3::SixLowPanHc1::GetDstCompression | ( | ) | const |
Get Destination Compression type.
Definition at line 394 of file sixlowpan-header.cc.
References m_dstCompression.
Referenced by ns3::SixLowPanNetDevice::DecompressLowPanHc1().
const uint8_t * ns3::SixLowPanHc1::GetDstInterface | ( | ) | const |
Get the destination interface.
Definition at line 400 of file sixlowpan-header.cc.
References m_dstInterface.
const uint8_t * ns3::SixLowPanHc1::GetDstPrefix | ( | ) | const |
Get the destination prefix.
Definition at line 406 of file sixlowpan-header.cc.
References m_dstPrefix.
Referenced by ns3::SixLowPanNetDevice::DecompressLowPanHc1().
uint32_t ns3::SixLowPanHc1::GetFlowLabel | ( | ) | const |
Get the Flow Label value.
Definition at line 412 of file sixlowpan-header.cc.
References m_flowLabel.
Referenced by ns3::SixLowPanNetDevice::DecompressLowPanHc1().
uint8_t ns3::SixLowPanHc1::GetHopLimit | ( | ) | const |
Get the "Hop limit" field (TTL).
Definition at line 388 of file sixlowpan-header.cc.
References m_hopLimit.
Referenced by ns3::SixLowPanNetDevice::DecompressLowPanHc1().
|
overridevirtual |
Return the instance type identifier.
Implements ns3::ObjectBase.
Definition at line 114 of file sixlowpan-header.cc.
References GetTypeId().
uint8_t ns3::SixLowPanHc1::GetNextHeader | ( | ) | const |
Get the Next Header value.
Definition at line 418 of file sixlowpan-header.cc.
References m_nextHeader.
Referenced by ns3::SixLowPanNetDevice::DecompressLowPanHc1().
|
overridevirtual |
Get the serialized size of the packet.
Implements ns3::Header.
Definition at line 137 of file sixlowpan-header.cc.
References HC1_NC, HC1_PCIC, HC1_PCII, HC1_PIIC, HC1_PIII, m_dstCompression, m_nextHeaderCompression, m_srcCompression, and m_tcflCompression.
Referenced by ns3::SixLowPanNetDevice::CompressLowPanHc1(), and Deserialize().
SixLowPanHc1::LowPanHc1Addr_e ns3::SixLowPanHc1::GetSrcCompression | ( | ) | const |
Get Source Compression type.
Definition at line 424 of file sixlowpan-header.cc.
References m_srcCompression.
Referenced by ns3::SixLowPanNetDevice::DecompressLowPanHc1().
const uint8_t * ns3::SixLowPanHc1::GetSrcInterface | ( | ) | const |
Get the source interface.
Definition at line 430 of file sixlowpan-header.cc.
References m_srcInterface.
const uint8_t * ns3::SixLowPanHc1::GetSrcPrefix | ( | ) | const |
Get the source prefix.
Definition at line 436 of file sixlowpan-header.cc.
References m_srcPrefix.
Referenced by ns3::SixLowPanNetDevice::DecompressLowPanHc1().
uint8_t ns3::SixLowPanHc1::GetTrafficClass | ( | ) | const |
Get the Traffic Class value.
Definition at line 442 of file sixlowpan-header.cc.
References m_trafficClass.
Referenced by ns3::SixLowPanNetDevice::DecompressLowPanHc1().
|
static |
Get the type ID.
Definition at line 104 of file sixlowpan-header.cc.
References ns3::TypeId::SetParent().
Referenced by GetInstanceTypeId().
bool ns3::SixLowPanHc1::IsHc2HeaderPresent | ( | ) | const |
Check if there is a HC2 compressed header.
Definition at line 454 of file sixlowpan-header.cc.
References m_hc2HeaderPresent.
Referenced by ns3::SixLowPanNetDevice::DecompressLowPanHc1().
bool ns3::SixLowPanHc1::IsTcflCompression | ( | ) | const |
Check if the Traffic Class and Flow Labels are compressed.
Definition at line 448 of file sixlowpan-header.cc.
References m_tcflCompression.
Referenced by ns3::SixLowPanNetDevice::DecompressLowPanHc1().
|
overridevirtual |
os | output 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 120 of file sixlowpan-header.cc.
References m_dstCompression, m_hc2HeaderPresent, m_hopLimit, m_nextHeaderCompression, m_srcCompression, and m_tcflCompression.
Referenced by ns3::operator<<().
|
overridevirtual |
Serialize the packet.
[in] | start | Buffer iterator. |
Implements ns3::Header.
Definition at line 184 of file sixlowpan-header.cc.
References HC1_NC, HC1_PCIC, HC1_PCII, HC1_PIIC, HC1_PIII, ns3::SixLowPanDispatch::LOWPAN_HC1, m_dstCompression, m_dstInterface, m_dstPrefix, m_flowLabel, m_hc2HeaderPresent, m_hopLimit, m_nextHeader, m_nextHeaderCompression, m_srcCompression, m_srcInterface, m_srcPrefix, m_tcflCompression, m_trafficClass, NS_ASSERT_MSG, ns3::Buffer::Iterator::Write(), and ns3::Buffer::Iterator::WriteU8().
void ns3::SixLowPanHc1::SetDstCompression | ( | LowPanHc1Addr_e | dstCompression | ) |
Set Destination Compression type.
[in] | dstCompression | The kind of address compression. |
Definition at line 460 of file sixlowpan-header.cc.
References m_dstCompression.
Referenced by ns3::SixLowPanNetDevice::CompressLowPanHc1().
void ns3::SixLowPanHc1::SetDstInterface | ( | const uint8_t * | dstInterface | ) |
Set the destination interface.
[in] | dstInterface | The destination interface. |
Definition at line 466 of file sixlowpan-header.cc.
References m_dstInterface.
Referenced by ns3::SixLowPanNetDevice::CompressLowPanHc1().
void ns3::SixLowPanHc1::SetDstPrefix | ( | const uint8_t * | dstPrefix | ) |
Set the destination prefix.
[in] | dstPrefix | The destination prefix. |
Definition at line 475 of file sixlowpan-header.cc.
References m_dstPrefix.
Referenced by ns3::SixLowPanNetDevice::CompressLowPanHc1().
void ns3::SixLowPanHc1::SetFlowLabel | ( | uint32_t | flowLabel | ) |
Set the Flow Label value.
[in] | flowLabel | The Flow Label. |
Definition at line 484 of file sixlowpan-header.cc.
References m_flowLabel.
Referenced by ns3::SixLowPanNetDevice::CompressLowPanHc1().
void ns3::SixLowPanHc1::SetHc2HeaderPresent | ( | bool | hc2HeaderPresent | ) |
Set the next header a HC2 compressed header.
[in] | hc2HeaderPresent | True if next header is HC2 compressed. |
Definition at line 548 of file sixlowpan-header.cc.
References m_hc2HeaderPresent.
Referenced by ns3::SixLowPanNetDevice::CompressLowPanHc1().
void ns3::SixLowPanHc1::SetHopLimit | ( | uint8_t | limit | ) |
Set the "Hop limit" field (TTL).
[in] | limit | The hop limit value. |
Definition at line 382 of file sixlowpan-header.cc.
References m_hopLimit.
Referenced by ns3::SixLowPanNetDevice::CompressLowPanHc1().
void ns3::SixLowPanHc1::SetNextHeader | ( | uint8_t | nextHeader | ) |
Set the Next Header value.
[in] | nextHeader | The Next Header value. |
Definition at line 490 of file sixlowpan-header.cc.
References HC1_ICMP, HC1_NC, HC1_TCP, HC1_UDP, ns3::Ipv6Header::IPV6_ICMPV6, ns3::Ipv6Header::IPV6_TCP, ns3::Ipv6Header::IPV6_UDP, m_nextHeader, and m_nextHeaderCompression.
Referenced by ns3::SixLowPanNetDevice::CompressLowPanHc1().
void ns3::SixLowPanHc1::SetSrcCompression | ( | LowPanHc1Addr_e | srcCompression | ) |
Set Source Compression type.
[in] | srcCompression | The kind of address compression. |
Definition at line 512 of file sixlowpan-header.cc.
References m_srcCompression.
Referenced by ns3::SixLowPanNetDevice::CompressLowPanHc1().
void ns3::SixLowPanHc1::SetSrcInterface | ( | const uint8_t * | srcInterface | ) |
Set the source interface.
[in] | srcInterface | The source interface. |
Definition at line 518 of file sixlowpan-header.cc.
References m_srcInterface.
Referenced by ns3::SixLowPanNetDevice::CompressLowPanHc1().
void ns3::SixLowPanHc1::SetSrcPrefix | ( | const uint8_t * | srcPrefix | ) |
Set the source prefix.
[in] | srcPrefix | The source prefix. |
Definition at line 527 of file sixlowpan-header.cc.
References m_srcPrefix.
Referenced by ns3::SixLowPanNetDevice::CompressLowPanHc1().
void ns3::SixLowPanHc1::SetTcflCompression | ( | bool | tcflCompression | ) |
Set the Traffic Class and Flow Labels as compressed.
[in] | tcflCompression | True if TC and FL are compressed. |
Definition at line 536 of file sixlowpan-header.cc.
References m_tcflCompression.
Referenced by ns3::SixLowPanNetDevice::CompressLowPanHc1().
void ns3::SixLowPanHc1::SetTrafficClass | ( | uint8_t | trafficClass | ) |
Set the Traffic Class value.
[in] | trafficClass | The Traffic Class value. |
Definition at line 542 of file sixlowpan-header.cc.
References m_trafficClass.
Referenced by ns3::SixLowPanNetDevice::CompressLowPanHc1().
|
private |
Destination compression type.
Definition at line 352 of file sixlowpan-header.h.
Referenced by Deserialize(), GetDstCompression(), GetSerializedSize(), Print(), Serialize(), and SetDstCompression().
|
private |
Destination interface.
Definition at line 347 of file sixlowpan-header.h.
Referenced by Deserialize(), GetDstInterface(), Serialize(), and SetDstInterface().
|
private |
Destination prefix.
Definition at line 346 of file sixlowpan-header.h.
Referenced by Deserialize(), GetDstPrefix(), Serialize(), and SetDstPrefix().
|
private |
Flow Label.
Definition at line 349 of file sixlowpan-header.h.
Referenced by Deserialize(), GetFlowLabel(), Serialize(), and SetFlowLabel().
|
private |
Is next header HC2 compressed.
Definition at line 355 of file sixlowpan-header.h.
Referenced by Deserialize(), IsHc2HeaderPresent(), Print(), Serialize(), and SetHc2HeaderPresent().
|
private |
Hop Limit.
Definition at line 343 of file sixlowpan-header.h.
Referenced by Deserialize(), GetHopLimit(), Print(), Serialize(), and SetHopLimit().
|
private |
Next header.
Definition at line 350 of file sixlowpan-header.h.
Referenced by Deserialize(), GetNextHeader(), Serialize(), and SetNextHeader().
|
private |
Next header compression.
Definition at line 354 of file sixlowpan-header.h.
Referenced by Deserialize(), GetSerializedSize(), Print(), Serialize(), and SetNextHeader().
|
private |
Source compression type.
Definition at line 351 of file sixlowpan-header.h.
Referenced by Deserialize(), GetSerializedSize(), GetSrcCompression(), Print(), Serialize(), and SetSrcCompression().
|
private |
Source interface.
Definition at line 345 of file sixlowpan-header.h.
Referenced by Deserialize(), GetSrcInterface(), Serialize(), and SetSrcInterface().
|
private |
Source prefix.
Definition at line 344 of file sixlowpan-header.h.
Referenced by Deserialize(), GetSrcPrefix(), Serialize(), and SetSrcPrefix().
|
private |
Is TC and FL compressed.
Definition at line 353 of file sixlowpan-header.h.
Referenced by Deserialize(), GetSerializedSize(), IsTcflCompression(), Print(), Serialize(), and SetTcflCompression().
|
private |
Traffic Class.
Definition at line 348 of file sixlowpan-header.h.
Referenced by Deserialize(), GetTrafficClass(), Serialize(), and SetTrafficClass().