diff --git a/src/wifi/CMakeLists.txt b/src/wifi/CMakeLists.txt index 655723406..6e89c38d5 100644 --- a/src/wifi/CMakeLists.txt +++ b/src/wifi/CMakeLists.txt @@ -27,6 +27,7 @@ set(source_files model/channel-access-manager.cc model/ctrl-headers.cc model/edca-parameter-set.cc + model/eht/advanced-ap-emlsr-manager.cc model/eht/advanced-emlsr-manager.cc model/eht/ap-emlsr-manager.cc model/eht/default-ap-emlsr-manager.cc @@ -189,6 +190,7 @@ set(header_files model/channel-access-manager.h model/ctrl-headers.h model/edca-parameter-set.h + model/eht/advanced-ap-emlsr-manager.h model/eht/advanced-emlsr-manager.h model/eht/ap-emlsr-manager.h model/eht/default-ap-emlsr-manager.h diff --git a/src/wifi/helper/wifi-helper.cc b/src/wifi/helper/wifi-helper.cc index ab3ec1962..433211f80 100644 --- a/src/wifi/helper/wifi-helper.cc +++ b/src/wifi/helper/wifi-helper.cc @@ -885,6 +885,7 @@ WifiHelper::EnableLogComponents(LogLevel logLevel) LogComponentEnable("AarfWifiManager", logLevel); LogComponentEnable("AarfcdWifiManager", logLevel); LogComponentEnable("AdhocWifiMac", logLevel); + LogComponentEnable("AdvancedApEmlsrManager", logLevel); LogComponentEnable("AdvancedEmlsrManager", logLevel); LogComponentEnable("AmrrWifiManager", logLevel); LogComponentEnable("ApEmlsrManager", logLevel); diff --git a/src/wifi/model/eht/advanced-ap-emlsr-manager.cc b/src/wifi/model/eht/advanced-ap-emlsr-manager.cc new file mode 100644 index 000000000..1376d5738 --- /dev/null +++ b/src/wifi/model/eht/advanced-ap-emlsr-manager.cc @@ -0,0 +1,51 @@ +/* + * Copyright (c) 2024 Universita' di Napoli Federico II + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation; + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * Author: Stefano Avallone + */ + +#include "advanced-ap-emlsr-manager.h" + +#include "ns3/log.h" + +namespace ns3 +{ + +NS_LOG_COMPONENT_DEFINE("AdvancedApEmlsrManager"); + +NS_OBJECT_ENSURE_REGISTERED(AdvancedApEmlsrManager); + +TypeId +AdvancedApEmlsrManager::GetTypeId() +{ + static TypeId tid = TypeId("ns3::AdvancedApEmlsrManager") + .SetParent() + .SetGroupName("Wifi") + .AddConstructor(); + return tid; +} + +AdvancedApEmlsrManager::AdvancedApEmlsrManager() +{ + NS_LOG_FUNCTION(this); +} + +AdvancedApEmlsrManager::~AdvancedApEmlsrManager() +{ + NS_LOG_FUNCTION_NOARGS(); +} + +} // namespace ns3 diff --git a/src/wifi/model/eht/advanced-ap-emlsr-manager.h b/src/wifi/model/eht/advanced-ap-emlsr-manager.h new file mode 100644 index 000000000..af6ff1efb --- /dev/null +++ b/src/wifi/model/eht/advanced-ap-emlsr-manager.h @@ -0,0 +1,48 @@ +/* + * Copyright (c) 2024 Universita' di Napoli Federico II + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation; + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * Author: Stefano Avallone + */ + +#ifndef ADVANCED_AP_EMLSR_MANAGER_H +#define ADVANCED_AP_EMLSR_MANAGER_H + +#include "default-ap-emlsr-manager.h" + +namespace ns3 +{ + +/** + * \ingroup wifi + * + * AdvancedApEmlsrManager is an advanced AP EMLSR manager. + */ +class AdvancedApEmlsrManager : public DefaultApEmlsrManager +{ + public: + /** + * \brief Get the type ID. + * \return the object TypeId + */ + static TypeId GetTypeId(); + + AdvancedApEmlsrManager(); + ~AdvancedApEmlsrManager() override; +}; + +} // namespace ns3 + +#endif /* ADVANCED_AP_EMLSR_MANAGER_H */