INET Framework for OMNeT++/OMNEST
Ieee80211MgmtAdhoc Class Reference

#include <Ieee80211MgmtAdhoc.h>

Inheritance diagram for Ieee80211MgmtAdhoc:
Ieee80211MgmtBase PassiveQueueBase INotifiable IPassiveQueue

List of all members.

Protected Member Functions

virtual int numInitStages () const
virtual void initialize (int)
virtual void handleTimer (cMessage *msg)
virtual void handleUpperMessage (cPacket *msg)
virtual void handleCommand (int msgkind, cPolymorphic *ctrl)
virtual Ieee80211DataFrame * encapsulate (cPacket *msg)
virtual void receiveChangeNotification (int category, const cPolymorphic *details)
Processing of different frame types
virtual void handleDataFrame (Ieee80211DataFrame *frame)
virtual void handleAuthenticationFrame (Ieee80211AuthenticationFrame *frame)
virtual void handleDeauthenticationFrame (Ieee80211DeauthenticationFrame *frame)
virtual void handleAssociationRequestFrame (Ieee80211AssociationRequestFrame *frame)
virtual void handleAssociationResponseFrame (Ieee80211AssociationResponseFrame *frame)
virtual void handleReassociationRequestFrame (Ieee80211ReassociationRequestFrame *frame)
virtual void handleReassociationResponseFrame (Ieee80211ReassociationResponseFrame *frame)
virtual void handleDisassociationFrame (Ieee80211DisassociationFrame *frame)
virtual void handleBeaconFrame (Ieee80211BeaconFrame *frame)
virtual void handleProbeRequestFrame (Ieee80211ProbeRequestFrame *frame)
virtual void handleProbeResponseFrame (Ieee80211ProbeResponseFrame *frame)

Detailed Description

Used in 802.11 ad-hoc mode. See corresponding NED file for a detailed description. This implementation ignores many details.

Author:
Andras Varga

Member Function Documentation

Ieee80211DataFrame * Ieee80211MgmtAdhoc::encapsulate ( cPacket *  msg) [protected, virtual]

Utility function for handleUpperMessage()

Referenced by handleUpperMessage().

{
    Ieee80211DataFrame *frame = new Ieee80211DataFrame(msg->getName());

    // copy receiver address from the control info (sender address will be set in MAC)
    Ieee802Ctrl *ctrl = check_and_cast<Ieee802Ctrl *>(msg->removeControlInfo());
    frame->setReceiverAddress(ctrl->getDest());
    delete ctrl;

    frame->encapsulate(msg);
    return frame;
}
void Ieee80211MgmtAdhoc::handleAssociationRequestFrame ( Ieee80211AssociationRequestFrame *  frame) [protected, virtual]

Implements Ieee80211MgmtBase.

{
    dropManagementFrame(frame);
}
void Ieee80211MgmtAdhoc::handleAssociationResponseFrame ( Ieee80211AssociationResponseFrame *  frame) [protected, virtual]

Implements Ieee80211MgmtBase.

{
    dropManagementFrame(frame);
}
void Ieee80211MgmtAdhoc::handleAuthenticationFrame ( Ieee80211AuthenticationFrame *  frame) [protected, virtual]

Implements Ieee80211MgmtBase.

{
    dropManagementFrame(frame);
}
void Ieee80211MgmtAdhoc::handleBeaconFrame ( Ieee80211BeaconFrame *  frame) [protected, virtual]

Implements Ieee80211MgmtBase.

{
    dropManagementFrame(frame);
}
void Ieee80211MgmtAdhoc::handleCommand ( int  msgkind,
cPolymorphic *  ctrl 
) [protected, virtual]

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

Implements Ieee80211MgmtBase.

{
    error("handleCommand(): no commands supported");
}
void Ieee80211MgmtAdhoc::handleDataFrame ( Ieee80211DataFrame *  frame) [protected, virtual]

Implements Ieee80211MgmtBase.

{
    sendUp(decapsulate(frame));
}
void Ieee80211MgmtAdhoc::handleDeauthenticationFrame ( Ieee80211DeauthenticationFrame *  frame) [protected, virtual]

Implements Ieee80211MgmtBase.

{
    dropManagementFrame(frame);
}
void Ieee80211MgmtAdhoc::handleDisassociationFrame ( Ieee80211DisassociationFrame *  frame) [protected, virtual]

Implements Ieee80211MgmtBase.

{
    dropManagementFrame(frame);
}
void Ieee80211MgmtAdhoc::handleProbeRequestFrame ( Ieee80211ProbeRequestFrame *  frame) [protected, virtual]

Implements Ieee80211MgmtBase.

{
    dropManagementFrame(frame);
}
void Ieee80211MgmtAdhoc::handleProbeResponseFrame ( Ieee80211ProbeResponseFrame *  frame) [protected, virtual]

Implements Ieee80211MgmtBase.

{
    dropManagementFrame(frame);
}
void Ieee80211MgmtAdhoc::handleReassociationRequestFrame ( Ieee80211ReassociationRequestFrame *  frame) [protected, virtual]

Implements Ieee80211MgmtBase.

{
    dropManagementFrame(frame);
}
void Ieee80211MgmtAdhoc::handleReassociationResponseFrame ( Ieee80211ReassociationResponseFrame *  frame) [protected, virtual]

Implements Ieee80211MgmtBase.

{
    dropManagementFrame(frame);
}
void Ieee80211MgmtAdhoc::handleTimer ( cMessage *  msg) [protected, virtual]

Implements abstract Ieee80211MgmtBase method

Implements Ieee80211MgmtBase.

{
    ASSERT(false);
}
void Ieee80211MgmtAdhoc::handleUpperMessage ( cPacket *  msg) [protected, virtual]

Implements abstract Ieee80211MgmtBase method

Implements Ieee80211MgmtBase.

{
    Ieee80211DataFrame *frame = encapsulate(msg);
    sendOrEnqueue(frame);
}
void Ieee80211MgmtAdhoc::initialize ( int  stage) [protected, virtual]

Reimplemented from Ieee80211MgmtBase.

virtual int Ieee80211MgmtAdhoc::numInitStages ( ) const [inline, protected, virtual]

Reimplemented from Ieee80211MgmtBase.

{return 2;}
void Ieee80211MgmtAdhoc::receiveChangeNotification ( int  category,
const cPolymorphic *  details 
) [protected, virtual]

Called by the NotificationBoard whenever a change occurs we're interested in

Implements INotifiable.

{
    Enter_Method_Silent();
    printNotificationBanner(category, details);
}

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