wifi: Extend groupcast retransmission policies for GCR Block ACK

This commit is contained in:
Sébastien Deronne
2023-09-15 16:05:52 +02:00
parent c60bfb010b
commit b02d628f16
2 changed files with 9 additions and 2 deletions

View File

@@ -41,7 +41,9 @@ GcrManager::GetTypeId()
MakeEnumChecker(GroupAddressRetransmissionPolicy::NO_ACK_NO_RETRY,
"NO_RETRY",
GroupAddressRetransmissionPolicy::GCR_UNSOLICITED_RETRY,
"GCR_UR"))
"GCR_UR",
GroupAddressRetransmissionPolicy::GCR_BLOCK_ACK,
"GCR_BA"))
.AddAttribute(
"GcrProtectionMode",
"Protection mode used for groupcast frames when needed: "
@@ -175,6 +177,10 @@ GcrManager::KeepGroupcastQueued(Ptr<WifiMpdu> mpdu)
NS_ASSERT_MSG(m_retransmissionPolicy != GroupAddressRetransmissionPolicy::NO_ACK_NO_RETRY,
"GCR service is not enabled");
NS_ASSERT_MSG(!m_staMembers.empty(), "GCR service should not be used");
if (m_retransmissionPolicy == GroupAddressRetransmissionPolicy::GCR_BLOCK_ACK)
{
return !mpdu->GetHeader().IsRetry() && !m_nonGcrStas.empty();
}
if (!m_mpdu || !mpdu->GetHeader().IsRetry())
{
m_unsolicitedRetryCounter = 0;

View File

@@ -29,7 +29,8 @@ class WifiMpdu;
enum class GroupAddressRetransmissionPolicy : uint8_t
{
NO_ACK_NO_RETRY = 0,
GCR_UNSOLICITED_RETRY
GCR_UNSOLICITED_RETRY,
GCR_BLOCK_ACK
};
/// Groupcast protection mode enumeration