|
INET Framework for OMNeT++/OMNEST
|
The default implementation of IContention.
More...
#include <Contention.h>
The default implementation of IContention.
◆ EventType
| Enumerator |
|---|
| START | |
| MEDIUM_STATE_CHANGED | |
| CORRUPTED_FRAME_RECEIVED | |
| CHANNEL_ACCESS_GRANTED | |
◆ State
| Enumerator |
|---|
| IDLE | |
| DEFER | |
| IFS_AND_BACKOFF | |
◆ Contention()
| inet::ieee80211::Contention::Contention |
( |
| ) |
|
|
inline |
◆ ~Contention()
| inet::ieee80211::Contention::~Contention |
( |
| ) |
|
◆ cancelTransmissionRequest()
| void inet::ieee80211::Contention::cancelTransmissionRequest |
( |
| ) |
|
|
protectedvirtual |
◆ computeRemainingBackoffSlots()
| void inet::ieee80211::Contention::computeRemainingBackoffSlots |
( |
| ) |
|
|
protectedvirtual |
◆ corruptedFrameReceived()
| void inet::ieee80211::Contention::corruptedFrameReceived |
( |
| ) |
|
|
overridevirtual |
◆ getEventName()
| const char * inet::ieee80211::Contention::getEventName |
( |
EventType |
event | ) |
|
|
protected |
254 #define CASE(x) case x: return #x;
260 default: ASSERT(
false);
return "";
Referenced by handleWithFSM().
◆ handleMessage()
| void inet::ieee80211::Contention::handleMessage |
( |
cMessage * |
msg | ) |
|
|
overrideprotectedvirtual |
171 EV_INFO <<
"Channel granted: startTime = " <<
startTime << std::endl;
177 throw cRuntimeError(
"Unknown msg");
◆ handleWithFSM()
| void inet::ieee80211::Contention::handleWithFSM |
( |
EventType |
event | ) |
|
|
protectedvirtual |
◆ initialize()
| void inet::ieee80211::Contention::initialize |
( |
int |
stage | ) |
|
|
overrideprotectedvirtual |
41 fsm.setName(
"Backoff procedure");
59 if (!par(
"initialChannelBusy") && simTime() == 0)
◆ isContentionInProgress()
| virtual bool inet::ieee80211::Contention::isContentionInProgress |
( |
| ) |
|
|
inlineoverridevirtual |
◆ mediumStateChanged()
| void inet::ieee80211::Contention::mediumStateChanged |
( |
bool |
mediumFree | ) |
|
|
overridevirtual |
◆ numInitStages()
| virtual int inet::ieee80211::Contention::numInitStages |
( |
| ) |
const |
|
inlineoverrideprotectedvirtual |
◆ revokeBackoffOptimization()
| void inet::ieee80211::Contention::revokeBackoffOptimization |
( |
| ) |
|
|
protectedvirtual |
◆ scheduleTransmissionRequest()
| void inet::ieee80211::Contention::scheduleTransmissionRequest |
( |
| ) |
|
|
protectedvirtual |
◆ scheduleTransmissionRequestFor()
| void inet::ieee80211::Contention::scheduleTransmissionRequestFor |
( |
simtime_t |
txStartTime | ) |
|
|
protectedvirtual |
◆ startContention()
| void inet::ieee80211::Contention::startContention |
( |
int |
cw, |
|
|
simtime_t |
ifs, |
|
|
simtime_t |
eifs, |
|
|
simtime_t |
slotTime, |
|
|
ICallback * |
callback |
|
) |
| |
|
overridevirtual |
◆ switchToEifs()
| void inet::ieee80211::Contention::switchToEifs |
( |
| ) |
|
|
protectedvirtual |
227 EV_DEBUG <<
"Switching to EIFS from DISF.\n";
Referenced by handleWithFSM().
◆ updateDisplayString()
| void inet::ieee80211::Contention::updateDisplayString |
( |
simtime_t |
expectedChannelAccess | ) |
const |
|
protectedvirtual |
◆ backoffOptimization
| bool inet::ieee80211::Contention::backoffOptimization = true |
|
protected |
◆ backoffOptimizationDelta
| simtime_t inet::ieee80211::Contention::backoffOptimizationDelta = SIMTIME_ZERO |
|
protected |
◆ backoffSlots
| int inet::ieee80211::Contention::backoffSlots = 0 |
|
protected |
◆ callback
| ICallback* inet::ieee80211::Contention::callback = nullptr |
|
protected |
◆ channelGrantedEvent
| cMessage* inet::ieee80211::Contention::channelGrantedEvent = nullptr |
|
protected |
◆ eifs
| simtime_t inet::ieee80211::Contention::eifs = SIMTIME_ZERO |
|
protected |
◆ endEifsTime
| simtime_t inet::ieee80211::Contention::endEifsTime = SIMTIME_ZERO |
|
protected |
◆ fsm
| cFSM inet::ieee80211::Contention::fsm |
|
protected |
◆ ifs
| simtime_t inet::ieee80211::Contention::ifs = SIMTIME_ZERO |
|
protected |
◆ lastChannelBusyTime
| simtime_t inet::ieee80211::Contention::lastChannelBusyTime = SIMTIME_ZERO |
|
protected |
◆ lastIdleStartTime
| simtime_t inet::ieee80211::Contention::lastIdleStartTime = SIMTIME_ZERO |
|
protected |
◆ mac
◆ mediumFree
| bool inet::ieee80211::Contention::mediumFree = true |
|
protected |
◆ scheduledTransmissionTime
| simtime_t inet::ieee80211::Contention::scheduledTransmissionTime = SIMTIME_ZERO |
|
protected |
◆ slotTime
| simtime_t inet::ieee80211::Contention::slotTime = SIMTIME_ZERO |
|
protected |
◆ startTime
| simtime_t inet::ieee80211::Contention::startTime = SIMTIME_ZERO |
|
protected |
◆ startTxEvent
| cMessage* inet::ieee80211::Contention::startTxEvent = nullptr |
|
protected |
◆ stateChangedSignal
| simsignal_t inet::ieee80211::Contention::stateChangedSignal = registerSignal("stateChanged") |
|
static |
The documentation for this class was generated from the following files:
virtual void sendDownPendingRadioConfigMsg()
Definition: Ieee80211Mac.cc:366
#define FSMA_State(s)
Definition: FSMA.h:107
INET_API InitStage INITSTAGE_LAST
Operations that no other initializations can depend on, e.g.
@ IDLE
Definition: Contention.h:24
#define FSMA_Fail_On_Unhandled_Event()
Definition: FSMA.h:146
#define FSMA_Event_Transition(transition, condition, target, action)
Definition: FSMA.h:117
simtime_t ifs
Definition: Contention.h:35
cMessage * channelGrantedEvent
Definition: Contention.h:32
virtual void channelAccessGranted()=0
bool mediumFree
Definition: Contention.h:46
@ MEDIUM_STATE_CHANGED
Definition: Contention.h:25
@ START
Definition: Contention.h:25
double min(const double a, const double b)
Returns the minimum of a and b.
Definition: SctpAssociation.h:261
simtime_t eifs
Definition: Contention.h:36
NetworkInterface * getContainingNicModule(const cModule *from)
Find the nic module (inside the networkNode) containing the given module.
Definition: NetworkInterface.cc:691
#define FSMA_Enter(action)
Definition: FSMA.h:109
cMessage * startTxEvent
Definition: Contention.h:31
static simsignal_t backoffStartedSignal
Definition: IContention.h:33
static simsignal_t channelAccessGrantedSignal
Definition: IContention.h:35
simtime_t startTime
Definition: Contention.h:48
#define FSMA_Switch(fsm)
Definition: FSMA.h:91
simtime_t scheduledTransmissionTime
Definition: Contention.h:42
simtime_t lastIdleStartTime
Definition: Contention.h:44
virtual void switchToEifs()
Definition: Contention.cc:225
simtime_t slotTime
Definition: Contention.h:37
simtime_t endEifsTime
Definition: Contention.h:40
simtime_t backoffOptimizationDelta
Definition: Contention.h:45
const char * getEventName(EventType event)
Definition: Contention.cc:252
virtual void expectedChannelAccess(simtime_t time)=0
bool backoffOptimization
Definition: Contention.h:47
virtual void cancelTransmissionRequest()
Definition: Contention.cc:195
INET_API InitStage INITSTAGE_LOCAL
Initialization of local state that don't use or affect other modules includes:
@ DEFER
Definition: Contention.h:24
virtual void computeRemainingBackoffSlots()
Definition: Contention.cc:233
@ IFS_AND_BACKOFF
Definition: Contention.h:24
#define NUM_INIT_STAGES
Definition: InitStageRegistry.h:73
cFSM fsm
Definition: Contention.h:39
simtime_t lastChannelBusyTime
Definition: Contention.h:43
static simsignal_t backoffStoppedSignal
Definition: IContention.h:34
static simsignal_t backoffPeriodGeneratedSignal
Definition: IContention.h:32
#define Enter_Method(...)
Definition: SelfDoc.h:71
virtual void handleWithFSM(EventType event)
Definition: Contention.cc:87
virtual void scheduleTransmissionRequestFor(simtime_t txStartTime)
Definition: Contention.cc:186
virtual void updateDisplayString(simtime_t expectedChannelAccess) const
Definition: Contention.cc:265
Ieee80211Mac * mac
Definition: Contention.h:29
@ CHANNEL_ACCESS_GRANTED
Definition: Contention.h:25
static simsignal_t stateChangedSignal
Definition: Contention.h:26
ICallback * callback
Definition: Contention.h:30
virtual void scheduleTransmissionRequest()
Definition: Contention.cc:204
@ CORRUPTED_FRAME_RECEIVED
Definition: Contention.h:25
int backoffSlots
Definition: Contention.h:41
#define FSMA_Ignore_Event(condition)
Definition: FSMA.h:139