INET Framework for OMNeT++/OMNEST
|
#include <WirelessMacBase.h>
Protected Member Functions | |
virtual void | initialize (int) |
Initialization of the module and some variables. | |
virtual void | handleMessage (cMessage *msg) |
Called every time a message arrives. | |
Handle Messages | |
Functions to redefine by the programmer | |
virtual void | handleSelfMsg (cMessage *msg)=0 |
Handle self messages such as timers. | |
virtual void | handleUpperMsg (cPacket *msg)=0 |
Handle packets from upper layer. | |
virtual void | handleCommand (cMessage *msg)=0 |
Handle commands from upper layer. | |
virtual void | handleLowerMsg (cPacket *msg)=0 |
Handle packets from lower layer. | |
virtual bool | isUpperMsg (cMessage *msg) |
virtual bool | isLowerMsg (cMessage *msg) |
Convenience Functions | |
virtual void | sendDown (cMessage *msg) |
Sends a message to the lower layer. | |
virtual void | sendUp (cMessage *msg) |
Sends a message to the upper layer. | |
Protected Attributes | |
NotificationBoard * | nb |
Cached pointer to the NotificationBoard module. | |
int | uppergateIn |
gate id | |
int | uppergateOut |
int | lowergateIn |
int | lowergateOut |
Base class for wireless MAC protocols that use MF's physical layer.
virtual void WirelessMacBase::handleCommand | ( | cMessage * | msg | ) | [protected, pure virtual] |
Handle commands from upper layer.
Implemented in Ieee80211Mac, CSMAMacLayer, and Mac80211.
Referenced by handleMessage().
virtual void WirelessMacBase::handleLowerMsg | ( | cPacket * | msg | ) | [protected, pure virtual] |
Handle packets from lower layer.
Implemented in Ieee80211Mac, CSMAMacLayer, and Mac80211.
Referenced by handleMessage().
void WirelessMacBase::handleMessage | ( | cMessage * | msg | ) | [protected, virtual] |
Called every time a message arrives.
{ if (msg->isSelfMessage()) handleSelfMsg(msg); else if (!msg->isPacket()) handleCommand(msg); else if (msg->getArrivalGateId()==uppergateIn) handleUpperMsg(PK(msg)); else handleLowerMsg(PK(msg)); }
virtual void WirelessMacBase::handleSelfMsg | ( | cMessage * | msg | ) | [protected, pure virtual] |
Handle self messages such as timers.
Implemented in Ieee80211Mac, CSMAMacLayer, and Mac80211.
Referenced by handleMessage().
virtual void WirelessMacBase::handleUpperMsg | ( | cPacket * | msg | ) | [protected, pure virtual] |
Handle packets from upper layer.
Implemented in Ieee80211Mac, CSMAMacLayer, and Mac80211.
Referenced by handleMessage().
void WirelessMacBase::initialize | ( | int | stage | ) | [protected, virtual] |
Initialization of the module and some variables.
Reimplemented in Ieee80211Mac, CSMAMacLayer, and Mac80211.
{ if (stage==0) { uppergateIn = findGate("uppergateIn"); uppergateOut = findGate("uppergateOut"); lowergateIn = findGate("lowergateIn"); lowergateOut = findGate("lowergateOut"); // get a pointer to the NotificationBoard module nb = NotificationBoardAccess().get(); } }
bool WirelessMacBase::isLowerMsg | ( | cMessage * | msg | ) | [protected, virtual] |
Referenced by Ieee80211Mac::handleWithFSM().
{ return msg->getArrivalGateId()==lowergateIn; }
bool WirelessMacBase::isUpperMsg | ( | cMessage * | msg | ) | [protected, virtual] |
Referenced by Ieee80211Mac::handleWithFSM().
{ return msg->getArrivalGateId()==uppergateIn; }
void WirelessMacBase::sendDown | ( | cMessage * | msg | ) | [protected, virtual] |
Sends a message to the lower layer.
Referenced by Ieee80211Mac::handleCommand(), CSMAMacLayer::handleUpperMsg(), Mac80211::sendACKframe(), Ieee80211Mac::sendACKFrame(), Mac80211::sendBROADCASTframe(), Ieee80211Mac::sendBroadcastFrame(), Mac80211::sendCTSframe(), Ieee80211Mac::sendCTSFrame(), Mac80211::sendDATAframe(), Ieee80211Mac::sendDataFrame(), Ieee80211Mac::sendDownPendingRadioConfigMsg(), Mac80211::sendRTSframe(), and Ieee80211Mac::sendRTSFrame().
{ EV << "sending down " << msg << "\n"; send(msg, lowergateOut); }
void WirelessMacBase::sendUp | ( | cMessage * | msg | ) | [protected, virtual] |
Sends a message to the upper layer.
Referenced by Mac80211::decapsulateAndSendUp(), CSMAMacLayer::handleLowerMsg(), and Ieee80211Mac::handleWithFSM().
{ EV << "sending up " << msg << "\n"; send(msg, uppergateOut); }
int WirelessMacBase::lowergateIn [protected] |
Referenced by initialize(), and isLowerMsg().
int WirelessMacBase::lowergateOut [protected] |
Referenced by initialize(), and sendDown().
NotificationBoard* WirelessMacBase::nb [protected] |
Cached pointer to the NotificationBoard module.
Referenced by initialize(), Mac80211::initialize(), Ieee80211Mac::initialize(), and CSMAMacLayer::initialize().
int WirelessMacBase::uppergateIn [protected] |
gate id
Referenced by handleMessage(), initialize(), and isUpperMsg().
int WirelessMacBase::uppergateOut [protected] |
Referenced by initialize(), and sendUp().