La classe Mac8021 1a est une implémentation de la
norme IEEE 802.1 1a. Nous nous sommes basés sur [802.11, 99] [802.1 1a,
00] pour extraire les différents paramètres comme le calcul de la
durée de transmission packetDuration(), la taille la fenêtre de
contention et les durées des périodes ST, SIFS, DIFS, EIFS.
# myMacAddr # timeout
# nav
# contention
# endSifs
# state
# catRadioState # medium
# defaultBitrate # bitrate
# catBitrate
# autoBitrate
# rateIndex
# snrThresholds # radio
# queueLength
# nextIsBroadcast # fromUpperLayer # longRetryCounter
# shortRetryCounter
# successCounter # failedCounter # recovery
# timer
# successThreshold
# maxSuccessThreshold # timerTimeout
# minSuccessThreshold # minTimerTimeout
# successCoeff # timerCoeff
: int
: cMessage*
: cMessage*
: cMessage*
: cMessage*
: State
: int
: MediumIndication::States : double
: int : int : int : int : std::vector<double
: SingleChannelRadio*
: unsigned
: bool
: MacPktList
: unsigned
: unsigned
: int : int : bool
: int : int : int : int : int : int : double
: double
# handleSelfMsg (cMessage* msg) # handleUpperMsg (cMessage* msg)
# handleLowerMsg (cMessage* msg)
# handleLowerControl (cMessage* msg) # setBitrate (double
b_rate)
# getBitrate ()
# needNormalFallback ()
# needRecoveryFallback ()
# reportFailure ()
# reportRecoveryFailure ()
# setSuccessThreshold (int success_threshold) # setTimerTimeout
(int timer_timeout)
# getSuccessThreshold ()
# getTimerTimeout ()
# getMinSuccessThreshold ()
# getMinTimerTimeout ()
# reportDataFailed ()
# reportDataOk ()
# getMinBitrate ()
# getMaxBitrate ()
# getTimeout ()
# retrieveBitrate (int destAddress)
# packetDuration (double bits, double br) # decapsMsg
(Mac80211Pkt * frame)
# encapsMsg (cMessage * netw) # sendBROADCASTframe ()
# sendRTSframe ()
# sendCTSframe ( Mac80211Pkt*) # sendACKframe ( Mac80211Pkt*)
# sendDATAframe ( Mac80211Pkt*)
: void : void : void : void : void : double
: bool : bool : void : void : void : void : int
: int
: int
: int
: void : void : int
: int
: int
: double
: double
: cMessage*
: Mac80211Pkt* : void
: void : void : void : void
Mac80211a
La classe Mac 802 11a est une classe dérivée de
la classe BasicLayer de la librairie MF et correspond au module simple MAC8021
1a. Parmi les paramètres du Module Mac8021 1a nous citons queueLength
qui est la capacité de sa file d'attente, bitrate qui est le
débit physique utilisé et autoBitrate qui peut avoir une des
trois valeurs 0,1 ou 2. La valeur 0 du paramètre autoBitrate correspond
à une transmission avec un débit physique constant, alors que la
valeur 1 correspond à l'algorithme ARF et 2 à l'algorithme AARF.
Mac8021 1a contient aussi les différents paramètres pour chacun
de ces derniers algorithmes comme timerTimeout et successThreshold pour ARF,
successCoeff timerCoeff et maxSuccessThreshold pour AARF.