wifi: Do not continue a TXOP if TXOP limit is zero and TXNAV expired
This commit is contained in:
@@ -195,7 +195,7 @@ cpp_examples = [
|
||||
"True",
|
||||
),
|
||||
(
|
||||
"wifi-eht-network --simulationTime=0.25s --udp=0 --downlink=0 --useRts=0 --nStations=4 --dlAckType=AGGR-MU-BAR --enableUlOfdma=1 --enableBsrp=1 --mpduBufferSize=1024 --mcs=8 --muSchedAccessReqInterval=45ms --frequency2=6 --minExpectedThroughput=50 --maxExpectedThroughput=550",
|
||||
"wifi-eht-network --simulationTime=0.25s --udp=0 --downlink=0 --useRts=0 --nStations=4 --dlAckType=AGGR-MU-BAR --enableUlOfdma=1 --enableBsrp=1 --mpduBufferSize=1024 --mcs=8 --muSchedAccessReqInterval=45ms --frequency2=6 --minExpectedThroughput=50 --maxExpectedThroughput=550 --RngRun=7",
|
||||
"True",
|
||||
"True",
|
||||
),
|
||||
|
||||
@@ -535,7 +535,9 @@ HeFrameExchangeManager::TransmissionSucceeded()
|
||||
}
|
||||
|
||||
if (m_continueTxopAfterBsrpTf && m_edca && m_edca->GetTxopLimit(m_linkId).IsZero() &&
|
||||
m_txTimer.IsRunning() && m_txTimer.GetReason() == WifiTxTimer::WAIT_QOS_NULL_AFTER_BSRP_TF)
|
||||
m_txTimer.IsRunning() &&
|
||||
m_txTimer.GetReason() == WifiTxTimer::WAIT_QOS_NULL_AFTER_BSRP_TF &&
|
||||
(m_txNav > Simulator::Now() + m_phy->GetSifs()))
|
||||
{
|
||||
NS_LOG_DEBUG("Schedule another transmission in a SIFS after successful BSRP TF");
|
||||
Simulator::Schedule(m_phy->GetSifs(), [=, this]() {
|
||||
|
||||
@@ -744,7 +744,8 @@ HtFrameExchangeManager::TransmissionSucceeded()
|
||||
{
|
||||
NS_LOG_DEBUG(this);
|
||||
|
||||
if (m_edca && m_edca->GetTxopLimit(m_linkId).IsZero() && GetBar(m_edca->GetAccessCategory()))
|
||||
if (m_edca && m_edca->GetTxopLimit(m_linkId).IsZero() && GetBar(m_edca->GetAccessCategory()) &&
|
||||
(m_txNav > Simulator::Now() + m_phy->GetSifs()))
|
||||
{
|
||||
// A TXOP limit of 0 indicates that the TXOP holder may transmit or cause to
|
||||
// be transmitted (as responses) the following within the current TXOP:
|
||||
|
||||
Reference in New Issue
Block a user