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. More... | |
~LrWpanMacHeader () override | |
uint32_t | Deserialize (Buffer::Iterator start) override |
uint8_t | GetDstAddrMode () const |
Get the Dest. More... | |
uint16_t | GetDstPanId () const |
Get the Destination PAN ID. More... | |
Mac64Address | GetExtDstAddr () const |
Get the Destination Extended address. More... | |
Mac64Address | GetExtSrcAddr () const |
Get the Source Extended address. More... | |
uint16_t | GetFrameControl () const |
Get the Frame control field. More... | |
uint8_t | GetFrameVer () const |
Get the Frame Version of Frame control field. More... | |
uint32_t | GetFrmCounter () const |
Get the Auxiliary Security Header - Frame Counter Octets. More... | |
uint8_t | GetFrmCtrlRes () const |
Get the Reserved bits of Frame control field. More... | |
TypeId | GetInstanceTypeId () const override |
Get the most derived TypeId for this Object. More... | |
uint8_t | GetKeyIdIndex () const |
Get the Auxiliary Security Header - Key Identifier - Key Index. More... | |
uint8_t | GetKeyIdMode () const |
Get the Auxiliary Security Header - Security Control - Key Identifier Mode bits. More... | |
uint32_t | GetKeyIdSrc32 () const |
Get the Auxiliary Security Header - Key Identifier - Key Source (2 Octets) More... | |
uint64_t | GetKeyIdSrc64 () const |
Get the Auxiliary Security Header - Key Identifier - Key Source (4 Octets) More... | |
uint8_t | GetSecControl () const |
Get the Auxiliary Security Header - Security Control Octet. More... | |
uint8_t | GetSecCtrlReserved () const |
Get the Auxiliary Security Header - Security Control - Reserved bits. More... | |
uint8_t | GetSecLevel () const |
Get the Auxiliary Security Header - Security Control - Security Level bits. More... | |
uint8_t | GetSeqNum () const |
Get the frame Sequence number. More... | |
uint32_t | GetSerializedSize () const override |
Mac16Address | GetShortDstAddr () const |
Get the Destination Short address. More... | |
Mac16Address | GetShortSrcAddr () const |
Get the Source Short address. More... | |
uint8_t | GetSrcAddrMode () const |
Get the Source Addressing Mode of Frame control field. More... | |
uint16_t | GetSrcPanId () const |
Get the Source PAN ID. More... | |
LrWpanMacType | GetType () const |
Get the header type. More... | |
bool | IsAcknowledgment () const |
Returns true if the header is an ack. More... | |
bool | IsAckReq () const |
Check if Ack. More... | |
bool | IsBeacon () const |
Returns true if the header is a beacon. More... | |
bool | IsCommand () const |
Returns true if the header is a command. More... | |
bool | IsData () const |
Returns true if the header is a data. More... | |
bool | IsFrmPend () const |
Check if Frame Pending bit of Frame Control is enabled. More... | |
bool | IsPanIdComp () const |
Check if PAN ID Compression bit of Frame Control is enabled. More... | |
bool | IsSecEnable () const |
Check if Security Enabled bit of Frame Control is enabled. More... | |
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. More... | |
void | SetDstAddrFields (uint16_t panId, Mac16Address addr) |
Set Destination address fields. More... | |
void | SetDstAddrFields (uint16_t panId, Mac64Address addr) |
Set Destination address fields. More... | |
void | SetDstAddrMode (uint8_t addrMode) |
Set the Destination address mode. More... | |
void | SetFrameControl (uint16_t frameControl) |
Set the whole Frame Control field. More... | |
void | SetFrameVer (uint8_t ver) |
Set the Frame version. More... | |
void | SetFrmCounter (uint32_t frmCntr) |
Set the auxiliary security header "Frame Counter" octet. More... | |
void | SetFrmCtrlRes (uint8_t res) |
Set the Frame Control field "Reserved" bits. More... | |
void | SetFrmPend () |
Set the Frame Control field "Frame Pending" bit to true. More... | |
void | SetKeyId (uint32_t keySrc, uint8_t keyIndex) |
Set the Key Index and originator. More... | |
void | SetKeyId (uint64_t keySrc, uint8_t keyIndex) |
Set the Key Index and originator. More... | |
void | SetKeyId (uint8_t keyIndex) |
Set the Key Index. More... | |
void | SetKeyIdMode (uint8_t keyIdMode) |
Set the Security Control field "Key Identifier Mode" bits (2 bits) More... | |
void | SetNoAckReq () |
Set the Frame Control field "Ack. Request" bit to false. More... | |
void | SetNoFrmPend () |
Set the Frame Control field "Frame Pending" bit to false. More... | |
void | SetNoPanIdComp () |
Set the Frame Control field "PAN ID Compression" bit to false. More... | |
void | SetPanIdComp () |
Set the Frame Control field "PAN ID Compression" bit to true. More... | |
void | SetSecControl (uint8_t secLevel) |
Set the auxiliary security header "Security Control" octet. More... | |
void | SetSecCtrlReserved (uint8_t res) |
Set the Security Control field "Reserved" bits (3 bits) More... | |
void | SetSecDisable () |
Set the Frame Control field "Security Enabled" bit to false. More... | |
void | SetSecEnable () |
Set the Frame Control field "Security Enabled" bit to true. More... | |
void | SetSecLevel (uint8_t secLevel) |
Set the Security Control field "Security Level" bits (3 bits) More... | |
void | SetSeqNum (uint8_t seqNum) |
Set the Sequence number. More... | |
void | SetSrcAddrFields (uint16_t panId, Mac16Address addr) |
Set Source address fields. More... | |
void | SetSrcAddrFields (uint16_t panId, Mac64Address addr) |
Set Source address fields. More... | |
void | SetSrcAddrMode (uint8_t addrMode) |
Set the Source address mode. More... | |
void | SetType (LrWpanMacType wpanMacType) |
Set the Frame Control field "Frame Type" bits. More... | |
![]() | |
~Header () override | |
virtual uint32_t | Deserialize (Buffer::Iterator start)=0 |
Deserialize the object from a buffer iterator. More... | |
virtual uint32_t | Deserialize (Buffer::Iterator start, Buffer::Iterator end) |
Deserialize the object from a buffer iterator. More... | |
![]() | |
virtual uint32_t | Deserialize (Buffer::Iterator start, Buffer::Iterator end) |
Deserialize the object from a buffer iterator. More... | |
![]() | |
virtual | ~ObjectBase () |
Virtual destructor. More... | |
void | GetAttribute (std::string name, AttributeValue &value) const |
Get the value of an attribute, raising fatal errors if unsuccessful. More... | |
bool | GetAttributeFailSafe (std::string name, AttributeValue &value) const |
Get the value of an attribute without raising errors. More... | |
void | SetAttribute (std::string name, const AttributeValue &value) |
Set a single attribute, raising fatal errors if unsuccessful. More... | |
bool | SetAttributeFailSafe (std::string name, const AttributeValue &value) |
Set a single attribute without raising errors. More... | |
bool | TraceConnect (std::string name, std::string context, const CallbackBase &cb) |
Connect a TraceSource to a Callback with a context. More... | |
bool | TraceConnectWithoutContext (std::string name, const CallbackBase &cb) |
Connect a TraceSource to a Callback without a context. More... | |
bool | TraceDisconnect (std::string name, std::string context, const CallbackBase &cb) |
Disconnect from a TraceSource a Callback previously connected with a context. More... | |
bool | TraceDisconnectWithoutContext (std::string name, const CallbackBase &cb) |
Disconnect from a TraceSource a Callback previously connected without a context. More... | |
Static Public Member Functions | |
static TypeId | GetTypeId () |
Get the type ID. More... | |
![]() | |
static TypeId | GetTypeId () |
Get the type ID. More... | |
![]() | |
static TypeId | GetTypeId () |
Get the type ID. More... | |
![]() | |
static TypeId | GetTypeId () |
Get the type ID. More... | |
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. More... | |
uint16_t | m_addrDstPanId |
Dst PAN id (0 or 2 Octets) More... | |
Mac64Address | m_addrExtDstAddr |
Dst Ext addr (0 or 8 Octets) More... | |
Mac64Address | m_addrExtSrcAddr |
Src Ext addr (0 or 8 Octets) More... | |
Mac16Address | m_addrShortDstAddr |
Dst Short addr (0 or 2 Octets) More... | |
Mac16Address | m_addrShortSrcAddr |
Src Short addr (0 or 2 Octets) More... | |
uint16_t | m_addrSrcPanId |
Src PAN id (0 or 2 Octets) More... | |
uint32_t | m_auxFrmCntr |
Auxiliary security header - Frame Counter (4 Octets) More... | |
uint8_t | m_auxKeyIdKeyIndex |
Auxiliary security header - Key Index (1 Octet) More... | |
uint8_t | m_fctrlAckReq |
Frame Control field Bit 5. More... | |
uint8_t | m_fctrlDstAddrMode |
Frame Control field Bit 10-11 = 0 - No DstAddr, 2 - ShtDstAddr, 3 - ExtDstAddr. More... | |
uint8_t | m_fctrlFrmPending |
Frame Control field Bit 4. More... | |
uint8_t | m_fctrlFrmType |
Frame Control field Bit 0-2 = 0 - Beacon, 1 - Data, 2 - Ack, 3 - Command. More... | |
uint8_t | m_fctrlFrmVer |
Frame Control field Bit 12-13. More... | |
uint8_t | m_fctrlPanIdComp |
Frame Control field Bit 6 = 0 - no compression, 1 - using only DstPanId for both Src and DstPanId. More... | |
uint8_t | m_fctrlReserved |
Frame Control field Bit 7-9. More... | |
uint8_t | m_fctrlSecU |
Frame Control field Bit 3 = 0 - no AuxSecHdr , 1 - security enabled AuxSecHdr present. More... | |
uint8_t | m_fctrlSrcAddrMode |
Frame Control field Bit 14-15 = 0 - No SrcAddr, 2 - ShtSrcAddr, 3 - ExtSrcAddr. More... | |
uint8_t | m_secctrlKeyIdMode |
Auxiliary security header - Security Control field - Bit 3-4 will indicate size of Key Id. More... | |
uint8_t | m_secctrlReserved |
Auxiliary security header - Security Control field - Bit 5-7. More... | |
uint8_t | m_secctrlSecLevel |
Auxiliary security header - Security Control field - Bit 0-2. More... | |
uint8_t | m_SeqNum |
Sequence Number (1 Octet) More... | |
Additional Inherited Members | |
![]() | |
void | ConstructSelf (const AttributeConstructionList &attributes) |
Complete construction of ObjectBase; invoked by derived classes. More... | |
virtual void | NotifyConstructionCompleted () |
Notifier called once the ObjectBase is fully constructed. More... | |
![]() | |
static TypeId | GetObjectIid () |
Ensure the TypeId for ObjectBase gets fully configured to anchor the inheritance tree properly. More... | |
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 675 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, SHORTKEYSOURCE, and two-ray-to-three-gpp-ch-calibration::start.
uint8_t ns3::LrWpanMacHeader::GetDstAddrMode | ( | ) | const |
Get the Dest.
Addressing Mode of Frame control field
Definition at line 131 of file lr-wpan-mac-header.cc.
References m_fctrlDstAddrMode.
Referenced by ns3::LrWpanMac::EnqueueInd(), ns3::LrWpanMac::McpsDataRequest(), ns3::LrWpanMac::PdDataIndication(), and ns3::LrWpanMac::RemovePendTxQElement().
uint16_t ns3::LrWpanMacHeader::GetDstPanId | ( | ) | const |
Get the Destination PAN ID.
Definition at line 155 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 167 of file lr-wpan-mac-header.cc.
References m_addrExtDstAddr.
Referenced by ns3::LrWpanMac::EnqueueInd(), ns3::LrWpanMac::isCoordDest(), 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 185 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 84 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 137 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 203 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 125 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 457 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 239 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 215 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 227 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 233 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 191 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 221 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 209 of file lr-wpan-mac-header.cc.
References m_secctrlSecLevel.
uint8_t ns3::LrWpanMacHeader::GetSeqNum | ( | ) | const |
Get the frame Sequence number.
Definition at line 149 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 530 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 161 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::PdDataIndication(), ns3::LrWpanMac::PrintTxQueue(), ns3::LrWpanMac::RemoveFirstTxQElement(), and ns3::LrWpanMac::RemovePendTxQElement().
Mac16Address ns3::LrWpanMacHeader::GetShortSrcAddr | ( | ) | const |
Get the Source Short address.
Definition at line 179 of file lr-wpan-mac-header.cc.
References m_addrShortSrcAddr.
Referenced by ns3::LrWpanMac::PdDataIndication().
uint8_t ns3::LrWpanMacHeader::GetSrcAddrMode | ( | ) | const |
Get the Source Addressing Mode of Frame control field.
Definition at line 143 of file lr-wpan-mac-header.cc.
References m_fctrlSrcAddrMode.
Referenced by ns3::AnimationInterface::LrWpanPhyTxBeginTrace(), and ns3::LrWpanMac::PdDataIndication().
uint16_t ns3::LrWpanMacHeader::GetSrcPanId | ( | ) | const |
Get the Source PAN ID.
Definition at line 173 of file lr-wpan-mac-header.cc.
References m_addrSrcPanId.
Referenced by ns3::LrWpanMac::McpsDataRequest(), ns3::LrWpanMac::PdDataConfirm(), ns3::LrWpanMac::PdDataIndication(), and Serialize().
enum LrWpanMacHeader::LrWpanMacType ns3::LrWpanMacHeader::GetType | ( | ) | const |
Get the header type.
Definition at line 57 of file lr-wpan-mac-header.cc.
Referenced by ns3::LrWpanMac::PdDataIndication().
|
static |
Get the type ID.
Definition at line 447 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 257 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 113 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 245 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 263 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 251 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 107 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 119 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 101 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 463 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 608 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, two-ray-to-three-gpp-ch-calibration::start, 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 313 of file lr-wpan-mac-header.cc.
References m_fctrlAckReq.
Referenced by ns3::LrWpanMac::McpsDataRequest(), ns3::LrWpanMac::MlmeAssociateResponse(), 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 381 of file lr-wpan-mac-header.cc.
References m_addrDstPanId, and m_addrShortDstAddr.
Referenced by ns3::LrWpanMac::McpsDataRequest(), ns3::LrWpanMac::MlmeAssociateResponse(), ns3::LrWpanMac::SendAssocRequestCommand(), ns3::LrWpanMac::SendBeaconRequestCommand(), ns3::LrWpanMac::SendDataRequestCommand(), and ns3::LrWpanMac::SendOneBeacon().
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 388 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 343 of file lr-wpan-mac-header.cc.
References m_fctrlDstAddrMode.
Referenced by LrWpanMacHeader(), LrWpanPacketTestCase::DoRun(), ns3::LrWpanMac::McpsDataRequest(), ns3::LrWpanMac::MlmeAssociateResponse(), ns3::LrWpanMac::SendAssocRequestCommand(), ns3::LrWpanMac::SendBeaconRequestCommand(), ns3::LrWpanMac::SendDataRequestCommand(), and ns3::LrWpanMac::SendOneBeacon().
void ns3::LrWpanMacHeader::SetFrameControl | ( | uint16_t | frameControl | ) |
Set the whole Frame Control field.
frameControl | the Frame Control field |
Definition at line 275 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 349 of file lr-wpan-mac-header.cc.
References m_fctrlFrmVer.
Referenced by LrWpanMacHeader().
void ns3::LrWpanMacHeader::SetFrmCounter | ( | uint32_t | frmCntr | ) |
Set the auxiliary security header "Frame Counter" octet.
frmCntr | the "Frame Counter" octet |
Definition at line 403 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 337 of file lr-wpan-mac-header.cc.
References m_fctrlReserved, and two-ray-to-three-gpp-ch-calibration::res.
Referenced by LrWpanMacHeader().
void ns3::LrWpanMacHeader::SetFrmPend | ( | ) |
Set the Frame Control field "Frame Pending" bit to true.
Definition at line 301 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 433 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 440 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 427 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 415 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 319 of file lr-wpan-mac-header.cc.
References m_fctrlAckReq.
Referenced by LrWpanMacHeader(), ns3::LrWpanMac::McpsDataRequest(), ns3::LrWpanMac::SendBeaconRequestCommand(), and ns3::LrWpanMac::SendOneBeacon().
void ns3::LrWpanMacHeader::SetNoFrmPend | ( | ) |
Set the Frame Control field "Frame Pending" bit to false.
Definition at line 307 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 331 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 325 of file lr-wpan-mac-header.cc.
References m_fctrlPanIdComp.
Referenced by ns3::LrWpanMac::McpsDataRequest(), and ns3::LrWpanMac::MlmeAssociateResponse().
void ns3::LrWpanMacHeader::SetSecControl | ( | uint8_t | secLevel | ) |
Set the auxiliary security header "Security Control" octet.
secLevel | the "Security Control" octet |
Definition at line 395 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 421 of file lr-wpan-mac-header.cc.
References m_secctrlReserved, and two-ray-to-three-gpp-ch-calibration::res.
void ns3::LrWpanMacHeader::SetSecDisable | ( | ) |
Set the Frame Control field "Security Enabled" bit to false.
Definition at line 295 of file lr-wpan-mac-header.cc.
References m_fctrlSecU.
Referenced by LrWpanMacHeader(), LrWpanPacketTestCase::DoRun(), ns3::LrWpanMac::McpsDataRequest(), ns3::LrWpanMac::MlmeAssociateResponse(), ns3::LrWpanMac::SendAssocRequestCommand(), ns3::LrWpanMac::SendBeaconRequestCommand(), ns3::LrWpanMac::SendDataRequestCommand(), and ns3::LrWpanMac::SendOneBeacon().
void ns3::LrWpanMacHeader::SetSecEnable | ( | ) |
Set the Frame Control field "Security Enabled" bit to true.
Definition at line 289 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 409 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 361 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 367 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::SendAssocRequestCommand(), ns3::LrWpanMac::SendDataRequestCommand(), and ns3::LrWpanMac::SendOneBeacon().
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 374 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 355 of file lr-wpan-mac-header.cc.
References m_fctrlSrcAddrMode.
Referenced by LrWpanMacHeader(), LrWpanPacketTestCase::DoRun(), ns3::LrWpanMac::McpsDataRequest(), ns3::LrWpanMac::MlmeAssociateResponse(), ns3::LrWpanMac::SendAssocRequestCommand(), ns3::LrWpanMac::SendBeaconRequestCommand(), ns3::LrWpanMac::SendDataRequestCommand(), and ns3::LrWpanMac::SendOneBeacon().
void ns3::LrWpanMacHeader::SetType | ( | LrWpanMacType | wpanMacType | ) |
Set the Frame Control field "Frame Type" bits.
wpanMacType | the frame type |
Definition at line 269 of file lr-wpan-mac-header.cc.
References m_fctrlFrmType.
Referenced by LrWpanMacHeader().
union { ... } |
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(), 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().