23 #ifndef LR_WPAN_CSMACA_H 24 #define LR_WPAN_CSMACA_H 26 #include <ns3/object.h> 27 #include <ns3/event-id.h> 28 #include <ns3/lr-wpan-mac.h> 241 uint8_t
GetNB (
void);
static TypeId GetTypeId(void)
Get the type ID.
Simulation virtual time values and global simulation resolution.
Smart pointer class similar to boost::intrusive_ptr.
LrWpanCsmaCa & operator=(LrWpanCsmaCa const &)
Copy constructor - defined and not implemented.
void SetMacMinBE(uint8_t macMinBE)
Set the minimum backoff exponent value.
void PlmeCcaConfirm(LrWpanPhyEnumeration status)
IEEE 802.15.4-2006 section 6.2.2.2 PLME-CCA.confirm status.
uint8_t m_CW
Contention window length (used in slotted ver only).
void SetMac(Ptr< LrWpanMac > mac)
Set the MAC to which this CSMA/CA implementation is attached to.
uint8_t GetMacMinBE(void) const
Get the minimum backoff exponent value.
uint8_t GetMacMaxBE(void) const
Get the maximum backoff exponent value.
uint8_t m_NB
Number of backoffs for the current transmission.
uint8_t GetNB(void)
Get the number of CSMA retries.
void SetUnitBackoffPeriod(uint64_t unitBackoffPeriod)
Set the number of symbols forming the basic time period used by the CSMA-CA algorithm.
Callback< void, LrWpanMacState > LrWpanMacStateCallback
This method informs the MAC whether the channel is idle or busy.
uint8_t m_macMinBE
Minimum backoff exponent.
LrWpanMacStateCallback m_lrWpanMacStateCallback
The callback to inform the configured MAC of the CSMA/CA result.
uint8_t GetMacMaxCSMABackoffs(void) const
Get the maximum number of backoffs.
void SetMacMaxBE(uint8_t macMaxBE)
Set the maximum backoff exponent value.
void SetUnSlottedCsmaCa(void)
Configure for the use of the unslotted CSMA/CA version.
void RequestCCA(void)
Request the Phy to perform CCA (Step 3)
virtual void DoDispose(void)
Destructor implementation.
void RandomBackoffDelay(void)
In step 2 of the CSMA-CA, perform a random backoff in the range of 0 to 2^BE -1.
void Start(void)
Start CSMA-CA algorithm (step 1), initialize NB, BE for both slotted and unslotted CSMA-CA...
void Cancel(void)
Cancel CSMA-CA algorithm.
uint64_t m_aUnitBackoffPeriod
Number of symbols per CSMA/CA time unit, default 20 symbols.
LrWpanCsmaCa(void)
Default constructor.
bool m_BLE
Battery Life Extension.
Ptr< LrWpanMac > m_mac
The MAC instance for which this CSMAĆ/CA implementation is configured.
uint64_t GetUnitBackoffPeriod(void) const
Get the number of symbols forming the basic time period used by the CSMA-CA algorithm.
bool m_ccaRequestRunning
Flag indicating that the PHY is currently running a CCA.
void SetLrWpanMacStateCallback(LrWpanMacStateCallback macState)
Set the callback function to the MAC.
Every class exported by the ns3 library is enclosed in the ns3 namespace.
Ptr< UniformRandomVariable > m_random
Uniform random variable stream.
Time GetTimeToNextSlot(void) const
Get the amount of time from now to the beginning of the next slot.
bool IsUnSlottedCsmaCa(void) const
Check if the unslotted CSMA/CA version is being used.
bool m_isSlotted
Beacon-enabled slotted or nonbeacon-enabled unslotted CSMA-CA.
uint8_t m_macMaxBE
Maximum backoff exponent.
EventId m_randomBackoffEvent
Scheduler event for the start of the next random backoff/slot.
void SetSlottedCsmaCa(void)
Configure for the use of the slotted CSMA/CA version.
An identifier for simulation events.
void CanProceed(void)
In the slotted CSMA-CA, after random backoff, determine if the remaining CSMA-CA operation can procee...
virtual ~LrWpanCsmaCa(void)
uint8_t m_BE
Backoff exponent.
EventId m_canProceedEvent
Scheduler event for checking if we can complete the transmission before the end of the CAP...
This class is a helper for the LrWpanMac to manage the Csma/CA state machine according to IEEE 802...
void SetMacMaxCSMABackoffs(uint8_t macMaxCSMABackoffs)
Set the maximum number of backoffs.
bool IsSlottedCsmaCa(void) const
Check if the slotted CSMA/CA version is being used.
LrWpanPhyEnumeration
IEEE802.15.4-2006 PHY Emumerations Table 18 in section 6.2.3.
A base class which provides memory management and object aggregation.
EventId m_requestCcaEvent
Scheduler event when to start the CCA after a random backoff.
Ptr< LrWpanMac > GetMac(void) const
Get the MAC to which this CSMA/CA implementation is attached to.
a unique identifier for an interface.
int64_t AssignStreams(int64_t stream)
Assign a fixed random variable stream number to the random variables used by this model...
uint8_t m_macMaxCSMABackoffs
Maximum number of backoffs.