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"
Inheritance diagram for ns3::lrwpan::CommandPayloadHeader:
Collaboration diagram for ns3::lrwpan::CommandPayloadHeader: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().
Referenced by GetTypeId().
Here is the call graph for this function:
Here is the caller graph for this function:| 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().
Here is the call graph for this function:
|
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().
Here is the call graph for this function:| 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().
Here is the caller graph for this function:| 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().
Here is the caller graph for this function:| 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::ReceiveAcknowledgment(), ns3::lrwpan::LrWpanMac::ReceiveCommand(), ns3::lrwpan::LrWpanMac::SendAssocResponseCommand(), and ns3::lrwpan::LrWpanMac::SetLrWpanMacState().
Here is the caller graph for this function:| 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::ReceiveCommand().
Here is the caller graph for this function:
|
overridevirtual |
Get the most derived TypeId for this Object.
This method is provided by ns3::Object::GetInstanceTypeId but classes which derive from ns3::ObjectBase directly have to implement it themselves. Typically, this method should simply return the output of GetTypeId().
Implements ns3::ObjectBase.
Definition at line 148 of file lr-wpan-mac-pl-headers.cc.
References GetTypeId().
Here is the call graph for this function:| 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::ReceiveCommand().
Here is the caller graph for this function:
|
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::ReceiveCommand().
Here is the caller graph for this function:
|
static |
Get the type ID.
Definition at line 138 of file lr-wpan-mac-pl-headers.cc.
References CommandPayloadHeader(), and ns3::TypeId::SetParent().
Referenced by GetInstanceTypeId().
Here is the call graph for this function:
Here is the caller graph for this function:
|
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.
Here is the call graph for this function:
|
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().
Here is the call graph for this function:| 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().
Here is the caller graph for this function:| 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().
Here is the caller graph for this function:| 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().
Here is the caller graph for this function:| 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().
Here is the caller graph for this function:| 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().
Here is the caller graph for this function:| 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().
Here is the caller graph for this function:| 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().
Here is the caller graph for this function:| 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().
Here is the caller graph for this function:
|
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().