26#include "ns3/packet.h"
38 return std::pow(10.0, 0.1 * dB);
44 return std::pow(10.0, 0.1 * (dBm - 30.0));
50 return 10.0 * std::log10(w) + 30.0;
56 return 10.0 * std::log10(ratio);
99 userInfo.SetMuBarTriggerDepUserInfo(bar);
123 return ((seq - winstart + 4096) % 4096) < winsize;
130 packet->AddTrailer(fcs);
140 size = packet->GetSize();
153 if (dlLinkMapping.empty() && ulLinkMapping.empty())
159 if (dlLinkMapping.size() != 8 || ulLinkMapping.size() != 8)
165 const auto& linkSet = dlLinkMapping.cbegin()->second;
167 for (
const auto& linkMapping : {std::cref(dlLinkMapping), std::cref(ulLinkMapping)})
169 for (
const auto& [tid, links] : linkMapping.get())
171 if (links != linkSet)
Smart pointer class similar to boost::intrusive_ptr.
Simulation virtual time values and global simulation resolution.
Implements the IEEE 802.11 MAC trailer.
uint32_t GetSerializedSize() const override
Time MicroSeconds(uint64_t value)
Construct a Time in the indicated unit.
Every class exported by the ns3 library is enclosed in the ns3 namespace.
double RatioToDb(double ratio)
Convert from ratio to dB.
double WToDbm(double w)
Convert from Watts to dBm.
const Time WIFI_TU
Wi-Fi Time Unit (see IEEE 802.11-2020 sec. 3.1)
uint32_t GetRtsSize()
Return the total RTS size (including FCS trailer).
double DbmToW(double dBm)
Convert from dBm to Watts.
uint32_t GetBlockAckRequestSize(BlockAckReqType type)
Return the total BlockAckRequest size (including FCS trailer).
constexpr int WIFI_TU_US
Wi-Fi Time Unit value in microseconds (see IEEE 802.11-2020 sec.
uint32_t GetMuBarSize(std::list< BlockAckReqType > types)
Return the total MU-BAR size (including FCS trailer).
bool TidToLinkMappingValidForNegType1(const WifiTidLinkMapping &dlLinkMapping, const WifiTidLinkMapping &ulLinkMapping)
Check if the given TID-to-Link Mappings are valid for a negotiation type of 1.
uint32_t GetBlockAckSize(BlockAckType type)
Return the total BlockAck size (including FCS trailer).
void AddWifiMacTrailer(Ptr< Packet > packet)
Add FCS trailer to a packet.
std::map< uint8_t, std::set< uint8_t > > WifiTidLinkMapping
TID-indexed map of the link set to which the TID is mapped.
uint32_t GetAckSize()
Return the total Ack size (including FCS trailer).
uint32_t GetSize(Ptr< const Packet > packet, const WifiMacHeader *hdr, bool isAmpdu)
Return the total size of the packet after WifiMacHeader and FCS trailer have been added.
double DbToRatio(double dB)
Convert from dB to ratio.
uint32_t GetCtsSize()
Return the total CTS size (including FCS trailer).
bool IsInWindow(uint16_t seq, uint16_t winstart, uint16_t winsize)
The different BlockAckRequest variants.
The different BlockAck variants.