A Discrete-Event Network Simulator
API
wifi-default-protection-manager.h
Go to the documentation of this file.
1 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
2 /*
3  * Copyright (c) 2020 Universita' degli Studi di Napoli Federico II
4  *
5  * This program is free software; you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License version 2 as
7  * published by the Free Software Foundation;
8  *
9  * This program is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  * GNU General Public License for more details.
13  *
14  * You should have received a copy of the GNU General Public License
15  * along with this program; if not, write to the Free Software
16  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17  *
18  * Author: Stefano Avallone <stavallo@unina.it>
19  */
20 
21 #ifndef WIFI_DEFAULT_PROTECTION_MANAGER_H
22 #define WIFI_DEFAULT_PROTECTION_MANAGER_H
23 
25 
26 
27 namespace ns3 {
28 
29 class WifiTxParameters;
30 class WifiMacQueueItem;
31 class WifiMacHeader;
32 
40 {
41 public:
46  static TypeId GetTypeId (void);
47 
50 
51  virtual std::unique_ptr<WifiProtection> TryAddMpdu (Ptr<const WifiMacQueueItem> mpdu,
52  const WifiTxParameters& txParams) override;
53  virtual std::unique_ptr<WifiProtection> TryAggregateMsdu (Ptr<const WifiMacQueueItem> msdu,
54  const WifiTxParameters& txParams) override;
55 
56 protected:
65  virtual std::unique_ptr<WifiProtection> GetPsduProtection (const WifiMacHeader& hdr, uint32_t size,
66  const WifiTxVector& txVector) const;
67 };
68 
69 } //namespace ns3
70 
71 #endif /* WIFI_DEFAULT_PROTECTION_MANAGER_H */
ns3::TypeId
a unique identifier for an interface.
Definition: type-id.h:59
ns3
Every class exported by the ns3 library is enclosed in the ns3 namespace.
wifi-protection-manager.h
ns3::WifiDefaultProtectionManager::WifiDefaultProtectionManager
WifiDefaultProtectionManager()
Definition: wifi-default-protection-manager.cc:45
ns3::WifiTxVector
This class mimics the TXVECTOR which is to be passed to the PHY in order to define the parameters whi...
Definition: wifi-tx-vector.h:71
ns3::WifiDefaultProtectionManager::TryAggregateMsdu
virtual std::unique_ptr< WifiProtection > TryAggregateMsdu(Ptr< const WifiMacQueueItem > msdu, const WifiTxParameters &txParams) override
Determine the protection method to use if the given MSDU is aggregated to the current frame.
Definition: wifi-default-protection-manager.cc:87
ns3::WifiTxParameters
This class stores the TX parameters (TX vector, protection mechanism, acknowledgment mechanism,...
Definition: wifi-tx-parameters.h:45
ns3::WifiMacHeader
Implements the IEEE 802.11 MAC header.
Definition: wifi-mac-header.h:85
ns3::Ptr
Smart pointer class similar to boost::intrusive_ptr.
Definition: ptr.h:74
ns3::WifiDefaultProtectionManager::TryAddMpdu
virtual std::unique_ptr< WifiProtection > TryAddMpdu(Ptr< const WifiMacQueueItem > mpdu, const WifiTxParameters &txParams) override
Determine the protection method to use if the given MPDU is added to the current frame.
Definition: wifi-default-protection-manager.cc:56
ns3::WifiDefaultProtectionManager::GetTypeId
static TypeId GetTypeId(void)
Get the type ID.
Definition: wifi-default-protection-manager.cc:35
ns3::WifiDefaultProtectionManager::~WifiDefaultProtectionManager
virtual ~WifiDefaultProtectionManager()
Definition: wifi-default-protection-manager.cc:50
ns3::WifiDefaultProtectionManager
WifiDefaultProtectionManager is the default protection manager, which selects the protection method f...
Definition: wifi-default-protection-manager.h:40
ns3::WifiProtectionManager
WifiProtectionManager is an abstract base class.
Definition: wifi-protection-manager.h:42
ns3::WifiDefaultProtectionManager::GetPsduProtection
virtual std::unique_ptr< WifiProtection > GetPsduProtection(const WifiMacHeader &hdr, uint32_t size, const WifiTxVector &txVector) const
Select the protection method for a single PSDU.
Definition: wifi-default-protection-manager.cc:118