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.