diff --git a/src/wifi/model/he/he-frame-exchange-manager.cc b/src/wifi/model/he/he-frame-exchange-manager.cc index 2937bf8ae..804dd9499 100644 --- a/src/wifi/model/he/he-frame-exchange-manager.cc +++ b/src/wifi/model/he/he-frame-exchange-manager.cc @@ -54,6 +54,14 @@ IsTrigger(const WifiPsduMap& psduMap) psduMap.cbegin()->second->GetHeader(0).IsTrigger(); } +bool +IsTrigger(const WifiConstPsduMap& psduMap) +{ + return psduMap.size() == 1 && psduMap.cbegin()->first == SU_STA_ID && + psduMap.cbegin()->second->GetNMpdus() == 1 && + psduMap.cbegin()->second->GetHeader(0).IsTrigger(); +} + TypeId HeFrameExchangeManager::GetTypeId() { diff --git a/src/wifi/model/he/he-frame-exchange-manager.h b/src/wifi/model/he/he-frame-exchange-manager.h index 4af144568..035b17929 100644 --- a/src/wifi/model/he/he-frame-exchange-manager.h +++ b/src/wifi/model/he/he-frame-exchange-manager.h @@ -51,6 +51,13 @@ typedef std::unordered_map /* PSDU */> */ bool IsTrigger(const WifiPsduMap& psduMap); +/** + * \param psduMap a PSDU map + * \return true if the given PSDU map contains a single PSDU including a single MPDU + * that carries a Trigger Frame + */ +bool IsTrigger(const WifiConstPsduMap& psduMap); + /** * \ingroup wifi *