Dear All,
I'm studying on implementation of mac-802_11 in ns-2.35.
I don't know that why is the following highlight line used in *
Mac802_11::RetransmitDATA()* function?
======================================================================
*if((u_int32_t)ETHER_ADDR(mh->dh_ra) == MAC_BROADCAST)
{
Packet::free(pktTx_);
pktTx_ = 0;
rst_cw();
mhBackoff_.start(cw_, is_idle());
return;
}*
======================================================================
I think that line runs following steps:
1- it invokes *BackoffTimer::start()* that because of *idle* parameter is
zero, then *pause*_ parameter will set to one.
2- *tx_resume()* in the *Mac802_11::send_timer()* invokes
*setTxState()*and changes
*tx_state* to *MAC_IDLE* , then invokes *checkBackoffTimer()*.
3- *checkBackoffTimer()* invokes *mhBackoff_.resume()* and backoff timer
will schedule with [0-CWMin] + DIFS value.
Are above steps true?
If answer is true,is it necessary to start backoff timer (with value
between [0-CWMin] + DIFS) after sending a broadcast packet?
Sincerely Yours.