6LoWPAN HC1 header - see RFC 4944. More...
#include "sixlowpan-header.h"
Inheritance diagram for ns3::SixLowPanHc1:
Collaboration diagram for ns3::SixLowPanHc1: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 | |
| virtual uint32_t | Deserialize (Buffer::Iterator start, Buffer::Iterator end) |
| Deserialize the object from a buffer iterator. | |
Public Member Functions inherited from ns3::ObjectBase | |
| virtual | ~ObjectBase () |
| Virtual destructor. | |
| void | GetAttribute (std::string name, AttributeValue &value, bool permissive=false) 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. | |
| 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 Symbols 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
Group: SixLowPan
Size of this type is 72 bytes (on a 64-bit architecture).
Definition at line 119 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 129 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 143 of file sixlowpan-header.h.
| ns3::SixLowPanHc1::SixLowPanHc1 | ( | ) |
Definition at line 87 of file sixlowpan-header.cc.
References m_hopLimit.
Referenced by GetTypeId().
Here is the caller graph for this function:
|
overridevirtual |
Deserialize the packet.
| [in] | start | Buffer iterator. |
Implements ns3::Header.
Definition at line 261 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().
Here is the call graph for this function:| SixLowPanHc1::LowPanHc1Addr_e ns3::SixLowPanHc1::GetDstCompression | ( | ) | const |
Get Destination Compression type.
Definition at line 379 of file sixlowpan-header.cc.
References m_dstCompression.
| const uint8_t * ns3::SixLowPanHc1::GetDstInterface | ( | ) | const |
Get the destination interface.
Definition at line 385 of file sixlowpan-header.cc.
References m_dstInterface.
| const uint8_t * ns3::SixLowPanHc1::GetDstPrefix | ( | ) | const |
Get the destination prefix.
Definition at line 391 of file sixlowpan-header.cc.
References m_dstPrefix.
| uint32_t ns3::SixLowPanHc1::GetFlowLabel | ( | ) | const |
Get the Flow Label value.
Definition at line 397 of file sixlowpan-header.cc.
References m_flowLabel.
| uint8_t ns3::SixLowPanHc1::GetHopLimit | ( | ) | const |
Get the "Hop limit" field (TTL).
Definition at line 373 of file sixlowpan-header.cc.
References m_hopLimit.
|
overridevirtual |
Return the instance type identifier.
Implements ns3::ObjectBase.
Definition at line 103 of file sixlowpan-header.cc.
References GetTypeId().
Here is the call graph for this function:| uint8_t ns3::SixLowPanHc1::GetNextHeader | ( | ) | const |
Get the Next Header value.
Definition at line 403 of file sixlowpan-header.cc.
References m_nextHeader.
|
overridevirtual |
Get the serialized size of the packet.
Implements ns3::Header.
Definition at line 126 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().
Here is the caller graph for this function:| SixLowPanHc1::LowPanHc1Addr_e ns3::SixLowPanHc1::GetSrcCompression | ( | ) | const |
Get Source Compression type.
Definition at line 409 of file sixlowpan-header.cc.
References m_srcCompression.
| const uint8_t * ns3::SixLowPanHc1::GetSrcInterface | ( | ) | const |
Get the source interface.
Definition at line 415 of file sixlowpan-header.cc.
References m_srcInterface.
| const uint8_t * ns3::SixLowPanHc1::GetSrcPrefix | ( | ) | const |
Get the source prefix.
Definition at line 421 of file sixlowpan-header.cc.
References m_srcPrefix.
| uint8_t ns3::SixLowPanHc1::GetTrafficClass | ( | ) | const |
Get the Traffic Class value.
Definition at line 427 of file sixlowpan-header.cc.
References m_trafficClass.
|
static |
Get the type ID.
Definition at line 93 of file sixlowpan-header.cc.
References SixLowPanHc1(), and ns3::TypeId::SetParent().
Referenced by GetInstanceTypeId().
Here is the call graph for this function:
Here is the caller graph for this function:| bool ns3::SixLowPanHc1::IsHc2HeaderPresent | ( | ) | const |
Check if there is a HC2 compressed header.
Definition at line 439 of file sixlowpan-header.cc.
References m_hc2HeaderPresent.
| bool ns3::SixLowPanHc1::IsTcflCompression | ( | ) | const |
Check if the Traffic Class and Flow Labels are compressed.
Definition at line 433 of file sixlowpan-header.cc.
References m_tcflCompression.
|
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 109 of file sixlowpan-header.cc.
References m_dstCompression, m_hc2HeaderPresent, m_hopLimit, m_nextHeaderCompression, m_srcCompression, and m_tcflCompression.
Referenced by ns3::operator<<().
Here is the caller graph for this function:
|
overridevirtual |
Serialize the packet.
| [in] | start | Buffer iterator. |
Implements ns3::Header.
Definition at line 169 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().
Here is the call graph for this function:| void ns3::SixLowPanHc1::SetDstCompression | ( | LowPanHc1Addr_e | dstCompression | ) |
Set Destination Compression type.
| [in] | dstCompression | The kind of address compression. |
Definition at line 445 of file sixlowpan-header.cc.
References m_dstCompression.
Referenced by ns3::SixLowPanNetDevice::CompressLowPanHc1().
Here is the caller graph for this function:| void ns3::SixLowPanHc1::SetDstInterface | ( | const uint8_t * | dstInterface | ) |
Set the destination interface.
| [in] | dstInterface | The destination interface. |
Definition at line 451 of file sixlowpan-header.cc.
References m_dstInterface.
Referenced by ns3::SixLowPanNetDevice::CompressLowPanHc1().
Here is the caller graph for this function:| void ns3::SixLowPanHc1::SetDstPrefix | ( | const uint8_t * | dstPrefix | ) |
Set the destination prefix.
| [in] | dstPrefix | The destination prefix. |
Definition at line 460 of file sixlowpan-header.cc.
References m_dstPrefix.
Referenced by ns3::SixLowPanNetDevice::CompressLowPanHc1().
Here is the caller graph for this function:| void ns3::SixLowPanHc1::SetFlowLabel | ( | uint32_t | flowLabel | ) |
Set the Flow Label value.
| [in] | flowLabel | The Flow Label. |
Definition at line 469 of file sixlowpan-header.cc.
References m_flowLabel.
Referenced by ns3::SixLowPanNetDevice::CompressLowPanHc1().
Here is the caller graph for this function:| 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 533 of file sixlowpan-header.cc.
References m_hc2HeaderPresent.
Referenced by ns3::SixLowPanNetDevice::CompressLowPanHc1().
Here is the caller graph for this function:| void ns3::SixLowPanHc1::SetHopLimit | ( | uint8_t | limit | ) |
Set the "Hop limit" field (TTL).
| [in] | limit | The hop limit value. |
Definition at line 367 of file sixlowpan-header.cc.
References m_hopLimit.
Referenced by ns3::SixLowPanNetDevice::CompressLowPanHc1().
Here is the caller graph for this function:| void ns3::SixLowPanHc1::SetNextHeader | ( | uint8_t | nextHeader | ) |
Set the Next Header value.
| [in] | nextHeader | The Next Header value. |
Definition at line 475 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().
Here is the caller graph for this function:| void ns3::SixLowPanHc1::SetSrcCompression | ( | LowPanHc1Addr_e | srcCompression | ) |
Set Source Compression type.
| [in] | srcCompression | The kind of address compression. |
Definition at line 497 of file sixlowpan-header.cc.
References m_srcCompression.
Referenced by ns3::SixLowPanNetDevice::CompressLowPanHc1().
Here is the caller graph for this function:| void ns3::SixLowPanHc1::SetSrcInterface | ( | const uint8_t * | srcInterface | ) |
Set the source interface.
| [in] | srcInterface | The source interface. |
Definition at line 503 of file sixlowpan-header.cc.
References m_srcInterface.
Referenced by ns3::SixLowPanNetDevice::CompressLowPanHc1().
Here is the caller graph for this function:| void ns3::SixLowPanHc1::SetSrcPrefix | ( | const uint8_t * | srcPrefix | ) |
Set the source prefix.
| [in] | srcPrefix | The source prefix. |
Definition at line 512 of file sixlowpan-header.cc.
References m_srcPrefix.
Referenced by ns3::SixLowPanNetDevice::CompressLowPanHc1().
Here is the caller graph for this function:| 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 521 of file sixlowpan-header.cc.
References m_tcflCompression.
Referenced by ns3::SixLowPanNetDevice::CompressLowPanHc1().
Here is the caller graph for this function:| void ns3::SixLowPanHc1::SetTrafficClass | ( | uint8_t | trafficClass | ) |
Set the Traffic Class value.
| [in] | trafficClass | The Traffic Class value. |
Definition at line 527 of file sixlowpan-header.cc.
References m_trafficClass.
Referenced by ns3::SixLowPanNetDevice::CompressLowPanHc1().
Here is the caller graph for this function:
|
private |
Destination compression type.
Definition at line 341 of file sixlowpan-header.h.
Referenced by Deserialize(), GetDstCompression(), GetSerializedSize(), Print(), Serialize(), and SetDstCompression().
|
private |
Destination interface.
Definition at line 336 of file sixlowpan-header.h.
Referenced by Deserialize(), GetDstInterface(), Serialize(), and SetDstInterface().
|
private |
Destination prefix.
Definition at line 335 of file sixlowpan-header.h.
Referenced by Deserialize(), GetDstPrefix(), Serialize(), and SetDstPrefix().
|
private |
Flow Label.
Definition at line 338 of file sixlowpan-header.h.
Referenced by Deserialize(), GetFlowLabel(), Serialize(), and SetFlowLabel().
|
private |
Is next header HC2 compressed.
Definition at line 344 of file sixlowpan-header.h.
Referenced by Deserialize(), IsHc2HeaderPresent(), Print(), Serialize(), and SetHc2HeaderPresent().
|
private |
Hop Limit.
Definition at line 332 of file sixlowpan-header.h.
Referenced by SixLowPanHc1(), Deserialize(), GetHopLimit(), Print(), Serialize(), and SetHopLimit().
|
private |
Next header.
Definition at line 339 of file sixlowpan-header.h.
Referenced by Deserialize(), GetNextHeader(), Serialize(), and SetNextHeader().
|
private |
Next header compression.
Definition at line 343 of file sixlowpan-header.h.
Referenced by Deserialize(), GetSerializedSize(), Print(), Serialize(), and SetNextHeader().
|
private |
Source compression type.
Definition at line 340 of file sixlowpan-header.h.
Referenced by Deserialize(), GetSerializedSize(), GetSrcCompression(), Print(), Serialize(), and SetSrcCompression().
|
private |
Source interface.
Definition at line 334 of file sixlowpan-header.h.
Referenced by Deserialize(), GetSrcInterface(), Serialize(), and SetSrcInterface().
|
private |
Source prefix.
Definition at line 333 of file sixlowpan-header.h.
Referenced by Deserialize(), GetSrcPrefix(), Serialize(), and SetSrcPrefix().
|
private |
Is TC and FL compressed.
Definition at line 342 of file sixlowpan-header.h.
Referenced by Deserialize(), GetSerializedSize(), IsTcflCompression(), Print(), Serialize(), and SetTcflCompression().
|
private |
Traffic Class.
Definition at line 337 of file sixlowpan-header.h.
Referenced by Deserialize(), GetTrafficClass(), Serialize(), and SetTrafficClass().