wifi: Rename BlockAckManager methods to indicate that they refer to the originator side

This commit is contained in:
Stefano Avallone
2022-10-19 16:02:41 +02:00
committed by Stefano Avallone
parent c8ad2f4d45
commit e7dbd9ff45
6 changed files with 53 additions and 51 deletions

View File

@@ -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));

View File

@@ -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.
*

View File

@@ -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,

View File

@@ -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);
}
}

View File

@@ -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.
*

View File

@@ -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