A Discrete-Event Network Simulator
Home
Tutorials ▼
English
Documentation ▼
Installation
Manual
Models
Contributing
Wiki
Development ▼
API Docs
Issue Tracker
Merge Requests
API
Loading...
Searching...
No Matches
vht-frame-exchange-manager.cc
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2020 Universita' degli Studi di Napoli Federico II
3
*
4
* SPDX-License-Identifier: GPL-2.0-only
5
*
6
* Author: Stefano Avallone <stavallo@unina.it>
7
*/
8
9
#include "
vht-frame-exchange-manager.h
"
10
11
#include "ns3/abort.h"
12
#include "ns3/log.h"
13
14
#undef NS_LOG_APPEND_CONTEXT
15
#define NS_LOG_APPEND_CONTEXT WIFI_FEM_NS_LOG_APPEND_CONTEXT
16
17
namespace
ns3
18
{
19
20
NS_LOG_COMPONENT_DEFINE
(
"VhtFrameExchangeManager"
);
21
22
NS_OBJECT_ENSURE_REGISTERED
(VhtFrameExchangeManager);
23
24
TypeId
25
VhtFrameExchangeManager::GetTypeId
()
26
{
27
static
TypeId
tid =
TypeId
(
"ns3::VhtFrameExchangeManager"
)
28
.
SetParent
<
HtFrameExchangeManager
>()
29
.AddConstructor<VhtFrameExchangeManager>()
30
.SetGroupName(
"Wifi"
);
31
return
tid;
32
}
33
34
VhtFrameExchangeManager::VhtFrameExchangeManager
()
35
{
36
NS_LOG_FUNCTION
(
this
);
37
}
38
39
VhtFrameExchangeManager::~VhtFrameExchangeManager
()
40
{
41
NS_LOG_FUNCTION_NOARGS
();
42
}
43
44
Ptr<WifiPsdu>
45
VhtFrameExchangeManager::GetWifiPsdu
(
Ptr<WifiMpdu>
mpdu,
const
WifiTxVector
& txVector)
const
46
{
47
return
Create<WifiPsdu>
(mpdu, txVector.
GetModulationClass
() >=
WIFI_MOD_CLASS_VHT
);
48
}
49
50
uint32_t
51
VhtFrameExchangeManager::GetPsduSize
(
Ptr<const WifiMpdu>
mpdu,
const
WifiTxVector
& txVector)
const
52
{
53
return
(txVector.
GetModulationClass
() >=
WIFI_MOD_CLASS_VHT
54
?
MpduAggregator::GetSizeIfAggregated
(mpdu->GetSize(), 0)
55
:
HtFrameExchangeManager::GetPsduSize
(mpdu, txVector));
56
}
57
58
}
// namespace ns3
ns3::FrameExchangeManager::GetPsduSize
virtual uint32_t GetPsduSize(Ptr< const WifiMpdu > mpdu, const WifiTxVector &txVector) const
Get the size in bytes of the given MPDU, which is to be transmitted with the given TXVECTOR.
Definition
frame-exchange-manager.cc:606
ns3::HtFrameExchangeManager
HtFrameExchangeManager handles the frame exchange sequences for HT stations.
Definition
ht-frame-exchange-manager.h:32
ns3::MpduAggregator::GetSizeIfAggregated
static uint32_t GetSizeIfAggregated(uint32_t mpduSize, uint32_t ampduSize)
Compute the size of the A-MPDU resulting from the aggregation of an MPDU of size mpduSize and an A-MP...
Definition
mpdu-aggregator.cc:111
ns3::Ptr
Smart pointer class similar to boost::intrusive_ptr.
Definition
mpi-test-fixtures.h:37
ns3::TypeId
a unique identifier for an interface.
Definition
type-id.h:48
ns3::TypeId::SetParent
TypeId SetParent(TypeId tid)
Set the parent TypeId.
Definition
type-id.cc:1001
ns3::VhtFrameExchangeManager::~VhtFrameExchangeManager
~VhtFrameExchangeManager() override
Definition
vht-frame-exchange-manager.cc:39
ns3::VhtFrameExchangeManager::GetTypeId
static TypeId GetTypeId()
Get the type ID.
Definition
vht-frame-exchange-manager.cc:25
ns3::VhtFrameExchangeManager::GetWifiPsdu
Ptr< WifiPsdu > GetWifiPsdu(Ptr< WifiMpdu > mpdu, const WifiTxVector &txVector) const override
Get a PSDU containing the given MPDU.
Definition
vht-frame-exchange-manager.cc:45
ns3::VhtFrameExchangeManager::VhtFrameExchangeManager
VhtFrameExchangeManager()
Definition
vht-frame-exchange-manager.cc:34
ns3::VhtFrameExchangeManager::GetPsduSize
uint32_t GetPsduSize(Ptr< const WifiMpdu > mpdu, const WifiTxVector &txVector) const override
Get the size in bytes of the given MPDU, which is to be transmitted with the given TXVECTOR.
Definition
vht-frame-exchange-manager.cc:51
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:101
ns3::WifiTxVector::GetModulationClass
WifiModulationClass GetModulationClass() const
Get the modulation class specified by this TXVECTOR.
Definition
wifi-tx-vector.cc:148
uint32_t
NS_LOG_COMPONENT_DEFINE
#define NS_LOG_COMPONENT_DEFINE(name)
Define a Log component with a specific name.
Definition
log.h:191
NS_LOG_FUNCTION_NOARGS
#define NS_LOG_FUNCTION_NOARGS()
Output the name of the function.
Definition
log-macros-enabled.h:195
NS_LOG_FUNCTION
#define NS_LOG_FUNCTION(parameters)
If log level LOG_FUNCTION is enabled, this macro will output all input parameters separated by ",...
Definition
log-macros-enabled.h:229
NS_OBJECT_ENSURE_REGISTERED
#define NS_OBJECT_ENSURE_REGISTERED(type)
Register an Object subclass with the TypeId system.
Definition
object-base.h:35
ns3::Create
Ptr< T > Create(Ts &&... args)
Create class instances by constructors with varying numbers of arguments and return them by Ptr.
Definition
ptr.h:436
ns3::WIFI_MOD_CLASS_VHT
@ WIFI_MOD_CLASS_VHT
VHT (Clause 22)
Definition
wifi-phy-common.h:257
ns3
Every class exported by the ns3 library is enclosed in the ns3 namespace.
vht-frame-exchange-manager.h
src
wifi
model
vht
vht-frame-exchange-manager.cc
Generated on Fri Nov 8 2024 13:59:08 for ns-3 by
1.11.0