|
1052 |
} |
1052 |
} |
1053 |
else |
1053 |
else |
1054 |
{ |
1054 |
{ |
1055 |
// Binary exponential backoff |
1055 |
NS_ASSERT_MSG (rt.GetRreqCnt () > 0, "Unexpected value for GetRreqCount ()"); |
1056 |
retry = std::pow<uint16_t> (2, rt.GetRreqCnt () - 1) * m_netTraversalTime; |
1056 |
uint16_t backoffFactor = rt.GetRreqCnt () - 1; |
|
|
1057 |
NS_LOG_LOGIC ("Applying binary exponential backoff factor " << backoffFactor); |
1058 |
retry = m_netTraversalTime * (1 << backoffFactor); |
1057 |
} |
1059 |
} |
1058 |
m_addressReqTimer[dst].Schedule (retry); |
1060 |
m_addressReqTimer[dst].Schedule (retry); |
1059 |
NS_LOG_LOGIC ("Scheduled RREQ retry in " << retry.GetSeconds () << " seconds"); |
1061 |
NS_LOG_LOGIC ("Scheduled RREQ retry in " << retry.GetSeconds () << " seconds"); |