15#include "ns3/packet.h"
27 return std::pow(10.0, 0.1 * val);
33 return std::pow(10.0, 0.1 * (val - 30.0));
40 return 10.0 * std::log10(val) + 30.0;
46 return 10.0 * std::log10(ratio);
89 userInfo.SetMuBarTriggerDepUserInfo(bar);
113 return ((seq - winstart + 4096) % 4096) < winsize;
120 packet->AddTrailer(fcs);
130 size = packet->GetSize();
143 if (dlLinkMapping.empty() && ulLinkMapping.empty())
149 if (dlLinkMapping.size() != 8 || ulLinkMapping.size() != 8)
155 const auto& linkSet = dlLinkMapping.cbegin()->second;
157 for (
const auto& linkMapping : {std::cref(dlLinkMapping), std::cref(ulLinkMapping)})
159 for (
const auto& [tid, links] : linkMapping.get())
161 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
#define NS_ASSERT(condition)
At runtime, in debugging builds, if this condition is not true, the program prints the source file,...
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.
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).
dB_u RatioToDb(double ratio)
Convert from ratio to dB.
dBm_u WToDbm(Watt_u val)
Convert from Watts to dBm.
bool IsGroupcast(const Mac48Address &adr)
Check whether a MAC destination address corresponds to a groupcast transmission.
std::map< uint8_t, std::set< uint8_t > > WifiTidLinkMapping
TID-indexed map of the link set to which the TID is mapped.
double dBm_u
dBm weak type
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.
double DbToRatio(dB_u val)
Convert from dB to ratio.
uint32_t GetMuBarSize(std::list< BlockAckReqType > types)
Return the total MU-BAR size (including FCS trailer).
Watt_u DbmToW(dBm_u val)
Convert from dBm to Watts.
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.
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 Watt_u
Watt weak type.
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.