IEEE 80211 ABG MAC implementation.
More...
#include <maclayer.h>
|
| MACLayer (NEMId id, PlatformServiceProvider *pPlatformServiceProvider, RadioServiceProvider *pRadioServiceProvider) |
|
| ~MACLayer () |
|
void | initialize (Registrar ®istrar) override |
|
void | configure (const ConfigurationUpdate &update) override |
|
void | start () override |
|
void | postStart () override |
|
void | stop () override |
|
void | destroy () override throw () |
|
void | processUpstreamControl (const ControlMessages &msgs) override |
|
void | processUpstreamPacket (const CommonMACHeader &hdr, UpstreamPacket &pkt, const ControlMessages &msgs) override |
|
void | processDownstreamControl (const ControlMessages &msgs) override |
|
void | processDownstreamPacket (DownstreamPacket &pkt, const ControlMessages &msgs) override |
|
void | processEvent (const EventId &, const Serialization &) |
|
void | processConfiguration (const ConfigurationUpdate &update) override |
|
NEMId | getId () const |
|
void | sendDownstreamBroadcastData (DownstreamQueueEntry &) |
|
void | sendDownstreamUnicastData (DownstreamQueueEntry &entry) |
|
void | sendDownstreamUnicastCts (DownstreamQueueEntry &entry, NEMId origin) |
|
void | sendDownstreamMessage (DownstreamQueueEntry &entry, MACHeaderParams &macHeaderParams) |
|
bool | isDuplicate (NEMId src, std::uint16_t seq) |
|
bool | addToken () |
|
bool | removeToken () |
|
void | setDelayTime (IEEE80211ABG::DownstreamQueueEntry &entry) |
|
COLLISION_TYPE | checkForRxCollision (NEMId src, std::uint8_t u8Category, std::uint8_t retries) |
|
MACStatistics & | getStatistics () |
|
ModeTimingParameters & | getModeTiming () |
|
void | sendDownstreamPacket (const CommonMACHeader &hdr, DownstreamPacket &pkt, const ControlMessages &msgs=DownstreamTransport::empty) |
|
NEMId | getNEMId () const |
|
virtual void | setDownstreamTransport (DownstreamTransport *pDownstreamTransport) |
|
void | sendDownstreamControl (const ControlMessages &msgs) |
|
virtual void | setUpstreamTransport (UpstreamTransport *pUpstreamTransport) |
|
void | sendUpstreamPacket (UpstreamPacket &pkt, const ControlMessages &msgs=empty) |
|
void | sendUpstreamControl (const ControlMessages &msgs) |
|
virtual void | processTimedEvent (TimerEventId eventId, const TimePoint &expireTime, const TimePoint &scheduleTime, const TimePoint &fireTime, const void *arg) |
|
BuildId | getBuildId () const |
|
void | setBuildId (BuildId bid) |
|
IEEE 80211 ABG MAC implementation.
Definition at line 104 of file models/mac/ieee80211abg/maclayer.h.
◆ COLLISION_TYPE
collision type none, clobber or noise
Enumerator |
---|
COLLISION_TYPE_NONE | |
COLLISION_TYPE_CLOBBER_RX_DURING_TX | |
COLLISION_TYPE_NOISE_COMMON_RX | |
COLLISION_TYPE_CLOBBER_RX_HIDDEN_BUSY | |
COLLISION_TYPE_NOISE_HIDDEN_RX | |
Definition at line 151 of file models/mac/ieee80211abg/maclayer.h.
◆ MACLayer()
◆ ~MACLayer()
EMANE::Models::IEEE80211ABG::MACLayer::~MACLayer |
( |
| ) |
|
◆ addToken()
bool EMANE::Models::IEEE80211ABG::MACLayer::addToken |
( |
| ) |
|
◆ checkForRxCollision()
get the type of collision during rx
- Parameters
-
src | the src of the pkt |
u8Category | the queue service type |
retries | the number of retries |
- Return values
-
returns | the COLLISION_TYPE |
Definition at line 1620 of file models/mac/ieee80211abg/maclayer.cc.
◆ configure()
◆ destroy()
void EMANE::Models::IEEE80211ABG::MACLayer::destroy |
( |
| ) |
|
throw | ( | |
| ) | | |
|
overridevirtual |
◆ getBuildId()
Gets the application wide unique BuildId of this object.
- Returns
- the BuildId
Definition at line 34 of file buildable.inl.
◆ getId()
EMANE::NEMId EMANE::Models::IEEE80211ABG::MACLayer::getId |
( |
| ) |
const |
◆ getModeTiming()
◆ getNEMId()
NEMId EMANE::NEMLayer::getNEMId |
( |
| ) |
const |
|
inlineinherited |
Get the NEM identifier.
- Returns
- NEM identifier
Definition at line 72 of file nemlayer.h.
◆ getStatistics()
◆ initialize()
void EMANE::Models::IEEE80211ABG::MACLayer::initialize |
( |
Registrar & |
registrar | ) |
|
|
overridevirtual |
◆ isDuplicate()
bool EMANE::Models::IEEE80211ABG::MACLayer::isDuplicate |
( |
NEMId |
src, |
|
|
std::uint16_t |
seq |
|
) |
| |
check if a duplicate packet has been received
- Parameters
-
src | the source nem |
seq | sequence number of packet |
- Return values
-
true | if src and seq match the last received values, otherwise false. |
Definition at line 1861 of file models/mac/ieee80211abg/maclayer.cc.
◆ postStart()
void EMANE::Models::IEEE80211ABG::MACLayer::postStart |
( |
| ) |
|
|
overridevirtual |
◆ processConfiguration()
void EMANE::Models::IEEE80211ABG::MACLayer::processConfiguration |
( |
const ConfigurationUpdate & |
update | ) |
|
|
overridevirtual |
◆ processDownstreamControl()
void EMANE::Models::IEEE80211ABG::MACLayer::processDownstreamControl |
( |
const ControlMessages & |
msgs | ) |
|
|
overridevirtual |
◆ processDownstreamPacket()
◆ processEvent()
void EMANE::Models::IEEE80211ABG::MACLayer::processEvent |
( |
const EventId & |
eventId, |
|
|
const Serialization & |
serialization |
|
) |
| |
|
virtual |
◆ processTimedEvent()
◆ processUpstreamControl()
void EMANE::Models::IEEE80211ABG::MACLayer::processUpstreamControl |
( |
const ControlMessages & |
msgs | ) |
|
|
overridevirtual |
◆ processUpstreamPacket()
Process an upstream packet
- Parameters
-
hdr | MAC message header |
pkt | Upstream packet reference |
msgs | Optional control messages |
- Note
- Control message ownership is transferred with this call. Control messages should not be accessed after this point.
Implements EMANE::MACLayerImplementor.
Definition at line 478 of file models/mac/ieee80211abg/maclayer.cc.
◆ removeToken()
bool EMANE::Models::IEEE80211ABG::MACLayer::removeToken |
( |
| ) |
|
◆ sendDownstreamBroadcastData()
void EMANE::Models::IEEE80211ABG::MACLayer::sendDownstreamBroadcastData |
( |
DownstreamQueueEntry & |
entry | ) |
|
◆ sendDownstreamControl()
void EMANE::UpstreamTransport::sendDownstreamControl |
( |
const ControlMessages & |
msgs | ) |
|
|
inlineinherited |
Send downstream control message
- Parameters
-
msgs | reference to the ControlMessages |
Definition at line 44 of file upstreamtransport.inl.
◆ sendDownstreamMessage()
send a downstream message
- Parameters
-
entry | downstream queue entry |
macHeaderParams | specific mac header parameters for the message |
Definition at line 1323 of file models/mac/ieee80211abg/maclayer.cc.
◆ sendDownstreamPacket()
Sends a downstream packet
- Parameters
-
hdr | MAC message header |
pkt | Downstream packet reference |
msgs | Optional control messages |
- Note
- Control message ownership is transferred with this call. Control messages should not be accessed after this point.
Definition at line 37 of file maclayerimpl.inl.
◆ sendDownstreamUnicastCts()
send a downstream unicast cts ctrl packet
- Parameters
-
entry | downstream queue entry |
origin | the origin of the unicast rts/cts exchange |
Definition at line 1288 of file models/mac/ieee80211abg/maclayer.cc.
◆ sendDownstreamUnicastData()
void EMANE::Models::IEEE80211ABG::MACLayer::sendDownstreamUnicastData |
( |
DownstreamQueueEntry & |
entry | ) |
|
◆ sendUpstreamControl()
void EMANE::DownstreamTransport::sendUpstreamControl |
( |
const ControlMessages & |
msgs | ) |
|
|
inlineinherited |
Send upstream control message
- Parameters
-
msgs | Reference to the ControlMessages |
Definition at line 44 of file downstreamtransport.inl.
◆ sendUpstreamPacket()
◆ setBuildId()
void EMANE::Buildable::setBuildId |
( |
BuildId |
bid | ) |
|
|
inlineinherited |
Sets the application wide unique BuildId of this object. Builders assign a BuildId to objects at instantiation.
- Parameters
-
- Note
- : This method is for internal framework use only.
Definition at line 40 of file buildable.inl.
◆ setDelayTime()
◆ setDownstreamTransport()
virtual void EMANE::UpstreamTransport::setDownstreamTransport |
( |
DownstreamTransport * |
pDownstreamTransport | ) |
|
|
inlinevirtualinherited |
◆ setUpstreamTransport()
virtual void EMANE::DownstreamTransport::setUpstreamTransport |
( |
UpstreamTransport * |
pUpstreamTransport | ) |
|
|
inlinevirtualinherited |
◆ start()
void EMANE::Models::IEEE80211ABG::MACLayer::start |
( |
| ) |
|
|
overridevirtual |
◆ stop()
void EMANE::Models::IEEE80211ABG::MACLayer::stop |
( |
| ) |
|
|
overridevirtual |
◆ TransmissionTxState
◆ empty [1/2]
◆ empty [2/2]
◆ pPlatformService_
◆ pRadioService_
The documentation for this class was generated from the following files: