A Discrete-Event Network Simulator
API
Loading...
Searching...
No Matches
eht-frame-exchange-manager.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2022 Universita' degli Studi di Napoli Federico II
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License version 2 as
6 * published by the Free Software Foundation;
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program; if not, write to the Free Software
15 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16 *
17 * Author: Stefano Avallone <stavallo@unina.it>
18 */
19
20#ifndef EHT_FRAME_EXCHANGE_MANAGER_H
21#define EHT_FRAME_EXCHANGE_MANAGER_H
22
23#include "ns3/he-frame-exchange-manager.h"
24#include "ns3/mgt-headers.h"
25
26namespace ns3
27{
28
36{
37 public:
42 static TypeId GetTypeId();
44 ~EhtFrameExchangeManager() override;
45
46 void SetLinkId(uint8_t linkId) override;
48
57
67 std::optional<double> GetMostRecentRssi(const Mac48Address& address) const override;
68
77 uint16_t aid,
78 const Mac48Address& address) const;
79
80 protected:
81 void ForwardPsduDown(Ptr<const WifiPsdu> psdu, WifiTxVector& txVector) override;
82 void ForwardPsduMapDown(WifiConstPsduMap psduMap, WifiTxVector& txVector) override;
83 void SendMuRts(const WifiTxParameters& txParams) override;
84 void NotifyChannelReleased(Ptr<Txop> txop) override;
85
96 void EmlsrSwitchToListening(const Mac48Address& address, const Time& delay);
97};
98
99} // namespace ns3
100
101#endif /* EHT_FRAME_EXCHANGE_MANAGER_H */
EhtFrameExchangeManager handles the frame exchange sequences for EHT stations.
void ForwardPsduMapDown(WifiConstPsduMap psduMap, WifiTxVector &txVector) override
Forward a map of PSDUs down to the PHY layer.
void ForwardPsduDown(Ptr< const WifiPsdu > psdu, WifiTxVector &txVector) override
Forward a PSDU down to the PHY layer.
Ptr< WifiMpdu > CreateAliasIfNeeded(Ptr< WifiMpdu > mpdu) const override
Create an alias of the given MPDU for transmission by this Frame Exchange Manager.
void SendMuRts(const WifiTxParameters &txParams) override
Send an MU-RTS to begin an MU-RTS/CTS frame exchange protecting an MU PPDU.
bool GetEmlsrSwitchToListening(Ptr< const WifiPsdu > psdu, uint16_t aid, const Mac48Address &address) const
static TypeId GetTypeId()
Get the type ID.
void NotifyChannelReleased(Ptr< Txop > txop) override
Notify the given Txop that channel has been released.
void EmlsrSwitchToListening(const Mac48Address &address, const Time &delay)
This method is intended to be called when an AP MLD detects that an EMLSR client previously involved ...
std::optional< double > GetMostRecentRssi(const Mac48Address &address) const override
Get the RSSI (in dBm) of the most recent packet received from the station having the given address.
void SendEmlOperatingModeNotification(const Mac48Address &dest, const MgtEmlOperatingModeNotification &frame)
Send an EML Operating Mode Notification frame to the given station.
void SetLinkId(uint8_t linkId) override
Set the ID of the link this Frame Exchange Manager is associated with.
HeFrameExchangeManager handles the frame exchange sequences for HE stations.
an EUI-48 address
Definition: mac48-address.h:46
Implement the header for Action frames of type EML Operating Mode Notification.
Definition: mgt-headers.h:1113
Smart pointer class similar to boost::intrusive_ptr.
Definition: ptr.h:78
Simulation virtual time values and global simulation resolution.
Definition: nstime.h:105
a unique identifier for an interface.
Definition: type-id.h:59
This class stores the TX parameters (TX vector, protection mechanism, acknowledgment mechanism,...
This class mimics the TXVECTOR which is to be passed to the PHY in order to define the parameters whi...
Every class exported by the ns3 library is enclosed in the ns3 namespace.
std::unordered_map< uint16_t, Ptr< const WifiPsdu > > WifiConstPsduMap
Map of const PSDUs indexed by STA-ID.