A Discrete-Event Network Simulator
API
Loading...
Searching...
No Matches
ns3::LrWpanMac Class Reference

Class that implements the LR-WPAN MAC state machine. More...

#include "lr-wpan-mac.h"

+ Inheritance diagram for ns3::LrWpanMac:
+ Collaboration diagram for ns3::LrWpanMac:

Classes

struct  IndTxQueueElement
 Helper structure for managing pending transaction list elements (Indirect transmissions). More...
 
struct  TxQueueElement
 Helper structure for managing transmission queue elements. More...
 

Public Types

typedef void(* SentTracedCallback) (Ptr< const Packet > packet, uint8_t retries, uint8_t backoffs)
 TracedCallback signature for sent packets.
 
typedef void(* StateTracedCallback) (LrWpanMacState oldState, LrWpanMacState newState)
 TracedCallback signature for LrWpanMacState change events.
 

Public Member Functions

 LrWpanMac ()
 Default constructor.
 
 ~LrWpanMac () override
 
Mac64Address GetCoordExtAddress () const
 Get the coordinator extended address currently associated to this device.
 
Mac16Address GetCoordShortAddress () const
 Get the coordinator short address currently associated to this device.
 
Mac64Address GetExtendedAddress () const
 Get the extended address of this MAC.
 
uint32_t GetIfsSize ()
 Get the size of the Interframe Space according to MPDU size (m_txPkt).
 
uint64_t GetMacAckWaitDuration () const
 Get the macAckWaitDuration attribute value.
 
uint8_t GetMacMaxFrameRetries () const
 Get the macMaxFrameRetries attribute value.
 
uint16_t GetPanId () const
 Get the PAN id used by this MAC.
 
Ptr< LrWpanPhyGetPhy ()
 Get the underlying PHY of the MAC.
 
bool GetRxOnWhenIdle () const
 Check if the receiver will be enabled when the MAC is idle.
 
Mac16Address GetShortAddress () const
 Get the short address of this MAC.
 
uint64_t GetTxPacketSymbols ()
 Obtain the number of symbols in the packet which is currently being sent by the MAC layer.
 
bool isCoordDest ()
 Check if the packet destination is its coordinator.
 
bool isTxAckReq ()
 Check if the packet to transmit requires acknowledgment.
 
void McpsDataRequest (McpsDataRequestParams params, Ptr< Packet > p) override
 IEEE 802.15.4-2006, section 7.1.1.1 MCPS-DATA.request Request to transfer a MSDU.
 
void MlmeAssociateRequest (MlmeAssociateRequestParams params) override
 IEEE 802.15.4-2011, section 6.2.2.1 MLME-ASSOCIATE.request Request primitive used by a device to request an association with a coordinator.
 
void MlmeAssociateResponse (MlmeAssociateResponseParams params) override
 IEEE 802.15.4-2011, section 6.2.2.3 MLME-ASSOCIATE.response Primitive used to initiate a response to an MLME-ASSOCIATE.indication primitive.
 
void MlmeGetRequest (LrWpanMacPibAttributeIdentifier id) override
 IEEE 802.15.4-2006, section 7.1.6.1 MLME-GET.request Request information about a given PIB attribute.
 
void MlmeOrphanResponse (MlmeOrphanResponseParams params) override
 IEEE 802.15.4-2011, section 6.2.7.2 MLME-ORPHAN.response Primitive used to initiatte a response to an MLME-ORPHAN.indication primitive.
 
void MlmePollRequest (MlmePollRequestParams params) override
 IEEE 802.15.4-2011, section 6.2.14.2 MLME-POLL.request Prompts the device to request data from the coordinator.
 
void MlmeScanRequest (MlmeScanRequestParams params) override
 IEEE 802.15.4-2011, section 6.2.10.1 MLME-SCAN.request Request primitive used to initiate a channel scan over a given list of channels.
 
void MlmeSetRequest (LrWpanMacPibAttributeIdentifier id, Ptr< LrWpanMacPibAttributes > attribute) override
 IEEE 802.15.4-2011, section 6.2.11.1 MLME-SET.request Attempts to write the given value to the indicated PIB attribute.
 
void MlmeStartRequest (MlmeStartRequestParams params) override
 IEEE 802.15.4-2006, section 7.1.14.1 MLME-START.request Request to allow a PAN coordinator to initiate a new PAN or beginning a new superframe configuration.
 
void MlmeSyncRequest (MlmeSyncRequestParams params) override
 IEEE 802.15.4-2011, section 6.2.13.1 MLME-SYNC.request Request to synchronize with the coordinator by acquiring and, if specified, tracking beacons.
 
void PdDataConfirm (LrWpanPhyEnumeration status)
 IEEE 802.15.4-2006 section 6.2.1.2 Confirm the end of transmission of an MPDU to MAC.
 
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 MAC (receiving)
 
void PlmeCcaConfirm (LrWpanPhyEnumeration status)
 IEEE 802.15.4-2006 section 6.2.2.2 PLME-CCA.confirm status.
 
void PlmeEdConfirm (LrWpanPhyEnumeration status, uint8_t energyLevel)
 IEEE 802.15.4-2006 section 6.2.2.4 PLME-ED.confirm status and energy level.
 
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 section 6.4.2.
 
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 section 6.4.2.
 
void PlmeSetTRXStateConfirm (LrWpanPhyEnumeration status)
 IEEE 802.15.4-2006 section 6.2.2.8 PLME-SET-TRX-STATE.confirm Set PHY state.
 
void PrintPendingTxQueue (std::ostream &os) const
 Print the Pending transaction list.
 
void PrintTransmitQueueSize ()
 Print the number of elements in the packet transmit queue.
 
void PrintTxQueue (std::ostream &os) const
 Print the Transmit Queue.
 
void SetAssociatedCoor (Mac16Address mac)
 Check if the packet destination is its coordinator.
 
void SetAssociatedCoor (Mac64Address mac)
 Check if the packet destination is its coordinator.
 
void SetCsmaCa (Ptr< LrWpanCsmaCa > csmaCa)
 Set the CSMA/CA implementation to be used by the MAC.
 
void SetExtendedAddress (Mac64Address address)
 Set the extended address of this MAC.
 
void SetIndTxQMaxSize (uint32_t queueSize)
 Set the max size of the indirect transmit queue (Pending Transaction list)
 
void SetLrWpanMacState (LrWpanMacState macState)
 CSMA-CA algorithm calls back the MAC after executing channel assessment.
 
void SetMacMaxFrameRetries (uint8_t retries)
 Set the macMaxFrameRetries attribute value.
 
void SetPanId (uint16_t panId)
 Set the PAN id used by this MAC.
 
void SetPhy (Ptr< LrWpanPhy > phy)
 Set the underlying PHY for the MAC.
 
void SetRxOnWhenIdle (bool rxOnWhenIdle)
 Set if the receiver should be enabled when the MAC is idle.
 
void SetShortAddress (Mac16Address address)
 Set the short address of this MAC.
 
void SetTxQMaxSize (uint32_t queueSize)
 Set the max size of the transmit queue.
 
- Public Member Functions inherited from ns3::LrWpanMacBase
 ~LrWpanMacBase () override
 
virtual void McpsDataRequest (McpsDataRequestParams params, Ptr< Packet > p)=0
 IEEE 802.15.4-2006, section 7.1.1.1 MCPS-DATA.request Request to transfer a MSDU.
 
virtual void MlmeAssociateRequest (MlmeAssociateRequestParams params)=0
 IEEE 802.15.4-2011, section 6.2.2.1 MLME-ASSOCIATE.request Request primitive used by a device to request an association with a coordinator.
 
virtual void MlmeAssociateResponse (MlmeAssociateResponseParams params)=0
 IEEE 802.15.4-2011, section 6.2.2.3 MLME-ASSOCIATE.response Primitive used to initiate a response to an MLME-ASSOCIATE.indication primitive.
 
virtual void MlmeGetRequest (LrWpanMacPibAttributeIdentifier id)=0
 IEEE 802.15.4-2006, section 7.1.6.1 MLME-GET.request Request information about a given PIB attribute.
 
virtual void MlmeOrphanResponse (MlmeOrphanResponseParams params)=0
 IEEE 802.15.4-2011, section 6.2.7.2 MLME-ORPHAN.response Primitive used to initiatte a response to an MLME-ORPHAN.indication primitive.
 
virtual void MlmePollRequest (MlmePollRequestParams params)=0
 IEEE 802.15.4-2011, section 6.2.14.2 MLME-POLL.request Prompts the device to request data from the coordinator.
 
virtual void MlmeScanRequest (MlmeScanRequestParams params)=0
 IEEE 802.15.4-2011, section 6.2.10.1 MLME-SCAN.request Request primitive used to initiate a channel scan over a given list of channels.
 
virtual void MlmeSetRequest (LrWpanMacPibAttributeIdentifier id, Ptr< LrWpanMacPibAttributes > attribute)=0
 IEEE 802.15.4-2011, section 6.2.11.1 MLME-SET.request Attempts to write the given value to the indicated PIB attribute.
 
virtual void MlmeStartRequest (MlmeStartRequestParams params)=0
 IEEE 802.15.4-2006, section 7.1.14.1 MLME-START.request Request to allow a PAN coordinator to initiate a new PAN or beginning a new superframe configuration.
 
virtual void MlmeSyncRequest (MlmeSyncRequestParams params)=0
 IEEE 802.15.4-2011, section 6.2.13.1 MLME-SYNC.request Request to synchronize with the coordinator by acquiring and, if specified, tracking beacons.
 
void SetMcpsDataConfirmCallback (McpsDataConfirmCallback c)
 Set the callback for the confirmation of a data transmission request.
 
void SetMcpsDataIndicationCallback (McpsDataIndicationCallback c)
 Set the callback for the indication of an incoming data packet.
 
void SetMlmeAssociateConfirmCallback (MlmeAssociateConfirmCallback c)
 Set the callback for the confirmation of a data transmission request.
 
void SetMlmeAssociateIndicationCallback (MlmeAssociateIndicationCallback c)
 Set the callback for the indication of an incoming associate request command.
 
void SetMlmeBeaconNotifyIndicationCallback (MlmeBeaconNotifyIndicationCallback c)
 Set the callback for the indication of an incoming beacon packet.
 
void SetMlmeCommStatusIndicationCallback (MlmeCommStatusIndicationCallback c)
 Set the callback for the indication to a response primitive.
 
void SetMlmeGetConfirmCallback (MlmeGetConfirmCallback c)
 Set the callback for the confirmation of an attempt to read an attribute.
 
void SetMlmeOrphanIndicationCallback (MlmeOrphanIndicationCallback c)
 Set the callback for the indication to the reception of an orphan notification.
 
void SetMlmePollConfirmCallback (MlmePollConfirmCallback c)
 Set the callback for the confirmation of a data transmission request.
 
void SetMlmeScanConfirmCallback (MlmeScanConfirmCallback c)
 Set the callback for the confirmation of a data transmission request.
 
void SetMlmeSetConfirmCallback (MlmeSetConfirmCallback c)
 Set the callback for the confirmation of an attempt to write an attribute.
 
void SetMlmeStartConfirmCallback (MlmeStartConfirmCallback c)
 Set the callback for the confirmation of a data transmission request.
 
void SetMlmeSyncLossIndicationCallback (MlmeSyncLossIndicationCallback c)
 Set the callback for the loss of synchronization with a coordinator.
 
- Public Member Functions inherited from ns3::Object
 Object ()
 Constructor.
 
 ~Object () override
 Destructor.
 
void AggregateObject (Ptr< Object > other)
 Aggregate two Objects together.
 
void Dispose ()
 Dispose of this Object.
 
AggregateIterator GetAggregateIterator () const
 Get an iterator to the Objects aggregated to this one.
 
TypeId GetInstanceTypeId () const override
 Get the most derived TypeId for this Object.
 
template<typename T >
Ptr< T > GetObject () const
 Get a pointer to the requested aggregated Object.
 
template<>
Ptr< ObjectGetObject () const
 Specialization of () for objects of type ns3::Object.
 
template<typename T >
Ptr< T > GetObject (TypeId tid) const
 Get a pointer to the requested aggregated Object by TypeId.
 
template<>
Ptr< ObjectGetObject (TypeId tid) const
 Specialization of (TypeId tid) for objects of type ns3::Object.
 
void Initialize ()
 Invoke DoInitialize on all Objects aggregated to this one.
 
bool IsInitialized () const
 Check if the object has been initialized.
 
void UnidirectionalAggregateObject (Ptr< Object > other)
 Aggregate an Object to another Object.
 
- Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter >
 SimpleRefCount ()
 Default constructor.
 
 SimpleRefCount (const SimpleRefCount &o)
 Copy constructor.
 
uint32_t GetReferenceCount () const
 Get the reference count of the object.
 
SimpleRefCountoperator= (const SimpleRefCount &o)
 Assignment operator.
 
void Ref () const
 Increment the reference count.
 
void Unref () const
 Decrement the reference count.
 
- 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::LrWpanMacBase
static TypeId GetTypeId ()
 Get the type ID.
 
- Static Public Member Functions inherited from ns3::Object
static TypeId GetTypeId ()
 Register this type.
 
- Static Public Member Functions inherited from ns3::ObjectBase
static TypeId GetTypeId ()
 Get the type ID.
 

Public Attributes

uint64_t m_assocRespCmdWaitTime
 The maximum wait time for an association response command after the reception of data request command ACK during the association process.
 
uint32_t m_beaconInterval
 Indication of the Interval used by the coordinator to transmit beacon frames expressed in symbols.
 
bool m_beaconTrackingOn
 Indication of whether the current device is tracking incoming beacons.
 
bool m_coor
 Indicates if the current device is a coordinator type.
 
uint8_t m_deviceCapability
 Indication of current device capability (FFD or RFD)
 
uint8_t m_fnlCapSlot
 Indication of the Slot where the CAP portion of the OUTGOING Superframe ends.
 
uint32_t m_ifs
 The value of the necessary InterFrame Space after the transmission of a packet.
 
uint32_t m_incomingBeaconInterval
 Indication of the interval a node should receive a superframe expressed in symbols.
 
uint8_t m_incomingBeaconOrder
 The beaconOrder value of the INCOMING frame.
 
uint8_t m_incomingFnlCapSlot
 Indication of the Slot where the CAP portion of the INCOMING Superframe ends.
 
uint32_t m_incomingSuperframeDuration
 Indication of the superframe duration in symbols (e.g.
 
uint8_t m_incomingSuperframeOrder
 Used by all devices that have a parent.
 
bool m_macAssociationPermit
 Indication of whether a coordinator is currently allowing association.
 
bool m_macAutoRequest
 Indication of whether a device automatically sends data request command if its address is listed in the beacon frame.
 
uint8_t m_macBeaconOrder
 Used by a PAN coordinator or coordinator.
 
Ptr< Packetm_macBeaconPayload
 The contents of the beacon payload.
 
uint32_t m_macBeaconPayloadLength
 The length, in octets, of the beacon payload.
 
Time m_macBeaconRxTime
 The time that the device received its last bit of the beacon frame.
 
Time m_macBeaconTxTime
 The time that the device transmitted its last beacon frame.
 
SequenceNumber8 m_macBsn
 Sequence number added to transmitted beacon frame, 00-ff.
 
Mac64Address m_macCoordExtendedAddress
 The extended address of the coordinator through which the device is associated.
 
Mac16Address m_macCoordShortAddress
 The short address of the coordinator through which the device is associated.
 
SequenceNumber8 m_macDsn
 Sequence number added to transmitted data or MAC command frame, 00-ff.
 
uint32_t m_macLIFSPeriod
 The minimum time forming a Long InterFrame Spacing (LIFS) period.
 
uint8_t m_macMaxFrameRetries
 The maximum number of retries allowed after a transmission failure.
 
uint16_t m_macPanId
 16 bits id of PAN on which this device is operating.
 
uint16_t m_macPanIdScan
 Temporally stores the value of the current m_macPanId when a MLME-SCAN.request is performed.
 
bool m_macPromiscuousMode
 Indicates if MAC sublayer is in receive all mode.
 
uint64_t m_macResponseWaitTime
 The maximum time, in multiples of aBaseSuperframeDuration, a device shall wait for a response command frame to be available following a request command frame.
 
bool m_macRxOnWhenIdle
 Indication of whether the MAC sublayer is to enable its receiver during idle periods.
 
uint32_t m_macSIFSPeriod
 The minimum time forming a Short InterFrame Spacing (SIFS) period.
 
uint8_t m_macSuperframeOrder
 Used by a PAN coordinator or coordinator.
 
uint64_t m_macSyncSymbolOffset
 Symbol boundary is same as m_macBeaconTxTime.
 
uint16_t m_macTransactionPersistenceTime
 The maximum time (in UNIT periods) that a transaction is stored by a coordinator and indicated in its beacon.
 
uint8_t m_maxEnergyLevel
 The maximum energy level detected during ED scan on the current channel.
 
uint8_t m_numLostBeacons
 The number of consecutive loss beacons in a beacon tracking operation.
 
bool m_panCoor
 Indication of whether the current device is the PAN coordinator.
 
uint64_t m_rxBeaconSymbols
 The total size of the received beacon in symbols.
 
uint32_t m_superframeDuration
 Indication of the superframe duration in symbols.
 

Protected Member Functions

void DoDispose () override
 Destructor implementation.
 
void DoInitialize () override
 Initialize() implementation.
 
- Protected Member Functions inherited from ns3::Object
 Object (const Object &o)
 Copy an Object.
 
virtual void DoDispose ()
 Destructor implementation.
 
virtual void DoInitialize ()
 Initialize() implementation.
 
virtual void NotifyNewAggregate ()
 Notify all Objects aggregated to this one of a new Object being aggregated.
 
- 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.
 

Private Member Functions

void AckWaitTimeout ()
 Handle an ACK timeout with a packet retransmission, if there are retransmission left, or a packet drop.
 
void AwaitBeacon ()
 Called after the end of an INCOMING superframe to start the moment a device waits for a new incoming beacon.
 
void BeaconSearchTimeout ()
 Called if the device is unable to locate a beacon in the time set by MLME-SYNC.request.
 
void ChangeMacState (LrWpanMacState newState)
 Change the current MAC state to the given new state.
 
void CheckQueue ()
 Check the transmission queue.
 
bool DequeueInd (Mac64Address dst, Ptr< IndTxQueueElement > entry)
 Extracts a packet from pending transactions list (Indirect transmissions).
 
void EndAssociateRequest ()
 Called to end an MLME-ASSOCIATE.request after changing the page and channel number.
 
void EndChannelEnergyScan ()
 Called at the end of one ED channel scan.
 
void EndChannelScan ()
 Called at the end of the current channel scan (Active or Passive) for a given duration.
 
void EndStartRequest ()
 Called to end a MLME-START.request after changing the page and channel number.
 
void EnqueueInd (Ptr< Packet > p)
 Adds a packet to the pending transactions list (Indirect transmissions).
 
void EnqueueTxQElement (Ptr< TxQueueElement > txQElement)
 Add an element to the transmission queue.
 
GtsFields GetGtsFields ()
 Constructs the Guaranteed Time Slots (GTS) Fields from local information.
 
PendingAddrFields GetPendingAddrFields ()
 Constructs Pending Address Fields from the local information, the Pending Address Fields are part of the beacon frame.
 
uint16_t GetSuperframeField ()
 Constructs a Superframe specification field from the local information, the superframe Specification field is necessary to create a beacon frame.
 
void IfsWaitTimeout (Time ifsTime)
 After a successful transmission of a frame (beacon, data) or an ack frame reception, the mac layer wait an Interframe Space (IFS) time and triggers this function to continue with the MAC flow.
 
void LostAssocRespCommand ()
 Called after m_assocRespCmdWaitTime timeout while waiting for an association response command.
 
bool PrepareRetransmission ()
 Check for remaining retransmissions for the packet currently being sent.
 
void PurgeInd ()
 Purge expired transactions from the pending transactions list.
 
void RemoveFirstTxQElement ()
 Remove the tip of the transmission queue, including clean up related to the last packet transmission.
 
void RemovePendTxQElement (Ptr< Packet > p)
 Remove an element from the pending transaction list.
 
void SendAck (uint8_t seqno)
 Send an acknowledgment packet for the given sequence number.
 
void SendAssocRequestCommand ()
 Called to send an associate request command.
 
void SendAssocResponseCommand (Ptr< Packet > rxDataReqPkt)
 Called to send an associate response command.
 
void SendBeaconRequestCommand ()
 Called to send a beacon request command.
 
void SendDataRequestCommand ()
 Used to send a data request command (i.e.
 
void SendOneBeacon ()
 Called to send a single beacon frame.
 
void SendOrphanNotificationCommand ()
 Called to send a orphan notification command.
 
void StartCAP (SuperframeType superframeType)
 Called to begin the Contention Access Period (CAP) in a beacon-enabled mode.
 
void StartCFP (SuperframeType superframeType)
 Called to begin the Contention Free Period (CFP) in a beacon-enabled mode.
 
void StartInactivePeriod (SuperframeType superframeType)
 Start the Inactive Period in a beacon-enabled mode.
 

Private Attributes

EventId m_ackWaitTimeout
 Scheduler event for the ACK timeout of the currently transmitted data packet.
 
MlmeAssociateRequestParams m_associateParams
 The parameters used during a MLME-ASSOCIATE.request.
 
EventId m_assocResCmdWaitTimeout
 Scheduler event for the lost of a association response command frame.
 
EventId m_beaconEvent
 Scheduler event for generation of one beacon.
 
EventId m_capEvent
 Scheduler event for the end of the outgoing superframe CAP.
 
EventId m_cfpEvent
 Scheduler event for the end of the outgoing superframe CFP.
 
uint16_t m_channelScanIndex
 The channel list index used to obtain the current scanned channel.
 
Ptr< LrWpanCsmaCam_csmaCa
 The CSMA/CA implementation used by this MAC.
 
std::vector< uint8_t > m_energyDetectList
 The list of energy measurements, one for each channel searched during an ED scan.
 
EventId m_ifsEvent
 Scheduler event for Interframe spacing wait time.
 
EventId m_incCapEvent
 Scheduler event for the end of the incoming superframe CAP.
 
EventId m_incCfpEvent
 Scheduler event for the end of the incoming superframe CFP.
 
TracedValue< SuperframeStatusm_incSuperframeStatus
 The current period of the incoming superframe.
 
std::deque< Ptr< IndTxQueueElement > > m_indTxQueue
 The indirect transmit queue used by the MAC pending messages (The pending transaction list).
 
uint8_t m_lastRxFrameLqi
 Keep track of the last received frame Link Quality Indicator.
 
TracedValue< LrWpanMacStatem_lrWpanMacState
 The current state of the MAC layer.
 
Mac64Address m_macExtendedAddress
 The extended 64 address (IEEE EUI-64) used by this MAC.
 
TracedCallback< Timem_macIfsEndTrace
 The trace source is fired at the end of any Interframe Space (IFS).
 
TracedCallback< Ptr< const Packet > > m_macIndTxDequeueTrace
 The trace source fired when packets are dequeued from the L3/l2 indirect transmission queue (Pending transaction list).
 
TracedCallback< Ptr< const Packet > > m_macIndTxDropTrace
 The trace source fired when packets are dropped due to indirect Tx queue overflows or expiration.
 
TracedCallback< Ptr< const Packet > > m_macIndTxEnqueueTrace
 The trace source fired when packets come into the "top" of the device at the L3/L2 transition, when being queued for indirect transmission (pending transaction list).
 
TracedCallback< Ptr< const Packet > > m_macPromiscRxTrace
 The trace source fired for packets successfully received by the device immediately before being forwarded up to higher layers (at the L2/L3 transition).
 
TracedCallback< Ptr< const Packet > > m_macRxDropTrace
 The trace source fired for packets successfully received by the device but dropped before being forwarded up to higher layers (at the L2/L3 transition).
 
TracedCallback< Ptr< const Packet > > m_macRxTrace
 The trace source fired for packets successfully received by the device immediately before being forwarded up to higher layers (at the L2/L3 transition).
 
TracedCallback< LrWpanMacState, LrWpanMacStatem_macStateLogger
 A trace source that fires when the LrWpanMac changes states.
 
TracedCallback< Ptr< const Packet > > m_macTxDequeueTrace
 The trace source fired when packets are dequeued from the L3/l2 transmission queue.
 
TracedCallback< Ptr< const Packet > > m_macTxDropTrace
 The trace source fired when packets are dropped due to missing ACKs or because of transmission failures in L1.
 
TracedCallback< Ptr< const Packet > > m_macTxEnqueueTrace
 The trace source fired when packets come into the "top" of the device at the L3/L2 transition, when being queued for transmission.
 
TracedCallback< Ptr< const Packet > > m_macTxOkTrace
 The trace source fired when packets where successfully transmitted, that is an acknowledgment was received, if requested, or the packet was successfully sent by L1, if no ACK was requested.
 
TracedCallback< Ptr< const Packet > > m_macTxTrace
 The trace source fired when packets are being sent down to L1.
 
uint32_t m_maxIndTxQueueSize
 The maximum size of the indirect transmit queue (The pending transaction list).
 
uint32_t m_maxTxQueueSize
 The maximum size of the transmit queue.
 
uint8_t m_numCsmacaRetry
 The number of CSMA/CA retries used for sending the current packet.
 
TracedValue< SuperframeStatusm_outSuperframeStatus
 The current period of the outgoing superframe.
 
std::vector< PanDescriptorm_panDescriptorList
 The list of PAN descriptors accumulated during channel scans, used to select a PAN to associate.
 
PendingPrimitiveStatus m_pendPrimitive
 Indicates the pending primitive when PLME.SET operation (page or channel switch) is called from within another MLME primitive (e.g.
 
Ptr< LrWpanPhym_phy
 The PHY associated with this MAC.
 
TracedCallback< Ptr< const Packet > > m_promiscSnifferTrace
 A trace source that emulates a promiscuous mode protocol sniffer connected to the device.
 
EventId m_respWaitTimeout
 Scheduler event for a response to a request command frame.
 
uint8_t m_retransmission
 The number of already used retransmission for the currently transmitted packet.
 
Ptr< Packetm_rxPkt
 The command request packet received.
 
EventId m_scanEnergyEvent
 Scheduler event for the end of a ED channel scan.
 
EventId m_scanEvent
 Scheduler event for the end of an ACTIVE or PASSIVE channel scan.
 
EventId m_scanOrphanEvent
 Scheduler event for the end of an ORPHAN channel scan.
 
MlmeScanRequestParams m_scanParams
 The parameters used during a MLME-SCAN.request.
 
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 given up.
 
EventId m_setMacState
 Scheduler event for a deferred MAC state change.
 
Mac16Address m_shortAddress
 The short address (16 bit address) used by this MAC.
 
TracedCallback< Ptr< const Packet > > m_snifferTrace
 A trace source that emulates a non-promiscuous protocol sniffer connected to the device.
 
MlmeStartRequestParams m_startParams
 The parameters used during a MLME-START.request.
 
EventId m_trackingEvent
 Scheduler event to track the incoming beacons.
 
Ptr< Packetm_txPkt
 The packet which is currently being sent by the MAC layer.
 
std::deque< Ptr< TxQueueElement > > m_txQueue
 The transmit queue used by the MAC.
 
std::vector< uint8_t > m_unscannedChannels
 The list of unscanned channels during a scan operation.
 

Additional Inherited Members

- Protected Attributes inherited from ns3::LrWpanMacBase
McpsDataConfirmCallback m_mcpsDataConfirmCallback
 This callback is used to report data transmission request status to the upper layers.
 
McpsDataIndicationCallback m_mcpsDataIndicationCallback
 This callback is used to notify incoming packets to the upper layers.
 
MlmeAssociateConfirmCallback m_mlmeAssociateConfirmCallback
 This callback is used to report the status after a device request an association with a coordinator.
 
MlmeAssociateIndicationCallback m_mlmeAssociateIndicationCallback
 This callback is used to indicate the reception of an association request command.
 
MlmeBeaconNotifyIndicationCallback m_mlmeBeaconNotifyIndicationCallback
 This callback is used to notify incoming beacon packets to the upper layers.
 
MlmeCommStatusIndicationCallback m_mlmeCommStatusIndicationCallback
 This callback is instigated through a response primitive.
 
MlmeGetConfirmCallback m_mlmeGetConfirmCallback
 This callback is used to report the result of an attribute read request to the upper layers.
 
MlmeOrphanIndicationCallback m_mlmeOrphanIndicationCallback
 This callback is used to indicate the reception of a orphan notification command.
 
MlmePollConfirmCallback m_mlmePollConfirmCallback
 This callback is used to report the status after a device send data command request to the coordinator to transmit data.
 
MlmeScanConfirmCallback m_mlmeScanConfirmCallback
 This callback is used to report the result of a scan on a group of channels for the selected channel page.
 
MlmeSetConfirmCallback m_mlmeSetConfirmCallback
 This callback is used to report the result of an attribute writing request to the upper layers.
 
MlmeStartConfirmCallback m_mlmeStartConfirmCallback
 This callback is used to report the start of a new PAN or the begin of a new superframe configuration.
 
MlmeSyncLossIndicationCallback m_mlmeSyncLossIndicationCallback
 This callback is used to indicate the loss of synchronization with a coordinator.
 

Detailed Description

Class that implements the LR-WPAN MAC state machine.

Config Paths

ns3::LrWpanMac is accessible through the following paths with Config::Set and Config::Connect:

  • "/NodeList/[i]/DeviceList/[i]/$ns3::LrWpanNetDevice/Mac"

Attributes

  • PanId: 16-bit identifier of the associated PAN
    • Set with class: ns3::UintegerValue
    • Underlying type: uint16_t 0:65535
    • Initial value: 0
    • Flags: constructwriteread

TraceSources

  • IfsEnd: Trace source reporting the end of an Interframe space (IFS)
    Callback signature: ns3::Packet::TracedCallback
  • MacIncSuperframeStatus: The period status of the incoming superframe
    Callback signature: ns3::TracedValueCallback::SuperframeState
  • MacIndTxDequeue: Trace source indicating a packet has was dequeued from the indirect transaction queue
    Callback signature: ns3::Packet::TracedCallback
  • MacIndTxDrop: Trace source indicating a packet has been dropped from the indirect transaction queue(The pending transaction list)
    Callback signature: ns3::Packet::TracedCallback
  • MacIndTxEnqueue: Trace source indicating a packet has been enqueued in the indirect transaction queue
    Callback signature: ns3::Packet::TracedCallback
  • MacOutSuperframeStatus: The period status of the outgoing superframe
    Callback signature: ns3::TracedValueCallback::SuperframeState
  • MacPromiscRx: A packet has been received by this device, has been passed up from the physical layer and is being forwarded up the local protocol stack. This is a promiscuous trace,
    Callback signature: ns3::Packet::TracedCallback
  • MacRx: A packet has been received by this device, has been passed up from the physical layer and is being forwarded up the local protocol stack. This is a non-promiscuous trace,
    Callback signature: ns3::Packet::TracedCallback
  • MacRxDrop: Trace source indicating a packet was received, but dropped before being forwarded up the stack
    Callback signature: ns3::Packet::TracedCallback
  • MacSentPkt: Trace source reporting some information about the sent packet
    Callback signature: ns3::LrWpanMac::SentTracedCallback
  • MacState: The state of LrWpan Mac
    Callback signature: ns3::LrWpanMac::StateTracedCallback
  • MacStateValue: The state of LrWpan Mac
    Callback signature: ns3::TracedValueCallback::LrWpanMacState
  • MacTx: Trace source indicating a packet has arrived for transmission by this device
    Callback signature: ns3::Packet::TracedCallback
  • MacTxDequeue: Trace source indicating a packet has was dequeued from the transaction queue
    Callback signature: ns3::Packet::TracedCallback
  • MacTxDrop: Trace source indicating a packet has been dropped during transmission
    Callback signature: ns3::Packet::TracedCallback
  • MacTxEnqueue: Trace source indicating a packet has been enqueued in the transaction queue
    Callback signature: ns3::Packet::TracedCallback
  • MacTxOk: Trace source indicating a packet has been successfully sent
    Callback signature: ns3::Packet::TracedCallback
  • PromiscSniffer: Trace source simulating a promiscuous packet sniffer attached to the device
    Callback signature: ns3::Packet::TracedCallback
  • Sniffer: Trace source simulating a non-promiscuous packet sniffer attached to the device
    Callback signature: ns3::Packet::TracedCallback

Size of this type is 1328 bytes (on a 64-bit architecture).

Definition at line 160 of file lr-wpan-mac.h.

Member Typedef Documentation

◆ SentTracedCallback

typedef void(* ns3::LrWpanMac::SentTracedCallback) (Ptr< const Packet > packet, uint8_t retries, uint8_t backoffs)

TracedCallback signature for sent packets.

Parameters
[in]packetThe packet.
[in]retriesThe number of retries.
[in]backoffsThe number of CSMA backoffs.

Definition at line 720 of file lr-wpan-mac.h.

◆ StateTracedCallback

typedef void(* ns3::LrWpanMac::StateTracedCallback) (LrWpanMacState oldState, LrWpanMacState newState)

TracedCallback signature for LrWpanMacState change events.

Parameters
[in]oldValueThe original state value.
[in]newValueThe new state value.
Deprecated:
The LrWpanMacState is now accessible as the TracedValue MacStateValue. The MacState TracedCallback will be removed in a future release.

Definition at line 731 of file lr-wpan-mac.h.

Constructor & Destructor Documentation

◆ LrWpanMac()

◆ ~LrWpanMac()

ns3::LrWpanMac::~LrWpanMac ( )
override

Definition at line 263 of file lr-wpan-mac.cc.

Member Function Documentation

◆ AckWaitTimeout()

void ns3::LrWpanMac::AckWaitTimeout ( )
private

Handle an ACK timeout with a packet retransmission, if there are retransmission left, or a packet drop.

Definition at line 2601 of file lr-wpan-mac.cc.

References ns3::MAC_CSMA, ns3::MAC_IDLE, NS_LOG_FUNCTION, PrepareRetransmission(), and SetLrWpanMacState().

Referenced by PdDataConfirm().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ AwaitBeacon()

void ns3::LrWpanMac::AwaitBeacon ( )
private

Called after the end of an INCOMING superframe to start the moment a device waits for a new incoming beacon.

Definition at line 1672 of file lr-wpan-mac.cc.

References ns3::BEACON, and m_incSuperframeStatus.

Referenced by StartInactivePeriod().

+ Here is the caller graph for this function:

◆ BeaconSearchTimeout()

void ns3::LrWpanMac::BeaconSearchTimeout ( )
private

Called if the device is unable to locate a beacon in the time set by MLME-SYNC.request.

Definition at line 1684 of file lr-wpan-mac.cc.

References ns3::lrwpan::aBaseSuperframeDuration, ns3::lrwpan::aMaxLostBeacons, ns3::BEACON_LOSS, BeaconSearchTimeout(), m_beaconTrackingOn, m_incomingBeaconOrder, ns3::MlmeSyncLossIndicationParams::m_lossReason, m_macPanId, ns3::LrWpanMacBase::m_mlmeSyncLossIndicationCallback, m_numLostBeacons, ns3::MlmeSyncLossIndicationParams::m_panId, m_phy, m_trackingEvent, ns3::Simulator::Schedule(), and ns3::Seconds().

Referenced by BeaconSearchTimeout(), MlmeSyncRequest(), and PdDataIndication().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ ChangeMacState()

void ns3::LrWpanMac::ChangeMacState ( LrWpanMacState  newState)
private

Change the current MAC state to the given new state.

Parameters
newStatethe new state

Definition at line 3762 of file lr-wpan-mac.cc.

References m_lrWpanMacState, m_macStateLogger, and NS_LOG_LOGIC.

Referenced by LrWpanMac(), PdDataIndication(), SendAck(), SendOneBeacon(), and SetLrWpanMacState().

+ Here is the caller graph for this function:

◆ CheckQueue()

void ns3::LrWpanMac::CheckQueue ( )
private

Check the transmission queue.

If there are packets in the transmission queue and the MAC is idle, pick the first one and initiate a packet transmission.

Definition at line 1715 of file lr-wpan-mac.cc.

References ns3::CAP, ns3::EventId::IsRunning(), m_coor, m_csmaCa, m_ifsEvent, m_incSuperframeStatus, m_lrWpanMacState, m_outSuperframeStatus, m_setMacState, m_txPkt, m_txQueue, ns3::MAC_CSMA, ns3::MAC_IDLE, NS_LOG_FUNCTION, ns3::Simulator::ScheduleNow(), and SetLrWpanMacState().

Referenced by IfsWaitTimeout(), McpsDataRequest(), MlmeOrphanResponse(), PlmeSetTRXStateConfirm(), SendAssocRequestCommand(), SendBeaconRequestCommand(), SendDataRequestCommand(), SendOrphanNotificationCommand(), and StartCAP().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ DequeueInd()

bool ns3::LrWpanMac::DequeueInd ( Mac64Address  dst,
Ptr< IndTxQueueElement entry 
)
private

Extracts a packet from pending transactions list (Indirect transmissions).

Parameters
dstThe extended address used an index to obtain an element from the pending transaction list.
entryThe dequeued element from the pending transaction list.
Returns
The status of the dequeue

Definition at line 2823 of file lr-wpan-mac.cc.

References m_indTxQueue, m_macIndTxDequeueTrace, and PurgeInd().

Referenced by SendAssocResponseCommand().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ DoDispose()

void ns3::LrWpanMac::DoDispose ( )
overrideprotectedvirtual

Destructor implementation.

This method is called by Dispose() or by the Object's destructor, whichever comes first.

Subclasses are expected to implement their real destruction code in an overridden version of this method and chain up to their parent's implementation once they are done. i.e, for simplicity, the destructor of every subclass should be empty and its content should be moved to the associated DoDispose() method.

It is safe to call GetObject() from within this method.

Reimplemented from ns3::Object.

Definition at line 283 of file lr-wpan-mac.cc.

References ns3::EventId::Cancel(), ns3::Object::DoDispose(), m_beaconEvent, m_csmaCa, m_energyDetectList, m_indTxQueue, ns3::LrWpanMacBase::m_mcpsDataConfirmCallback, ns3::LrWpanMacBase::m_mcpsDataIndicationCallback, ns3::LrWpanMacBase::m_mlmeAssociateConfirmCallback, ns3::LrWpanMacBase::m_mlmeAssociateIndicationCallback, ns3::LrWpanMacBase::m_mlmeBeaconNotifyIndicationCallback, ns3::LrWpanMacBase::m_mlmeCommStatusIndicationCallback, ns3::LrWpanMacBase::m_mlmeOrphanIndicationCallback, ns3::LrWpanMacBase::m_mlmePollConfirmCallback, ns3::LrWpanMacBase::m_mlmeScanConfirmCallback, ns3::LrWpanMacBase::m_mlmeStartConfirmCallback, ns3::LrWpanMacBase::m_mlmeSyncLossIndicationCallback, m_panDescriptorList, m_phy, m_scanEnergyEvent, m_scanEvent, m_scanOrphanEvent, m_txPkt, m_txQueue, and m_unscannedChannels.

+ Here is the call graph for this function:

◆ DoInitialize()

void ns3::LrWpanMac::DoInitialize ( )
overrideprotectedvirtual

Initialize() implementation.

This method is called only once by Initialize(). If the user calls Initialize() multiple times, DoInitialize() is called only the first time.

Subclasses are expected to override this method and chain up to their parent's implementation once they are done. It is safe to call GetObject() and AggregateObject() from within this method.

Reimplemented from ns3::Object.

Definition at line 268 of file lr-wpan-mac.cc.

References ns3::Object::DoInitialize(), ns3::IEEE_802_15_4_PHY_RX_ON, ns3::IEEE_802_15_4_PHY_TRX_OFF, m_macRxOnWhenIdle, and m_phy.

+ Here is the call graph for this function:

◆ EndAssociateRequest()

void ns3::LrWpanMac::EndAssociateRequest ( )
private

Called to end an MLME-ASSOCIATE.request after changing the page and channel number.

Definition at line 738 of file lr-wpan-mac.cc.

References m_associateParams, ns3::MlmeAssociateRequestParams::m_coordAddrMode, ns3::MlmeAssociateRequestParams::m_coordExtAddr, ns3::MlmeAssociateRequestParams::m_coordPanId, ns3::MlmeAssociateRequestParams::m_coordShortAddr, m_macCoordExtendedAddress, m_macCoordShortAddress, m_macPanId, m_pendPrimitive, ns3::MLME_NONE, SendAssocRequestCommand(), and ns3::SHORT_ADDR.

Referenced by PlmeSetAttributeConfirm().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ EndChannelEnergyScan()

void ns3::LrWpanMac::EndChannelEnergyScan ( )
private

Called at the end of one ED channel scan.

Definition at line 1478 of file lr-wpan-mac.cc.

References ns3::Callback< R, UArgs >::IsNull(), m_channelScanIndex, ns3::MlmeScanConfirmParams::m_chPage, m_energyDetectList, ns3::MlmeScanConfirmParams::m_energyDetList, m_macPanId, m_macPanIdScan, m_maxEnergyLevel, ns3::LrWpanMacBase::m_mlmeScanConfirmCallback, m_pendPrimitive, m_phy, ns3::MlmeScanConfirmParams::m_resultListSize, ns3::MlmeScanRequestParams::m_scanChannels, m_scanParams, ns3::MlmeScanRequestParams::m_scanType, ns3::MlmeScanConfirmParams::m_scanType, ns3::MlmeScanConfirmParams::m_status, ns3::MLME_NONE, NS_LOG_FUNCTION, ns3::phyCurrentChannel, and ns3::SUCCESS.

Referenced by PlmeSetAttributeConfirm().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ EndChannelScan()

◆ EndStartRequest()

◆ EnqueueInd()

void ns3::LrWpanMac::EnqueueInd ( Ptr< Packet p)
private

◆ EnqueueTxQElement()

void ns3::LrWpanMac::EnqueueTxQElement ( Ptr< TxQueueElement txQElement)
private

Add an element to the transmission queue.

Parameters
txQElementThe element added to the Tx Queue.

Definition at line 2555 of file lr-wpan-mac.cc.

References ns3::Callback< R, UArgs >::IsNull(), m_macTxDropTrace, m_macTxEnqueueTrace, m_maxTxQueueSize, ns3::LrWpanMacBase::m_mcpsDataConfirmCallback, ns3::McpsDataConfirmParams::m_msduHandle, ns3::McpsDataConfirmParams::m_status, m_txQueue, NS_LOG_DEBUG, and ns3::TRANSACTION_OVERFLOW.

Referenced by McpsDataRequest(), MlmeOrphanResponse(), SendAssocRequestCommand(), SendBeaconRequestCommand(), SendDataRequestCommand(), and SendOrphanNotificationCommand().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetCoordExtAddress()

Mac64Address ns3::LrWpanMac::GetCoordExtAddress ( ) const

Get the coordinator extended address currently associated to this device.

Returns
The coordinator extended address

Definition at line 3750 of file lr-wpan-mac.cc.

References m_macCoordExtendedAddress.

◆ GetCoordShortAddress()

Mac16Address ns3::LrWpanMac::GetCoordShortAddress ( ) const

Get the coordinator short address currently associated to this device.

Returns
The coordinator short address

Definition at line 3744 of file lr-wpan-mac.cc.

References m_macCoordShortAddress.

◆ GetExtendedAddress()

Mac64Address ns3::LrWpanMac::GetExtendedAddress ( ) const

Get the extended address of this MAC.

Returns
the extended address

Definition at line 377 of file lr-wpan-mac.cc.

References m_macExtendedAddress, and NS_LOG_FUNCTION.

Referenced by McpsDataRequest(), MlmeAssociateResponse(), MlmeOrphanResponse(), PrintPendingTxQueue(), PrintTxQueue(), SendAssocRequestCommand(), SendOneBeacon(), and SendOrphanNotificationCommand().

+ Here is the caller graph for this function:

◆ GetGtsFields()

GtsFields ns3::LrWpanMac::GetGtsFields ( )
private

Constructs the Guaranteed Time Slots (GTS) Fields from local information.

The GTS Fields are part of the beacon frame.

Returns
the Guaranteed Time Slots (GTS) Fields

Definition at line 1766 of file lr-wpan-mac.cc.

Referenced by SendOneBeacon().

+ Here is the caller graph for this function:

◆ GetIfsSize()

uint32_t ns3::LrWpanMac::GetIfsSize ( )

Get the size of the Interframe Space according to MPDU size (m_txPkt).

Returns
the IFS size in symbols

Definition at line 3820 of file lr-wpan-mac.cc.

References ns3::lrwpan::aMaxSIFSFrameSize, ns3::Packet::GetSize(), m_macLIFSPeriod, m_macSIFSPeriod, m_txPkt, and NS_ASSERT.

Referenced by PdDataConfirm(), and PdDataIndication().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetMacAckWaitDuration()

uint64_t ns3::LrWpanMac::GetMacAckWaitDuration ( ) const

Get the macAckWaitDuration attribute value.

Returns
the maximum number symbols to wait for an acknowledgment frame

Definition at line 3771 of file lr-wpan-mac.cc.

References ns3::lrwpan::aTurnaroundTime, ns3::lrwpan::aUnitBackoffPeriod, and m_phy.

Referenced by PdDataConfirm().

+ Here is the caller graph for this function:

◆ GetMacMaxFrameRetries()

uint8_t ns3::LrWpanMac::GetMacMaxFrameRetries ( ) const

Get the macMaxFrameRetries attribute value.

Returns
the maximum number of retries

Definition at line 3778 of file lr-wpan-mac.cc.

References m_macMaxFrameRetries.

◆ GetPanId()

uint16_t ns3::LrWpanMac::GetPanId ( ) const

Get the PAN id used by this MAC.

Returns
the PAN id.

Definition at line 3738 of file lr-wpan-mac.cc.

References m_macPanId.

Referenced by McpsDataRequest(), and SendOneBeacon().

+ Here is the caller graph for this function:

◆ GetPendingAddrFields()

PendingAddrFields ns3::LrWpanMac::GetPendingAddrFields ( )
private

Constructs Pending Address Fields from the local information, the Pending Address Fields are part of the beacon frame.

Returns
the Pending Address Fields

Definition at line 1776 of file lr-wpan-mac.cc.

Referenced by SendOneBeacon().

+ Here is the caller graph for this function:

◆ GetPhy()

Ptr< LrWpanPhy > ns3::LrWpanMac::GetPhy ( )

Get the underlying PHY of the MAC.

Returns
the PHY

Definition at line 1797 of file lr-wpan-mac.cc.

References m_phy.

◆ GetRxOnWhenIdle()

bool ns3::LrWpanMac::GetRxOnWhenIdle ( ) const

Check if the receiver will be enabled when the MAC is idle.

Returns
true, if the receiver is enabled during idle periods, false otherwise

Definition at line 331 of file lr-wpan-mac.cc.

References m_macRxOnWhenIdle.

◆ GetShortAddress()

Mac16Address ns3::LrWpanMac::GetShortAddress ( ) const

Get the short address of this MAC.

Returns
the short address

Definition at line 370 of file lr-wpan-mac.cc.

References m_shortAddress, and NS_LOG_FUNCTION.

Referenced by McpsDataRequest(), MlmeOrphanResponse(), MlmeStartRequest(), PdDataConfirm(), PrintPendingTxQueue(), PrintTxQueue(), and SendOneBeacon().

+ Here is the caller graph for this function:

◆ GetSuperframeField()

uint16_t ns3::LrWpanMac::GetSuperframeField ( )
private

Constructs a Superframe specification field from the local information, the superframe Specification field is necessary to create a beacon frame.

Returns
the Superframe specification field (bitmap)

Definition at line 1738 of file lr-wpan-mac.cc.

References ns3::SuperframeField::GetSuperframe(), m_csmaCa, m_fnlCapSlot, m_macAssociationPermit, m_macBeaconOrder, m_macSuperframeOrder, m_panCoor, ns3::SuperframeField::SetAssocPermit(), ns3::SuperframeField::SetBattLifeExt(), ns3::SuperframeField::SetBeaconOrder(), ns3::SuperframeField::SetFinalCapSlot(), ns3::SuperframeField::SetPanCoor(), and ns3::SuperframeField::SetSuperframeOrder().

Referenced by SendOneBeacon().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetTxPacketSymbols()

uint64_t ns3::LrWpanMac::GetTxPacketSymbols ( )

Obtain the number of symbols in the packet which is currently being sent by the MAC layer.

Returns
packet number of symbols

Definition at line 3847 of file lr-wpan-mac.cc.

References ns3::Packet::GetSize(), m_phy, m_txPkt, and NS_ASSERT.

+ Here is the call graph for this function:

◆ GetTypeId()

TypeId ns3::LrWpanMac::GetTypeId ( )
static

◆ IfsWaitTimeout()

void ns3::LrWpanMac::IfsWaitTimeout ( Time  ifsTime)
private

After a successful transmission of a frame (beacon, data) or an ack frame reception, the mac layer wait an Interframe Space (IFS) time and triggers this function to continue with the MAC flow.

Parameters
ifsTimeIFS time

Definition at line 2619 of file lr-wpan-mac.cc.

References ns3::Time::As(), CheckQueue(), m_macIfsEndTrace, m_macLIFSPeriod, m_macSIFSPeriod, m_phy, NS_LOG_DEBUG, ns3::Time::S, and ns3::Seconds().

Referenced by PdDataConfirm(), and PdDataIndication().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ isCoordDest()

bool ns3::LrWpanMac::isCoordDest ( )

Check if the packet destination is its coordinator.

Returns
True if m_txPkt (packet awaiting to be sent) destination is its coordinator

Definition at line 3796 of file lr-wpan-mac.cc.

References ns3::LrWpanMacHeader::GetExtDstAddr(), ns3::LrWpanMacHeader::GetShortDstAddr(), m_coor, m_macCoordExtendedAddress, m_macCoordShortAddress, m_txPkt, NS_ASSERT, NS_LOG_DEBUG, and ns3::Packet::PeekHeader().

+ Here is the call graph for this function:

◆ isTxAckReq()

bool ns3::LrWpanMac::isTxAckReq ( )

Check if the packet to transmit requires acknowledgment.

Returns
True if the Tx packet requires acknowledgment

Definition at line 3856 of file lr-wpan-mac.cc.

References ns3::LrWpanMacHeader::IsAckReq(), m_txPkt, NS_ASSERT, and ns3::Packet::PeekHeader().

+ Here is the call graph for this function:

◆ LostAssocRespCommand()

void ns3::LrWpanMac::LostAssocRespCommand ( )
private

Called after m_assocRespCmdWaitTime timeout while waiting for an association response command.

Definition at line 1287 of file lr-wpan-mac.cc.

References ns3::Callback< R, UArgs >::IsNull(), ns3::MlmeAssociateConfirmParams::m_assocShortAddr, m_macCoordExtendedAddress, m_macCoordShortAddress, m_macPanId, ns3::LrWpanMacBase::m_mlmeAssociateConfirmCallback, ns3::MlmeAssociateConfirmParams::m_status, and ns3::NO_DATA.

Referenced by PdDataIndication().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ McpsDataRequest()

void ns3::LrWpanMac::McpsDataRequest ( McpsDataRequestParams  params,
Ptr< Packet p 
)
overridevirtual

IEEE 802.15.4-2006, section 7.1.1.1 MCPS-DATA.request Request to transfer a MSDU.

Parameters
paramsthe request parameters
pthe packet to be transmitted

Implements ns3::LrWpanMacBase.

Definition at line 384 of file lr-wpan-mac.cc.

References ns3::ADDR_MODE_RESERVED, ns3::lrwpan::aMaxPhyPacketSize, ns3::lrwpan::aMinMPDUOverhead, CheckQueue(), ns3::Node::ChecksumEnabled(), ns3::LrWpanMacTrailer::EnableFcs(), EnqueueTxQElement(), ns3::EXT_ADDR, ns3::FRAME_TOO_LONG, ns3::LrWpanMacHeader::GetDstAddrMode(), ns3::LrWpanMacHeader::GetDstPanId(), GetExtendedAddress(), GetPanId(), GetShortAddress(), ns3::LrWpanMacHeader::GetShortDstAddr(), ns3::LrWpanMacHeader::GetSrcPanId(), ns3::SequenceNumber< NUMERIC_TYPE, SIGNED_TYPE >::GetValue(), ns3::INVALID_ADDRESS, ns3::Mac16Address::IsBroadcast(), ns3::Mac16Address::IsMulticast(), ns3::Callback< R, UArgs >::IsNull(), ns3::LrWpanMacHeader::LRWPAN_MAC_DATA, m_coor, m_macDsn, ns3::LrWpanMacBase::m_mcpsDataConfirmCallback, ns3::McpsDataConfirmParams::m_msduHandle, ns3::McpsDataConfirmParams::m_status, ns3::NO_PANID_ADDR, NS_ABORT_MSG, NS_ASSERT, NS_LOG_ERROR, NS_LOG_FUNCTION, NS_LOG_LOGIC, ns3::LrWpanMacHeader::SetAckReq(), ns3::LrWpanMacHeader::SetDstAddrFields(), ns3::LrWpanMacHeader::SetDstAddrMode(), ns3::LrWpanMacTrailer::SetFcs(), ns3::LrWpanMacHeader::SetNoAckReq(), ns3::LrWpanMacHeader::SetNoPanIdComp(), ns3::LrWpanMacHeader::SetPanIdComp(), ns3::LrWpanMacHeader::SetSecDisable(), ns3::LrWpanMacHeader::SetSrcAddrFields(), ns3::LrWpanMacHeader::SetSrcAddrMode(), ns3::SHORT_ADDR, ns3::TX_OPTION_ACK, ns3::TX_OPTION_GTS, and ns3::TX_OPTION_INDIRECT.

Referenced by LrWpanDataIfsTestCase::DataReceivedDev1(), LrWpanAckTestCase::DoRun(), LrWpanCcaTestCase::DoRun(), LrWpanCollisionTestCase::DoRun(), LrWpanEdTestCase::DoRun(), LrWpanErrorDistanceTestCase::DoRun(), LrWpanDataIfsTestCase::DoRun(), TestRxOffWhenIdleAfterCsmaFailure::DoRun(), and LrWpanSlottedCsmacaTestCase::DoRun().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ MlmeAssociateRequest()

void ns3::LrWpanMac::MlmeAssociateRequest ( MlmeAssociateRequestParams  params)
overridevirtual

IEEE 802.15.4-2011, section 6.2.2.1 MLME-ASSOCIATE.request Request primitive used by a device to request an association with a coordinator.

Parameters
paramsthe request parameters

Implements ns3::LrWpanMacBase.

Definition at line 683 of file lr-wpan-mac.cc.

References ns3::EXT_ADDR, ns3::INVALID_PARAMETER, ns3::Callback< R, UArgs >::IsNull(), m_associateParams, ns3::MlmeAssociateConfirmParams::m_assocShortAddr, ns3::LrWpanMacBase::m_mlmeAssociateConfirmCallback, m_pendPrimitive, m_phy, ns3::MlmeAssociateConfirmParams::m_status, ns3::MLME_ASSOC_REQ, ns3::MLME_NONE, NS_LOG_ERROR, NS_LOG_FUNCTION, ns3::phyCurrentPage, and ns3::SHORT_ADDR.

Referenced by ScanConfirm().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ MlmeAssociateResponse()

void ns3::LrWpanMac::MlmeAssociateResponse ( MlmeAssociateResponseParams  params)
overridevirtual

IEEE 802.15.4-2011, section 6.2.2.3 MLME-ASSOCIATE.response Primitive used to initiate a response to an MLME-ASSOCIATE.indication primitive.

Parameters
paramsthe associate response parameters

Implements ns3::LrWpanMacBase.

Definition at line 758 of file lr-wpan-mac.cc.

References ns3::CommandPayloadHeader::ASSOCIATION_RESP, ns3::Node::ChecksumEnabled(), ns3::LrWpanMacTrailer::EnableFcs(), EnqueueInd(), ns3::LrWpanMacHeader::EXTADDR, GetExtendedAddress(), ns3::SequenceNumber< NUMERIC_TYPE, SIGNED_TYPE >::GetValue(), ns3::LrWpanMacHeader::LRWPAN_MAC_COMMAND, m_macDsn, m_macPanId, NS_LOG_FUNCTION, ns3::LrWpanMacHeader::SetAckReq(), ns3::CommandPayloadHeader::SetAssociationStatus(), ns3::LrWpanMacHeader::SetDstAddrFields(), ns3::LrWpanMacHeader::SetDstAddrMode(), ns3::LrWpanMacTrailer::SetFcs(), ns3::LrWpanMacHeader::SetPanIdComp(), ns3::LrWpanMacHeader::SetSecDisable(), ns3::CommandPayloadHeader::SetShortAddr(), ns3::LrWpanMacHeader::SetSrcAddrFields(), and ns3::LrWpanMacHeader::SetSrcAddrMode().

Referenced by AssociateIndication().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ MlmeGetRequest()

void ns3::LrWpanMac::MlmeGetRequest ( LrWpanMacPibAttributeIdentifier  id)
overridevirtual

IEEE 802.15.4-2006, section 7.1.6.1 MLME-GET.request Request information about a given PIB attribute.

Note: The PibAttributeIndex parameter is not included because attributes that represent tables are not supported.

Parameters
idthe attribute identifier

Implements ns3::LrWpanMacBase.

Definition at line 962 of file lr-wpan-mac.cc.

References ns3::Callback< R, UArgs >::IsNull(), m_macBeaconPayload, m_macBeaconPayloadLength, m_macExtendedAddress, m_macPanId, ns3::LrWpanMacBase::m_mlmeGetConfirmCallback, m_phy, m_shortAddress, ns3::macBeaconPayload, ns3::macBeaconPayloadLength, ns3::macExtendedAddress, ns3::macPanId, ns3::macShortAddress, ns3::pCurrentChannel, ns3::pCurrentPage, ns3::SUCCESS, and ns3::UNSUPPORTED_ATTRIBUTE.

+ Here is the call graph for this function:

◆ MlmeOrphanResponse()

void ns3::LrWpanMac::MlmeOrphanResponse ( MlmeOrphanResponseParams  params)
overridevirtual

IEEE 802.15.4-2011, section 6.2.7.2 MLME-ORPHAN.response Primitive used to initiatte a response to an MLME-ORPHAN.indication primitive.

Parameters
paramsthe orphan response parameters

Implements ns3::LrWpanMacBase.

Definition at line 803 of file lr-wpan-mac.cc.

References CheckQueue(), ns3::Node::ChecksumEnabled(), ns3::CommandPayloadHeader::COOR_REALIGN, ns3::LrWpanMacTrailer::EnableFcs(), EnqueueTxQElement(), ns3::LrWpanMacHeader::EXTADDR, GetExtendedAddress(), GetShortAddress(), ns3::SequenceNumber< NUMERIC_TYPE, SIGNED_TYPE >::GetValue(), ns3::LrWpanMacHeader::LRWPAN_MAC_COMMAND, m_macDsn, m_macPanId, m_phy, NS_LOG_FUNCTION, ns3::LrWpanMacHeader::SetAckReq(), ns3::CommandPayloadHeader::SetChannel(), ns3::CommandPayloadHeader::SetCoordShortAddr(), ns3::LrWpanMacHeader::SetDstAddrFields(), ns3::LrWpanMacHeader::SetDstAddrMode(), ns3::LrWpanMacTrailer::SetFcs(), ns3::LrWpanMacHeader::SetFrameVer(), ns3::CommandPayloadHeader::SetPage(), ns3::CommandPayloadHeader::SetPanId(), ns3::LrWpanMacHeader::SetPanIdComp(), ns3::LrWpanMacHeader::SetSecDisable(), ns3::CommandPayloadHeader::SetShortAddr(), ns3::LrWpanMacHeader::SetSrcAddrFields(), and ns3::LrWpanMacHeader::SetSrcAddrMode().

Referenced by OrphanIndication(), and TestOrphanScan::OrphanIndicationCoord().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ MlmePollRequest()

void ns3::LrWpanMac::MlmePollRequest ( MlmePollRequestParams  params)
overridevirtual

IEEE 802.15.4-2011, section 6.2.14.2 MLME-POLL.request Prompts the device to request data from the coordinator.

Parameters
paramsthe request parameters

Implements ns3::LrWpanMacBase.

Definition at line 903 of file lr-wpan-mac.cc.

References ns3::CommandPayloadHeader::DATA_REQ, ns3::SequenceNumber< NUMERIC_TYPE, SIGNED_TYPE >::GetValue(), ns3::LrWpanMacHeader::LRWPAN_MAC_COMMAND, m_macBsn, NS_FATAL_ERROR, and NS_LOG_FUNCTION.

+ Here is the call graph for this function:

◆ MlmeScanRequest()

void ns3::LrWpanMac::MlmeScanRequest ( MlmeScanRequestParams  params)
overridevirtual

IEEE 802.15.4-2011, section 6.2.10.1 MLME-SCAN.request Request primitive used to initiate a channel scan over a given list of channels.

Parameters
paramsthe scan request parameters

Implements ns3::LrWpanMacBase.

Definition at line 623 of file lr-wpan-mac.cc.

References ns3::EventId::Cancel(), ns3::INVALID_PARAMETER, ns3::Callback< R, UArgs >::IsNull(), ns3::EventId::IsRunning(), m_capEvent, m_cfpEvent, m_channelScanIndex, ns3::MlmeScanConfirmParams::m_chPage, m_csmaCa, m_energyDetectList, m_incCapEvent, m_incCfpEvent, m_macPanId, m_macPanIdScan, ns3::LrWpanMacBase::m_mlmeScanConfirmCallback, m_panDescriptorList, m_pendPrimitive, m_phy, m_scanEnergyEvent, m_scanEvent, m_scanOrphanEvent, m_scanParams, ns3::MlmeScanConfirmParams::m_scanType, ns3::MlmeScanConfirmParams::m_status, m_trackingEvent, m_unscannedChannels, ns3::MLME_SCAN_REQ, ns3::MLMESCAN_ORPHAN, NS_LOG_ERROR, NS_LOG_FUNCTION, ns3::phyCurrentPage, and ns3::SCAN_IN_PROGRESS.

Referenced by TestActiveScanPanDescriptors::DoRun(), and TestOrphanScan::DoRun().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ MlmeSetRequest()

void ns3::LrWpanMac::MlmeSetRequest ( LrWpanMacPibAttributeIdentifier  id,
Ptr< LrWpanMacPibAttributes attribute 
)
overridevirtual

IEEE 802.15.4-2011, section 6.2.11.1 MLME-SET.request Attempts to write the given value to the indicated PIB attribute.

Parameters
idthe attributed identifier
attributethe attribute value

Implements ns3::LrWpanMacBase.

Definition at line 918 of file lr-wpan-mac.cc.

References ns3::lrwpan::aMaxBeaconPayloadLength, ns3::MlmeSetConfirmParams::id, ns3::INVALID_PARAMETER, ns3::Callback< R, UArgs >::IsNull(), m_macBeaconPayload, m_macBeaconPayloadLength, m_macPanId, ns3::LrWpanMacBase::m_mlmeSetConfirmCallback, m_shortAddress, ns3::MlmeSetConfirmParams::m_status, ns3::macBeaconPayload, ns3::macBeaconPayloadLength, ns3::macExtendedAddress, ns3::macPanId, ns3::macShortAddress, ns3::READ_ONLY, ns3::SUCCESS, and ns3::UNSUPPORTED_ATTRIBUTE.

+ Here is the call graph for this function:

◆ MlmeStartRequest()

void ns3::LrWpanMac::MlmeStartRequest ( MlmeStartRequestParams  params)
overridevirtual

IEEE 802.15.4-2006, section 7.1.14.1 MLME-START.request Request to allow a PAN coordinator to initiate a new PAN or beginning a new superframe configuration.

Parameters
paramsthe request parameters

Implements ns3::LrWpanMacBase.

Definition at line 584 of file lr-wpan-mac.cc.

References ns3::FFD, GetShortAddress(), ns3::INVALID_PARAMETER, ns3::Callback< R, UArgs >::IsNull(), m_deviceCapability, ns3::MlmeStartRequestParams::m_logChPage, ns3::LrWpanMacBase::m_mlmeStartConfirmCallback, m_pendPrimitive, m_phy, m_startParams, ns3::MlmeStartConfirmParams::m_status, ns3::MLME_START_REQ, ns3::NO_SHORT_ADDRESS, NS_ASSERT, NS_LOG_ERROR, NS_LOG_FUNCTION, and ns3::phyCurrentPage.

Referenced by TestActiveScanPanDescriptors::DoRun(), TestOrphanScan::DoRun(), and LrWpanSlottedCsmacaTestCase::DoRun().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ MlmeSyncRequest()

void ns3::LrWpanMac::MlmeSyncRequest ( MlmeSyncRequestParams  params)
overridevirtual

IEEE 802.15.4-2011, section 6.2.13.1 MLME-SYNC.request Request to synchronize with the coordinator by acquiring and, if specified, tracking beacons.

Parameters
paramsthe request parameters

Implements ns3::LrWpanMacBase.

Definition at line 863 of file lr-wpan-mac.cc.

References ns3::lrwpan::aBaseSuperframeDuration, BeaconSearchTimeout(), ns3::EventId::Cancel(), ns3::IEEE_802_15_4_PHY_RX_ON, ns3::EventId::IsRunning(), m_beaconTrackingOn, m_incomingBeaconOrder, m_macPanId, m_numLostBeacons, m_phy, m_trackingEvent, NS_ASSERT, NS_LOG_FUNCTION, ns3::phyCurrentChannel, ns3::Simulator::Schedule(), and ns3::Seconds().

+ Here is the call graph for this function:

◆ PdDataConfirm()

void ns3::LrWpanMac::PdDataConfirm ( LrWpanPhyEnumeration  status)

IEEE 802.15.4-2006 section 6.2.1.2 Confirm the end of transmission of an MPDU to MAC.

Parameters
statusto report to MAC PHY PD-DATA.confirm status

Definition at line 2994 of file lr-wpan-mac.cc.

References ns3::ACCESS_DENIED, AckWaitTimeout(), ns3::Time::As(), ns3::CommandPayloadHeader::ASSOCIATION_REQ, ns3::CommandPayloadHeader::ASSOCIATION_RESP, ns3::EventId::Cancel(), ns3::MlmeAssociateIndicationParams::capabilityInfo, ns3::CommandPayloadHeader::COOR_REALIGN, ns3::Packet::Copy(), ns3::CommandPayloadHeader::DATA_REQ, ns3::FRAME_TOO_LONG, ns3::FULL_CAPACITY, ns3::CommandPayloadHeader::GetAssociationStatus(), ns3::CommandPayloadHeader::GetCapabilityField(), ns3::CommandPayloadHeader::GetCommandFrameType(), ns3::LrWpanMacHeader::GetDstAddrMode(), ns3::LrWpanMacHeader::GetExtDstAddr(), ns3::LrWpanMacHeader::GetExtSrcAddr(), GetIfsSize(), GetMacAckWaitDuration(), ns3::CommandPayloadHeader::GetShortAddr(), GetShortAddress(), ns3::LrWpanMacHeader::GetShortDstAddr(), ns3::LrWpanMacHeader::GetShortSrcAddr(), ns3::Packet::GetSize(), ns3::LrWpanMacHeader::GetSrcAddrMode(), ns3::LrWpanMacHeader::GetSrcPanId(), ns3::IEEE_802_15_4_PHY_SUCCESS, ns3::IEEE_802_15_4_PHY_UNSPECIFIED, IfsWaitTimeout(), ns3::LrWpanMacHeader::IsAcknowledgment(), ns3::LrWpanMacHeader::IsAckReq(), ns3::LrWpanMacHeader::IsBeacon(), ns3::LrWpanMacHeader::IsCommand(), ns3::EventId::IsExpired(), ns3::Callback< R, UArgs >::IsNull(), ns3::Time::IsZero(), ns3::MlmeAssociateIndicationParams::lqi, m_ackWaitTimeout, ns3::MlmeAssociateConfirmParams::m_assocShortAddr, m_capEvent, m_csmaCa, ns3::MlmeCommStatusIndicationParams::m_dstAddrMode, ns3::MlmeCommStatusIndicationParams::m_dstExtAddr, ns3::MlmeCommStatusIndicationParams::m_dstShortAddr, ns3::MlmeAssociateIndicationParams::m_extDevAddr, m_ifsEvent, m_incCapEvent, m_incCfpEvent, m_incomingBeaconOrder, m_incomingSuperframeOrder, m_lastRxFrameLqi, m_lrWpanMacState, m_macBeaconTxTime, m_macCoordExtendedAddress, m_macCoordShortAddress, m_macPanId, m_macTxDropTrace, m_macTxOkTrace, ns3::LrWpanMacBase::m_mcpsDataConfirmCallback, ns3::LrWpanMacBase::m_mlmeAssociateConfirmCallback, ns3::LrWpanMacBase::m_mlmeAssociateIndicationCallback, ns3::LrWpanMacBase::m_mlmeCommStatusIndicationCallback, ns3::LrWpanMacBase::m_mlmeStartConfirmCallback, ns3::McpsDataConfirmParams::m_msduHandle, ns3::MlmeCommStatusIndicationParams::m_panId, m_phy, m_rxPkt, m_setMacState, ns3::MlmeCommStatusIndicationParams::m_srcAddrMode, ns3::MlmeCommStatusIndicationParams::m_srcExtAddr, ns3::MlmeCommStatusIndicationParams::m_srcShortAddr, ns3::McpsDataConfirmParams::m_status, ns3::MlmeCommStatusIndicationParams::m_status, ns3::MlmeStartConfirmParams::m_status, ns3::MlmeAssociateConfirmParams::m_status, m_txPkt, m_txQueue, ns3::MAC_ACK_PENDING, ns3::MAC_IDLE, ns3::MAC_SENDING, ns3::Simulator::Now(), NS_ASSERT, NS_ASSERT_MSG, NS_FATAL_ERROR, NS_LOG_DEBUG, NS_LOG_ERROR, NS_LOG_FUNCTION, ns3::OUTGOING, ns3::Packet::PeekHeader(), RemoveFirstTxQElement(), ns3::Time::S, ns3::Simulator::Schedule(), ns3::Simulator::ScheduleNow(), ns3::Seconds(), SendAssocResponseCommand(), SetLrWpanMacState(), SetShortAddress(), StartCAP(), and ns3::SUCCESS.

Referenced by ns3::LrWpanNetDevice::CompleteConfig().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ PdDataIndication()

void ns3::LrWpanMac::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 MAC (receiving)

Parameters
psduLengthnumber of bytes in the PSDU
pthe packet to be transmitted
lqiLink quality (LQI) value measured during reception of the PPDU

Definition at line 1803 of file lr-wpan-mac.cc.

References ns3::lrwpan::aBaseSuperframeDuration, ns3::Time::As(), ns3::CommandPayloadHeader::ASSOCIATION_REQ, ns3::CommandPayloadHeader::ASSOCIATION_RESP, ns3::lrwpan::aTurnaroundTime, ns3::CommandPayloadHeader::BEACON_REQ, BeaconSearchTimeout(), ns3::EventId::Cancel(), ChangeMacState(), ns3::LrWpanMacTrailer::CheckFcs(), ns3::Node::ChecksumEnabled(), ns3::CommandPayloadHeader::COOR_REALIGN, ns3::Packet::Copy(), ns3::CommandPayloadHeader::DATA_REQ, ns3::LrWpanMacTrailer::EnableFcs(), ns3::EXT_ADDR, ns3::LrWpanMacHeader::EXTADDR, ns3::SuperframeField::GetBeaconOrder(), ns3::CommandPayloadHeader::GetCommandFrameType(), ns3::CommandPayloadHeader::GetCoordShortAddr(), ns3::Simulator::GetDelayLeft(), ns3::LrWpanMacHeader::GetDstAddrMode(), ns3::LrWpanMacHeader::GetDstPanId(), ns3::LrWpanMacHeader::GetExtDstAddr(), ns3::LrWpanMacHeader::GetExtSrcAddr(), ns3::SuperframeField::GetFinalCapSlot(), ns3::SuperframeField::GetFrameOrder(), ns3::LrWpanMacHeader::GetFrameVer(), ns3::BeaconPayloadHeader::GetGtsFields(), ns3::GtsFields::GetGtsPermit(), GetIfsSize(), ns3::CommandPayloadHeader::GetPanId(), ns3::BeaconPayloadHeader::GetPndAddrFields(), ns3::LrWpanMacHeader::GetSeqNum(), ns3::CommandPayloadHeader::GetShortAddr(), ns3::LrWpanMacHeader::GetShortDstAddr(), ns3::LrWpanMacHeader::GetShortSrcAddr(), ns3::LrWpanMacHeader::GetSrcAddrMode(), ns3::LrWpanMacHeader::GetSrcPanId(), ns3::BeaconPayloadHeader::GetSuperframeSpecField(), ns3::LrWpanMacHeader::GetType(), IfsWaitTimeout(), ns3::INCOMING, ns3::LrWpanMacHeader::IsAcknowledgment(), ns3::LrWpanMacHeader::IsAckReq(), ns3::SuperframeField::IsBattLifeExt(), ns3::LrWpanMacHeader::IsBeacon(), ns3::Mac16Address::IsBroadcast(), ns3::LrWpanMacHeader::IsCommand(), ns3::LrWpanMacHeader::IsData(), ns3::Mac16Address::IsMulticast(), ns3::Callback< R, UArgs >::IsNull(), ns3::EventId::IsRunning(), LostAssocRespCommand(), ns3::LrWpanMacHeader::LRWPAN_MAC_RESERVED, m_ackWaitTimeout, m_assocResCmdWaitTimeout, m_assocRespCmdWaitTime, m_beaconTrackingOn, ns3::MlmeBeaconNotifyIndicationParams::m_bsn, m_capEvent, m_channelScanIndex, ns3::MlmeScanRequestParams::m_chPage, ns3::MlmeScanConfirmParams::m_chPage, m_coor, ns3::PanDescriptor::m_coorAddrMode, ns3::PanDescriptor::m_coorExtAddr, ns3::PanDescriptor::m_coorPanId, ns3::PanDescriptor::m_coorShortAddr, m_csmaCa, ns3::MlmeCommStatusIndicationParams::m_dstAddrMode, ns3::MlmeCommStatusIndicationParams::m_dstExtAddr, ns3::PanDescriptor::m_gtsPermit, m_ifsEvent, m_incCapEvent, m_incomingBeaconInterval, m_incomingBeaconOrder, m_incomingFnlCapSlot, m_incomingSuperframeDuration, m_incomingSuperframeOrder, m_lastRxFrameLqi, ns3::PanDescriptor::m_linkQuality, ns3::PanDescriptor::m_logCh, ns3::PanDescriptor::m_logChPage, m_lrWpanMacState, m_macAssociationPermit, m_macAutoRequest, m_macBeaconRxTime, m_macCoordExtendedAddress, m_macCoordShortAddress, m_macExtendedAddress, m_macPanId, m_macPanIdScan, m_macPromiscRxTrace, m_macPromiscuousMode, m_macResponseWaitTime, m_macRxDropTrace, m_macRxTrace, m_macTxOkTrace, ns3::LrWpanMacBase::m_mcpsDataConfirmCallback, ns3::LrWpanMacBase::m_mcpsDataIndicationCallback, ns3::LrWpanMacBase::m_mlmeBeaconNotifyIndicationCallback, ns3::LrWpanMacBase::m_mlmeCommStatusIndicationCallback, ns3::LrWpanMacBase::m_mlmeOrphanIndicationCallback, ns3::LrWpanMacBase::m_mlmePollConfirmCallback, ns3::LrWpanMacBase::m_mlmeScanConfirmCallback, ns3::McpsDataConfirmParams::m_msduHandle, m_numLostBeacons, ns3::MlmeOrphanIndicationParams::m_orphanAddr, ns3::MlmeBeaconNotifyIndicationParams::m_panDescriptor, m_panDescriptorList, ns3::MlmeCommStatusIndicationParams::m_panId, m_pendPrimitive, m_phy, m_promiscSnifferTrace, m_respWaitTimeout, m_rxBeaconSymbols, m_rxPkt, m_scanEnergyEvent, m_scanEvent, m_scanOrphanEvent, m_scanParams, ns3::MlmeScanRequestParams::m_scanType, ns3::MlmeScanConfirmParams::m_scanType, ns3::MlmeBeaconNotifyIndicationParams::m_sdu, ns3::MlmeBeaconNotifyIndicationParams::m_sduLength, m_setMacState, m_shortAddress, ns3::MlmeCommStatusIndicationParams::m_srcAddrMode, ns3::MlmeCommStatusIndicationParams::m_srcExtAddr, ns3::McpsDataConfirmParams::m_status, ns3::MlmeCommStatusIndicationParams::m_status, ns3::MlmeScanConfirmParams::m_status, ns3::MlmePollConfirmParams::m_status, ns3::PanDescriptor::m_superframeSpec, ns3::PanDescriptor::m_timeStamp, m_trackingEvent, m_txPkt, m_txQueue, ns3::MAC_ACK_PENDING, ns3::MAC_CSMA, ns3::MAC_IDLE, ns3::MLME_NONE, ns3::Simulator::Now(), NS_ASSERT, NS_LOG_DEBUG, NS_LOG_ERROR, NS_LOG_FUNCTION, ns3::CommandPayloadHeader::ORPHAN_NOTIF, ns3::Packet::PeekHeader(), PrepareRetransmission(), RemoveFirstTxQElement(), RemovePendTxQElement(), ns3::Time::S, ns3::Simulator::Schedule(), ns3::Simulator::ScheduleNow(), ns3::Seconds(), SendAck(), SendDataRequestCommand(), SendOneBeacon(), SetLrWpanMacState(), ns3::SHORT_ADDR, StartCAP(), and ns3::SUCCESS.

Referenced by ns3::LrWpanNetDevice::CompleteConfig().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ PlmeCcaConfirm()

void ns3::LrWpanMac::PlmeCcaConfirm ( LrWpanPhyEnumeration  status)

IEEE 802.15.4-2006 section 6.2.2.2 PLME-CCA.confirm status.

Parameters
statusTRX_OFF, BUSY or IDLE

Definition at line 3241 of file lr-wpan-mac.cc.

References m_csmaCa, and NS_LOG_FUNCTION.

◆ PlmeEdConfirm()

void ns3::LrWpanMac::PlmeEdConfirm ( LrWpanPhyEnumeration  status,
uint8_t  energyLevel 
)

IEEE 802.15.4-2006 section 6.2.2.4 PLME-ED.confirm status and energy level.

Parameters
statusSUCCESS, TRX_OFF or TX_ON
energyLevel0x00-0xff ED level for the channel

Definition at line 3249 of file lr-wpan-mac.cc.

References ns3::Simulator::GetDelayLeft(), m_maxEnergyLevel, m_phy, m_scanEnergyEvent, NS_LOG_FUNCTION, and ns3::Seconds().

Referenced by ns3::LrWpanNetDevice::CompleteConfig().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ PlmeGetAttributeConfirm()

void ns3::LrWpanMac::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 section 6.4.2.

Parameters
statusSUCCESS or UNSUPPORTED_ATTRIBUTE
idthe attributed identifier
attributethe attribute value

Definition at line 3266 of file lr-wpan-mac.cc.

References NS_LOG_FUNCTION.

Referenced by ns3::LrWpanNetDevice::CompleteConfig().

+ Here is the caller graph for this function:

◆ PlmeSetAttributeConfirm()

void ns3::LrWpanMac::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 section 6.4.2.

Parameters
statusSUCCESS, UNSUPPORTED_ATTRIBUTE, INVALID_PARAMETER, or READ_ONLY
idthe attributed identifier

Definition at line 3325 of file lr-wpan-mac.cc.

References ns3::lrwpan::aBaseSuperframeDuration, ns3::EventId::Cancel(), EndAssociateRequest(), EndChannelEnergyScan(), EndChannelScan(), EndStartRequest(), ns3::IEEE_802_15_4_PHY_RX_ON, ns3::IEEE_802_15_4_PHY_SUCCESS, ns3::INVALID_PARAMETER, ns3::Callback< R, UArgs >::IsNull(), m_associateParams, ns3::MlmeAssociateConfirmParams::m_assocShortAddr, m_channelScanIndex, ns3::MlmeAssociateRequestParams::m_chNum, ns3::MlmeScanRequestParams::m_chPage, ns3::MlmeScanConfirmParams::m_chPage, m_csmaCa, m_incCapEvent, m_incCfpEvent, m_incomingBeaconOrder, m_incomingSuperframeOrder, ns3::MlmeStartRequestParams::m_logCh, m_macCoordExtendedAddress, m_macCoordShortAddress, m_macPanId, m_macResponseWaitTime, m_maxEnergyLevel, ns3::LrWpanMacBase::m_mlmeAssociateConfirmCallback, ns3::LrWpanMacBase::m_mlmeScanConfirmCallback, ns3::LrWpanMacBase::m_mlmeStartConfirmCallback, m_pendPrimitive, m_phy, ns3::MlmeScanRequestParams::m_scanChannels, ns3::MlmeScanRequestParams::m_scanDuration, m_scanEnergyEvent, m_scanEvent, m_scanOrphanEvent, m_scanParams, ns3::MlmeScanRequestParams::m_scanType, ns3::MlmeScanConfirmParams::m_scanType, m_startParams, ns3::MlmeStartConfirmParams::m_status, ns3::MlmeScanConfirmParams::m_status, ns3::MlmeAssociateConfirmParams::m_status, ns3::MLME_ASSOC_REQ, ns3::MLME_SCAN_REQ, ns3::MLME_START_REQ, ns3::MLMESCAN_ACTIVE, ns3::MLMESCAN_ED, ns3::MLMESCAN_ORPHAN, ns3::MLMESCAN_PASSIVE, NS_LOG_ERROR, NS_LOG_FUNCTION, ns3::phyCurrentChannel, ns3::phyCurrentPage, ns3::Simulator::Schedule(), ns3::Seconds(), SendBeaconRequestCommand(), and SendOrphanNotificationCommand().

Referenced by ns3::LrWpanNetDevice::CompleteConfig().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ PlmeSetTRXStateConfirm()

void ns3::LrWpanMac::PlmeSetTRXStateConfirm ( LrWpanPhyEnumeration  status)

IEEE 802.15.4-2006 section 6.2.2.8 PLME-SET-TRX-STATE.confirm Set PHY state.

Parameters
statusin RX_ON,TRX_OFF,FORCE_TRX_OFF,TX_ON

Definition at line 3274 of file lr-wpan-mac.cc.

References CheckQueue(), ns3::Packet::GetSize(), ns3::IEEE_802_15_4_PHY_RX_ON, ns3::IEEE_802_15_4_PHY_SUCCESS, ns3::IEEE_802_15_4_PHY_TRX_OFF, ns3::IEEE_802_15_4_PHY_TX_ON, ns3::EventId::IsRunning(), m_csmaCa, m_lrWpanMacState, m_macTxTrace, m_phy, m_promiscSnifferTrace, m_scanEnergyEvent, m_snifferTrace, m_txPkt, ns3::MAC_ACK_PENDING, ns3::MAC_CSMA, ns3::MAC_IDLE, ns3::MAC_SENDING, NS_ASSERT, NS_FATAL_ERROR, and NS_LOG_FUNCTION.

Referenced by ns3::LrWpanNetDevice::CompleteConfig().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ PrepareRetransmission()

bool ns3::LrWpanMac::PrepareRetransmission ( )
private

Check for remaining retransmissions for the packet currently being sent.

Drop the packet, if there are no retransmissions left.

Returns
true, if the packet should be retransmitted, false otherwise.

Definition at line 2645 of file lr-wpan-mac.cc.

References ns3::CommandPayloadHeader::ASSOCIATION_REQ, ns3::CommandPayloadHeader::ASSOCIATION_RESP, ns3::EventId::Cancel(), ns3::Packet::Copy(), ns3::CommandPayloadHeader::DATA_REQ, ns3::LrWpanMacHeader::EXTADDR, ns3::CommandPayloadHeader::GetCommandFrameType(), ns3::LrWpanMacHeader::GetExtDstAddr(), ns3::LrWpanMacHeader::GetExtSrcAddr(), ns3::LrWpanMacHeader::IsCommand(), ns3::Callback< R, UArgs >::IsNull(), ns3::MlmeAssociateConfirmParams::m_assocShortAddr, m_csmaCa, ns3::MlmeCommStatusIndicationParams::m_dstAddrMode, ns3::MlmeCommStatusIndicationParams::m_dstExtAddr, m_incCapEvent, m_incCfpEvent, m_incomingBeaconOrder, m_incomingSuperframeOrder, m_macCoordExtendedAddress, m_macCoordShortAddress, m_macMaxFrameRetries, m_macPanId, m_macTxDropTrace, ns3::LrWpanMacBase::m_mcpsDataConfirmCallback, ns3::LrWpanMacBase::m_mlmeAssociateConfirmCallback, ns3::LrWpanMacBase::m_mlmeCommStatusIndicationCallback, ns3::LrWpanMacBase::m_mlmePollConfirmCallback, ns3::McpsDataConfirmParams::m_msduHandle, m_numCsmacaRetry, ns3::MlmeCommStatusIndicationParams::m_panId, m_retransmission, ns3::MlmeCommStatusIndicationParams::m_srcAddrMode, ns3::MlmeCommStatusIndicationParams::m_srcExtAddr, ns3::McpsDataConfirmParams::m_status, ns3::MlmeCommStatusIndicationParams::m_status, ns3::MlmeAssociateConfirmParams::m_status, ns3::MlmePollConfirmParams::m_status, m_txPkt, m_txQueue, ns3::NO_ACK, NS_LOG_FUNCTION, ns3::Packet::PeekHeader(), RemoveFirstTxQElement(), and RemovePendTxQElement().

Referenced by AckWaitTimeout(), and PdDataIndication().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ PrintPendingTxQueue()

void ns3::LrWpanMac::PrintPendingTxQueue ( std::ostream &  os) const

Print the Pending transaction list.

Parameters
osThe reference to the output stream used by this print function.

Definition at line 2887 of file lr-wpan-mac.cc.

References ns3::Time::As(), GetExtendedAddress(), GetShortAddress(), ns3::LrWpanMacHeader::IsCommand(), ns3::LrWpanMacHeader::IsData(), m_indTxQueue, ns3::Simulator::Now(), and ns3::Time::S.

+ Here is the call graph for this function:

◆ PrintTransmitQueueSize()

void ns3::LrWpanMac::PrintTransmitQueueSize ( )

Print the number of elements in the packet transmit queue.

Definition at line 3784 of file lr-wpan-mac.cc.

References m_txQueue, and NS_LOG_DEBUG.

◆ PrintTxQueue()

void ns3::LrWpanMac::PrintTxQueue ( std::ostream &  os) const

Print the Transmit Queue.

Parameters
osThe reference to the output stream used by this print function.

Definition at line 2922 of file lr-wpan-mac.cc.

References ns3::Time::As(), ns3::LrWpanMacHeader::GetDstPanId(), ns3::LrWpanMacHeader::GetExtDstAddr(), GetExtendedAddress(), ns3::LrWpanMacHeader::GetSeqNum(), GetShortAddress(), ns3::LrWpanMacHeader::GetShortDstAddr(), ns3::LrWpanMacHeader::IsCommand(), ns3::LrWpanMacHeader::IsData(), m_txQueue, ns3::Simulator::Now(), and ns3::Time::S.

+ Here is the call graph for this function:

◆ PurgeInd()

◆ RemoveFirstTxQElement()

void ns3::LrWpanMac::RemoveFirstTxQElement ( )
private

Remove the tip of the transmission queue, including clean up related to the last packet transmission.

Definition at line 2577 of file lr-wpan-mac.cc.

References ns3::LrWpanMacHeader::GetShortDstAddr(), ns3::Mac16Address::IsBroadcast(), ns3::Mac16Address::IsMulticast(), m_csmaCa, m_macTxDequeueTrace, m_numCsmacaRetry, m_retransmission, m_sentPktTrace, m_txPkt, and m_txQueue.

Referenced by PdDataConfirm(), PdDataIndication(), PrepareRetransmission(), and SetLrWpanMacState().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ RemovePendTxQElement()

void ns3::LrWpanMac::RemovePendTxQElement ( Ptr< Packet p)
private

Remove an element from the pending transaction list.

Parameters
pThe packet to be removed from the pending transaction list.

Definition at line 2961 of file lr-wpan-mac.cc.

References ns3::EXT_ADDR, ns3::LrWpanMacHeader::GetDstAddrMode(), ns3::LrWpanMacHeader::GetExtDstAddr(), ns3::LrWpanMacHeader::GetSeqNum(), ns3::LrWpanMacHeader::GetShortDstAddr(), m_indTxQueue, m_macIndTxDequeueTrace, and ns3::SHORT_ADDR.

Referenced by PdDataIndication(), PrepareRetransmission(), and SetLrWpanMacState().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ SendAck()

void ns3::LrWpanMac::SendAck ( uint8_t  seqno)
private

Send an acknowledgment packet for the given sequence number.

Parameters
seqnothe sequence number for the ACK

Definition at line 2526 of file lr-wpan-mac.cc.

References ChangeMacState(), ns3::Node::ChecksumEnabled(), ns3::LrWpanMacTrailer::EnableFcs(), ns3::IEEE_802_15_4_PHY_TX_ON, ns3::LrWpanMacHeader::LRWPAN_MAC_ACKNOWLEDGMENT, m_lrWpanMacState, m_phy, m_txPkt, ns3::MAC_IDLE, ns3::MAC_SENDING, NS_ASSERT, NS_LOG_FUNCTION, and ns3::LrWpanMacTrailer::SetFcs().

Referenced by PdDataIndication().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ SendAssocRequestCommand()

◆ SendAssocResponseCommand()

void ns3::LrWpanMac::SendAssocResponseCommand ( Ptr< Packet rxDataReqPkt)
private

Called to send an associate response command.

Parameters
rxDataReqPktThe received data request pkt that instigated the Association response command.

Definition at line 1262 of file lr-wpan-mac.cc.

References ns3::CommandPayloadHeader::DATA_REQ, DequeueInd(), ns3::CommandPayloadHeader::GetCommandFrameType(), ns3::LrWpanMacHeader::GetExtSrcAddr(), m_txQueue, NS_ASSERT, and NS_LOG_DEBUG.

Referenced by PdDataConfirm().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ SendBeaconRequestCommand()

void ns3::LrWpanMac::SendBeaconRequestCommand ( )
private

◆ SendDataRequestCommand()

void ns3::LrWpanMac::SendDataRequestCommand ( )
private

Used to send a data request command (i.e.

Request the coordinator to send the association response)

Definition at line 1203 of file lr-wpan-mac.cc.

References CheckQueue(), ns3::Node::ChecksumEnabled(), ns3::CommandPayloadHeader::DATA_REQ, ns3::LrWpanMacTrailer::EnableFcs(), EnqueueTxQElement(), ns3::LrWpanMacHeader::EXTADDR, ns3::SequenceNumber< NUMERIC_TYPE, SIGNED_TYPE >::GetValue(), ns3::LrWpanMacHeader::LRWPAN_MAC_COMMAND, m_macCoordExtendedAddress, m_macCoordShortAddress, m_macDsn, m_macExtendedAddress, m_macPanId, NS_LOG_FUNCTION, ns3::LrWpanMacHeader::SetAckReq(), ns3::LrWpanMacHeader::SetDstAddrFields(), ns3::LrWpanMacHeader::SetDstAddrMode(), ns3::LrWpanMacTrailer::SetFcs(), ns3::LrWpanMacHeader::SetSecDisable(), ns3::LrWpanMacHeader::SetSrcAddrFields(), ns3::LrWpanMacHeader::SetSrcAddrMode(), and ns3::LrWpanMacHeader::SHORTADDR.

Referenced by PdDataIndication().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ SendOneBeacon()

void ns3::LrWpanMac::SendOneBeacon ( )
private

◆ SendOrphanNotificationCommand()

void ns3::LrWpanMac::SendOrphanNotificationCommand ( )
private

Called to send a orphan notification command.

This is used by an associated device that has lost synchronization with its coordinator. As described in IEEE 802.15.4-2011 (Section 5.3.6)

Definition at line 1113 of file lr-wpan-mac.cc.

References CheckQueue(), ns3::Node::ChecksumEnabled(), ns3::LrWpanMacTrailer::EnableFcs(), EnqueueTxQElement(), ns3::LrWpanMacHeader::EXTADDR, GetExtendedAddress(), ns3::SequenceNumber< NUMERIC_TYPE, SIGNED_TYPE >::GetValue(), ns3::LrWpanMacHeader::LRWPAN_MAC_COMMAND, m_macDsn, ns3::CommandPayloadHeader::ORPHAN_NOTIF, ns3::CommandPayloadHeader::SetCommandFrameType(), ns3::LrWpanMacHeader::SetDstAddrFields(), ns3::LrWpanMacHeader::SetDstAddrMode(), ns3::LrWpanMacTrailer::SetFcs(), ns3::LrWpanMacHeader::SetNoAckReq(), ns3::LrWpanMacHeader::SetPanIdComp(), ns3::LrWpanMacHeader::SetSecDisable(), ns3::LrWpanMacHeader::SetSrcAddrFields(), ns3::LrWpanMacHeader::SetSrcAddrMode(), and ns3::LrWpanMacHeader::SHORTADDR.

Referenced by PlmeSetAttributeConfirm().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ SetAssociatedCoor() [1/2]

void ns3::LrWpanMac::SetAssociatedCoor ( Mac16Address  mac)

Check if the packet destination is its coordinator.

Parameters
macThe coordinator short MAC Address

Definition at line 3835 of file lr-wpan-mac.cc.

References m_macCoordShortAddress.

◆ SetAssociatedCoor() [2/2]

void ns3::LrWpanMac::SetAssociatedCoor ( Mac64Address  mac)

Check if the packet destination is its coordinator.

Parameters
macThe coordinator extended MAC Address

Definition at line 3841 of file lr-wpan-mac.cc.

References m_macCoordExtendedAddress.

◆ SetCsmaCa()

void ns3::LrWpanMac::SetCsmaCa ( Ptr< LrWpanCsmaCa csmaCa)

Set the CSMA/CA implementation to be used by the MAC.

Parameters
csmaCathe CSMA/CA implementation

Definition at line 1785 of file lr-wpan-mac.cc.

References m_csmaCa.

◆ SetExtendedAddress()

void ns3::LrWpanMac::SetExtendedAddress ( Mac64Address  address)

Set the extended address of this MAC.

Parameters
addressthe new address

Definition at line 363 of file lr-wpan-mac.cc.

References m_macExtendedAddress, and NS_LOG_FUNCTION.

◆ SetIndTxQMaxSize()

void ns3::LrWpanMac::SetIndTxQMaxSize ( uint32_t  queueSize)

Set the max size of the indirect transmit queue (Pending Transaction list)

Parameters
queueSizeThe indirect transmit queue size.

Definition at line 3732 of file lr-wpan-mac.cc.

References m_maxIndTxQueueSize, and queueSize.

◆ SetLrWpanMacState()

void ns3::LrWpanMac::SetLrWpanMacState ( LrWpanMacState  macState)

CSMA-CA algorithm calls back the MAC after executing channel assessment.

Parameters
macStateindicate BUSY or IDLE channel condition

Definition at line 3537 of file lr-wpan-mac.cc.

References ns3::CommandPayloadHeader::ASSOCIATION_REQ, ns3::CommandPayloadHeader::ASSOCIATION_RESP, ns3::CommandPayloadHeader::BEACON_REQ, ns3::EventId::Cancel(), ChangeMacState(), ns3::CHANNEL_ACCESS_FAILURE, ns3::CHANNEL_IDLE, ns3::CommandPayloadHeader::COOR_REALIGN, ns3::Packet::Copy(), ns3::CommandPayloadHeader::DATA_REQ, ns3::LrWpanMacHeader::EXTADDR, ns3::CommandPayloadHeader::GetCommandFrameType(), ns3::LrWpanMacHeader::GetExtDstAddr(), ns3::LrWpanMacHeader::GetExtSrcAddr(), ns3::IEEE_802_15_4_PHY_RX_ON, ns3::IEEE_802_15_4_PHY_TRX_OFF, ns3::IEEE_802_15_4_PHY_TX_ON, ns3::LrWpanMacHeader::IsCommand(), ns3::LrWpanMacHeader::IsData(), ns3::Callback< R, UArgs >::IsNull(), ns3::EventId::IsRunning(), ns3::MlmeAssociateConfirmParams::m_assocShortAddr, m_csmaCa, ns3::MlmeCommStatusIndicationParams::m_dstAddrMode, ns3::MlmeCommStatusIndicationParams::m_dstExtAddr, m_incCapEvent, m_incCfpEvent, m_incomingBeaconOrder, m_incomingSuperframeOrder, m_lrWpanMacState, m_macCoordExtendedAddress, m_macCoordShortAddress, m_macPanId, m_macRxOnWhenIdle, m_macTxDropTrace, ns3::LrWpanMacBase::m_mcpsDataConfirmCallback, ns3::LrWpanMacBase::m_mlmeAssociateConfirmCallback, ns3::LrWpanMacBase::m_mlmeCommStatusIndicationCallback, ns3::LrWpanMacBase::m_mlmePollConfirmCallback, ns3::McpsDataConfirmParams::m_msduHandle, m_numCsmacaRetry, ns3::MlmeCommStatusIndicationParams::m_panId, m_phy, m_retransmission, m_scanEvent, m_scanOrphanEvent, ns3::MlmeCommStatusIndicationParams::m_srcAddrMode, ns3::MlmeCommStatusIndicationParams::m_srcExtAddr, ns3::McpsDataConfirmParams::m_status, ns3::MlmeCommStatusIndicationParams::m_status, ns3::MlmeAssociateConfirmParams::m_status, ns3::MlmePollConfirmParams::m_status, m_txPkt, m_txQueue, m_unscannedChannels, ns3::MAC_ACK_PENDING, ns3::MAC_CSMA, ns3::MAC_CSMA_DEFERRED, ns3::MAC_IDLE, ns3::MAC_SENDING, NS_ASSERT, NS_LOG_DEBUG, NS_LOG_FUNCTION, ns3::CommandPayloadHeader::ORPHAN_NOTIF, RemoveFirstTxQElement(), and RemovePendTxQElement().

Referenced by AckWaitTimeout(), CheckQueue(), ns3::LrWpanNetDevice::CompleteConfig(), PdDataConfirm(), and PdDataIndication().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ SetMacMaxFrameRetries()

void ns3::LrWpanMac::SetMacMaxFrameRetries ( uint8_t  retries)

Set the macMaxFrameRetries attribute value.

Parameters
retriesthe maximum number of retries

Definition at line 3790 of file lr-wpan-mac.cc.

References m_macMaxFrameRetries.

◆ SetPanId()

void ns3::LrWpanMac::SetPanId ( uint16_t  panId)

Set the PAN id used by this MAC.

Parameters
panIdthe new PAN id.

Definition at line 3756 of file lr-wpan-mac.cc.

References m_macPanId.

◆ SetPhy()

void ns3::LrWpanMac::SetPhy ( Ptr< LrWpanPhy phy)

Set the underlying PHY for the MAC.

Parameters
phythe PHY

Definition at line 1791 of file lr-wpan-mac.cc.

References m_phy.

◆ SetRxOnWhenIdle()

void ns3::LrWpanMac::SetRxOnWhenIdle ( bool  rxOnWhenIdle)

Set if the receiver should be enabled when the MAC is idle.

Parameters
rxOnWhenIdleset to true to enable the receiver during idle periods

Definition at line 337 of file lr-wpan-mac.cc.

References ns3::IEEE_802_15_4_PHY_RX_ON, ns3::IEEE_802_15_4_PHY_TRX_OFF, m_lrWpanMacState, m_macRxOnWhenIdle, m_phy, ns3::MAC_IDLE, and NS_LOG_FUNCTION.

◆ SetShortAddress()

void ns3::LrWpanMac::SetShortAddress ( Mac16Address  address)

Set the short address of this MAC.

Parameters
addressthe new address

Definition at line 356 of file lr-wpan-mac.cc.

References m_shortAddress, and NS_LOG_FUNCTION.

Referenced by PdDataConfirm().

+ Here is the caller graph for this function:

◆ SetTxQMaxSize()

void ns3::LrWpanMac::SetTxQMaxSize ( uint32_t  queueSize)

Set the max size of the transmit queue.

Parameters
queueSizeThe transmit queue size.

Definition at line 3726 of file lr-wpan-mac.cc.

References m_maxTxQueueSize, and queueSize.

◆ StartCAP()

void ns3::LrWpanMac::StartCAP ( SuperframeType  superframeType)
private

Called to begin the Contention Access Period (CAP) in a beacon-enabled mode.

Parameters
superframeTypeThe incoming or outgoing superframe reference

Definition at line 1535 of file lr-wpan-mac.cc.

References ns3::CAP, CheckQueue(), ns3::INCOMING, m_capEvent, m_fnlCapSlot, m_incomingFnlCapSlot, m_incomingSuperframeDuration, m_incSuperframeStatus, m_macBeaconRxTime, m_macBeaconTxTime, m_outSuperframeStatus, m_phy, m_superframeDuration, ns3::Simulator::Now(), NS_LOG_DEBUG, ns3::OUTGOING, ns3::Time::S, ns3::Simulator::Schedule(), ns3::Seconds(), and StartCFP().

Referenced by PdDataConfirm(), and PdDataIndication().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ StartCFP()

void ns3::LrWpanMac::StartCFP ( SuperframeType  superframeType)
private

Called to begin the Contention Free Period (CFP) in a beacon-enabled mode.

Parameters
superframeTypeThe incoming or outgoing superframe reference

Definition at line 1583 of file lr-wpan-mac.cc.

References ns3::CFP, ns3::INCOMING, m_cfpEvent, m_fnlCapSlot, m_incCfpEvent, m_incomingFnlCapSlot, m_incomingSuperframeDuration, m_incSuperframeStatus, m_outSuperframeStatus, m_phy, m_superframeDuration, NS_LOG_DEBUG, ns3::OUTGOING, ns3::Time::S, ns3::Simulator::Schedule(), ns3::Seconds(), and StartInactivePeriod().

Referenced by StartCAP().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ StartInactivePeriod()

void ns3::LrWpanMac::StartInactivePeriod ( SuperframeType  superframeType)
private

Start the Inactive Period in a beacon-enabled mode.

Parameters
superframeTypeThe incoming or outgoing superframe reference

Definition at line 1633 of file lr-wpan-mac.cc.

References ns3::Time::As(), AwaitBeacon(), ns3::INACTIVE, ns3::INCOMING, m_beaconEvent, m_beaconInterval, m_incomingBeaconInterval, m_incomingSuperframeDuration, m_incSuperframeStatus, m_outSuperframeStatus, m_phy, m_superframeDuration, NS_LOG_DEBUG, ns3::Time::S, ns3::Simulator::Schedule(), ns3::Seconds(), and SendOneBeacon().

Referenced by StartCFP().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Member Data Documentation

◆ m_ackWaitTimeout

EventId ns3::LrWpanMac::m_ackWaitTimeout
private

Scheduler event for the ACK timeout of the currently transmitted data packet.

Definition at line 1258 of file lr-wpan-mac.h.

Referenced by PdDataConfirm(), and PdDataIndication().

◆ m_associateParams

MlmeAssociateRequestParams ns3::LrWpanMac::m_associateParams
private

The parameters used during a MLME-ASSOCIATE.request.

These parameters are stored here while PLME-SET operations (set channel page, set channel number) take place.

Definition at line 1225 of file lr-wpan-mac.h.

Referenced by EndAssociateRequest(), MlmeAssociateRequest(), PlmeSetAttributeConfirm(), and SendAssocRequestCommand().

◆ m_assocResCmdWaitTimeout

EventId ns3::LrWpanMac::m_assocResCmdWaitTimeout
private

Scheduler event for the lost of a association response command frame.

Definition at line 1268 of file lr-wpan-mac.h.

Referenced by PdDataIndication().

◆ m_assocRespCmdWaitTime

uint64_t ns3::LrWpanMac::m_assocRespCmdWaitTime

The maximum wait time for an association response command after the reception of data request command ACK during the association process.

Not explicitly listed by the standard but its use is required for a device to react to the lost of the association response (failure of the association: NO_DATA)

Definition at line 406 of file lr-wpan-mac.h.

Referenced by LrWpanMac(), and PdDataIndication().

◆ m_beaconEvent

EventId ns3::LrWpanMac::m_beaconEvent
private

Scheduler event for generation of one beacon.

Definition at line 1283 of file lr-wpan-mac.h.

Referenced by DoDispose(), EndStartRequest(), and StartInactivePeriod().

◆ m_beaconInterval

uint32_t ns3::LrWpanMac::m_beaconInterval

Indication of the Interval used by the coordinator to transmit beacon frames expressed in symbols.

Definition at line 598 of file lr-wpan-mac.h.

Referenced by EndStartRequest(), and StartInactivePeriod().

◆ m_beaconTrackingOn

bool ns3::LrWpanMac::m_beaconTrackingOn

Indication of whether the current device is tracking incoming beacons.

Definition at line 626 of file lr-wpan-mac.h.

Referenced by LrWpanMac(), BeaconSearchTimeout(), MlmeSyncRequest(), and PdDataIndication().

◆ m_capEvent

EventId ns3::LrWpanMac::m_capEvent
private

Scheduler event for the end of the outgoing superframe CAP.

Definition at line 1288 of file lr-wpan-mac.h.

Referenced by EndStartRequest(), MlmeScanRequest(), PdDataConfirm(), PdDataIndication(), and StartCAP().

◆ m_cfpEvent

EventId ns3::LrWpanMac::m_cfpEvent
private

Scheduler event for the end of the outgoing superframe CFP.

Definition at line 1293 of file lr-wpan-mac.h.

Referenced by EndStartRequest(), MlmeScanRequest(), and StartCFP().

◆ m_channelScanIndex

uint16_t ns3::LrWpanMac::m_channelScanIndex
private

The channel list index used to obtain the current scanned channel.

Definition at line 1230 of file lr-wpan-mac.h.

Referenced by LrWpanMac(), EndChannelEnergyScan(), EndChannelScan(), MlmeScanRequest(), PdDataIndication(), and PlmeSetAttributeConfirm().

◆ m_coor

bool ns3::LrWpanMac::m_coor

Indicates if the current device is a coordinator type.

Definition at line 592 of file lr-wpan-mac.h.

Referenced by LrWpanMac(), CheckQueue(), EndStartRequest(), isCoordDest(), McpsDataRequest(), and PdDataIndication().

◆ m_csmaCa

◆ m_deviceCapability

uint8_t ns3::LrWpanMac::m_deviceCapability

Indication of current device capability (FFD or RFD)

Definition at line 621 of file lr-wpan-mac.h.

Referenced by LrWpanMac(), and MlmeStartRequest().

◆ m_energyDetectList

std::vector<uint8_t> ns3::LrWpanMac::m_energyDetectList
private

The list of energy measurements, one for each channel searched during an ED scan.

Definition at line 1202 of file lr-wpan-mac.h.

Referenced by DoDispose(), EndChannelEnergyScan(), and MlmeScanRequest().

◆ m_fnlCapSlot

uint8_t ns3::LrWpanMac::m_fnlCapSlot

Indication of the Slot where the CAP portion of the OUTGOING Superframe ends.

Definition at line 466 of file lr-wpan-mac.h.

Referenced by EndStartRequest(), GetSuperframeField(), StartCAP(), and StartCFP().

◆ m_ifs

uint32_t ns3::LrWpanMac::m_ifs

The value of the necessary InterFrame Space after the transmission of a packet.

Definition at line 582 of file lr-wpan-mac.h.

Referenced by LrWpanMac().

◆ m_ifsEvent

EventId ns3::LrWpanMac::m_ifsEvent
private

Scheduler event for Interframe spacing wait time.

Definition at line 1278 of file lr-wpan-mac.h.

Referenced by CheckQueue(), PdDataConfirm(), and PdDataIndication().

◆ m_incCapEvent

EventId ns3::LrWpanMac::m_incCapEvent
private

Scheduler event for the end of the incoming superframe CAP.

Definition at line 1298 of file lr-wpan-mac.h.

Referenced by EndStartRequest(), MlmeScanRequest(), PdDataConfirm(), PdDataIndication(), PlmeSetAttributeConfirm(), PrepareRetransmission(), and SetLrWpanMacState().

◆ m_incCfpEvent

EventId ns3::LrWpanMac::m_incCfpEvent
private

Scheduler event for the end of the incoming superframe CFP.

Definition at line 1303 of file lr-wpan-mac.h.

Referenced by EndStartRequest(), MlmeScanRequest(), PdDataConfirm(), PlmeSetAttributeConfirm(), PrepareRetransmission(), SetLrWpanMacState(), and StartCFP().

◆ m_incomingBeaconInterval

uint32_t ns3::LrWpanMac::m_incomingBeaconInterval

Indication of the interval a node should receive a superframe expressed in symbols.

Definition at line 610 of file lr-wpan-mac.h.

Referenced by PdDataIndication(), and StartInactivePeriod().

◆ m_incomingBeaconOrder

uint8_t ns3::LrWpanMac::m_incomingBeaconOrder

The beaconOrder value of the INCOMING frame.

Used by all devices that have a parent. Specification of how often the parent coordinator transmits its beacon. 0 - 15 with 15 means the parent is not currently transmitting beacons.

Definition at line 473 of file lr-wpan-mac.h.

Referenced by LrWpanMac(), BeaconSearchTimeout(), MlmeSyncRequest(), PdDataConfirm(), PdDataIndication(), PlmeSetAttributeConfirm(), PrepareRetransmission(), and SetLrWpanMacState().

◆ m_incomingFnlCapSlot

uint8_t ns3::LrWpanMac::m_incomingFnlCapSlot

Indication of the Slot where the CAP portion of the INCOMING Superframe ends.

Definition at line 486 of file lr-wpan-mac.h.

Referenced by PdDataIndication(), StartCAP(), and StartCFP().

◆ m_incomingSuperframeDuration

uint32_t ns3::LrWpanMac::m_incomingSuperframeDuration

Indication of the superframe duration in symbols (e.g.

1 symbol = 4 bits in a 250kbps O-QPSK PHY)

Definition at line 616 of file lr-wpan-mac.h.

Referenced by PdDataIndication(), StartCAP(), StartCFP(), and StartInactivePeriod().

◆ m_incomingSuperframeOrder

uint8_t ns3::LrWpanMac::m_incomingSuperframeOrder

Used by all devices that have a parent.

The length of the active portion of the INCOMING superframe, including the beacon frame. 0 - 15 with 15 meaning the superframe will not be active after the beacon.

Definition at line 481 of file lr-wpan-mac.h.

Referenced by LrWpanMac(), PdDataConfirm(), PdDataIndication(), PlmeSetAttributeConfirm(), PrepareRetransmission(), and SetLrWpanMacState().

◆ m_incSuperframeStatus

TracedValue<SuperframeStatus> ns3::LrWpanMac::m_incSuperframeStatus
private

The current period of the incoming superframe.

Definition at line 1142 of file lr-wpan-mac.h.

Referenced by LrWpanMac(), AwaitBeacon(), CheckQueue(), GetTypeId(), StartCAP(), StartCFP(), and StartInactivePeriod().

◆ m_indTxQueue

std::deque<Ptr<IndTxQueueElement> > ns3::LrWpanMac::m_indTxQueue
private

The indirect transmit queue used by the MAC pending messages (The pending transaction list).

Definition at line 1181 of file lr-wpan-mac.h.

Referenced by LrWpanMac(), DequeueInd(), DoDispose(), EnqueueInd(), PrintPendingTxQueue(), PurgeInd(), and RemovePendTxQElement().

◆ m_lastRxFrameLqi

uint8_t ns3::LrWpanMac::m_lastRxFrameLqi
private

Keep track of the last received frame Link Quality Indicator.

Definition at line 1252 of file lr-wpan-mac.h.

Referenced by LrWpanMac(), PdDataConfirm(), and PdDataIndication().

◆ m_lrWpanMacState

TracedValue<LrWpanMacState> ns3::LrWpanMac::m_lrWpanMacState
private

◆ m_macAssociationPermit

bool ns3::LrWpanMac::m_macAssociationPermit

Indication of whether a coordinator is currently allowing association.

A value of TRUE indicates that the association is permitted. See IEEE 802.15.4-2011, section 6.4.2, Table 52.

Definition at line 563 of file lr-wpan-mac.h.

Referenced by LrWpanMac(), GetSuperframeField(), and PdDataIndication().

◆ m_macAutoRequest

bool ns3::LrWpanMac::m_macAutoRequest

Indication of whether a device automatically sends data request command if its address is listed in the beacon frame.

TRUE = request command automatically is sent. This command also affects the generation of MLME-BEACON-NOTIFY.indication (6.2.4.1) See IEEE 802.15.4-2011, section 6.4.2, Table 52.

Definition at line 572 of file lr-wpan-mac.h.

Referenced by LrWpanMac(), EndChannelScan(), and PdDataIndication().

◆ m_macBeaconOrder

uint8_t ns3::LrWpanMac::m_macBeaconOrder

Used by a PAN coordinator or coordinator.

Defines how often the coordinator transmits its beacon (outgoing superframe). Range 0 - 15 with 15 meaning no beacons are being sent. See IEEE 802.15.4-2011, section 6.4.2, Table 52.

Definition at line 436 of file lr-wpan-mac.h.

Referenced by LrWpanMac(), EndStartRequest(), EnqueueInd(), and GetSuperframeField().

◆ m_macBeaconPayload

Ptr<Packet> ns3::LrWpanMac::m_macBeaconPayload

The contents of the beacon payload.

This value is set directly by the MLME-SET primitive. See IEEE 802.15.4-2011, section 6.4.2, Table 52.

Definition at line 525 of file lr-wpan-mac.h.

Referenced by LrWpanMac(), MlmeGetRequest(), MlmeSetRequest(), and SendOneBeacon().

◆ m_macBeaconPayloadLength

uint32_t ns3::LrWpanMac::m_macBeaconPayloadLength

The length, in octets, of the beacon payload.

See IEEE 802.15.4-2011, section 6.4.2, Table 52.

Definition at line 531 of file lr-wpan-mac.h.

Referenced by LrWpanMac(), MlmeGetRequest(), and MlmeSetRequest().

◆ m_macBeaconRxTime

Time ns3::LrWpanMac::m_macBeaconRxTime

The time that the device received its last bit of the beacon frame.

It does not indicate the start of the Active Period in the Incoming superframe. Not explicitly listed by the standard but its use is implied. Its purpose is somehow similar to m_macBeaconTxTime

Definition at line 391 of file lr-wpan-mac.h.

Referenced by PdDataIndication(), and StartCAP().

◆ m_macBeaconTxTime

Time ns3::LrWpanMac::m_macBeaconTxTime

The time that the device transmitted its last beacon frame.

It also indicates the start of the Active Period in the Outgoing superframe. See IEEE 802.15.4-2011, section 6.4.2, Table 52.

Definition at line 383 of file lr-wpan-mac.h.

Referenced by PdDataConfirm(), and StartCAP().

◆ m_macBsn

SequenceNumber8 ns3::LrWpanMac::m_macBsn

Sequence number added to transmitted beacon frame, 00-ff.

See IEEE 802.15.4-2011, section 6.4.2, Table 52.

Definition at line 518 of file lr-wpan-mac.h.

Referenced by LrWpanMac(), MlmePollRequest(), and SendOneBeacon().

◆ m_macCoordExtendedAddress

Mac64Address ns3::LrWpanMac::m_macCoordExtendedAddress

The extended address of the coordinator through which the device is associated.

See IEEE 802.15.4-2011, section 6.4.2, Table 52.

Definition at line 422 of file lr-wpan-mac.h.

Referenced by LrWpanMac(), EndAssociateRequest(), EndChannelScan(), GetCoordExtAddress(), isCoordDest(), LostAssocRespCommand(), PdDataConfirm(), PdDataIndication(), PlmeSetAttributeConfirm(), PrepareRetransmission(), SendDataRequestCommand(), SetAssociatedCoor(), and SetLrWpanMacState().

◆ m_macCoordShortAddress

Mac16Address ns3::LrWpanMac::m_macCoordShortAddress

The short address of the coordinator through which the device is associated.

0xFFFF indicates this value is unknown. 0xFFFE indicates the coordinator is only using its extended address. See IEEE 802.15.4-2011, section 6.4.2, Table 52.

Definition at line 415 of file lr-wpan-mac.h.

Referenced by LrWpanMac(), EndAssociateRequest(), EndChannelScan(), GetCoordShortAddress(), isCoordDest(), LostAssocRespCommand(), PdDataConfirm(), PdDataIndication(), PlmeSetAttributeConfirm(), PrepareRetransmission(), SendDataRequestCommand(), SetAssociatedCoor(), and SetLrWpanMacState().

◆ m_macDsn

SequenceNumber8 ns3::LrWpanMac::m_macDsn

Sequence number added to transmitted data or MAC command frame, 00-ff.

See IEEE 802.15.4-2006, section 7.4.2, Table 86.

Definition at line 512 of file lr-wpan-mac.h.

Referenced by LrWpanMac(), McpsDataRequest(), MlmeAssociateResponse(), MlmeOrphanResponse(), SendAssocRequestCommand(), SendBeaconRequestCommand(), SendDataRequestCommand(), and SendOrphanNotificationCommand().

◆ m_macExtendedAddress

Mac64Address ns3::LrWpanMac::m_macExtendedAddress
private

The extended 64 address (IEEE EUI-64) used by this MAC.

Definition at line 1170 of file lr-wpan-mac.h.

Referenced by LrWpanMac(), GetExtendedAddress(), MlmeGetRequest(), PdDataIndication(), SendDataRequestCommand(), and SetExtendedAddress().

◆ m_macIfsEndTrace

TracedCallback<Time> ns3::LrWpanMac::m_macIfsEndTrace
private

The trace source is fired at the end of any Interframe Space (IFS).

Definition at line 969 of file lr-wpan-mac.h.

Referenced by GetTypeId(), and IfsWaitTimeout().

◆ m_macIndTxDequeueTrace

TracedCallback<Ptr<const Packet> > ns3::LrWpanMac::m_macIndTxDequeueTrace
private

The trace source fired when packets are dequeued from the L3/l2 indirect transmission queue (Pending transaction list).

See also
class CallBackTraceSource

Definition at line 1013 of file lr-wpan-mac.h.

Referenced by DequeueInd(), GetTypeId(), and RemovePendTxQElement().

◆ m_macIndTxDropTrace

TracedCallback<Ptr<const Packet> > ns3::LrWpanMac::m_macIndTxDropTrace
private

The trace source fired when packets are dropped due to indirect Tx queue overflows or expiration.

See also
class CallBackTraceSource

Definition at line 1045 of file lr-wpan-mac.h.

Referenced by EnqueueInd(), GetTypeId(), and PurgeInd().

◆ m_macIndTxEnqueueTrace

TracedCallback<Ptr<const Packet> > ns3::LrWpanMac::m_macIndTxEnqueueTrace
private

The trace source fired when packets come into the "top" of the device at the L3/L2 transition, when being queued for indirect transmission (pending transaction list).

See also
class CallBackTraceSource

Definition at line 1005 of file lr-wpan-mac.h.

Referenced by EnqueueInd(), and GetTypeId().

◆ m_macLIFSPeriod

uint32_t ns3::LrWpanMac::m_macLIFSPeriod

The minimum time forming a Long InterFrame Spacing (LIFS) period.

See IEEE 802.15.4-2011, section 6.4.2, Table 52.

Definition at line 550 of file lr-wpan-mac.h.

Referenced by LrWpanMac(), GetIfsSize(), and IfsWaitTimeout().

◆ m_macMaxFrameRetries

uint8_t ns3::LrWpanMac::m_macMaxFrameRetries

The maximum number of retries allowed after a transmission failure.

See IEEE 802.15.4-2006, section 7.4.2, Table 86.

Definition at line 537 of file lr-wpan-mac.h.

Referenced by LrWpanMac(), GetMacMaxFrameRetries(), PrepareRetransmission(), and SetMacMaxFrameRetries().

◆ m_macPanId

◆ m_macPanIdScan

uint16_t ns3::LrWpanMac::m_macPanIdScan

Temporally stores the value of the current m_macPanId when a MLME-SCAN.request is performed.

See IEEE 802.15.4-2011, section 5.1.2.1.2.

Definition at line 506 of file lr-wpan-mac.h.

Referenced by EndChannelEnergyScan(), EndChannelScan(), MlmeScanRequest(), and PdDataIndication().

◆ m_macPromiscRxTrace

TracedCallback<Ptr<const Packet> > ns3::LrWpanMac::m_macPromiscRxTrace
private

The trace source fired for packets successfully received by the device immediately before being forwarded up to higher layers (at the L2/L3 transition).

This is a promiscuous trace.

See also
class CallBackTraceSource

Definition at line 1054 of file lr-wpan-mac.h.

Referenced by GetTypeId(), and PdDataIndication().

◆ m_macPromiscuousMode

bool ns3::LrWpanMac::m_macPromiscuousMode

Indicates if MAC sublayer is in receive all mode.

True mean accept all frames from PHY. See IEEE 802.15.4-2006, section 7.4.2, Table 86.

Definition at line 493 of file lr-wpan-mac.h.

Referenced by LrWpanMac(), and PdDataIndication().

◆ m_macResponseWaitTime

uint64_t ns3::LrWpanMac::m_macResponseWaitTime

The maximum time, in multiples of aBaseSuperframeDuration, a device shall wait for a response command frame to be available following a request command frame.

Definition at line 398 of file lr-wpan-mac.h.

Referenced by LrWpanMac(), PdDataIndication(), and PlmeSetAttributeConfirm().

◆ m_macRxDropTrace

TracedCallback<Ptr<const Packet> > ns3::LrWpanMac::m_macRxDropTrace
private

The trace source fired for packets successfully received by the device but dropped before being forwarded up to higher layers (at the L2/L3 transition).

See also
class CallBackTraceSource

Definition at line 1072 of file lr-wpan-mac.h.

Referenced by GetTypeId(), and PdDataIndication().

◆ m_macRxOnWhenIdle

bool ns3::LrWpanMac::m_macRxOnWhenIdle

Indication of whether the MAC sublayer is to enable its receiver during idle periods.

See IEEE 802.15.4-2006, section 7.4.2, Table 86.

Definition at line 544 of file lr-wpan-mac.h.

Referenced by LrWpanMac(), DoInitialize(), GetRxOnWhenIdle(), SetLrWpanMacState(), and SetRxOnWhenIdle().

◆ m_macRxTrace

TracedCallback<Ptr<const Packet> > ns3::LrWpanMac::m_macRxTrace
private

The trace source fired for packets successfully received by the device immediately before being forwarded up to higher layers (at the L2/L3 transition).

This is a non-promiscuous trace.

See also
class CallBackTraceSource

Definition at line 1063 of file lr-wpan-mac.h.

Referenced by GetTypeId(), and PdDataIndication().

◆ m_macSIFSPeriod

uint32_t ns3::LrWpanMac::m_macSIFSPeriod

The minimum time forming a Short InterFrame Spacing (SIFS) period.

See IEEE 802.15.4-2011, section 6.4.2, Table 52.

Definition at line 556 of file lr-wpan-mac.h.

Referenced by LrWpanMac(), GetIfsSize(), and IfsWaitTimeout().

◆ m_macStateLogger

TracedCallback<LrWpanMacState, LrWpanMacState> ns3::LrWpanMac::m_macStateLogger
private

A trace source that fires when the LrWpanMac changes states.

Parameters are the old mac state and the new mac state.

Deprecated:
This TracedCallback is deprecated and will be removed in a future release, Instead, use the MacStateValue TracedValue.

Definition at line 1122 of file lr-wpan-mac.h.

Referenced by ChangeMacState(), and GetTypeId().

◆ m_macSuperframeOrder

uint8_t ns3::LrWpanMac::m_macSuperframeOrder

Used by a PAN coordinator or coordinator.

The length of the active portion of the outgoing superframe, including the beacon frame. 0 - 15 with 15 means the superframe will not be active after the beacon. See IEEE 802.15.4-2011, section 6.4.2, Table 52.

Definition at line 444 of file lr-wpan-mac.h.

Referenced by LrWpanMac(), EndStartRequest(), and GetSuperframeField().

◆ m_macSyncSymbolOffset

uint64_t ns3::LrWpanMac::m_macSyncSymbolOffset

Symbol boundary is same as m_macBeaconTxTime.

See IEEE 802.15.4-2006, section 7.4.2, Table 86.

Definition at line 428 of file lr-wpan-mac.h.

◆ m_macTransactionPersistenceTime

uint16_t ns3::LrWpanMac::m_macTransactionPersistenceTime

The maximum time (in UNIT periods) that a transaction is stored by a coordinator and indicated in its beacon.

This value establish the expiration time of the packets stored in the pending transaction list (indirect transmissions). 1 Unit Period: Beacon-enabled = aBaseSuperframeDuration * 2^BO Non-beacon enabled = aBaseSuperframeDuration See IEEE 802.15.4-2006, section 7.4.2, Table 86.

Definition at line 455 of file lr-wpan-mac.h.

Referenced by LrWpanMac(), and EnqueueInd().

◆ m_macTxDequeueTrace

TracedCallback<Ptr<const Packet> > ns3::LrWpanMac::m_macTxDequeueTrace
private

The trace source fired when packets are dequeued from the L3/l2 transmission queue.

See also
class CallBackTraceSource

Definition at line 997 of file lr-wpan-mac.h.

Referenced by GetTypeId(), and RemoveFirstTxQElement().

◆ m_macTxDropTrace

TracedCallback<Ptr<const Packet> > ns3::LrWpanMac::m_macTxDropTrace
private

The trace source fired when packets are dropped due to missing ACKs or because of transmission failures in L1.

See also
class CallBackTraceSource

Definition at line 1037 of file lr-wpan-mac.h.

Referenced by EnqueueTxQElement(), GetTypeId(), PdDataConfirm(), PrepareRetransmission(), and SetLrWpanMacState().

◆ m_macTxEnqueueTrace

TracedCallback<Ptr<const Packet> > ns3::LrWpanMac::m_macTxEnqueueTrace
private

The trace source fired when packets come into the "top" of the device at the L3/L2 transition, when being queued for transmission.

See also
class CallBackTraceSource

Definition at line 989 of file lr-wpan-mac.h.

Referenced by EnqueueTxQElement(), and GetTypeId().

◆ m_macTxOkTrace

TracedCallback<Ptr<const Packet> > ns3::LrWpanMac::m_macTxOkTrace
private

The trace source fired when packets where successfully transmitted, that is an acknowledgment was received, if requested, or the packet was successfully sent by L1, if no ACK was requested.

See also
class CallBackTraceSource

Definition at line 1029 of file lr-wpan-mac.h.

Referenced by GetTypeId(), PdDataConfirm(), and PdDataIndication().

◆ m_macTxTrace

TracedCallback<Ptr<const Packet> > ns3::LrWpanMac::m_macTxTrace
private

The trace source fired when packets are being sent down to L1.

See also
class CallBackTraceSource

Definition at line 1020 of file lr-wpan-mac.h.

Referenced by GetTypeId(), and PlmeSetTRXStateConfirm().

◆ m_maxEnergyLevel

uint8_t ns3::LrWpanMac::m_maxEnergyLevel

The maximum energy level detected during ED scan on the current channel.

Definition at line 577 of file lr-wpan-mac.h.

Referenced by LrWpanMac(), EndChannelEnergyScan(), PlmeEdConfirm(), and PlmeSetAttributeConfirm().

◆ m_maxIndTxQueueSize

uint32_t ns3::LrWpanMac::m_maxIndTxQueueSize
private

The maximum size of the indirect transmit queue (The pending transaction list).

Definition at line 1191 of file lr-wpan-mac.h.

Referenced by LrWpanMac(), EnqueueInd(), and SetIndTxQMaxSize().

◆ m_maxTxQueueSize

uint32_t ns3::LrWpanMac::m_maxTxQueueSize
private

The maximum size of the transmit queue.

Definition at line 1186 of file lr-wpan-mac.h.

Referenced by LrWpanMac(), EnqueueTxQElement(), and SetTxQMaxSize().

◆ m_numCsmacaRetry

uint8_t ns3::LrWpanMac::m_numCsmacaRetry
private

The number of CSMA/CA retries used for sending the current packet.

Definition at line 1247 of file lr-wpan-mac.h.

Referenced by LrWpanMac(), PrepareRetransmission(), RemoveFirstTxQElement(), and SetLrWpanMacState().

◆ m_numLostBeacons

uint8_t ns3::LrWpanMac::m_numLostBeacons

The number of consecutive loss beacons in a beacon tracking operation.

Definition at line 631 of file lr-wpan-mac.h.

Referenced by LrWpanMac(), BeaconSearchTimeout(), MlmeSyncRequest(), and PdDataIndication().

◆ m_outSuperframeStatus

TracedValue<SuperframeStatus> ns3::LrWpanMac::m_outSuperframeStatus
private

The current period of the outgoing superframe.

Definition at line 1147 of file lr-wpan-mac.h.

Referenced by LrWpanMac(), CheckQueue(), GetTypeId(), SendOneBeacon(), StartCAP(), StartCFP(), and StartInactivePeriod().

◆ m_panCoor

bool ns3::LrWpanMac::m_panCoor

Indication of whether the current device is the PAN coordinator.

Definition at line 587 of file lr-wpan-mac.h.

Referenced by LrWpanMac(), EndStartRequest(), and GetSuperframeField().

◆ m_panDescriptorList

std::vector<PanDescriptor> ns3::LrWpanMac::m_panDescriptorList
private

The list of PAN descriptors accumulated during channel scans, used to select a PAN to associate.

Definition at line 1197 of file lr-wpan-mac.h.

Referenced by DoDispose(), EndChannelScan(), MlmeScanRequest(), and PdDataIndication().

◆ m_pendPrimitive

PendingPrimitiveStatus ns3::LrWpanMac::m_pendPrimitive
private

Indicates the pending primitive when PLME.SET operation (page or channel switch) is called from within another MLME primitive (e.g.

Association, Scan, Sync, Start).

Definition at line 1236 of file lr-wpan-mac.h.

Referenced by LrWpanMac(), EndAssociateRequest(), EndChannelEnergyScan(), EndChannelScan(), EndStartRequest(), MlmeAssociateRequest(), MlmeScanRequest(), MlmeStartRequest(), PdDataIndication(), and PlmeSetAttributeConfirm().

◆ m_phy

◆ m_promiscSnifferTrace

TracedCallback<Ptr<const Packet> > ns3::LrWpanMac::m_promiscSnifferTrace
private

A trace source that emulates a promiscuous mode protocol sniffer connected to the device.

This trace source fire on packets destined for any host just like your average everyday packet sniffer.

On the transmit size, this trace hook will fire after a packet is dequeued from the device queue for transmission. In Linux, for example, this would correspond to the point just before a device hard_start_xmit where dev_queue_xmit_nit is called to dispatch the packet to the PF_PACKET ETH_P_ALL handlers.

On the receive side, this trace hook will fire when a packet is received, just before the receive callback is executed. In Linux, for example, this would correspond to the point at which the packet is dispatched to packet sniffers in netif_receive_skb.

See also
class CallBackTraceSource

Definition at line 1112 of file lr-wpan-mac.h.

Referenced by GetTypeId(), PdDataIndication(), and PlmeSetTRXStateConfirm().

◆ m_respWaitTimeout

EventId ns3::LrWpanMac::m_respWaitTimeout
private

Scheduler event for a response to a request command frame.

Definition at line 1263 of file lr-wpan-mac.h.

Referenced by PdDataIndication().

◆ m_retransmission

uint8_t ns3::LrWpanMac::m_retransmission
private

The number of already used retransmission for the currently transmitted packet.

Definition at line 1242 of file lr-wpan-mac.h.

Referenced by LrWpanMac(), PrepareRetransmission(), RemoveFirstTxQElement(), and SetLrWpanMacState().

◆ m_rxBeaconSymbols

uint64_t ns3::LrWpanMac::m_rxBeaconSymbols

The total size of the received beacon in symbols.

Its value is used to calculate the end CAP time of the incoming superframe.

Definition at line 461 of file lr-wpan-mac.h.

Referenced by PdDataIndication().

◆ m_rxPkt

Ptr<Packet> ns3::LrWpanMac::m_rxPkt
private

The command request packet received.

Briefly stored to proceed with operations that take place after ACK messages.

Definition at line 1158 of file lr-wpan-mac.h.

Referenced by LrWpanMac(), PdDataConfirm(), and PdDataIndication().

◆ m_scanEnergyEvent

EventId ns3::LrWpanMac::m_scanEnergyEvent
private

Scheduler event for the end of a ED channel scan.

Definition at line 1323 of file lr-wpan-mac.h.

Referenced by DoDispose(), EndStartRequest(), MlmeScanRequest(), PdDataIndication(), PlmeEdConfirm(), PlmeSetAttributeConfirm(), and PlmeSetTRXStateConfirm().

◆ m_scanEvent

EventId ns3::LrWpanMac::m_scanEvent
private

Scheduler event for the end of an ACTIVE or PASSIVE channel scan.

Definition at line 1313 of file lr-wpan-mac.h.

Referenced by DoDispose(), EndStartRequest(), MlmeScanRequest(), PdDataIndication(), PlmeSetAttributeConfirm(), and SetLrWpanMacState().

◆ m_scanOrphanEvent

EventId ns3::LrWpanMac::m_scanOrphanEvent
private

Scheduler event for the end of an ORPHAN channel scan.

Definition at line 1318 of file lr-wpan-mac.h.

Referenced by DoDispose(), EndStartRequest(), MlmeScanRequest(), PdDataIndication(), PlmeSetAttributeConfirm(), and SetLrWpanMacState().

◆ m_scanParams

MlmeScanRequestParams ns3::LrWpanMac::m_scanParams
private

The parameters used during a MLME-SCAN.request.

These parameters are stored here while PLME-SET (set channel page, set channel number) and other operations take place.

Definition at line 1213 of file lr-wpan-mac.h.

Referenced by EndChannelEnergyScan(), EndChannelScan(), MlmeScanRequest(), PdDataIndication(), and PlmeSetAttributeConfirm().

◆ m_sentPktTrace

TracedCallback<Ptr<const Packet>, uint8_t, uint8_t> ns3::LrWpanMac::m_sentPktTrace
private

The trace source fired when packets are considered as successfully sent or the transmission has been given up.

Only non-broadcast packets are traced.

The data should represent: packet, number of retries, total number of csma backoffs

See also
class CallBackTraceSource

Definition at line 981 of file lr-wpan-mac.h.

Referenced by GetTypeId(), and RemoveFirstTxQElement().

◆ m_setMacState

EventId ns3::LrWpanMac::m_setMacState
private

Scheduler event for a deferred MAC state change.

Definition at line 1273 of file lr-wpan-mac.h.

Referenced by CheckQueue(), PdDataConfirm(), and PdDataIndication().

◆ m_shortAddress

Mac16Address ns3::LrWpanMac::m_shortAddress
private

The short address (16 bit address) used by this MAC.

If supported, the short address must be assigned to the device by the coordinator during the association process.

Definition at line 1165 of file lr-wpan-mac.h.

Referenced by LrWpanMac(), EndChannelScan(), GetShortAddress(), MlmeGetRequest(), MlmeSetRequest(), PdDataIndication(), and SetShortAddress().

◆ m_snifferTrace

TracedCallback<Ptr<const Packet> > ns3::LrWpanMac::m_snifferTrace
private

A trace source that emulates a non-promiscuous protocol sniffer connected to the device.

Unlike your average everyday sniffer, this trace source will not fire on PACKET_OTHERHOST events.

On the transmit size, this trace hook will fire after a packet is dequeued from the device queue for transmission. In Linux, for example, this would correspond to the point just before a device hard_start_xmit where dev_queue_xmit_nit is called to dispatch the packet to the PF_PACKET ETH_P_ALL handlers.

On the receive side, this trace hook will fire when a packet is received, just before the receive callback is executed. In Linux, for example, this would correspond to the point at which the packet is dispatched to packet sniffers in netif_receive_skb.

See also
class CallBackTraceSource

Definition at line 1092 of file lr-wpan-mac.h.

Referenced by GetTypeId(), and PlmeSetTRXStateConfirm().

◆ m_startParams

MlmeStartRequestParams ns3::LrWpanMac::m_startParams
private

The parameters used during a MLME-START.request.

These parameters are stored here while PLME-SET operations (set channel page, set channel number) take place.

Definition at line 1219 of file lr-wpan-mac.h.

Referenced by EndStartRequest(), MlmeStartRequest(), and PlmeSetAttributeConfirm().

◆ m_superframeDuration

uint32_t ns3::LrWpanMac::m_superframeDuration

Indication of the superframe duration in symbols.

(e.g. 1 symbol = 4 bits in a 250kbps O-QPSK PHY)

Definition at line 604 of file lr-wpan-mac.h.

Referenced by EndStartRequest(), SendOneBeacon(), StartCAP(), StartCFP(), and StartInactivePeriod().

◆ m_trackingEvent

EventId ns3::LrWpanMac::m_trackingEvent
private

Scheduler event to track the incoming beacons.

Definition at line 1308 of file lr-wpan-mac.h.

Referenced by BeaconSearchTimeout(), EndStartRequest(), MlmeScanRequest(), MlmeSyncRequest(), and PdDataIndication().

◆ m_txPkt

◆ m_txQueue

◆ m_unscannedChannels

std::vector<uint8_t> ns3::LrWpanMac::m_unscannedChannels
private

The list of unscanned channels during a scan operation.

Definition at line 1207 of file lr-wpan-mac.h.

Referenced by DoDispose(), EndChannelScan(), MlmeScanRequest(), and SetLrWpanMacState().


The documentation for this class was generated from the following files: