Represent the Mac Header with the Frame Control and Sequence Number fields. More...
#include "lr-wpan-mac-header.h"
Public Types | |
enum | AddrModeType { NOADDR = 0 , RESADDR = 1 , SHORTADDR = 2 , EXTADDR = 3 } |
The addressing mode types, see IEEE 802.15.4-2006, Table 80. More... | |
enum | KeyIdModeType { IMPLICIT = 0 , NOKEYSOURCE = 1 , SHORTKEYSOURCE = 2 , LONGKEYSOURCE = 3 } |
The addressing mode types, see IEEE 802.15.4-2006, Table 80. More... | |
enum | LrWpanMacType { LRWPAN_MAC_BEACON = 0 , LRWPAN_MAC_DATA = 1 , LRWPAN_MAC_ACKNOWLEDGMENT = 2 , LRWPAN_MAC_COMMAND = 3 , LRWPAN_MAC_RESERVED } |
The possible MAC types, see IEEE 802.15.4-2006, Table 79. More... | |
Public Member Functions | |
LrWpanMacHeader () | |
LrWpanMacHeader (LrWpanMacType wpanMacType, uint8_t seqNum) | |
Constructor. | |
~LrWpanMacHeader () override | |
uint32_t | Deserialize (Buffer::Iterator start) override |
uint8_t | GetDstAddrMode () const |
Get the Dest. | |
uint16_t | GetDstPanId () const |
Get the Destination PAN ID. | |
Mac64Address | GetExtDstAddr () const |
Get the Destination Extended address. | |
Mac64Address | GetExtSrcAddr () const |
Get the Source Extended address. | |
uint16_t | GetFrameControl () const |
Get the Frame control field. | |
uint8_t | GetFrameVer () const |
Get the Frame Version of Frame control field. | |
uint32_t | GetFrmCounter () const |
Get the Auxiliary Security Header - Frame Counter Octets. | |
uint8_t | GetFrmCtrlRes () const |
Get the Reserved bits of Frame control field. | |
TypeId | GetInstanceTypeId () const override |
Get the most derived TypeId for this Object. | |
uint8_t | GetKeyIdIndex () const |
Get the Auxiliary Security Header - Key Identifier - Key Index. | |
uint8_t | GetKeyIdMode () const |
Get the Auxiliary Security Header - Security Control - Key Identifier Mode bits. | |
uint32_t | GetKeyIdSrc32 () const |
Get the Auxiliary Security Header - Key Identifier - Key Source (2 Octets) | |
uint64_t | GetKeyIdSrc64 () const |
Get the Auxiliary Security Header - Key Identifier - Key Source (4 Octets) | |
uint8_t | GetSecControl () const |
Get the Auxiliary Security Header - Security Control Octet. | |
uint8_t | GetSecCtrlReserved () const |
Get the Auxiliary Security Header - Security Control - Reserved bits. | |
uint8_t | GetSecLevel () const |
Get the Auxiliary Security Header - Security Control - Security Level bits. | |
uint8_t | GetSeqNum () const |
Get the frame Sequence number. | |
uint32_t | GetSerializedSize () const override |
Mac16Address | GetShortDstAddr () const |
Get the Destination Short address. | |
Mac16Address | GetShortSrcAddr () const |
Get the Source Short address. | |
uint8_t | GetSrcAddrMode () const |
Get the Source Addressing Mode of Frame control field. | |
uint16_t | GetSrcPanId () const |
Get the Source PAN ID. | |
LrWpanMacType | GetType () const |
Get the header type. | |
bool | IsAcknowledgment () const |
Returns true if the header is an ack. | |
bool | IsAckReq () const |
Check if Ack. | |
bool | IsBeacon () const |
Returns true if the header is a beacon. | |
bool | IsCommand () const |
Returns true if the header is a command. | |
bool | IsData () const |
Returns true if the header is a data. | |
bool | IsFrmPend () const |
Check if Frame Pending bit of Frame Control is enabled. | |
bool | IsPanIdComp () const |
Check if PAN ID Compression bit of Frame Control is enabled. | |
bool | IsSecEnable () const |
Check if Security Enabled bit of Frame Control is enabled. | |
void | Print (std::ostream &os) const override |
void | Serialize (Buffer::Iterator start) const override |
void | SetAckReq () |
Set the Frame Control field "Ack. Request" bit to true. | |
void | SetDstAddrFields (uint16_t panId, Mac16Address addr) |
Set Destination address fields. | |
void | SetDstAddrFields (uint16_t panId, Mac64Address addr) |
Set Destination address fields. | |
void | SetDstAddrMode (uint8_t addrMode) |
Set the Destination address mode. | |
void | SetFrameControl (uint16_t frameControl) |
Set the whole Frame Control field. | |
void | SetFrameVer (uint8_t ver) |
Set the Frame version. | |
void | SetFrmCounter (uint32_t frmCntr) |
Set the auxiliary security header "Frame Counter" octet. | |
void | SetFrmCtrlRes (uint8_t res) |
Set the Frame Control field "Reserved" bits. | |
void | SetFrmPend () |
Set the Frame Control field "Frame Pending" bit to true. | |
void | SetKeyId (uint32_t keySrc, uint8_t keyIndex) |
Set the Key Index and originator. | |
void | SetKeyId (uint64_t keySrc, uint8_t keyIndex) |
Set the Key Index and originator. | |
void | SetKeyId (uint8_t keyIndex) |
Set the Key Index. | |
void | SetKeyIdMode (uint8_t keyIdMode) |
Set the Security Control field "Key Identifier Mode" bits (2 bits) | |
void | SetNoAckReq () |
Set the Frame Control field "Ack. Request" bit to false. | |
void | SetNoFrmPend () |
Set the Frame Control field "Frame Pending" bit to false. | |
void | SetNoPanIdComp () |
Set the Frame Control field "PAN ID Compression" bit to false. | |
void | SetPanIdComp () |
Set the Frame Control field "PAN ID Compression" bit to true. | |
void | SetSecControl (uint8_t secLevel) |
Set the auxiliary security header "Security Control" octet. | |
void | SetSecCtrlReserved (uint8_t res) |
Set the Security Control field "Reserved" bits (3 bits) | |
void | SetSecDisable () |
Set the Frame Control field "Security Enabled" bit to false. | |
void | SetSecEnable () |
Set the Frame Control field "Security Enabled" bit to true. | |
void | SetSecLevel (uint8_t secLevel) |
Set the Security Control field "Security Level" bits (3 bits) | |
void | SetSeqNum (uint8_t seqNum) |
Set the Sequence number. | |
void | SetSrcAddrFields (uint16_t panId, Mac16Address addr) |
Set Source address fields. | |
void | SetSrcAddrFields (uint16_t panId, Mac64Address addr) |
Set Source address fields. | |
void | SetSrcAddrMode (uint8_t addrMode) |
Set the Source address mode. | |
void | SetType (LrWpanMacType wpanMacType) |
Set the Frame Control field "Frame Type" bits. | |
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 | |
union { | |
uint32_t m_auxKeyIdKeySrc32 | |
Auxiliary security header - Key Source (4 Octets) More... | |
uint64_t m_auxKeyIdKeySrc64 | |
Auxiliary security header - Key Source (8 Octets) More... | |
}; | |
Auxiliary security header. | |
uint16_t | m_addrDstPanId |
Dst PAN id (0 or 2 Octets) | |
Mac64Address | m_addrExtDstAddr |
Dst Ext addr (0 or 8 Octets) | |
Mac64Address | m_addrExtSrcAddr |
Src Ext addr (0 or 8 Octets) | |
Mac16Address | m_addrShortDstAddr |
Dst Short addr (0 or 2 Octets) | |
Mac16Address | m_addrShortSrcAddr |
Src Short addr (0 or 2 Octets) | |
uint16_t | m_addrSrcPanId |
Src PAN id (0 or 2 Octets) | |
uint32_t | m_auxFrmCntr |
Auxiliary security header - Frame Counter (4 Octets) | |
uint8_t | m_auxKeyIdKeyIndex |
Auxiliary security header - Key Index (1 Octet) | |
uint8_t | m_fctrlAckReq |
Frame Control field Bit 5. | |
uint8_t | m_fctrlDstAddrMode |
Frame Control field Bit 10-11 = 0 - No DstAddr, 2 - ShtDstAddr, 3 - ExtDstAddr. | |
uint8_t | m_fctrlFrmPending |
Frame Control field Bit 4. | |
uint8_t | m_fctrlFrmType |
Frame Control field Bit 0-2 = 0 - Beacon, 1 - Data, 2 - Ack, 3 - Command. | |
uint8_t | m_fctrlFrmVer |
Frame Control field Bit 12-13. | |
uint8_t | m_fctrlPanIdComp |
Frame Control field Bit 6 = 0 - no compression, 1 - using only DstPanId for both Src and DstPanId. | |
uint8_t | m_fctrlReserved |
Frame Control field Bit 7-9. | |
uint8_t | m_fctrlSecU |
Frame Control field Bit 3 = 0 - no AuxSecHdr , 1 - security enabled AuxSecHdr present. | |
uint8_t | m_fctrlSrcAddrMode |
Frame Control field Bit 14-15 = 0 - No SrcAddr, 2 - ShtSrcAddr, 3 - ExtSrcAddr. | |
uint8_t | m_secctrlKeyIdMode |
Auxiliary security header - Security Control field - Bit 3-4 will indicate size of Key Id. | |
uint8_t | m_secctrlReserved |
Auxiliary security header - Security Control field - Bit 5-7. | |
uint8_t | m_secctrlSecLevel |
Auxiliary security header - Security Control field - Bit 0-2. | |
uint8_t | m_SeqNum |
Sequence Number (1 Octet) | |
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. | |
Represent the Mac Header with the Frame Control and Sequence Number fields.
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 51 of file lr-wpan-mac-header.h.
The addressing mode types, see IEEE 802.15.4-2006, Table 80.
Enumerator | |
---|---|
NOADDR | |
RESADDR | |
SHORTADDR | |
EXTADDR |
Definition at line 69 of file lr-wpan-mac-header.h.
The addressing mode types, see IEEE 802.15.4-2006, Table 80.
Enumerator | |
---|---|
IMPLICIT | |
NOKEYSOURCE | |
SHORTKEYSOURCE | |
LONGKEYSOURCE |
Definition at line 80 of file lr-wpan-mac-header.h.
The possible MAC types, see IEEE 802.15.4-2006, Table 79.
Definition at line 57 of file lr-wpan-mac-header.h.
ns3::LrWpanMacHeader::LrWpanMacHeader | ( | ) |
Definition at line 30 of file lr-wpan-mac-header.cc.
References LRWPAN_MAC_DATA, NOADDR, SetDstAddrMode(), SetFrameVer(), SetFrmCtrlRes(), SetNoAckReq(), SetNoFrmPend(), SetNoPanIdComp(), SetSecDisable(), SetSrcAddrMode(), and SetType().
ns3::LrWpanMacHeader::LrWpanMacHeader | ( | LrWpanMacType | wpanMacType, |
uint8_t | seqNum | ||
) |
Constructor.
wpanMacType | the header MAC type |
seqNum | the sequence number |
Definition at line 43 of file lr-wpan-mac-header.cc.
References NOADDR, SetDstAddrMode(), SetFrameVer(), SetFrmCtrlRes(), SetNoAckReq(), SetNoFrmPend(), SetNoPanIdComp(), SetSecDisable(), SetSeqNum(), SetSrcAddrMode(), and SetType().
|
override |
Definition at line 57 of file lr-wpan-mac-header.cc.
|
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 671 of file lr-wpan-mac-header.cc.
References EXTADDR, ns3::Buffer::Iterator::GetDistanceFrom(), IMPLICIT, IsPanIdComp(), IsSecEnable(), LONGKEYSOURCE, m_addrDstPanId, m_addrExtDstAddr, m_addrExtSrcAddr, m_addrShortDstAddr, m_addrShortSrcAddr, m_addrSrcPanId, m_fctrlDstAddrMode, m_fctrlSrcAddrMode, m_secctrlKeyIdMode, NOADDR, NOKEYSOURCE, ns3::ReadFrom(), ns3::Buffer::Iterator::ReadLsbtohU16(), ns3::Buffer::Iterator::ReadLsbtohU32(), ns3::Buffer::Iterator::ReadLsbtohU64(), ns3::Buffer::Iterator::ReadU8(), SetFrameControl(), SetFrmCounter(), SetKeyId(), SetSecControl(), SetSeqNum(), SHORTADDR, and SHORTKEYSOURCE.
uint8_t ns3::LrWpanMacHeader::GetDstAddrMode | ( | ) | const |
Get the Dest.
Addressing Mode of Frame control field
Definition at line 127 of file lr-wpan-mac-header.cc.
References m_fctrlDstAddrMode.
Referenced by ns3::LrWpanMac::EnqueueInd(), ns3::LrWpanMac::McpsDataRequest(), ns3::LrWpanMac::PdDataConfirm(), ns3::LrWpanMac::PdDataIndication(), and ns3::LrWpanMac::RemovePendTxQElement().
uint16_t ns3::LrWpanMacHeader::GetDstPanId | ( | ) | const |
Get the Destination PAN ID.
Definition at line 151 of file lr-wpan-mac-header.cc.
References m_addrDstPanId.
Referenced by ns3::LrWpanMac::McpsDataRequest(), ns3::LrWpanMac::PdDataIndication(), ns3::LrWpanMac::PrintTxQueue(), and Serialize().
Mac64Address ns3::LrWpanMacHeader::GetExtDstAddr | ( | ) | const |
Get the Destination Extended address.
Definition at line 163 of file lr-wpan-mac-header.cc.
References m_addrExtDstAddr.
Referenced by ns3::LrWpanMac::EnqueueInd(), ns3::LrWpanMac::isCoordDest(), ns3::LrWpanMac::PdDataConfirm(), ns3::LrWpanMac::PdDataIndication(), ns3::LrWpanMac::PrepareRetransmission(), ns3::LrWpanMac::PrintTxQueue(), ns3::LrWpanMac::PurgeInd(), ns3::LrWpanMac::RemovePendTxQElement(), and ns3::LrWpanMac::SetLrWpanMacState().
Mac64Address ns3::LrWpanMacHeader::GetExtSrcAddr | ( | ) | const |
Get the Source Extended address.
Definition at line 181 of file lr-wpan-mac-header.cc.
References m_addrExtSrcAddr.
Referenced by ns3::LrWpanMac::EnqueueInd(), ns3::LrWpanMac::PdDataConfirm(), ns3::LrWpanMac::PdDataIndication(), ns3::LrWpanMac::PrepareRetransmission(), ns3::LrWpanMac::PurgeInd(), ns3::LrWpanMac::SendAssocResponseCommand(), and ns3::LrWpanMac::SetLrWpanMacState().
uint16_t ns3::LrWpanMacHeader::GetFrameControl | ( | ) | const |
Get the Frame control field.
Definition at line 80 of file lr-wpan-mac-header.cc.
References m_fctrlAckReq, m_fctrlDstAddrMode, m_fctrlFrmPending, m_fctrlFrmType, m_fctrlFrmVer, m_fctrlPanIdComp, m_fctrlReserved, m_fctrlSecU, and m_fctrlSrcAddrMode.
Referenced by Serialize().
uint8_t ns3::LrWpanMacHeader::GetFrameVer | ( | ) | const |
Get the Frame Version of Frame control field.
Definition at line 133 of file lr-wpan-mac-header.cc.
References m_fctrlFrmVer.
Referenced by ns3::LrWpanMac::PdDataIndication().
uint32_t ns3::LrWpanMacHeader::GetFrmCounter | ( | ) | const |
Get the Auxiliary Security Header - Frame Counter Octets.
Definition at line 199 of file lr-wpan-mac-header.cc.
References m_auxFrmCntr.
Referenced by Serialize().
uint8_t ns3::LrWpanMacHeader::GetFrmCtrlRes | ( | ) | const |
Get the Reserved bits of Frame control field.
Definition at line 121 of file lr-wpan-mac-header.cc.
References m_fctrlReserved.
|
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 453 of file lr-wpan-mac-header.cc.
References GetTypeId().
uint8_t ns3::LrWpanMacHeader::GetKeyIdIndex | ( | ) | const |
Get the Auxiliary Security Header - Key Identifier - Key Index.
Definition at line 235 of file lr-wpan-mac-header.cc.
References m_auxKeyIdKeyIndex.
Referenced by Serialize().
uint8_t ns3::LrWpanMacHeader::GetKeyIdMode | ( | ) | const |
Get the Auxiliary Security Header - Security Control - Key Identifier Mode bits.
Definition at line 211 of file lr-wpan-mac-header.cc.
References m_secctrlKeyIdMode.
uint32_t ns3::LrWpanMacHeader::GetKeyIdSrc32 | ( | ) | const |
Get the Auxiliary Security Header - Key Identifier - Key Source (2 Octets)
Definition at line 223 of file lr-wpan-mac-header.cc.
References m_auxKeyIdKeySrc32.
Referenced by Serialize().
uint64_t ns3::LrWpanMacHeader::GetKeyIdSrc64 | ( | ) | const |
Get the Auxiliary Security Header - Key Identifier - Key Source (4 Octets)
Definition at line 229 of file lr-wpan-mac-header.cc.
References m_auxKeyIdKeySrc64.
Referenced by Serialize().
uint8_t ns3::LrWpanMacHeader::GetSecControl | ( | ) | const |
Get the Auxiliary Security Header - Security Control Octet.
Definition at line 187 of file lr-wpan-mac-header.cc.
References m_secctrlKeyIdMode, m_secctrlReserved, and m_secctrlSecLevel.
Referenced by Serialize().
uint8_t ns3::LrWpanMacHeader::GetSecCtrlReserved | ( | ) | const |
Get the Auxiliary Security Header - Security Control - Reserved bits.
Definition at line 217 of file lr-wpan-mac-header.cc.
References m_secctrlReserved.
uint8_t ns3::LrWpanMacHeader::GetSecLevel | ( | ) | const |
Get the Auxiliary Security Header - Security Control - Security Level bits.
Definition at line 205 of file lr-wpan-mac-header.cc.
References m_secctrlSecLevel.
uint8_t ns3::LrWpanMacHeader::GetSeqNum | ( | ) | const |
Get the frame Sequence number.
Definition at line 145 of file lr-wpan-mac-header.cc.
References m_SeqNum.
Referenced by ns3::LrWpanMac::EnqueueInd(), ns3::LrWpanMac::PdDataIndication(), ns3::LrWpanMac::PrintTxQueue(), ns3::LrWpanMac::RemovePendTxQElement(), and Serialize().
|
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 526 of file lr-wpan-mac-header.cc.
References EXTADDR, IMPLICIT, IsPanIdComp(), IsSecEnable(), LONGKEYSOURCE, m_fctrlDstAddrMode, m_fctrlSrcAddrMode, m_secctrlKeyIdMode, NOADDR, NOKEYSOURCE, SHORTADDR, and SHORTKEYSOURCE.
Mac16Address ns3::LrWpanMacHeader::GetShortDstAddr | ( | ) | const |
Get the Destination Short address.
Definition at line 157 of file lr-wpan-mac-header.cc.
References m_addrShortDstAddr.
Referenced by LrWpanDataIfsTestCase::DataReceivedDev0(), LrWpanDataIfsTestCase::DataReceivedDev1(), ns3::LrWpanMac::EnqueueInd(), ns3::LrWpanMac::isCoordDest(), ns3::LrWpanMac::McpsDataRequest(), ns3::LrWpanMac::PdDataConfirm(), ns3::LrWpanMac::PdDataIndication(), ns3::LrWpanMac::PrintTxQueue(), ns3::LrWpanMac::RemoveFirstTxQElement(), and ns3::LrWpanMac::RemovePendTxQElement().
Mac16Address ns3::LrWpanMacHeader::GetShortSrcAddr | ( | ) | const |
Get the Source Short address.
Definition at line 175 of file lr-wpan-mac-header.cc.
References m_addrShortSrcAddr.
Referenced by ns3::LrWpanMac::PdDataConfirm(), and ns3::LrWpanMac::PdDataIndication().
uint8_t ns3::LrWpanMacHeader::GetSrcAddrMode | ( | ) | const |
Get the Source Addressing Mode of Frame control field.
Definition at line 139 of file lr-wpan-mac-header.cc.
References m_fctrlSrcAddrMode.
Referenced by ns3::AnimationInterface::LrWpanPhyTxBeginTrace(), ns3::LrWpanMac::PdDataConfirm(), and ns3::LrWpanMac::PdDataIndication().
uint16_t ns3::LrWpanMacHeader::GetSrcPanId | ( | ) | const |
Get the Source PAN ID.
Definition at line 169 of file lr-wpan-mac-header.cc.
References m_addrSrcPanId.
Referenced by ns3::LrWpanMac::McpsDataRequest(), ns3::LrWpanMac::PdDataConfirm(), ns3::LrWpanMac::PdDataIndication(), and Serialize().
LrWpanMacHeader::LrWpanMacType ns3::LrWpanMacHeader::GetType | ( | ) | const |
Get the header type.
Definition at line 62 of file lr-wpan-mac-header.cc.
References LRWPAN_MAC_ACKNOWLEDGMENT, LRWPAN_MAC_BEACON, LRWPAN_MAC_COMMAND, LRWPAN_MAC_DATA, LRWPAN_MAC_RESERVED, and m_fctrlFrmType.
Referenced by ns3::LrWpanMac::PdDataIndication().
|
static |
Get the type ID.
Definition at line 443 of file lr-wpan-mac-header.cc.
References ns3::TypeId::SetParent().
Referenced by GetInstanceTypeId().
bool ns3::LrWpanMacHeader::IsAcknowledgment | ( | ) | const |
Returns true if the header is an ack.
Definition at line 253 of file lr-wpan-mac-header.cc.
References LRWPAN_MAC_ACKNOWLEDGMENT, and m_fctrlFrmType.
Referenced by LrWpanDataIfsTestCase::DataReceivedDev0(), ns3::LrWpanMac::PdDataConfirm(), and ns3::LrWpanMac::PdDataIndication().
bool ns3::LrWpanMacHeader::IsAckReq | ( | ) | const |
Check if Ack.
Request bit of Frame Control is enabled
Definition at line 109 of file lr-wpan-mac-header.cc.
References m_fctrlAckReq.
Referenced by ns3::LrWpanMac::isTxAckReq(), ns3::LrWpanMac::PdDataConfirm(), and ns3::LrWpanMac::PdDataIndication().
bool ns3::LrWpanMacHeader::IsBeacon | ( | ) | const |
Returns true if the header is a beacon.
Definition at line 241 of file lr-wpan-mac-header.cc.
References LRWPAN_MAC_BEACON, and m_fctrlFrmType.
Referenced by ns3::LrWpanMac::PdDataConfirm(), and ns3::LrWpanMac::PdDataIndication().
bool ns3::LrWpanMacHeader::IsCommand | ( | ) | const |
Returns true if the header is a command.
Definition at line 259 of file lr-wpan-mac-header.cc.
References LRWPAN_MAC_COMMAND, and m_fctrlFrmType.
Referenced by ns3::LrWpanMac::PdDataConfirm(), ns3::LrWpanMac::PdDataIndication(), ns3::LrWpanMac::PrepareRetransmission(), ns3::LrWpanMac::PrintPendTxQ(), ns3::LrWpanMac::PrintTxQueue(), ns3::LrWpanMac::PurgeInd(), and ns3::LrWpanMac::SetLrWpanMacState().
bool ns3::LrWpanMacHeader::IsData | ( | ) | const |
Returns true if the header is a data.
Definition at line 247 of file lr-wpan-mac-header.cc.
References LRWPAN_MAC_DATA, and m_fctrlFrmType.
Referenced by ns3::LrWpanMac::PdDataIndication(), ns3::LrWpanMac::PrintPendTxQ(), ns3::LrWpanMac::PrintTxQueue(), ns3::LrWpanMac::PurgeInd(), and ns3::LrWpanMac::SetLrWpanMacState().
bool ns3::LrWpanMacHeader::IsFrmPend | ( | ) | const |
Check if Frame Pending bit of Frame Control is enabled.
Definition at line 103 of file lr-wpan-mac-header.cc.
References m_fctrlFrmPending.
bool ns3::LrWpanMacHeader::IsPanIdComp | ( | ) | const |
Check if PAN ID Compression bit of Frame Control is enabled.
Definition at line 115 of file lr-wpan-mac-header.cc.
References m_fctrlPanIdComp.
Referenced by Deserialize(), GetSerializedSize(), and Serialize().
bool ns3::LrWpanMacHeader::IsSecEnable | ( | ) | const |
Check if Security Enabled bit of Frame Control is enabled.
Definition at line 97 of file lr-wpan-mac-header.cc.
References m_fctrlSecU.
Referenced by Deserialize(), GetSerializedSize(), Print(), and Serialize().
|
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 459 of file lr-wpan-mac-header.cc.
References EXTADDR, IMPLICIT, IsSecEnable(), LONGKEYSOURCE, m_addrDstPanId, m_addrExtDstAddr, m_addrShortDstAddr, m_addrShortSrcAddr, m_addrSrcPanId, m_auxFrmCntr, m_auxKeyIdKeyIndex, m_auxKeyIdKeySrc32, m_auxKeyIdKeySrc64, m_fctrlAckReq, m_fctrlDstAddrMode, m_fctrlFrmPending, m_fctrlFrmType, m_fctrlFrmVer, m_fctrlPanIdComp, m_fctrlSecU, m_fctrlSrcAddrMode, m_secctrlKeyIdMode, m_secctrlSecLevel, m_SeqNum, NOADDR, NOKEYSOURCE, SHORTADDR, and SHORTKEYSOURCE.
Referenced by LrWpanPacketTestCase::DoRun().
|
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 604 of file lr-wpan-mac-header.cc.
References EXTADDR, GetDstPanId(), GetFrameControl(), GetFrmCounter(), GetKeyIdIndex(), GetKeyIdSrc32(), GetKeyIdSrc64(), GetSecControl(), GetSeqNum(), GetSrcPanId(), IMPLICIT, IsPanIdComp(), IsSecEnable(), LONGKEYSOURCE, m_addrExtDstAddr, m_addrExtSrcAddr, m_addrShortDstAddr, m_addrShortSrcAddr, m_fctrlDstAddrMode, m_fctrlSrcAddrMode, m_secctrlKeyIdMode, NOADDR, NOKEYSOURCE, SHORTADDR, SHORTKEYSOURCE, ns3::Buffer::Iterator::WriteHtolsbU16(), ns3::Buffer::Iterator::WriteHtolsbU32(), ns3::Buffer::Iterator::WriteHtolsbU64(), ns3::WriteTo(), and ns3::Buffer::Iterator::WriteU8().
void ns3::LrWpanMacHeader::SetAckReq | ( | ) |
Set the Frame Control field "Ack. Request" bit to true.
Definition at line 309 of file lr-wpan-mac-header.cc.
References m_fctrlAckReq.
Referenced by ns3::LrWpanMac::McpsDataRequest(), ns3::LrWpanMac::MlmeAssociateResponse(), ns3::LrWpanMac::MlmeOrphanResponse(), ns3::LrWpanMac::SendAssocRequestCommand(), and ns3::LrWpanMac::SendDataRequestCommand().
void ns3::LrWpanMacHeader::SetDstAddrFields | ( | uint16_t | panId, |
Mac16Address | addr | ||
) |
Set Destination address fields.
panId | destination PAN ID |
addr | destination address (16 bit) |
Definition at line 377 of file lr-wpan-mac-header.cc.
References m_addrDstPanId, and m_addrShortDstAddr.
Referenced by ns3::LrWpanMac::McpsDataRequest(), ns3::LrWpanMac::MlmeAssociateResponse(), ns3::LrWpanMac::MlmeOrphanResponse(), ns3::LrWpanMac::SendAssocRequestCommand(), ns3::LrWpanMac::SendBeaconRequestCommand(), ns3::LrWpanMac::SendDataRequestCommand(), ns3::LrWpanMac::SendOneBeacon(), and ns3::LrWpanMac::SendOrphanNotificationCommand().
void ns3::LrWpanMacHeader::SetDstAddrFields | ( | uint16_t | panId, |
Mac64Address | addr | ||
) |
Set Destination address fields.
panId | destination PAN ID |
addr | destination address (64 bit) |
Definition at line 384 of file lr-wpan-mac-header.cc.
References m_addrDstPanId, and m_addrExtDstAddr.
void ns3::LrWpanMacHeader::SetDstAddrMode | ( | uint8_t | addrMode | ) |
Set the Destination address mode.
addrMode | Destination address mode |
Definition at line 339 of file lr-wpan-mac-header.cc.
References m_fctrlDstAddrMode.
Referenced by LrWpanMacHeader(), LrWpanPacketTestCase::DoRun(), ns3::LrWpanMac::McpsDataRequest(), ns3::LrWpanMac::MlmeAssociateResponse(), ns3::LrWpanMac::MlmeOrphanResponse(), ns3::LrWpanMac::SendAssocRequestCommand(), ns3::LrWpanMac::SendBeaconRequestCommand(), ns3::LrWpanMac::SendDataRequestCommand(), ns3::LrWpanMac::SendOneBeacon(), and ns3::LrWpanMac::SendOrphanNotificationCommand().
void ns3::LrWpanMacHeader::SetFrameControl | ( | uint16_t | frameControl | ) |
Set the whole Frame Control field.
frameControl | the Frame Control field |
Definition at line 271 of file lr-wpan-mac-header.cc.
References m_fctrlAckReq, m_fctrlDstAddrMode, m_fctrlFrmPending, m_fctrlFrmType, m_fctrlFrmVer, m_fctrlPanIdComp, m_fctrlReserved, m_fctrlSecU, and m_fctrlSrcAddrMode.
Referenced by Deserialize().
void ns3::LrWpanMacHeader::SetFrameVer | ( | uint8_t | ver | ) |
Set the Frame version.
ver | frame version |
Definition at line 345 of file lr-wpan-mac-header.cc.
References m_fctrlFrmVer.
Referenced by LrWpanMacHeader(), and ns3::LrWpanMac::MlmeOrphanResponse().
void ns3::LrWpanMacHeader::SetFrmCounter | ( | uint32_t | frmCntr | ) |
Set the auxiliary security header "Frame Counter" octet.
frmCntr | the "Frame Counter" octet |
Definition at line 399 of file lr-wpan-mac-header.cc.
References m_auxFrmCntr.
Referenced by Deserialize().
void ns3::LrWpanMacHeader::SetFrmCtrlRes | ( | uint8_t | res | ) |
Set the Frame Control field "Reserved" bits.
res | reserved bits |
Definition at line 333 of file lr-wpan-mac-header.cc.
References m_fctrlReserved.
Referenced by LrWpanMacHeader().
void ns3::LrWpanMacHeader::SetFrmPend | ( | ) |
Set the Frame Control field "Frame Pending" bit to true.
Definition at line 297 of file lr-wpan-mac-header.cc.
References m_fctrlFrmPending.
void ns3::LrWpanMacHeader::SetKeyId | ( | uint32_t | keySrc, |
uint8_t | keyIndex | ||
) |
Set the Key Index and originator.
keySrc | the originator of a group key |
keyIndex | the Key index |
Definition at line 429 of file lr-wpan-mac-header.cc.
References m_auxKeyIdKeyIndex, and m_auxKeyIdKeySrc32.
void ns3::LrWpanMacHeader::SetKeyId | ( | uint64_t | keySrc, |
uint8_t | keyIndex | ||
) |
Set the Key Index and originator.
keySrc | the originator of a group key |
keyIndex | the Key index |
Definition at line 436 of file lr-wpan-mac-header.cc.
References m_auxKeyIdKeyIndex, and m_auxKeyIdKeySrc64.
void ns3::LrWpanMacHeader::SetKeyId | ( | uint8_t | keyIndex | ) |
Set the Key Index.
keyIndex | the Key index |
Definition at line 423 of file lr-wpan-mac-header.cc.
References m_auxKeyIdKeyIndex.
Referenced by Deserialize().
void ns3::LrWpanMacHeader::SetKeyIdMode | ( | uint8_t | keyIdMode | ) |
Set the Security Control field "Key Identifier Mode" bits (2 bits)
keyIdMode | the "Key Identifier Mode" bits |
Definition at line 411 of file lr-wpan-mac-header.cc.
References m_secctrlKeyIdMode.
void ns3::LrWpanMacHeader::SetNoAckReq | ( | ) |
Set the Frame Control field "Ack. Request" bit to false.
Definition at line 315 of file lr-wpan-mac-header.cc.
References m_fctrlAckReq.
Referenced by LrWpanMacHeader(), ns3::LrWpanMac::McpsDataRequest(), ns3::LrWpanMac::SendBeaconRequestCommand(), ns3::LrWpanMac::SendOneBeacon(), and ns3::LrWpanMac::SendOrphanNotificationCommand().
void ns3::LrWpanMacHeader::SetNoFrmPend | ( | ) |
Set the Frame Control field "Frame Pending" bit to false.
Definition at line 303 of file lr-wpan-mac-header.cc.
References m_fctrlFrmPending.
Referenced by LrWpanMacHeader().
void ns3::LrWpanMacHeader::SetNoPanIdComp | ( | ) |
Set the Frame Control field "PAN ID Compression" bit to false.
Definition at line 327 of file lr-wpan-mac-header.cc.
References m_fctrlPanIdComp.
Referenced by LrWpanMacHeader(), LrWpanPacketTestCase::DoRun(), ns3::LrWpanMac::McpsDataRequest(), and ns3::LrWpanMac::SendBeaconRequestCommand().
void ns3::LrWpanMacHeader::SetPanIdComp | ( | ) |
Set the Frame Control field "PAN ID Compression" bit to true.
Definition at line 321 of file lr-wpan-mac-header.cc.
References m_fctrlPanIdComp.
Referenced by ns3::LrWpanMac::McpsDataRequest(), ns3::LrWpanMac::MlmeAssociateResponse(), ns3::LrWpanMac::MlmeOrphanResponse(), and ns3::LrWpanMac::SendOrphanNotificationCommand().
void ns3::LrWpanMacHeader::SetSecControl | ( | uint8_t | secLevel | ) |
Set the auxiliary security header "Security Control" octet.
secLevel | the "Security Control" octet |
Definition at line 391 of file lr-wpan-mac-header.cc.
References m_secctrlKeyIdMode, m_secctrlReserved, and m_secctrlSecLevel.
Referenced by Deserialize().
void ns3::LrWpanMacHeader::SetSecCtrlReserved | ( | uint8_t | res | ) |
Set the Security Control field "Reserved" bits (3 bits)
res | the "Reserved" bits |
Definition at line 417 of file lr-wpan-mac-header.cc.
References m_secctrlReserved.
void ns3::LrWpanMacHeader::SetSecDisable | ( | ) |
Set the Frame Control field "Security Enabled" bit to false.
Definition at line 291 of file lr-wpan-mac-header.cc.
References m_fctrlSecU.
Referenced by LrWpanMacHeader(), LrWpanPacketTestCase::DoRun(), ns3::LrWpanMac::McpsDataRequest(), ns3::LrWpanMac::MlmeAssociateResponse(), ns3::LrWpanMac::MlmeOrphanResponse(), ns3::LrWpanMac::SendAssocRequestCommand(), ns3::LrWpanMac::SendBeaconRequestCommand(), ns3::LrWpanMac::SendDataRequestCommand(), ns3::LrWpanMac::SendOneBeacon(), and ns3::LrWpanMac::SendOrphanNotificationCommand().
void ns3::LrWpanMacHeader::SetSecEnable | ( | ) |
Set the Frame Control field "Security Enabled" bit to true.
Definition at line 285 of file lr-wpan-mac-header.cc.
References m_fctrlSecU.
void ns3::LrWpanMacHeader::SetSecLevel | ( | uint8_t | secLevel | ) |
Set the Security Control field "Security Level" bits (3 bits)
secLevel | the "Security Level" bits |
Definition at line 405 of file lr-wpan-mac-header.cc.
References m_secctrlSecLevel.
void ns3::LrWpanMacHeader::SetSeqNum | ( | uint8_t | seqNum | ) |
Set the Sequence number.
seqNum | sequence number |
Definition at line 357 of file lr-wpan-mac-header.cc.
References m_SeqNum.
Referenced by LrWpanMacHeader(), and Deserialize().
void ns3::LrWpanMacHeader::SetSrcAddrFields | ( | uint16_t | panId, |
Mac16Address | addr | ||
) |
Set Source address fields.
panId | source PAN ID |
addr | source address (16 bit) |
Definition at line 363 of file lr-wpan-mac-header.cc.
References m_addrShortSrcAddr, and m_addrSrcPanId.
Referenced by LrWpanPacketTestCase::DoRun(), ns3::LrWpanMac::McpsDataRequest(), ns3::LrWpanMac::MlmeAssociateResponse(), ns3::LrWpanMac::MlmeOrphanResponse(), ns3::LrWpanMac::SendAssocRequestCommand(), ns3::LrWpanMac::SendDataRequestCommand(), ns3::LrWpanMac::SendOneBeacon(), and ns3::LrWpanMac::SendOrphanNotificationCommand().
void ns3::LrWpanMacHeader::SetSrcAddrFields | ( | uint16_t | panId, |
Mac64Address | addr | ||
) |
Set Source address fields.
panId | source PAN ID |
addr | source address (64 bit) |
Definition at line 370 of file lr-wpan-mac-header.cc.
References m_addrExtSrcAddr, and m_addrSrcPanId.
void ns3::LrWpanMacHeader::SetSrcAddrMode | ( | uint8_t | addrMode | ) |
Set the Source address mode.
addrMode | Source address mode |
Definition at line 351 of file lr-wpan-mac-header.cc.
References m_fctrlSrcAddrMode.
Referenced by LrWpanMacHeader(), LrWpanPacketTestCase::DoRun(), ns3::LrWpanMac::McpsDataRequest(), ns3::LrWpanMac::MlmeAssociateResponse(), ns3::LrWpanMac::MlmeOrphanResponse(), ns3::LrWpanMac::SendAssocRequestCommand(), ns3::LrWpanMac::SendBeaconRequestCommand(), ns3::LrWpanMac::SendDataRequestCommand(), ns3::LrWpanMac::SendOneBeacon(), and ns3::LrWpanMac::SendOrphanNotificationCommand().
void ns3::LrWpanMacHeader::SetType | ( | LrWpanMacType | wpanMacType | ) |
Set the Frame Control field "Frame Type" bits.
wpanMacType | the frame type |
Definition at line 265 of file lr-wpan-mac-header.cc.
References m_fctrlFrmType.
Referenced by LrWpanMacHeader().
union { ... } ns3::LrWpanMacHeader::@57 |
Auxiliary security header.
|
private |
Dst PAN id (0 or 2 Octets)
Definition at line 420 of file lr-wpan-mac-header.h.
Referenced by Deserialize(), GetDstPanId(), Print(), and SetDstAddrFields().
|
private |
Dst Ext addr (0 or 8 Octets)
Definition at line 422 of file lr-wpan-mac-header.h.
Referenced by Deserialize(), GetExtDstAddr(), Print(), Serialize(), and SetDstAddrFields().
|
private |
Src Ext addr (0 or 8 Octets)
Definition at line 425 of file lr-wpan-mac-header.h.
Referenced by Deserialize(), GetExtSrcAddr(), Serialize(), and SetSrcAddrFields().
|
private |
Dst Short addr (0 or 2 Octets)
Definition at line 421 of file lr-wpan-mac-header.h.
Referenced by Deserialize(), GetShortDstAddr(), Print(), Serialize(), and SetDstAddrFields().
|
private |
Src Short addr (0 or 2 Octets)
Definition at line 424 of file lr-wpan-mac-header.h.
Referenced by Deserialize(), GetShortSrcAddr(), Print(), Serialize(), and SetSrcAddrFields().
|
private |
Src PAN id (0 or 2 Octets)
Definition at line 423 of file lr-wpan-mac-header.h.
Referenced by Deserialize(), GetSrcPanId(), Print(), and SetSrcAddrFields().
|
private |
Auxiliary security header - Frame Counter (4 Octets)
Definition at line 429 of file lr-wpan-mac-header.h.
Referenced by GetFrmCounter(), Print(), and SetFrmCounter().
|
private |
Auxiliary security header - Key Index (1 Octet)
Definition at line 448 of file lr-wpan-mac-header.h.
Referenced by GetKeyIdIndex(), Print(), and SetKeyId().
uint32_t ns3::LrWpanMacHeader::m_auxKeyIdKeySrc32 |
Auxiliary security header - Key Source (4 Octets)
Definition at line 444 of file lr-wpan-mac-header.h.
Referenced by GetKeyIdSrc32(), Print(), and SetKeyId().
uint64_t ns3::LrWpanMacHeader::m_auxKeyIdKeySrc64 |
Auxiliary security header - Key Source (8 Octets)
Definition at line 445 of file lr-wpan-mac-header.h.
Referenced by GetKeyIdSrc64(), Print(), and SetKeyId().
|
private |
Frame Control field Bit 5.
Definition at line 406 of file lr-wpan-mac-header.h.
Referenced by GetFrameControl(), IsAckReq(), Print(), SetAckReq(), SetFrameControl(), and SetNoAckReq().
|
private |
Frame Control field Bit 10-11 = 0 - No DstAddr, 2 - ShtDstAddr, 3 - ExtDstAddr.
Definition at line 410 of file lr-wpan-mac-header.h.
Referenced by Deserialize(), GetDstAddrMode(), GetFrameControl(), GetSerializedSize(), Print(), Serialize(), SetDstAddrMode(), and SetFrameControl().
|
private |
Frame Control field Bit 4.
Definition at line 405 of file lr-wpan-mac-header.h.
Referenced by GetFrameControl(), IsFrmPend(), Print(), SetFrameControl(), SetFrmPend(), and SetNoFrmPend().
|
private |
Frame Control field Bit 0-2 = 0 - Beacon, 1 - Data, 2 - Ack, 3 - Command.
Definition at line 401 of file lr-wpan-mac-header.h.
Referenced by GetFrameControl(), GetType(), IsAcknowledgment(), IsBeacon(), IsCommand(), IsData(), Print(), SetFrameControl(), and SetType().
|
private |
Frame Control field Bit 12-13.
Definition at line 412 of file lr-wpan-mac-header.h.
Referenced by GetFrameControl(), GetFrameVer(), Print(), SetFrameControl(), and SetFrameVer().
|
private |
Frame Control field Bit 6 = 0 - no compression, 1 - using only DstPanId for both Src and DstPanId.
Definition at line 407 of file lr-wpan-mac-header.h.
Referenced by GetFrameControl(), IsPanIdComp(), Print(), SetFrameControl(), SetNoPanIdComp(), and SetPanIdComp().
|
private |
Frame Control field Bit 7-9.
Definition at line 409 of file lr-wpan-mac-header.h.
Referenced by GetFrameControl(), GetFrmCtrlRes(), SetFrameControl(), and SetFrmCtrlRes().
|
private |
Frame Control field Bit 3 = 0 - no AuxSecHdr , 1 - security enabled AuxSecHdr present.
Definition at line 403 of file lr-wpan-mac-header.h.
Referenced by GetFrameControl(), IsSecEnable(), Print(), SetFrameControl(), SetSecDisable(), and SetSecEnable().
|
private |
Frame Control field Bit 14-15 = 0 - No SrcAddr, 2 - ShtSrcAddr, 3 - ExtSrcAddr.
Definition at line 413 of file lr-wpan-mac-header.h.
Referenced by Deserialize(), GetFrameControl(), GetSerializedSize(), GetSrcAddrMode(), Print(), Serialize(), SetFrameControl(), and SetSrcAddrMode().
|
private |
Auxiliary security header - Security Control field - Bit 3-4 will indicate size of Key Id.
Definition at line 433 of file lr-wpan-mac-header.h.
Referenced by Deserialize(), GetKeyIdMode(), GetSecControl(), GetSerializedSize(), Print(), Serialize(), SetKeyIdMode(), and SetSecControl().
|
private |
Auxiliary security header - Security Control field - Bit 5-7.
Definition at line 441 of file lr-wpan-mac-header.h.
Referenced by GetSecControl(), GetSecCtrlReserved(), SetSecControl(), and SetSecCtrlReserved().
|
private |
Auxiliary security header - Security Control field - Bit 0-2.
Definition at line 432 of file lr-wpan-mac-header.h.
Referenced by GetSecControl(), GetSecLevel(), Print(), SetSecControl(), and SetSecLevel().
|
private |
Sequence Number (1 Octet)
Definition at line 417 of file lr-wpan-mac-header.h.
Referenced by GetSeqNum(), Print(), and SetSeqNum().