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.

Reply via email to