wifi: Rename BlockAckManager methods to indicate that they refer to the originator side
This commit is contained in:
committed by
Stefano Avallone
parent
c8ad2f4d45
commit
e7dbd9ff45
@@ -105,9 +105,9 @@ BlockAckManager::GetAgreementAsOriginator(Mac48Address recipient, uint8_t tid) c
|
||||
}
|
||||
|
||||
void
|
||||
BlockAckManager::CreateAgreement(const MgtAddBaRequestHeader* reqHdr,
|
||||
Mac48Address recipient,
|
||||
bool htSupported)
|
||||
BlockAckManager::CreateOriginatorAgreement(const MgtAddBaRequestHeader* reqHdr,
|
||||
Mac48Address recipient,
|
||||
bool htSupported)
|
||||
{
|
||||
NS_LOG_FUNCTION(this << reqHdr << recipient << htSupported);
|
||||
const uint8_t tid = reqHdr->GetTid();
|
||||
@@ -140,7 +140,7 @@ BlockAckManager::CreateAgreement(const MgtAddBaRequestHeader* reqHdr,
|
||||
}
|
||||
|
||||
void
|
||||
BlockAckManager::DestroyAgreement(Mac48Address recipient, uint8_t tid)
|
||||
BlockAckManager::DestroyOriginatorAgreement(Mac48Address recipient, uint8_t tid)
|
||||
{
|
||||
NS_LOG_FUNCTION(this << recipient << +tid);
|
||||
AgreementsI it = m_agreements.find(std::make_pair(recipient, tid));
|
||||
@@ -163,9 +163,9 @@ BlockAckManager::DestroyAgreement(Mac48Address recipient, uint8_t tid)
|
||||
}
|
||||
|
||||
void
|
||||
BlockAckManager::UpdateAgreement(const MgtAddBaResponseHeader* respHdr,
|
||||
Mac48Address recipient,
|
||||
uint16_t startingSeq)
|
||||
BlockAckManager::UpdateOriginatorAgreement(const MgtAddBaResponseHeader* respHdr,
|
||||
Mac48Address recipient,
|
||||
uint16_t startingSeq)
|
||||
{
|
||||
NS_LOG_FUNCTION(this << respHdr << recipient << startingSeq);
|
||||
uint8_t tid = respHdr->GetTid();
|
||||
@@ -705,9 +705,9 @@ BlockAckManager::InactivityTimeout(Mac48Address recipient, uint8_t tid)
|
||||
}
|
||||
|
||||
void
|
||||
BlockAckManager::NotifyAgreementEstablished(Mac48Address recipient,
|
||||
uint8_t tid,
|
||||
uint16_t startingSeq)
|
||||
BlockAckManager::NotifyOriginatorAgreementEstablished(Mac48Address recipient,
|
||||
uint8_t tid,
|
||||
uint16_t startingSeq)
|
||||
{
|
||||
NS_LOG_FUNCTION(this << recipient << +tid << startingSeq);
|
||||
AgreementsI it = m_agreements.find(std::make_pair(recipient, tid));
|
||||
@@ -724,7 +724,7 @@ BlockAckManager::NotifyAgreementEstablished(Mac48Address recipient,
|
||||
}
|
||||
|
||||
void
|
||||
BlockAckManager::NotifyAgreementRejected(Mac48Address recipient, uint8_t tid)
|
||||
BlockAckManager::NotifyOriginatorAgreementRejected(Mac48Address recipient, uint8_t tid)
|
||||
{
|
||||
NS_LOG_FUNCTION(this << recipient << +tid);
|
||||
AgreementsI it = m_agreements.find(std::make_pair(recipient, tid));
|
||||
@@ -737,7 +737,7 @@ BlockAckManager::NotifyAgreementRejected(Mac48Address recipient, uint8_t tid)
|
||||
}
|
||||
|
||||
void
|
||||
BlockAckManager::NotifyAgreementNoReply(Mac48Address recipient, uint8_t tid)
|
||||
BlockAckManager::NotifyOriginatorAgreementNoReply(Mac48Address recipient, uint8_t tid)
|
||||
{
|
||||
NS_LOG_FUNCTION(this << recipient << +tid);
|
||||
AgreementsI it = m_agreements.find(std::make_pair(recipient, tid));
|
||||
@@ -751,7 +751,7 @@ BlockAckManager::NotifyAgreementNoReply(Mac48Address recipient, uint8_t tid)
|
||||
}
|
||||
|
||||
void
|
||||
BlockAckManager::NotifyAgreementReset(Mac48Address recipient, uint8_t tid)
|
||||
BlockAckManager::NotifyOriginatorAgreementReset(Mac48Address recipient, uint8_t tid)
|
||||
{
|
||||
NS_LOG_FUNCTION(this << recipient << +tid);
|
||||
AgreementsI it = m_agreements.find(std::make_pair(recipient, tid));
|
||||
|
||||
@@ -119,12 +119,12 @@ class BlockAckManager : public Object
|
||||
* \param recipient Address of peer station involved in block ack mechanism.
|
||||
* \param htSupported Whether both originator and recipient support HT
|
||||
*
|
||||
* Creates a new block ack agreement in pending state. When a ADDBA response
|
||||
* Creates a new originator block ack agreement in pending state. When a ADDBA response
|
||||
* with a successful status code is received, the relative agreement becomes established.
|
||||
*/
|
||||
void CreateAgreement(const MgtAddBaRequestHeader* reqHdr,
|
||||
Mac48Address recipient,
|
||||
bool htSupported = true);
|
||||
void CreateOriginatorAgreement(const MgtAddBaRequestHeader* reqHdr,
|
||||
Mac48Address recipient,
|
||||
bool htSupported = true);
|
||||
/**
|
||||
* \param recipient Address of peer station involved in block ack mechanism.
|
||||
* \param tid traffic ID of transmitted packet.
|
||||
@@ -132,7 +132,7 @@ class BlockAckManager : public Object
|
||||
* Invoked when a recipient reject a block ack agreement or when a DELBA frame
|
||||
* is Received/Transmitted.
|
||||
*/
|
||||
void DestroyAgreement(Mac48Address recipient, uint8_t tid);
|
||||
void DestroyOriginatorAgreement(Mac48Address recipient, uint8_t tid);
|
||||
/**
|
||||
* \param respHdr Relative Add block ack response (action frame).
|
||||
* \param recipient Address of peer station involved in block ack mechanism.
|
||||
@@ -140,9 +140,9 @@ class BlockAckManager : public Object
|
||||
*
|
||||
* Invoked upon receipt of a ADDBA response frame from <i>recipient</i>.
|
||||
*/
|
||||
void UpdateAgreement(const MgtAddBaResponseHeader* respHdr,
|
||||
Mac48Address recipient,
|
||||
uint16_t startingSeq);
|
||||
void UpdateOriginatorAgreement(const MgtAddBaResponseHeader* respHdr,
|
||||
Mac48Address recipient,
|
||||
uint16_t startingSeq);
|
||||
/**
|
||||
* \param mpdu MPDU to store.
|
||||
*
|
||||
@@ -232,36 +232,38 @@ class BlockAckManager : public Object
|
||||
* \param tid Traffic ID of transmitted packet.
|
||||
* \param startingSeq starting sequence field
|
||||
*
|
||||
* Puts corresponding agreement in established state and updates number of packets
|
||||
* Puts corresponding originator agreement in established state and updates number of packets
|
||||
* and starting sequence field. Invoked typically after a block ack refresh.
|
||||
*/
|
||||
void NotifyAgreementEstablished(Mac48Address recipient, uint8_t tid, uint16_t startingSeq);
|
||||
void NotifyOriginatorAgreementEstablished(Mac48Address recipient,
|
||||
uint8_t tid,
|
||||
uint16_t startingSeq);
|
||||
/**
|
||||
* \param recipient Address of peer station involved in block ack mechanism.
|
||||
* \param tid Traffic ID of transmitted packet.
|
||||
*
|
||||
* Marks an agreement as rejected. This happens if <i>recipient</i> station reject block ack
|
||||
* setup by an ADDBA Response frame with a failure status code. For now we assume that every QoS
|
||||
* station accepts a block ack setup.
|
||||
* Marks an originator agreement as rejected. This happens if <i>recipient</i> station reject
|
||||
* block ack setup by an ADDBA Response frame with a failure status code. For now we assume
|
||||
* that every QoS station accepts a block ack setup.
|
||||
*/
|
||||
void NotifyAgreementRejected(Mac48Address recipient, uint8_t tid);
|
||||
void NotifyOriginatorAgreementRejected(Mac48Address recipient, uint8_t tid);
|
||||
/**
|
||||
* \param recipient Address of peer station involved in block ack mechanism.
|
||||
* \param tid Traffic ID of transmitted packet.
|
||||
*
|
||||
* Marks an agreement after not receiving response to ADDBA request. During this state
|
||||
* any packets in queue will be transmitted using normal MPDU. This also unblock
|
||||
* Marks an originator agreement after not receiving response to ADDBA request. During this
|
||||
* state any packets in queue will be transmitted using normal MPDU. This also unblocks
|
||||
* recipient address.
|
||||
*/
|
||||
void NotifyAgreementNoReply(Mac48Address recipient, uint8_t tid);
|
||||
void NotifyOriginatorAgreementNoReply(Mac48Address recipient, uint8_t tid);
|
||||
/**
|
||||
* \param recipient Address of peer station involved in block ack mechanism.
|
||||
* \param tid Traffic ID of transmitted packet.
|
||||
*
|
||||
* Set BA agreement to a transitory state to reset it after not receiving response to ADDBA
|
||||
* request.
|
||||
* Set Originator BA agreement to a transitory state to reset it after not receiving response
|
||||
* to ADDBA request.
|
||||
*/
|
||||
void NotifyAgreementReset(Mac48Address recipient, uint8_t tid);
|
||||
void NotifyOriginatorAgreementReset(Mac48Address recipient, uint8_t tid);
|
||||
/**
|
||||
* \param nPackets Minimum number of packets for use of block ack.
|
||||
*
|
||||
|
||||
@@ -179,7 +179,7 @@ HtFrameExchangeManager::SendAddBaRequest(Mac48Address dest,
|
||||
// set the starting sequence number for the BA agreement
|
||||
reqHdr.SetStartingSequence(startingSeq);
|
||||
|
||||
GetBaManager(tid)->CreateAgreement(&reqHdr, dest);
|
||||
GetBaManager(tid)->CreateOriginatorAgreement(&reqHdr, dest);
|
||||
|
||||
packet->AddHeader(reqHdr);
|
||||
packet->AddHeader(actionHdr);
|
||||
@@ -301,7 +301,7 @@ HtFrameExchangeManager::SendDelbaFrame(Mac48Address addr, uint8_t tid, bool byOr
|
||||
if (byOriginator)
|
||||
{
|
||||
delbaHdr.SetByOriginator();
|
||||
GetBaManager(tid)->DestroyAgreement(addr, tid);
|
||||
GetBaManager(tid)->DestroyOriginatorAgreement(addr, tid);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -612,7 +612,7 @@ HtFrameExchangeManager::NotifyReceivedNormalAck(Ptr<WifiMpdu> mpdu)
|
||||
if (delBa.IsByOriginator())
|
||||
{
|
||||
GetBaManager(delBa.GetTid())
|
||||
->DestroyAgreement(mpdu->GetHeader().GetAddr1(), delBa.GetTid());
|
||||
->DestroyOriginatorAgreement(mpdu->GetHeader().GetAddr1(), delBa.GetTid());
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -703,7 +703,7 @@ HtFrameExchangeManager::NotifyPacketDiscarded(Ptr<const WifiMpdu> mpdu)
|
||||
{
|
||||
NS_LOG_DEBUG("No ACK after ADDBA request");
|
||||
Ptr<QosTxop> qosTxop = m_mac->GetQosTxop(tid);
|
||||
qosTxop->NotifyAgreementNoReply(recipient, tid);
|
||||
qosTxop->NotifyOriginatorAgreementNoReply(recipient, tid);
|
||||
Simulator::Schedule(qosTxop->GetFailedAddBaTimeout(),
|
||||
&QosTxop::ResetBa,
|
||||
qosTxop,
|
||||
|
||||
@@ -647,12 +647,12 @@ QosTxop::GotAddBaResponse(const MgtAddBaResponseHeader* respHdr, Mac48Address re
|
||||
{
|
||||
startingSeq = peekedItem->GetHeader().GetSequenceNumber();
|
||||
}
|
||||
m_baManager->UpdateAgreement(respHdr, recipient, startingSeq);
|
||||
m_baManager->UpdateOriginatorAgreement(respHdr, recipient, startingSeq);
|
||||
}
|
||||
else
|
||||
{
|
||||
NS_LOG_DEBUG("discard ADDBA response" << recipient);
|
||||
m_baManager->NotifyAgreementRejected(recipient, tid);
|
||||
m_baManager->NotifyOriginatorAgreementRejected(recipient, tid);
|
||||
}
|
||||
|
||||
for (uint8_t linkId = 0; linkId < GetNLinks(); linkId++)
|
||||
@@ -666,15 +666,15 @@ QosTxop::GotDelBaFrame(const MgtDelBaHeader* delBaHdr, Mac48Address recipient)
|
||||
{
|
||||
NS_LOG_FUNCTION(this << delBaHdr << recipient);
|
||||
NS_LOG_DEBUG("received DELBA frame from=" << recipient);
|
||||
m_baManager->DestroyAgreement(recipient, delBaHdr->GetTid());
|
||||
m_baManager->DestroyOriginatorAgreement(recipient, delBaHdr->GetTid());
|
||||
}
|
||||
|
||||
void
|
||||
QosTxop::NotifyAgreementNoReply(const Mac48Address& recipient, uint8_t tid)
|
||||
QosTxop::NotifyOriginatorAgreementNoReply(const Mac48Address& recipient, uint8_t tid)
|
||||
{
|
||||
NS_LOG_FUNCTION(this << recipient << tid);
|
||||
|
||||
m_baManager->NotifyAgreementNoReply(recipient, tid);
|
||||
m_baManager->NotifyOriginatorAgreementNoReply(recipient, tid);
|
||||
// the recipient has been "unblocked" and transmissions can resume using normal
|
||||
// acknowledgment, hence start access (if needed) on all the links
|
||||
for (uint8_t linkId = 0; linkId < GetNLinks(); linkId++)
|
||||
@@ -730,7 +730,7 @@ QosTxop::AddBaResponseTimeout(Mac48Address recipient, uint8_t tid)
|
||||
if (auto agreement = m_baManager->GetAgreementAsOriginator(recipient, tid);
|
||||
agreement && agreement->get().IsPending())
|
||||
{
|
||||
NotifyAgreementNoReply(recipient, tid);
|
||||
NotifyOriginatorAgreementNoReply(recipient, tid);
|
||||
Simulator::Schedule(m_failedAddBaTimeout, &QosTxop::ResetBa, this, recipient, tid);
|
||||
}
|
||||
}
|
||||
@@ -746,7 +746,7 @@ QosTxop::ResetBa(Mac48Address recipient, uint8_t tid)
|
||||
if (auto agreement = m_baManager->GetAgreementAsOriginator(recipient, tid);
|
||||
agreement && !agreement->get().IsEstablished())
|
||||
{
|
||||
m_baManager->NotifyAgreementReset(recipient, tid);
|
||||
m_baManager->NotifyOriginatorAgreementReset(recipient, tid);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -204,7 +204,7 @@ class QosTxop : public Txop
|
||||
* \param recipient the intended recipient of the ADDBA_REQUEST frame
|
||||
* \param tid the TID
|
||||
*/
|
||||
void NotifyAgreementNoReply(const Mac48Address& recipient, uint8_t tid);
|
||||
void NotifyOriginatorAgreementNoReply(const Mac48Address& recipient, uint8_t tid);
|
||||
/**
|
||||
* Callback when ADDBA response is not received after timeout.
|
||||
*
|
||||
|
||||
@@ -173,7 +173,7 @@ AmpduAggregationTest::DoRun()
|
||||
reqHdr.SetBufferSize(64);
|
||||
reqHdr.SetTimeout(0);
|
||||
reqHdr.SetStartingSequence(0);
|
||||
m_mac->GetBEQueue()->GetBaManager()->CreateAgreement(&reqHdr, hdr.GetAddr1());
|
||||
m_mac->GetBEQueue()->GetBaManager()->CreateOriginatorAgreement(&reqHdr, hdr.GetAddr1());
|
||||
|
||||
MgtAddBaResponseHeader respHdr;
|
||||
StatusCode code;
|
||||
@@ -184,7 +184,7 @@ AmpduAggregationTest::DoRun()
|
||||
respHdr.SetTid(reqHdr.GetTid());
|
||||
respHdr.SetBufferSize(64);
|
||||
respHdr.SetTimeout(reqHdr.GetTimeout());
|
||||
m_mac->GetBEQueue()->GetBaManager()->UpdateAgreement(&respHdr, hdr.GetAddr1(), 0);
|
||||
m_mac->GetBEQueue()->GetBaManager()->UpdateOriginatorAgreement(&respHdr, hdr.GetAddr1(), 0);
|
||||
|
||||
//-----------------------------------------------------------------------------------------------------
|
||||
|
||||
@@ -501,7 +501,7 @@ TwoLevelAggregationTest::DoRun()
|
||||
reqHdr.SetBufferSize(64);
|
||||
reqHdr.SetTimeout(0);
|
||||
reqHdr.SetStartingSequence(0);
|
||||
m_mac->GetVIQueue()->GetBaManager()->CreateAgreement(&reqHdr, hdr.GetAddr1());
|
||||
m_mac->GetVIQueue()->GetBaManager()->CreateOriginatorAgreement(&reqHdr, hdr.GetAddr1());
|
||||
|
||||
MgtAddBaResponseHeader respHdr;
|
||||
StatusCode code;
|
||||
@@ -512,7 +512,7 @@ TwoLevelAggregationTest::DoRun()
|
||||
respHdr.SetTid(reqHdr.GetTid());
|
||||
respHdr.SetBufferSize(64);
|
||||
respHdr.SetTimeout(reqHdr.GetTimeout());
|
||||
m_mac->GetVIQueue()->GetBaManager()->UpdateAgreement(&respHdr, hdr.GetAddr1(), 0);
|
||||
m_mac->GetVIQueue()->GetBaManager()->UpdateOriginatorAgreement(&respHdr, hdr.GetAddr1(), 0);
|
||||
|
||||
m_mac->SetAttribute("VI_MaxAmsduSize", UintegerValue(3050)); // max 2 MSDUs per A-MSDU
|
||||
m_mac->SetAttribute("VI_MaxAmpduSize", UintegerValue(65535));
|
||||
@@ -694,7 +694,7 @@ HeAggregationTest::DoRunSubTest(uint16_t bufferSize)
|
||||
reqHdr.SetBufferSize(bufferSize);
|
||||
reqHdr.SetTimeout(0);
|
||||
reqHdr.SetStartingSequence(0);
|
||||
m_mac->GetBEQueue()->GetBaManager()->CreateAgreement(&reqHdr, hdr.GetAddr1());
|
||||
m_mac->GetBEQueue()->GetBaManager()->CreateOriginatorAgreement(&reqHdr, hdr.GetAddr1());
|
||||
|
||||
MgtAddBaResponseHeader respHdr;
|
||||
StatusCode code;
|
||||
@@ -705,7 +705,7 @@ HeAggregationTest::DoRunSubTest(uint16_t bufferSize)
|
||||
respHdr.SetTid(reqHdr.GetTid());
|
||||
respHdr.SetBufferSize(bufferSize);
|
||||
respHdr.SetTimeout(reqHdr.GetTimeout());
|
||||
m_mac->GetBEQueue()->GetBaManager()->UpdateAgreement(&respHdr, hdr.GetAddr1(), 0);
|
||||
m_mac->GetBEQueue()->GetBaManager()->UpdateOriginatorAgreement(&respHdr, hdr.GetAddr1(), 0);
|
||||
|
||||
/*
|
||||
* Test behavior when 300 packets are ready for transmission but negociated buffer size is 64
|
||||
|
||||
Reference in New Issue
Block a user