INET Framework for OMNeT++/OMNEST
inet::ieee80211::Ieee80211MgmtStaSimplified Class Reference

Used in 802.11 infrastructure mode: handles management frames for a station (STA). More...

#include <Ieee80211MgmtStaSimplified.h>

Inheritance diagram for inet::ieee80211::Ieee80211MgmtStaSimplified:
inet::ieee80211::Ieee80211MgmtBase inet::OperationalBase inet::OperationalMixin< cSimpleModule > inet::ILifecycle

Protected Member Functions

virtual int numInitStages () const override
 
virtual void initialize (int) override
 
virtual void handleTimer (cMessage *msg) override
 Implements abstract Ieee80211MgmtBase method. More...
 
virtual void handleCommand (int msgkind, cObject *ctrl) override
 Implements abstract Ieee80211MgmtBase method – throws an error (no commands supported) More...
 
Processing of different frame types
virtual void handleAuthenticationFrame (Packet *packet, const Ptr< const Ieee80211MgmtHeader > &header) override
 
virtual void handleDeauthenticationFrame (Packet *packet, const Ptr< const Ieee80211MgmtHeader > &header) override
 
virtual void handleAssociationRequestFrame (Packet *packet, const Ptr< const Ieee80211MgmtHeader > &header) override
 
virtual void handleAssociationResponseFrame (Packet *packet, const Ptr< const Ieee80211MgmtHeader > &header) override
 
virtual void handleReassociationRequestFrame (Packet *packet, const Ptr< const Ieee80211MgmtHeader > &header) override
 
virtual void handleReassociationResponseFrame (Packet *packet, const Ptr< const Ieee80211MgmtHeader > &header) override
 
virtual void handleDisassociationFrame (Packet *packet, const Ptr< const Ieee80211MgmtHeader > &header) override
 
virtual void handleBeaconFrame (Packet *packet, const Ptr< const Ieee80211MgmtHeader > &header) override
 
virtual void handleProbeRequestFrame (Packet *packet, const Ptr< const Ieee80211MgmtHeader > &header) override
 
virtual void handleProbeResponseFrame (Packet *packet, const Ptr< const Ieee80211MgmtHeader > &header) override
 
- Protected Member Functions inherited from inet::ieee80211::Ieee80211MgmtBase
virtual void handleMessageWhenUp (cMessage *msg) override
 Dispatches incoming messages to handleTimer(), handleUpperMessage() or processFrame(). More...
 
virtual void sendDown (Packet *frame)
 Utility method for implementing handleUpperMessage(): send message to MAC. More...
 
virtual void dropManagementFrame (Packet *frame)
 Utility method to dispose of an unhandled frame. More...
 
virtual void processFrame (Packet *packet, const Ptr< const Ieee80211DataOrMgmtHeader > &header)
 Dispatch to frame processing methods according to frame type. More...
 
virtual bool isInitializeStage (int stage) const override
 lifecycle support More...
 
virtual bool isModuleStartStage (int stage) const override
 
virtual bool isModuleStopStage (int stage) const override
 
virtual void handleStartOperation (LifecycleOperation *operation) override
 
virtual void handleStopOperation (LifecycleOperation *operation) override
 
virtual void handleCrashOperation (LifecycleOperation *operation) override
 
virtual void start ()
 
virtual void stop ()
 
- Protected Member Functions inherited from inet::OperationalMixin< cSimpleModule >
virtual int numInitStages () const override
 
virtual void refreshDisplay () const override
 
virtual void handleMessage (cMessage *msg) override
 
virtual void handleMessageWhenDown (cMessage *msg)
 
virtual bool handleOperationStage (LifecycleOperation *operation, IDoneCallback *doneCallback) override
 Perform one stage of a lifecycle operation. More...
 
virtual State getInitialOperationalState () const
 Returns initial operational state: OPERATING or NOT_OPERATING. More...
 
virtual void handleActiveOperationTimeout (cMessage *message)
 
virtual bool isUp () const
 utility functions More...
 
virtual bool isDown () const
 
virtual void setOperationalState (State newState)
 
virtual void scheduleOperationTimeout (simtime_t timeout)
 
virtual void setupActiveOperation (LifecycleOperation *operation, IDoneCallback *doneCallback, State)
 
virtual void delayActiveOperationFinish (simtime_t timeout)
 
virtual void startActiveOperationExtraTime (simtime_t delay=SIMTIME_ZERO)
 
virtual void startActiveOperationExtraTimeOrFinish (simtime_t extraTime)
 
virtual void finishActiveOperation ()
 

Additional Inherited Members

- Public Member Functions inherited from inet::OperationalMixin< cSimpleModule >
virtual ~OperationalMixin ()
 }@ More...
 
- Public Member Functions inherited from inet::ILifecycle
virtual ~ILifecycle ()
 
- Protected Types inherited from inet::OperationalMixin< cSimpleModule >
enum  State
 
- Protected Attributes inherited from inet::ieee80211::Ieee80211MgmtBase
ModuleRefByPar< Ieee80211Mibmib
 
ModuleRefByPar< IInterfaceTableinterfaceTable
 
NetworkInterfacemyIface = nullptr
 
long numMgmtFramesReceived
 
long numMgmtFramesDropped
 
- Protected Attributes inherited from inet::OperationalMixin< cSimpleModule >
State operationalState
 
simtime_t lastChange
 
Operation activeOperation
 
cMessage * activeOperationTimeout
 
cMessage * activeOperationExtraTimer
 

Detailed Description

Used in 802.11 infrastructure mode: handles management frames for a station (STA).

See corresponding NED file for a detailed description. This implementation ignores many details.

Member Function Documentation

◆ handleAssociationRequestFrame()

void inet::ieee80211::Ieee80211MgmtStaSimplified::handleAssociationRequestFrame ( Packet packet,
const Ptr< const Ieee80211MgmtHeader > &  header 
)
overrideprotectedvirtual

Implements inet::ieee80211::Ieee80211MgmtBase.

65 {
66  dropManagementFrame(packet);
67 }

◆ handleAssociationResponseFrame()

void inet::ieee80211::Ieee80211MgmtStaSimplified::handleAssociationResponseFrame ( Packet packet,
const Ptr< const Ieee80211MgmtHeader > &  header 
)
overrideprotectedvirtual

Implements inet::ieee80211::Ieee80211MgmtBase.

70 {
71  dropManagementFrame(packet);
72 }

◆ handleAuthenticationFrame()

void inet::ieee80211::Ieee80211MgmtStaSimplified::handleAuthenticationFrame ( Packet packet,
const Ptr< const Ieee80211MgmtHeader > &  header 
)
overrideprotectedvirtual

Implements inet::ieee80211::Ieee80211MgmtBase.

55 {
56  dropManagementFrame(packet);
57 }

◆ handleBeaconFrame()

void inet::ieee80211::Ieee80211MgmtStaSimplified::handleBeaconFrame ( Packet packet,
const Ptr< const Ieee80211MgmtHeader > &  header 
)
overrideprotectedvirtual

Implements inet::ieee80211::Ieee80211MgmtBase.

90 {
91  dropManagementFrame(packet);
92 }

◆ handleCommand()

void inet::ieee80211::Ieee80211MgmtStaSimplified::handleCommand ( int  msgkind,
cObject *  ctrl 
)
overrideprotectedvirtual

Implements abstract Ieee80211MgmtBase method – throws an error (no commands supported)

Implements inet::ieee80211::Ieee80211MgmtBase.

50 {
51  throw cRuntimeError("handleCommand(): no commands supported");
52 }

◆ handleDeauthenticationFrame()

void inet::ieee80211::Ieee80211MgmtStaSimplified::handleDeauthenticationFrame ( Packet packet,
const Ptr< const Ieee80211MgmtHeader > &  header 
)
overrideprotectedvirtual

Implements inet::ieee80211::Ieee80211MgmtBase.

60 {
61  dropManagementFrame(packet);
62 }

◆ handleDisassociationFrame()

void inet::ieee80211::Ieee80211MgmtStaSimplified::handleDisassociationFrame ( Packet packet,
const Ptr< const Ieee80211MgmtHeader > &  header 
)
overrideprotectedvirtual

Implements inet::ieee80211::Ieee80211MgmtBase.

85 {
86  dropManagementFrame(packet);
87 }

◆ handleProbeRequestFrame()

void inet::ieee80211::Ieee80211MgmtStaSimplified::handleProbeRequestFrame ( Packet packet,
const Ptr< const Ieee80211MgmtHeader > &  header 
)
overrideprotectedvirtual

Implements inet::ieee80211::Ieee80211MgmtBase.

95 {
96  dropManagementFrame(packet);
97 }

◆ handleProbeResponseFrame()

void inet::ieee80211::Ieee80211MgmtStaSimplified::handleProbeResponseFrame ( Packet packet,
const Ptr< const Ieee80211MgmtHeader > &  header 
)
overrideprotectedvirtual

Implements inet::ieee80211::Ieee80211MgmtBase.

100 {
101  dropManagementFrame(packet);
102 }

◆ handleReassociationRequestFrame()

void inet::ieee80211::Ieee80211MgmtStaSimplified::handleReassociationRequestFrame ( Packet packet,
const Ptr< const Ieee80211MgmtHeader > &  header 
)
overrideprotectedvirtual

Implements inet::ieee80211::Ieee80211MgmtBase.

75 {
76  dropManagementFrame(packet);
77 }

◆ handleReassociationResponseFrame()

void inet::ieee80211::Ieee80211MgmtStaSimplified::handleReassociationResponseFrame ( Packet packet,
const Ptr< const Ieee80211MgmtHeader > &  header 
)
overrideprotectedvirtual

Implements inet::ieee80211::Ieee80211MgmtBase.

80 {
81  dropManagementFrame(packet);
82 }

◆ handleTimer()

void inet::ieee80211::Ieee80211MgmtStaSimplified::handleTimer ( cMessage *  msg)
overrideprotectedvirtual

Implements abstract Ieee80211MgmtBase method.

Implements inet::ieee80211::Ieee80211MgmtBase.

45 {
46  ASSERT(false);
47 }

◆ initialize()

void inet::ieee80211::Ieee80211MgmtStaSimplified::initialize ( int  stage)
overrideprotectedvirtual

Reimplemented from inet::ieee80211::Ieee80211MgmtBase.

24 {
26  if (stage == INITSTAGE_LOCAL) {
28  mib->bssStationData.stationType = Ieee80211Mib::STATION;
29  mib->bssStationData.isAssociated = true;
30  }
31  else if (stage == INITSTAGE_LINK_LAYER) {
32  L3AddressResolver addressResolver;
33  auto accessPointAddress = addressResolver.resolve(par("accessPointAddress"), L3AddressResolver::ADDR_MAC).toMac();
34  mib->bssData.bssid = accessPointAddress;
35  auto host = addressResolver.findHostWithAddress(mib->bssData.bssid);
36  auto interfaceTable = addressResolver.findInterfaceTableOf(host);
37  auto networkInterface = interfaceTable->findInterfaceByAddress(mib->bssData.bssid);
38  auto apMib = dynamic_cast<Ieee80211Mib *>(networkInterface->getSubmodule("mib"));
39  apMib->bssAccessPointData.stations[mib->address] = Ieee80211Mib::ASSOCIATED;
40  mib->bssData.ssid = apMib->bssData.ssid;
41  }
42 }

◆ numInitStages()

virtual int inet::ieee80211::Ieee80211MgmtStaSimplified::numInitStages ( ) const
inlineoverrideprotectedvirtual

Reimplemented from inet::ieee80211::Ieee80211MgmtBase.

26 { return NUM_INIT_STAGES; }

The documentation for this class was generated from the following files:
inet::ieee80211::Ieee80211MgmtBase::mib
ModuleRefByPar< Ieee80211Mib > mib
Definition: Ieee80211MgmtBase.h:33
inet::ieee80211::Ieee80211Mib::INFRASTRUCTURE
@ INFRASTRUCTURE
Definition: Ieee80211Mib.h:21
inet::ieee80211::Ieee80211Mib::STATION
@ STATION
Definition: Ieee80211Mib.h:28
inet::ieee80211::Ieee80211MgmtBase::dropManagementFrame
virtual void dropManagementFrame(Packet *frame)
Utility method to dispose of an unhandled frame.
Definition: Ieee80211MgmtBase.cc:75
inet::L3AddressResolver::ADDR_MAC
@ ADDR_MAC
Definition: L3AddressResolver.h:72
inet::INITSTAGE_LOCAL
INET_API InitStage INITSTAGE_LOCAL
Initialization of local state that don't use or affect other modules includes:
inet::ieee80211::Ieee80211MgmtBase::initialize
virtual void initialize(int) override
Definition: Ieee80211MgmtBase.cc:26
NUM_INIT_STAGES
#define NUM_INIT_STAGES
Definition: InitStageRegistry.h:73
inet::ieee80211::Ieee80211Mib::ASSOCIATED
@ ASSOCIATED
Definition: Ieee80211Mib.h:34
inet::ieee80211::Ieee80211MgmtBase::interfaceTable
ModuleRefByPar< IInterfaceTable > interfaceTable
Definition: Ieee80211MgmtBase.h:34
inet::INITSTAGE_LINK_LAYER
INET_API InitStage INITSTAGE_LINK_LAYER
Initialization of link-layer protocols.