28#include <ns3/event-id.h>
29#include <ns3/lr-wpan-fields.h>
30#include <ns3/lr-wpan-phy.h>
31#include <ns3/mac16-address.h>
32#include <ns3/mac64-address.h>
33#include <ns3/object.h>
34#include <ns3/sequence-number.h>
35#include <ns3/traced-callback.h>
36#include <ns3/traced-value.h>
124namespace TracedValueCallback
Represent the Capability Information Field.
An identifier for simulation events.
Represent the GTS information fields.
Class that implements the LR-WPAN MAC state machine.
uint32_t m_incomingBeaconInterval
Indication of the interval a node should receive a superframe expressed in symbols.
uint32_t GetIfsSize()
Get the size of the Interframe Space according to MPDU size (m_txPkt).
Ptr< LrWpanCsmaCa > m_csmaCa
The CSMA/CA implementation used by this MAC.
uint64_t m_assocRespCmdWaitTime
The maximum wait time for an association response command after the reception of data request command...
McpsDataConfirmCallback m_mcpsDataConfirmCallback
This callback is used to report data transmission request status to the upper layers.
uint64_t GetMacAckWaitDuration() const
Get the macAckWaitDuration attribute value.
Time m_macBeaconRxTime
The time that the device received its last bit of the beacon frame.
void PlmeCcaConfirm(LrWpanPhyEnumeration status)
IEEE 802.15.4-2006 section 6.2.2.2 PLME-CCA.confirm status.
bool m_macRxOnWhenIdle
Indication of whether the MAC sublayer is to enable its receiver during idle periods.
bool m_macAssociationPermit
Indication of whether a coordinator is currently allowing association.
TracedCallback< Ptr< const Packet > > m_macTxOkTrace
The trace source fired when packets where successfully transmitted, that is an acknowledgment was rec...
void SetMlmeBeaconNotifyIndicationCallback(MlmeBeaconNotifyIndicationCallback c)
Set the callback for the indication of an incoming beacon packet.
uint64_t m_rxBeaconSymbols
The total size of the received beacon in symbols.
void SetRxOnWhenIdle(bool rxOnWhenIdle)
Set if the receiver should be enabled when the MAC is idle.
uint64_t GetTxPacketSymbols()
Obtain the number of symbols in the packet which is currently being sent by the MAC layer.
void MlmeGetRequest(LrWpanMacPibAttributeIdentifier id)
IEEE 802.15.4-2011, section 6.2.5.1 MLME-GET.request Request information about a given PIB attribute.
bool m_panCoor
Indication of whether the current device is the PAN coordinator.
void SetMlmeAssociateIndicationCallback(MlmeAssociateIndicationCallback c)
Set the callback for the indication of an incoming associate request command.
void PlmeSetTRXStateConfirm(LrWpanPhyEnumeration status)
IEEE 802.15.4-2006 section 6.2.2.8 PLME-SET-TRX-STATE.confirm Set PHY state.
uint8_t m_numCsmacaRetry
The number of CSMA/CA retries used for sending the current packet.
void MlmeSyncRequest(MlmeSyncRequestParams params)
IEEE 802.15.4-2011, section 6.2.13.1 MLME-SYNC.request Request to synchronize with the coordinator by...
static TypeId GetTypeId()
Get the type ID.
MlmeStartConfirmCallback m_mlmeStartConfirmCallback
This callback is used to report the start of a new PAN or the begin of a new superframe configuration...
uint8_t m_deviceCapability
Indication of current device capability (FFD or RFD)
void AwaitBeacon()
Called after the end of an INCOMING superframe to start the moment a device waits for a new incoming ...
bool m_coor
Indicates if the current device is a coordinator type.
void LostAssocRespCommand()
Called after m_assocRespCmdWaitTime timeout while waiting for an association response command.
bool isCoordDest()
Check if the packet destination is its coordinator.
EventId m_trackingEvent
Scheduler event to track the incoming beacons.
void SetMlmeScanConfirmCallback(MlmeScanConfirmCallback c)
Set the callback for the confirmation of a data transmission request.
uint32_t m_maxIndTxQueueSize
The maximum size of the indirect transmit queue (The pending transaction list).
EventId m_assocResCmdWaitTimeout
Scheduler event for the lost of a association response command frame.
void PurgeInd()
Purge expired transactions from the pending transactions list.
void SetMlmePollConfirmCallback(MlmePollConfirmCallback c)
Set the callback for the confirmation of a data transmission request.
void RemoveFirstTxQElement()
Remove the tip of the transmission queue, including clean up related to the last packet transmission.
void PlmeEdConfirm(LrWpanPhyEnumeration status, uint8_t energyLevel)
IEEE 802.15.4-2006 section 6.2.2.4 PLME-ED.confirm status and energy level.
TracedCallback< Ptr< const Packet > > m_macRxTrace
The trace source fired for packets successfully received by the device immediately before being forwa...
TracedCallback< Ptr< const Packet > > m_promiscSnifferTrace
A trace source that emulates a promiscuous mode protocol sniffer connected to the device.
void SetExtendedAddress(Mac64Address address)
Set the extended address of this MAC.
void MlmeStartRequest(MlmeStartRequestParams params)
IEEE 802.15.4-2006, section 7.1.14.1 MLME-START.request Request to allow a PAN coordinator to initiat...
uint32_t m_macLIFSPeriod
The minimum time forming a Long InterFrame Spacing (LIFS) period.
void StartInactivePeriod(SuperframeType superframeType)
Start the Inactive Period in a beacon-enabled mode.
TracedCallback< Ptr< const Packet > > m_macTxDropTrace
The trace source fired when packets are dropped due to missing ACKs or because of transmission failur...
void SetMcpsDataIndicationCallback(McpsDataIndicationCallback c)
Set the callback for the indication of an incoming data packet.
TracedCallback< Ptr< const Packet > > m_macIndTxDequeueTrace
The trace source fired when packets are dequeued from the L3/l2 indirect transmission queue (Pending ...
TracedCallback< Ptr< const Packet > > m_macIndTxDropTrace
The trace source fired when packets are dropped due to indirect Tx queue overflows or expiration.
void SetMlmeAssociateConfirmCallback(MlmeAssociateConfirmCallback c)
Set the callback for the confirmation of a data transmission request.
MlmeScanConfirmCallback m_mlmeScanConfirmCallback
This callback is used to report the result of a scan on a group of channels for the selected channel ...
Mac16Address GetShortAddress() const
Get the short address of this MAC.
void SendDataRequestCommand()
Used to send a data request command (i.e.
void SetMlmeStartConfirmCallback(MlmeStartConfirmCallback c)
Set the callback for the confirmation of a data transmission request.
SuperframeField GetSuperframeField()
Constructs a Superframe specification field from the local information, the superframe Specification ...
EventId m_cfpEvent
Scheduler event for the end of the outgoing superframe CFP.
void PlmeGetAttributeConfirm(LrWpanPhyEnumeration status, LrWpanPibAttributeIdentifier id, Ptr< LrWpanPhyPibAttributes > attribute)
IEEE 802.15.4-2006 section 6.2.2.6 PLME-GET.confirm Get attributes per definition from Table 23 in se...
uint8_t m_macMaxFrameRetries
The maximum number of retries allowed after a transmission failure.
Mac64Address m_macCoordExtendedAddress
The extended address of the coordinator through which the device is associated.
MlmeSyncLossIndicationCallback m_mlmeSyncLossIndicationCallback
This callback is used to indicate the loss of synchronization with a coordinator.
PendingPrimitiveStatus m_pendPrimitive
Indicates the pending primitive when PLME.SET operation (page or channel switch) is called from withi...
MlmePollConfirmCallback m_mlmePollConfirmCallback
This callback is used to report the status after a device send data command request to the coordinato...
uint8_t GetMacMaxFrameRetries() const
Get the macMaxFrameRetries attribute value.
uint16_t m_channelScanIndex
The channel list index used to obtain the current scanned channel.
uint16_t GetPanId() const
Get the PAN id used by this MAC.
PendingAddrFields GetPendingAddrFields()
Constructs Pending Address Fields from the local information, the Pending Address Fields are part of ...
std::vector< PanDescriptor > m_panDescriptorList
The list of PAN descriptors accumulated during channel scans, used to select a PAN to associate.
void SendBeaconRequestCommand()
Called to send a beacon request command.
EventId m_respWaitTimeout
Scheduler event for a response to a request command frame.
uint32_t m_maxTxQueueSize
The maximum size of the transmit queue.
Ptr< Packet > m_macBeaconPayload
The contents of the beacon payload.
std::deque< Ptr< TxQueueElement > > m_txQueue
The transmit queue used by the MAC.
SequenceNumber8 m_macBsn
Sequence number added to transmitted beacon frame, 00-ff.
LrWpanAssociationStatus m_associationStatus
The current association status of the MAC layer.
Ptr< Packet > m_rxPkt
The command request packet received.
TracedCallback< Ptr< const Packet > > m_macIndTxEnqueueTrace
The trace source fired when packets come into the "top" of the device at the L3/L2 transition,...
void SetLrWpanMacState(LrWpanMacState macState)
CSMA-CA algorithm calls back the MAC after executing channel assessment.
Mac16Address m_shortAddress
The short address (16 bit address) used by this MAC.
uint8_t m_macSuperframeOrder
Used by a PAN coordinator or coordinator.
void(* StateTracedCallback)(LrWpanMacState oldState, LrWpanMacState newState)
TracedCallback signature for LrWpanMacState change events.
void SetCsmaCa(Ptr< LrWpanCsmaCa > csmaCa)
Set the CSMA/CA implementation to be used by the MAC.
void BeaconSearchTimeout()
Called if the device is unable to locate a beacon in the time set by MLME-SYNC.request.
bool isTxAckReq()
Check if the packet to transmit requires acknowledgment.
std::vector< uint8_t > m_energyDetectList
The list of energy measurements, one for each channel searched during an ED scan.
void PdDataIndication(uint32_t psduLength, Ptr< Packet > p, uint8_t lqi)
IEEE 802.15.4-2006 section 6.2.1.3 PD-DATA.indication Indicates the transfer of an MPDU from PHY to M...
void SendOneBeacon()
Called to send a single beacon frame.
Time m_macBeaconTxTime
The time that the device transmitted its last beacon frame.
MlmeBeaconNotifyIndicationCallback m_mlmeBeaconNotifyIndicationCallback
This callback is used to notify incoming beacon packets to the upper layers.
void EndStartRequest()
Called to end a MLME-START.request after changing the page and channel number.
TracedCallback< LrWpanMacState, LrWpanMacState > m_macStateLogger
A trace source that fires when the LrWpanMac changes states.
Mac64Address GetExtendedAddress() const
Get the extended address of this MAC.
EventId m_setMacState
Scheduler event for a deferred MAC state change.
uint64_t m_macResponseWaitTime
The maximum time, in multiples of aBaseSuperframeDuration, a device shall wait for a response command...
void EnqueueInd(Ptr< Packet > p)
Adds a packet to the pending transactions list (Indirect transmissions).
void SendAssocResponseCommand(Ptr< Packet > rxDataReqPkt)
Called to send an associate response command.
void SetMlmeSetConfirmCallback(MlmeSetConfirmCallback c)
Set the callback for the confirmation of an attempt to write an attribute.
void StartCFP(SuperframeType superframeType)
Called to begin the Contention Free Period (CFP) in a beacon-enabled mode.
EventId m_scanEnergyEvent
Scheduler event for the end of a ED channel scan.
void SetMcpsDataConfirmCallback(McpsDataConfirmCallback c)
Set the callback for the confirmation of a data transmission request.
bool PrepareRetransmission()
Check for remaining retransmissions for the packet currently being sent.
void SetAssociationStatus(LrWpanAssociationStatus status)
Set the current association status.
void MlmeAssociateRequest(MlmeAssociateRequestParams params)
IEEE 802.15.4-2011, section 6.2.2.1 MLME-ASSOCIATE.request Request primitive used by a device to requ...
void EnqueueTxQElement(Ptr< TxQueueElement > txQElement)
Add an element to the transmission queue.
void SetPanId(uint16_t panId)
Set the PAN id used by this MAC.
EventId m_scanEvent
Scheduler event for the end of an ACTIVE or PASSIVE channel scan.
TracedCallback< Ptr< const Packet > > m_snifferTrace
A trace source that emulates a non-promiscuous protocol sniffer connected to the device.
uint8_t m_incomingBeaconOrder
The beaconOrder value of the INCOMING frame.
SequenceNumber8 m_macDsn
Sequence number added to transmitted data or MAC command frame, 00-ff.
void SetMlmeSyncLossIndicationCallback(MlmeSyncLossIndicationCallback c)
Set the callback for the loss of synchronization with a coordinator.
void SendOrphanNotificationCommand()
Called to send a orphan notification command.
uint32_t m_ifs
The value of the necessary InterFrame Space after the transmission of a packet.
uint16_t m_macTransactionPersistenceTime
The maximum time (in UNIT periods) that a transaction is stored by a coordinator and indicated in its...
Mac16Address GetCoordShortAddress() const
Get the coordinator short address currently associated to this device.
void ChangeMacState(LrWpanMacState newState)
Change the current MAC state to the given new state.
void(* SentTracedCallback)(Ptr< const Packet > packet, uint8_t retries, uint8_t backoffs)
TracedCallback signature for sent packets.
MlmeStartRequestParams m_startParams
The parameters used during a MLME-START.request.
void AckWaitTimeout()
Handle an ACK timeout with a packet retransmission, if there are retransmission left,...
void MlmeScanRequest(MlmeScanRequestParams params)
IEEE 802.15.4-2011, section 6.2.10.1 MLME-SCAN.request Request primitive used to initiate a channel s...
LrWpanAssociationStatus GetAssociationStatus() const
Get the current association status.
std::vector< uint8_t > m_unscannedChannels
The list of unscanned channels during a scan operation.
Mac64Address GetCoordExtAddress() const
Get the coordinator extended address currently associated to this device.
uint8_t m_macBeaconOrder
Used by a PAN coordinator or coordinator.
TracedCallback< Time > m_macIfsEndTrace
The trace source is fired at the end of any Interframe Space (IFS).
void SetMlmeGetConfirmCallback(MlmeGetConfirmCallback c)
Set the callback for the confirmation of an attempt to read an attribute.
TracedValue< SuperframeStatus > m_outSuperframeStatus
The current period of the outgoing superframe.
void PlmeSetAttributeConfirm(LrWpanPhyEnumeration status, LrWpanPibAttributeIdentifier id)
IEEE 802.15.4-2006 section 6.2.2.10 PLME-SET.confirm Set attributes per definition from Table 23 in s...
MlmeOrphanIndicationCallback m_mlmeOrphanIndicationCallback
This callback is used to indicate the reception of a orphan notification command.
void SetMlmeCommStatusIndicationCallback(MlmeCommStatusIndicationCallback c)
Set the callback for the indication to a response primitive.
bool DequeueInd(Mac64Address dst, Ptr< IndTxQueueElement > entry)
Extracts a packet from pending transactions list (Indirect transmissions).
MlmeAssociateRequestParams m_associateParams
The parameters used during a MLME-ASSOCIATE.request.
LrWpanMac()
Default constructor.
void CheckQueue()
Check the transmission queue.
EventId m_ackWaitTimeout
Scheduler event for the ACK timeout of the currently transmitted data packet.
MlmeAssociateConfirmCallback m_mlmeAssociateConfirmCallback
This callback is used to report the status after a device request an association with a coordinator.
bool m_macPromiscuousMode
Indicates if MAC sublayer is in receive all mode.
uint8_t m_fnlCapSlot
Indication of the Slot where the CAP portion of the OUTGOING Superframe ends.
uint32_t m_macSIFSPeriod
The minimum time forming a Short InterFrame Spacing (SIFS) period.
void IfsWaitTimeout(Time ifsTime)
After a successful transmission of a frame (beacon, data) or an ack frame reception,...
std::deque< Ptr< IndTxQueueElement > > m_indTxQueue
The indirect transmit queue used by the MAC pending messages (The pending transaction list).
uint32_t m_beaconInterval
Indication of the Interval used by the coordinator to transmit beacon frames expressed in symbols.
TracedValue< LrWpanMacState > m_lrWpanMacState
The current state of the MAC layer.
TracedCallback< Ptr< const Packet > > m_macTxEnqueueTrace
The trace source fired when packets come into the "top" of the device at the L3/L2 transition,...
EventId m_capEvent
Scheduler event for the end of the outgoing superframe CAP.
TracedCallback< Ptr< const Packet > > m_macTxTrace
The trace source fired when packets are being sent down to L1.
uint16_t m_macPanId
16 bits id of PAN on which this device is operating.
void EndChannelScan()
Called at the end of the current channel scan (Active or Passive) for a given duration.
void DoInitialize() override
Initialize() implementation.
void MlmeAssociateResponse(MlmeAssociateResponseParams params)
IEEE 802.15.4-2011, section 6.2.2.3 MLME-ASSOCIATE.response Primitive used to initiate a response to ...
void PrintTxQueue(std::ostream &os) const
Print the Transmit Queue.
TracedCallback< Ptr< const Packet > > m_macRxDropTrace
The trace source fired for packets successfully received by the device but dropped before being forwa...
bool m_macAutoRequest
Indication of whether a device automatically sends data request command if its address is listed in t...
uint8_t m_incomingSuperframeOrder
Used by all devices that have a parent.
uint16_t m_macPanIdScan
Temporally stores the value of the current m_macPanId when a MLME-SCAN.request is performed.
uint32_t m_macBeaconPayloadLength
The length, in octets, of the beacon payload.
TracedCallback< Ptr< const Packet > > m_macTxDequeueTrace
The trace source fired when packets are dequeued from the L3/l2 transmission queue.
void PdDataConfirm(LrWpanPhyEnumeration status)
IEEE 802.15.4-2006 section 6.2.1.2 Confirm the end of transmission of an MPDU to MAC.
uint8_t m_numLostBeacons
The number of consecutive loss beacons in a beacon tracking operation.
Ptr< Packet > m_txPkt
The packet which is currently being sent by the MAC layer.
void McpsDataRequest(McpsDataRequestParams params, Ptr< Packet > p)
IEEE 802.15.4-2006, section 7.1.1.1 MCPS-DATA.request Request to transfer a MSDU.
void SendAssocRequestCommand()
Called to send an associate request command.
uint8_t m_maxEnergyLevel
The maximum energy level detected during ED scan on the current channel.
void DoDispose() override
Destructor implementation.
MlmeScanRequestParams m_scanParams
The parameters used during a MLME-SCAN.request.
MlmeAssociateIndicationCallback m_mlmeAssociateIndicationCallback
This callback is used to indicate the reception of an association request command.
void SetPhy(Ptr< LrWpanPhy > phy)
Set the underlying PHY for the MAC.
Ptr< LrWpanPhy > GetPhy()
Get the underlying PHY of the MAC.
EventId m_scanOrphanEvent
Scheduler event for the end of an ORPHAN channel scan.
void EndAssociateRequest()
Called to end an MLME-ASSOCIATE.request after changing the page and channel number.
MlmeSetConfirmCallback m_mlmeSetConfirmCallback
This callback is used to report the result of an attribute writing request to the upper layers.
Mac64Address m_selfExt
The extended 64 address (IEEE EUI-64) used by this MAC.
MlmeGetConfirmCallback m_mlmeGetConfirmCallback
This callback is used to report the result of an attribute read request to the upper layers.
EventId m_incCapEvent
Scheduler event for the end of the incoming superframe CAP.
void SetTxQMaxSize(uint32_t queueSize)
Set the max size of the transmit queue.
void SetIndTxQMaxSize(uint32_t queueSize)
Set the max size of the indirect transmit queue (Pending Transaction list)
McpsDataIndicationCallback m_mcpsDataIndicationCallback
This callback is used to notify incoming packets to the upper layers.
bool m_beaconTrackingOn
Indication of whether the current device is tracking incoming beacons.
uint32_t m_superframeDuration
Indication of the superframe duration in symbols.
bool GetRxOnWhenIdle() const
Check if the receiver will be enabled when the MAC is idle.
Mac16Address m_macCoordShortAddress
The short address of the coordinator through which the device is associated.
GtsFields GetGtsFields()
Constructs the Guaranteed Time Slots (GTS) Fields from local information.
void MlmeOrphanResponse(MlmeOrphanResponseParams params)
IEEE 802.15.4-2011, section 6.2.7.2 MLME-ORPHAN.response Primitive used to initiatte a response to an...
Ptr< LrWpanPhy > m_phy
The PHY associated with this MAC.
void EndChannelEnergyScan()
Called at the end of one ED channel scan.
uint64_t m_macSyncSymbolOffset
Symbol boundary is same as m_macBeaconTxTime.
void PrintTransmitQueueSize()
Print the number of elements in the packet transmit queue.
void PrintPendTxQ(std::ostream &os) const
Print the Pending transaction list.
void MlmeSetRequest(LrWpanMacPibAttributeIdentifier id, Ptr< LrWpanMacPibAttributes > attribute)
IEEE 802.15.4-2011, section 6.2.11.1 MLME-SET.request Attempts to write the given value to the indica...
void StartCAP(SuperframeType superframeType)
Called to begin the Contention Access Period (CAP) in a beacon-enabled mode.
TracedCallback< Ptr< const Packet > > m_macPromiscRxTrace
The trace source fired for packets successfully received by the device immediately before being forwa...
void MlmePollRequest(MlmePollRequestParams params)
IEEE 802.15.4-2011, section 6.2.14.2 MLME-POLL.request Prompts the device to request data from the co...
EventId m_ifsEvent
Scheduler event for Interframe spacing wait time.
EventId m_beaconEvent
Scheduler event for generation of one beacon.
uint32_t m_incomingSuperframeDuration
Indication of the superframe duration in symbols (e.g.
TracedCallback< Ptr< const Packet >, uint8_t, uint8_t > m_sentPktTrace
The trace source fired when packets are considered as successfully sent or the transmission has been ...
void RemovePendTxQElement(Ptr< Packet > p)
Remove an element from the pending transaction list.
void SetMlmeOrphanIndicationCallback(MlmeOrphanIndicationCallback c)
Set the callback for the indication to the reception of an orphan notification.
void SetShortAddress(Mac16Address address)
Set the short address of this MAC.
void SetMacMaxFrameRetries(uint8_t retries)
Set the macMaxFrameRetries attribute value.
uint8_t m_retransmission
The number of already used retransmission for the currently transmitted packet.
EventId m_incCfpEvent
Scheduler event for the end of the incoming superframe CFP.
void SendAck(uint8_t seqno)
Send an acknowledgment packet for the given sequence number.
uint8_t m_incomingFnlCapSlot
Indication of the Slot where the CAP portion of the INCOMING Superframe ends.
MlmeCommStatusIndicationCallback m_mlmeCommStatusIndicationCallback
This callback is instigated through a response primitive.
TracedValue< SuperframeStatus > m_incSuperframeStatus
The current period of the incoming superframe.
void SetAssociatedCoor(Mac16Address mac)
Check if the packet destination is its coordinator.
This class can contain 16 bit addresses.
A base class which provides memory management and object aggregation.
Represent the Pending Address Specification field.
Smart pointer class similar to boost::intrusive_ptr.
A template-based reference counting class.
Represent the Superframe Specification information field.
Simulation virtual time values and global simulation resolution.
Forward calls to a chain of Callback.
Trace classes with value semantics.
a unique identifier for an interface.
Callback< void, McpsDataConfirmParams > McpsDataConfirmCallback
This callback is called after a McpsDataRequest has been called from the higher layer.
LrWpanMlmePollConfirmStatus
Table 39 of IEEE 802.15.4-2011.
LrWpanMacState
MAC states.
Callback< void, McpsDataIndicationParams, Ptr< Packet > > McpsDataIndicationCallback
This callback is called after a Mcps has successfully received a frame and wants to deliver it to the...
Callback< void, MlmeStartConfirmParams > MlmeStartConfirmCallback
This callback is called after a MlmeStartRequest has been called from the higher layer.
Callback< void, MlmeScanConfirmParams > MlmeScanConfirmCallback
This callback is called after a MlmeScanRequest has been called from the higher layer.
LrWpanMlmeScanType
Table 30 of IEEE 802.15.4-2011.
LrWpanMcpsDataConfirmStatus
Table 42 of 802.15.4-2006.
LrWpanMlmeScanConfirmStatus
Table 31 of IEEE 802.15.4-2011.
SuperframeStatus
Superframe status.
LrWpanPhyEnumeration
IEEE802.15.4-2006 PHY Emumerations Table 18 in section 6.2.3.
Callback< void, MlmeOrphanIndicationParams > MlmeOrphanIndicationCallback
This callback is called by the MLME and issued to its next higher layer following the reception of a ...
LrWpanMlmeSetConfirmStatus
Table 33 of IEEE 802.15.4-2011.
LrWpanTxOption
Tx options.
Callback< void, MlmeBeaconNotifyIndicationParams > MlmeBeaconNotifyIndicationCallback
This callback is called after a Mlme has successfully received a beacon frame and wants to deliver it...
LrWpanAssociationStatus
table 83 of 802.15.4
Callback< void, MlmeAssociateIndicationParams > MlmeAssociateIndicationCallback
This callback is called after a Mlme has successfully received a command frame and wants to deliver i...
Callback< void, MlmePollConfirmParams > MlmePollConfirmCallback
This callback is called after a Mlme-Poll.Request has been called from the higher layer.
LrWpanMlmeStartConfirmStatus
Table 35 of IEEE 802.15.4-2011.
PendingPrimitiveStatus
Indicates a pending MAC primitive.
LrWpanAddressMode
table 80 of 802.15.4
Callback< void, MlmeAssociateConfirmParams > MlmeAssociateConfirmCallback
This callback is called after a MlmeAssociateRequest has been called from the higher layer.
LrWpanMlmeAssociateConfirmStatus
Table 12 of IEEE 802.15.4-2011.
Callback< void, MlmeSetConfirmParams > MlmeSetConfirmCallback
This callback is called after a MlmeSetRequest has been called from the higher layer to set a PIB.
SuperframeType
Superframe type.
LrWpanMlmeCommStatus
Table 18 of IEEE 802.15.4-2011.
LrWpanMacPibAttributeIdentifier
IEEE802.15.4-2011 MAC PIB Attribute Identifiers Table 52 in section 6.4.2.
Callback< void, MlmeSyncLossIndicationParams > MlmeSyncLossIndicationCallback
This callback is called to indicate the loss of synchronization with a coordinator.
LrWpanPibAttributeIdentifier
IEEE802.15.4-2006 PHY PIB Attribute Identifiers Table 23 in section 6.4.2.
Callback< void, LrWpanMlmeGetConfirmStatus, LrWpanMacPibAttributeIdentifier, Ptr< LrWpanMacPibAttributes > > MlmeGetConfirmCallback
This callback is called after a MlmeGetRequest has been called from the higher layer to get a PIB.
Callback< void, MlmeCommStatusIndicationParams > MlmeCommStatusIndicationCallback
This callback is called by the MLME and issued to its next higher layer following a transmission inst...
LrWpanSyncLossReason
Table 37 of IEEE 802.15.4-2011.
LrWpanMlmeGetConfirmStatus
Table 20 of IEEE 802.15.4-2011.
@ MLMEPOLL_UNSUPPORTED_SECURITY
@ MLMEPOLL_FRAME_TOO_LONG
@ MLMEPOLL_INVALID_PARAMETER
@ MLMEPOLL_CHANNEL_ACCESS_FAILURE
@ MLMEPOLL_UNAVAILABLE_KEY
@ CHANNEL_ACCESS_FAILURE
CHANNEL_ACCESS_FAILURE.
@ MAC_CSMA_DEFERRED
MAC_CSMA_DEFERRED.
@ CHANNEL_IDLE
CHANNEL_IDLE.
@ SET_PHY_TX_ON
SET_PHY_TX_ON.
@ MAC_INACTIVE
MAC_INACTIVE.
@ MAC_SENDING
MAC_SENDING.
@ MAC_ACK_PENDING
MAC_ACK_PENDING.
@ IEEE_802_15_4_TRANSACTION_OVERFLOW
@ IEEE_802_15_4_INVALID_GTS
@ IEEE_802_15_4_UNSUPPORTED_SECURITY
@ IEEE_802_15_4_CHANNEL_ACCESS_FAILURE
@ IEEE_802_15_4_INVALID_ADDRESS
@ IEEE_802_15_4_INVALID_PARAMETER
@ IEEE_802_15_4_COUNTER_ERROR
@ IEEE_802_15_4_FRAME_TOO_LONG
@ IEEE_802_15_4_TRANSACTION_EXPIRED
@ IEEE_802_15_4_UNAVAILABLE_KEY
@ MLMESCAN_UNAVAILABLE_KEY
@ MLMESCAN_UNSUPPORTED_SECURITY
@ MLMESCAN_FRAME_TOO_LONG
@ MLMESCAN_SCAN_IN_PROGRESS
@ MLMESCAN_INVALID_PARAMETER
@ CFP
Contention Free Period.
@ INACTIVE
Inactive Period or unslotted CSMA-CA.
@ CAP
Contention Access Period.
@ BEACON
The Beacon transmission or reception Period.
@ MLMESET_INVALID_PARAMETER
@ MLMESET_UNSUPPORTED_ATTRIBUTE
@ TX_OPTION_ACK
TX_OPTION_ACK.
@ TX_OPTION_INDIRECT
TX_OPTION_INDIRECT.
@ TX_OPTION_NONE
TX_OPTION_NONE.
@ TX_OPTION_GTS
TX_OPTION_GTS.
@ ASSOCIATED_WITHOUT_ADDRESS
@ MLMESTART_UNSUPPORTED_SECURITY
@ MLMESTART_SUPERFRAME_OVERLAP
@ MLMESTART_INVALID_PARAMETER
@ MLMESTART_CHANNEL_ACCESS_FAILURE
@ MLMESTART_FRAME_TOO_LONG
@ MLMESTART_UNAVAILABLE_KEY
@ MLMESTART_COUNTER_ERROR
@ MLMESTART_NO_SHORT_ADDRESS
@ MLME_SCAN_REQ
Pending MLME-SCAN.request primitive.
@ MLME_ASSOC_REQ
Pending MLME-ASSOCIATION.request primitive.
@ MLME_SYNC_REQ
Pending MLME-SYNC.request primitive.
@ MLME_START_REQ
Pending MLME-START.request primitive.
@ MLME_NONE
No pending primitive.
@ MLMEASSOC_ACCESS_DENIED
@ MLMEASSOC_COUNTER_ERROR
@ MLMEASSOC_CHANNEL_ACCESS_FAILURE
@ MLMEASSOC_INVALID_PARAMETER
@ MLMEASSOC_FRAME_TOO_LONG
@ MLMEASSOC_UNSUPPORTED_LEGACY
@ MLMEASSOC_FULL_CAPACITY
@ INCOMING
Incoming Superframe.
@ OUTGOING
Outgoing Superframe.
@ MLMECOMMSTATUS_TRANSACTION_OVERFLOW
@ MLMECOMMSTATUS_FRAME_TOO_LONG
@ MLMECOMMSTATUS_COUNTER_ERROR
@ MLMECOMMSTATUS_INVALID_PARAMETER
@ MLMECOMMSTATUS_TRANSACTION_EXPIRED
@ MLMECOMMSTATUS_CHANNEL_ACCESS_FAILURE
@ MLMESYNCLOSS_SUPERFRAME_OVERLAP
@ MLMESYNCLOSS_PAN_ID_CONFLICT
@ MLMESYNCLOSS_REALIGMENT
@ MLMESYNCLOSS_BEACON_LOST
@ MLMEGET_UNSUPPORTED_ATTRIBUTE
Every class exported by the ns3 library is enclosed in the ns3 namespace.
Helper structure for managing pending transaction list elements (Indirect transmissions).
Time expireTime
The expiration time of the packet in the indirect transmission queue.
Mac64Address dstExtAddress
The destination extended Mac Address.
uint8_t seqNum
The sequence number of the queued packet.
Mac16Address dstShortAddress
The destination short Mac Address.
Ptr< Packet > txQPkt
Queued packet.
Helper structure for managing transmission queue elements.
Ptr< Packet > txQPkt
Queued packet.
uint8_t txQMsduHandle
MSDU Handle.
IEEE802.15.4-2011 PHY PIB Attributes Table 52 in section 6.4.2.
Mac64Address macExtendedAddress
The EUI-64 bit address.
uint8_t macBeaconPayloadLength
The length in octets of the beacon payload.
Ptr< Packet > macBeaconPayload
The contents of the beacon payload.
Mac16Address macShortAddress
The 16 bit mac short address.
uint16_t macPanId
The identifier of the PAN.
MCPS-DATA.confirm params.
LrWpanMcpsDataConfirmStatus m_status
The status of the last MSDU transmission.
uint8_t m_msduHandle
MSDU handle.
MCPS-DATA.indication params.
Mac16Address m_dstAddr
Destination address.
uint8_t m_dstAddrMode
Destination address mode.
uint16_t m_dstPanId
Destination PAN identifier.
uint8_t m_dsn
The DSN of the received data frame.
uint8_t m_mpduLinkQuality
LQI value measured during reception of the MPDU.
uint16_t m_srcPanId
Source PAN identifier.
Mac64Address m_dstExtAddr
Destination extended address.
uint8_t m_srcAddrMode
Source address mode.
Mac64Address m_srcExtAddr
Source extended address.
Mac16Address m_srcAddr
Source address.
MCPS-DATA.request params.
LrWpanAddressMode m_srcAddrMode
Source address mode.
Mac64Address m_dstExtAddr
Destination extended address.
LrWpanAddressMode m_dstAddrMode
Destination address mode.
uint16_t m_dstPanId
Destination PAN identifier.
Mac16Address m_dstAddr
Destination address.
uint8_t m_msduHandle
MSDU handle.
uint8_t m_txOptions
Tx Options (bitfield)
MLME-ASSOCIATE.confirm params.
LrWpanMlmeAssociateConfirmStatus m_status
The status of a MLME-associate.request.
Mac16Address m_assocShortAddr
The short address used in the association request.
MLME-ASSOCIATE.indication params.
Mac64Address m_extDevAddr
The extended address of the device requesting association.
CapabilityField capabilityInfo
The operational capabilities of the device requesting association.
MLME-ASSOCIATE.request params.
uint8_t m_chNum
The channel number on which to attempt association.
CapabilityField m_capabilityInfo
Specifies the operational capabilities of the associating device.
uint8_t m_coordAddrMode
The coordinator addressing mode for this primitive and subsequent MPDU.
uint32_t m_chPage
The channel page on which to attempt association.
Mac64Address m_coordExtAddr
The extended address of the coordinator with which to associate.
Mac16Address m_coordShortAddr
The short address of the coordinator with which to associate.
uint16_t m_coordPanId
The identifier of the PAN with which to associate.
MLME-ASSOCIATE.response params.
LrWpanAssociationStatus m_status
The status of the association attempt (As defined on Table 83 IEEE 802.15.4-2006)
Mac16Address m_assocShortAddr
The short address allocated by the coordinator on successful assoc.
Mac64Address m_extDevAddr
The extended address of the device requesting association.
MLME-BEACON-NOTIFY.indication params.
uint32_t m_sduLength
The number of octets contained in the beacon payload.
uint8_t m_bsn
The beacon sequence number.
Ptr< Packet > m_sdu
The set of octets comprising the beacon payload.
PanDescriptor m_panDescriptor
The PAN descriptor for the received beacon.
MLME-COMM-STATUS.indication params.
Mac16Address m_srcShortAddr
The short address of the entity from which the frame causing the error originated.
LrWpanMlmeCommStatus m_status
The communication status.
Mac16Address m_dstShortAddr
The short address of the device for which the frame was intended.
Mac64Address m_dstExtAddr
The extended address of the device for which the frame was intended.
uint16_t m_panId
The PAN identifier of the device from which the frame was received or to which the frame was being se...
Mac64Address m_srcExtAddr
The extended address of the entity from which the frame causing the error originated.
uint8_t m_dstAddrMode
The destination addressing mode for this primitive.
uint8_t m_srcAddrMode
The source addressing mode for this primitive.
MLME-ORPHAN.indication params.
Mac64Address m_orphanAddr
The address of the orphaned device.
MLME-ORPHAN.response params.
Mac16Address m_shortAddr
The short address allocated.
Mac64Address m_orphanAddr
The address of the orphaned device.
bool m_assocMember
T = allocated with this coord | F = otherwise.
MLME-START.confirm params.
LrWpanMlmePollConfirmStatus m_status
The confirmation status resulting from a MLME-poll.request.
MLME-POLL.request params.
Mac16Address m_coorShortAddr
Coordinator short address.
uint16_t m_coorPanId
The PAN id of the coordinator to which the poll is intended.
Mac64Address m_coorExtAddr
Coordinator extended address.
LrWpanAddressMode m_coorAddrMode
The addressing mode of the coordinator to which the pool is intended.
MLME-SCAN.confirm params.
std::vector< PanDescriptor > m_panDescList
A list of PAN descriptor, one for each beacon found (Not valid for ED and Orphan scans).
LrWpanMlmeScanType m_scanType
Indicates the type of scan performed (ED,ACTIVE,PASSIVE,ORPHAN).
uint32_t m_chPage
The channel page on which the scan was performed.
std::vector< uint8_t > m_unscannedCh
A list of channels given in the request which were not scanned (Not valid for ED scans).
LrWpanMlmeScanConfirmStatus m_status
The status the request.
std::vector< uint8_t > m_energyDetList
A list of energy measurements, one for each channel searched during ED scan (Not valid for Active,...
uint8_t m_resultListSize
The number of elements returned in the appropriate result list.
MLME-SCAN.request params.
uint32_t m_scanChannels
The channel numbers to be scanned.
uint32_t m_chPage
The channel page on which to perform scan.
uint8_t m_scanDuration
The factor (0-14) used to calculate the length of time to spend scanning.
LrWpanMlmeScanType m_scanType
Indicates the type of scan performed as described in IEEE 802.15.4-2011 (5.1.2.1).
LrWpanMlmeSetConfirmStatus m_status
The result of the request to write the PIB attribute.
LrWpanMacPibAttributeIdentifier id
The id of the PIB attribute that was written.
MLME-START.confirm params.
LrWpanMlmeStartConfirmStatus m_status
The status of a MLME-start.request.
MLME-START.request params.
uint32_t m_logChPage
Logical channel page on which to start using the new superframe configuration.
uint8_t m_logCh
Logical channel on which to start using the new superframe configuration.
bool m_panCoor
On true this device will become coordinator.
bool m_coorRealgn
True if a realignment request command is to be transmitted prior changing the superframe.
uint8_t m_bcnOrd
Beacon Order, Used to calculate the beacon interval, a value of 15 indicates no periodic beacons will...
uint32_t m_startTime
Time at which to begin transmitting beacons (Used by Coordinator not PAN Coordinators).
uint16_t m_PanId
Pan Identifier used by the device.
uint8_t m_sfrmOrd
Superframe Order, indicates the length of the CAP in time slots.
bool m_battLifeExt
Flag indicating whether or not the Battery life extension (BLE) features are used.
MLME-SYNC-LOSS.indication params.
uint16_t m_panId
The PAN identifier with which the device lost synchronization or to which it was realigned.
uint8_t m_logCh
The channel number on which the device lost synchronization or to which it was realigned.
LrWpanSyncLossReason m_lossReason
The reason for the lost of synchronization.
MLME-SYNC.request params.
bool m_trackBcn
True if the mlme sync with the next beacon and attempts to track future beacons.
uint8_t m_logCh
The channel number on which to attempt coordinator synchronization.
PAN Descriptor, Table 17 IEEE 802.15.4-2011.
LrWpanAddressMode m_coorAddrMode
The coordinator addressing mode corresponding to the received beacon frame.
Mac64Address m_coorExtAddr
The coordinator extended address as specified in the coordinator address mode.
Mac16Address m_coorShortAddr
The coordinator short address as specified in the coordinator address mode.
uint8_t m_logChPage
The current channel page occupied by the network.
uint16_t m_coorPanId
The PAN ID of the coordinator as specified in the received beacon frame.
bool m_gtsPermit
TRUE if the beacon is from the PAN coordinator that is accepting GTS requests.
SuperframeField m_superframeSpec
The superframe specification as specified in the received beacon frame.
uint8_t m_linkQuality
The LQI at which the network beacon was received.
Time m_timeStamp
Beacon frame reception time.
uint8_t m_logCh
The current channel number occupied by the network.