Implements the header for the MAC payload command frame according to the IEEE 802.15.4-2011 Std. More...
#include "lr-wpan-mac-pl-headers.h"
Public Types | |
enum | MacCommand { ASSOCIATION_REQ = 0x01 , ASSOCIATION_RESP = 0x02 , DISASSOCIATION_NOTIF = 0x03 , DATA_REQ = 0x04 , PANID_CONFLICT = 0x05 , ORPHAN_NOTIF = 0x06 , BEACON_REQ = 0x07 , COOR_REALIGN = 0x08 , GTS_REQ = 0x09 , CMD_RESERVED = 0xff } |
The MAC command frames. More... | |
Public Member Functions | |
CommandPayloadHeader () | |
CommandPayloadHeader (MacCommand macCmd) | |
Constructor. | |
uint32_t | Deserialize (Buffer::Iterator start) override |
uint8_t | GetAssociationStatus () const |
Get the status resulting from an association request (Association Response Command). | |
uint8_t | GetCapabilityField () const |
Get the Capability Information Field from the command payload header. | |
uint8_t | GetChannel () const |
Get the logical channel number. | |
MacCommand | GetCommandFrameType () const |
Get the command frame type ID. | |
Mac16Address | GetCoordShortAddr () const |
Get the coordinator short address. | |
TypeId | GetInstanceTypeId () const override |
Get the most derived TypeId for this Object. | |
uint8_t | GetPage () const |
Get the logical channel page number. | |
uint16_t | GetPanId () const |
Get the PAN identifier. | |
uint32_t | GetSerializedSize () const override |
Mac16Address | GetShortAddr () const |
Get the Short address assigned by the coordinator (Association Response and Coordinator Realigment commands). | |
void | Print (std::ostream &os) const override |
void | Serialize (Buffer::Iterator start) const override |
void | SetAssociationStatus (uint8_t status) |
Set status resulting from the association attempt (Association Response Command). | |
void | SetCapabilityField (uint8_t cap) |
Set the Capability Information Field to the command payload header (Association Request Command). | |
void | SetChannel (uint8_t channel) |
Set the logical channel number. | |
void | SetCommandFrameType (MacCommand macCmd) |
Set the command frame type. | |
void | SetCoordShortAddr (Mac16Address addr) |
Set the coordinator short address (16 bit address). | |
void | SetPage (uint8_t page) |
Set the logical channel page number. | |
void | SetPanId (uint16_t id) |
Get the PAN identifier. | |
void | SetShortAddr (Mac16Address shortAddr) |
Set the Short Address Assigned by the coordinator (Association Response and Coordinator Realigment Commands). | |
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 | |
uint8_t | m_assocStatus |
Association Status (Association Response Command) | |
uint8_t | m_capabilityInfo |
Capability Information Field (Association Request Command) | |
MacCommand | m_cmdFrameId |
The command Frame Identifier (Used by all commands) | |
Mac16Address | m_coordShortAddr |
The coordinator short address (Coordinator realigment command) | |
uint8_t | m_logCh |
The channel number (Coordinator realigment command) | |
uint8_t | m_logChPage |
The channel page number (Coordinator realigment command) | |
uint16_t | m_panid |
The PAN identifier (Coordinator realigment command) | |
Mac16Address | m_shortAddr |
Contains the short address assigned by the coordinator (Association Response and Coordinator Realiagment Command) | |
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. | |
Implements the header for the MAC payload command frame according to the IEEE 802.15.4-2011 Std.
Definition at line 96 of file lr-wpan-mac-pl-headers.h.
The MAC command frames.
See IEEE 802.15.4-2011, Table 5
Definition at line 103 of file lr-wpan-mac-pl-headers.h.
ns3::lrwpan::CommandPayloadHeader::CommandPayloadHeader | ( | ) |
Definition at line 125 of file lr-wpan-mac-pl-headers.cc.
References CMD_RESERVED, and SetCommandFrameType().
ns3::lrwpan::CommandPayloadHeader::CommandPayloadHeader | ( | MacCommand | macCmd | ) |
Constructor.
macCmd | the command type of this command header |
Definition at line 130 of file lr-wpan-mac-pl-headers.cc.
References SetCommandFrameType().
|
overridevirtual |
start | an iterator which points to where the header should read from. |
This method is used by Packet::RemoveHeader to re-create a header from the byte buffer of a packet. The data read is expected to match bit-for-bit the representation of this header in real networks.
Note that data is not actually removed from the buffer to which the iterator points. Both Packet::RemoveHeader() and Packet::PeekHeader() call Deserialize(), but only the RemoveHeader() has additional statements to remove the header bytes from the underlying buffer and associated metadata.
Implements ns3::Header.
Definition at line 217 of file lr-wpan-mac-pl-headers.cc.
References ASSOCIATION_REQ, ASSOCIATION_RESP, BEACON_REQ, CMD_RESERVED, COOR_REALIGN, DATA_REQ, DISASSOCIATION_NOTIF, ns3::Buffer::Iterator::GetDistanceFrom(), GTS_REQ, m_assocStatus, m_capabilityInfo, m_cmdFrameId, m_coordShortAddr, m_logCh, m_logChPage, m_panid, m_shortAddr, ORPHAN_NOTIF, PANID_CONFLICT, ns3::ReadFrom(), ns3::Buffer::Iterator::ReadU16(), and ns3::Buffer::Iterator::ReadU8().
uint8_t ns3::lrwpan::CommandPayloadHeader::GetAssociationStatus | ( | ) | const |
Get the status resulting from an association request (Association Response Command).
Definition at line 381 of file lr-wpan-mac-pl-headers.cc.
References ASSOCIATION_RESP, m_assocStatus, m_cmdFrameId, and NS_ASSERT.
Referenced by ns3::lrwpan::LrWpanMac::PdDataConfirm().
uint8_t ns3::lrwpan::CommandPayloadHeader::GetCapabilityField | ( | ) | const |
Get the Capability Information Field from the command payload header.
(Association Request Command)
Definition at line 388 of file lr-wpan-mac-pl-headers.cc.
References ASSOCIATION_REQ, m_capabilityInfo, m_cmdFrameId, and NS_ASSERT.
Referenced by ns3::lrwpan::LrWpanMac::PdDataConfirm().
uint8_t ns3::lrwpan::CommandPayloadHeader::GetChannel | ( | ) | const |
Get the logical channel number.
Definition at line 402 of file lr-wpan-mac-pl-headers.cc.
References COOR_REALIGN, m_cmdFrameId, m_logCh, and NS_ASSERT.
CommandPayloadHeader::MacCommand ns3::lrwpan::CommandPayloadHeader::GetCommandFrameType | ( | ) | const |
Get the command frame type ID.
Definition at line 333 of file lr-wpan-mac-pl-headers.cc.
References ASSOCIATION_REQ, ASSOCIATION_RESP, BEACON_REQ, CMD_RESERVED, COOR_REALIGN, DATA_REQ, DISASSOCIATION_NOTIF, GTS_REQ, m_cmdFrameId, ORPHAN_NOTIF, and PANID_CONFLICT.
Referenced by ns3::lrwpan::LrWpanMac::PdDataConfirm(), ns3::lrwpan::LrWpanMac::PdDataIndication(), ns3::lrwpan::LrWpanMac::PrepareRetransmission(), ns3::lrwpan::LrWpanMac::SendAssocResponseCommand(), and ns3::lrwpan::LrWpanMac::SetLrWpanMacState().
Mac16Address ns3::lrwpan::CommandPayloadHeader::GetCoordShortAddr | ( | ) | const |
Get the coordinator short address.
Definition at line 395 of file lr-wpan-mac-pl-headers.cc.
References COOR_REALIGN, m_cmdFrameId, m_coordShortAddr, and NS_ASSERT.
Referenced by ns3::lrwpan::LrWpanMac::PdDataIndication().
|
overridevirtual |
Get the most derived TypeId for this Object.
This method is typically implemented by ns3::Object::GetInstanceTypeId but some classes which derive from ns3::ObjectBase directly have to implement it themselves.
Implements ns3::ObjectBase.
Definition at line 148 of file lr-wpan-mac-pl-headers.cc.
References GetTypeId().
uint8_t ns3::lrwpan::CommandPayloadHeader::GetPage | ( | ) | const |
Get the logical channel page number.
Definition at line 409 of file lr-wpan-mac-pl-headers.cc.
References COOR_REALIGN, m_cmdFrameId, m_logChPage, and NS_ASSERT.
uint16_t ns3::lrwpan::CommandPayloadHeader::GetPanId | ( | ) | const |
Get the PAN identifier.
Definition at line 416 of file lr-wpan-mac-pl-headers.cc.
References COOR_REALIGN, m_cmdFrameId, m_panid, and NS_ASSERT.
Referenced by ns3::lrwpan::LrWpanMac::PdDataIndication().
|
overridevirtual |
This method is used by Packet::AddHeader to store a header into the byte buffer of a packet. This method should return the number of bytes which are needed to store the full header data by Serialize.
Implements ns3::Header.
Definition at line 154 of file lr-wpan-mac-pl-headers.cc.
References ASSOCIATION_REQ, ASSOCIATION_RESP, BEACON_REQ, CMD_RESERVED, COOR_REALIGN, DATA_REQ, DISASSOCIATION_NOTIF, GTS_REQ, m_cmdFrameId, ORPHAN_NOTIF, and PANID_CONFLICT.
Mac16Address ns3::lrwpan::CommandPayloadHeader::GetShortAddr | ( | ) | const |
Get the Short address assigned by the coordinator (Association Response and Coordinator Realigment commands).
Definition at line 375 of file lr-wpan-mac-pl-headers.cc.
References m_shortAddr.
Referenced by ns3::lrwpan::LrWpanMac::PdDataConfirm(), and ns3::lrwpan::LrWpanMac::PdDataIndication().
|
static |
Get the type ID.
Definition at line 138 of file lr-wpan-mac-pl-headers.cc.
References ns3::TypeId::SetParent().
Referenced by GetInstanceTypeId().
|
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 253 of file lr-wpan-mac-pl-headers.cc.
References ASSOCIATION_REQ, ASSOCIATION_RESP, BEACON_REQ, CMD_RESERVED, COOR_REALIGN, DATA_REQ, DISASSOCIATION_NOTIF, GTS_REQ, ns3::lrwpan::CapabilityField::IsDeviceTypeFfd(), ns3::lrwpan::CapabilityField::IsPowSrcAvailable(), ns3::lrwpan::CapabilityField::IsReceiverOnWhenIdle(), ns3::lrwpan::CapabilityField::IsSecurityCapability(), ns3::lrwpan::CapabilityField::IsShortAddrAllocOn(), m_assocStatus, m_capabilityInfo, m_cmdFrameId, m_coordShortAddr, m_logCh, m_logChPage, m_panid, m_shortAddr, ORPHAN_NOTIF, and PANID_CONFLICT.
|
overridevirtual |
start | an iterator which points to where the header should be written. |
This method is used by Packet::AddHeader to store a header into the byte buffer of a packet. The data written is expected to match bit-for-bit the representation of this header in a real network.
Implements ns3::Header.
Definition at line 183 of file lr-wpan-mac-pl-headers.cc.
References ASSOCIATION_REQ, ASSOCIATION_RESP, BEACON_REQ, CMD_RESERVED, COOR_REALIGN, DATA_REQ, DISASSOCIATION_NOTIF, GTS_REQ, m_assocStatus, m_capabilityInfo, m_cmdFrameId, m_coordShortAddr, m_logCh, m_logChPage, m_panid, m_shortAddr, ORPHAN_NOTIF, PANID_CONFLICT, ns3::WriteTo(), ns3::Buffer::Iterator::WriteU16(), and ns3::Buffer::Iterator::WriteU8().
void ns3::lrwpan::CommandPayloadHeader::SetAssociationStatus | ( | uint8_t | status | ) |
Set status resulting from the association attempt (Association Response Command).
status | The status resulting from the association attempt |
Definition at line 368 of file lr-wpan-mac-pl-headers.cc.
References ASSOCIATION_RESP, m_assocStatus, m_cmdFrameId, and NS_ASSERT.
Referenced by ns3::lrwpan::LrWpanMac::MlmeAssociateResponse().
void ns3::lrwpan::CommandPayloadHeader::SetCapabilityField | ( | uint8_t | cap | ) |
Set the Capability Information Field to the command payload header (Association Request Command).
cap | The capability Information field |
Definition at line 298 of file lr-wpan-mac-pl-headers.cc.
References ASSOCIATION_REQ, m_capabilityInfo, m_cmdFrameId, and NS_ASSERT.
Referenced by ns3::lrwpan::LrWpanMac::SendAssocRequestCommand().
void ns3::lrwpan::CommandPayloadHeader::SetChannel | ( | uint8_t | channel | ) |
Set the logical channel number.
channel | The channel number. |
Definition at line 312 of file lr-wpan-mac-pl-headers.cc.
References COOR_REALIGN, m_cmdFrameId, m_logCh, and NS_ASSERT.
Referenced by ns3::lrwpan::LrWpanMac::MlmeOrphanResponse().
void ns3::lrwpan::CommandPayloadHeader::SetCommandFrameType | ( | MacCommand | macCmd | ) |
Set the command frame type.
macCmd | the command frame type |
Definition at line 292 of file lr-wpan-mac-pl-headers.cc.
References m_cmdFrameId.
Referenced by CommandPayloadHeader(), CommandPayloadHeader(), ns3::lrwpan::LrWpanMac::SendBeaconRequestCommand(), and ns3::lrwpan::LrWpanMac::SendOrphanNotificationCommand().
void ns3::lrwpan::CommandPayloadHeader::SetCoordShortAddr | ( | Mac16Address | addr | ) |
Set the coordinator short address (16 bit address).
addr | The coordinator short address. |
Definition at line 305 of file lr-wpan-mac-pl-headers.cc.
References COOR_REALIGN, m_cmdFrameId, m_coordShortAddr, and NS_ASSERT.
Referenced by ns3::lrwpan::LrWpanMac::MlmeOrphanResponse().
void ns3::lrwpan::CommandPayloadHeader::SetPage | ( | uint8_t | page | ) |
Set the logical channel page number.
page | The page number. |
Definition at line 319 of file lr-wpan-mac-pl-headers.cc.
References COOR_REALIGN, m_cmdFrameId, m_logChPage, and NS_ASSERT.
Referenced by ns3::lrwpan::LrWpanMac::MlmeOrphanResponse().
void ns3::lrwpan::CommandPayloadHeader::SetPanId | ( | uint16_t | id | ) |
Get the PAN identifier.
id | The PAN identifier. |
Definition at line 326 of file lr-wpan-mac-pl-headers.cc.
References COOR_REALIGN, m_cmdFrameId, m_panid, and NS_ASSERT.
Referenced by ns3::lrwpan::LrWpanMac::MlmeOrphanResponse().
void ns3::lrwpan::CommandPayloadHeader::SetShortAddr | ( | Mac16Address | shortAddr | ) |
Set the Short Address Assigned by the coordinator (Association Response and Coordinator Realigment Commands).
shortAddr | The short address assigned by the coordinator |
Definition at line 361 of file lr-wpan-mac-pl-headers.cc.
References ASSOCIATION_RESP, COOR_REALIGN, m_cmdFrameId, m_shortAddr, and NS_ASSERT.
Referenced by ns3::lrwpan::LrWpanMac::MlmeAssociateResponse(), and ns3::lrwpan::LrWpanMac::MlmeOrphanResponse().
|
private |
Association Status (Association Response Command)
Definition at line 230 of file lr-wpan-mac-pl-headers.h.
Referenced by Deserialize(), GetAssociationStatus(), Print(), Serialize(), and SetAssociationStatus().
|
private |
Capability Information Field (Association Request Command)
Definition at line 221 of file lr-wpan-mac-pl-headers.h.
Referenced by Deserialize(), GetCapabilityField(), Print(), Serialize(), and SetCapabilityField().
|
private |
The command Frame Identifier (Used by all commands)
Definition at line 220 of file lr-wpan-mac-pl-headers.h.
Referenced by Deserialize(), GetAssociationStatus(), GetCapabilityField(), GetChannel(), GetCommandFrameType(), GetCoordShortAddr(), GetPage(), GetPanId(), GetSerializedSize(), Print(), Serialize(), SetAssociationStatus(), SetCapabilityField(), SetChannel(), SetCommandFrameType(), SetCoordShortAddr(), SetPage(), SetPanId(), and SetShortAddr().
|
private |
The coordinator short address (Coordinator realigment command)
Definition at line 225 of file lr-wpan-mac-pl-headers.h.
Referenced by Deserialize(), GetCoordShortAddr(), Print(), Serialize(), and SetCoordShortAddr().
|
private |
The channel number (Coordinator realigment command)
Definition at line 228 of file lr-wpan-mac-pl-headers.h.
Referenced by Deserialize(), GetChannel(), Print(), Serialize(), and SetChannel().
|
private |
The channel page number (Coordinator realigment command)
Definition at line 229 of file lr-wpan-mac-pl-headers.h.
Referenced by Deserialize(), GetPage(), Print(), Serialize(), and SetPage().
|
private |
The PAN identifier (Coordinator realigment command)
Definition at line 227 of file lr-wpan-mac-pl-headers.h.
Referenced by Deserialize(), GetPanId(), Print(), Serialize(), and SetPanId().
|
private |
Contains the short address assigned by the coordinator (Association Response and Coordinator Realiagment Command)
Definition at line 223 of file lr-wpan-mac-pl-headers.h.
Referenced by Deserialize(), GetShortAddr(), Print(), Serialize(), and SetShortAddr().