|
|
| 96 |
virtual void Cancel (void) { |
96 |
virtual void Cancel (void) { |
| 97 |
m_txop->Cancel (); |
97 |
m_txop->Cancel (); |
| 98 |
} |
98 |
} |
|
|
99 |
virtual void EndTxNoAck (void) { |
| 100 |
m_txop->EndTxNoAck (); |
| 101 |
} |
| 99 |
|
102 |
|
| 100 |
private: |
103 |
private: |
| 101 |
EdcaTxopN *m_txop; |
104 |
EdcaTxopN *m_txop; |
|
|
| 371 |
m_transmissionListener); |
374 |
m_transmissionListener); |
| 372 |
|
375 |
|
| 373 |
m_currentPacket = 0; |
376 |
m_currentPacket = 0; |
| 374 |
m_dcf->ResetCw (); |
|
|
| 375 |
m_dcf->StartBackoffNow (m_rng->GetNext (0, m_dcf->GetCw ())); |
| 376 |
StartAccessIfNeeded (); |
| 377 |
NS_LOG_DEBUG ("tx broadcast"); |
377 |
NS_LOG_DEBUG ("tx broadcast"); |
| 378 |
} |
378 |
} |
| 379 |
else if (m_currentHdr.GetType() == WIFI_MAC_CTL_BACKREQ) |
379 |
else if (m_currentHdr.GetType() == WIFI_MAC_CTL_BACKREQ) |
|
|
| 716 |
NS_LOG_DEBUG ("transmission cancelled"); |
716 |
NS_LOG_DEBUG ("transmission cancelled"); |
| 717 |
} |
717 |
} |
| 718 |
|
718 |
|
|
|
719 |
|
| 720 |
void |
| 721 |
EdcaTxopN::EndTxNoAck (void) |
| 722 |
{ |
| 723 |
NS_LOG_FUNCTION (this); |
| 724 |
NS_LOG_DEBUG ("a transmission that did not require an ACK just finished"); |
| 725 |
NS_ASSERT (m_currentPacket == 0); |
| 726 |
m_dcf->ResetCw (); |
| 727 |
m_dcf->StartBackoffNow (m_rng->GetNext (0, m_dcf->GetCw ())); |
| 728 |
StartAccessIfNeeded (); |
| 729 |
} |
| 730 |
|
| 731 |
|
| 719 |
bool |
732 |
bool |
| 720 |
EdcaTxopN::NeedFragmentation (void) const |
733 |
EdcaTxopN::NeedFragmentation (void) const |
| 721 |
{ |
734 |
{ |