25 static TypeId tid =
TypeId(
"ns3::FcfsWifiQueueScheduler")
48 SetPriority(ac, queueId, {item->GetTimestamp(), queueId.type});
56 std::set<WifiContainerQueueId> queueIds;
58 for (
const auto& mpdu : mpdus)
63 for (
const auto& queueId : queueIds)
67 SetPriority(ac, queueId, {item->GetTimestamp(), queueId.type});
77 std::set<WifiContainerQueueId> queueIds;
79 for (
const auto& mpdu : mpdus)
84 for (
const auto& queueId : queueIds)
88 SetPriority(ac, queueId, {item->GetTimestamp(), queueId.type});
FcfsWifiQueueScheduler is a wifi queue scheduler that serves data frames in a first come first serve ...
static TypeId GetTypeId()
Get the type ID.
void DoNotifyEnqueue(AcIndex ac, Ptr< WifiMpdu > mpdu) override
Notify the scheduler that the given MPDU has been enqueued by the given Access Category.
void DoNotifyDequeue(AcIndex ac, const std::list< Ptr< WifiMpdu > > &mpdus) override
Notify the scheduler that the given list of MPDUs have been dequeued by the given Access Category.
void DoNotifyRemove(AcIndex ac, const std::list< Ptr< WifiMpdu > > &mpdus) override
Notify the scheduler that the given list of MPDUs have been removed by the given Access Category.
Smart pointer class similar to boost::intrusive_ptr.
a unique identifier for an interface.
TypeId SetParent(TypeId tid)
Set the parent TypeId.
static WifiContainerQueueId GetQueueId(Ptr< const WifiMpdu > mpdu)
Return the QueueId identifying the container queue in which the given MPDU is (or is to be) enqueued.
Ptr< WifiMacQueue > GetWifiMacQueue(AcIndex ac) const
WifiMacQueueSchedulerImpl()
void SetPriority(AcIndex ac, const WifiContainerQueueId &queueId, const WifiSchedPrecedence< Time > &priority)
#define NS_ASSERT(condition)
At runtime, in debugging builds, if this condition is not true, the program prints the source file,...
#define NS_LOG_COMPONENT_DEFINE(name)
Define a Log component with a specific name.
#define NS_LOG_TEMPLATE_DEFINE(name)
Initialize a reference to a Log component.
#define NS_LOG_FUNCTION(parameters)
If log level LOG_FUNCTION is enabled, this macro will output all input parameters separated by ",...
#define NS_OBJECT_ENSURE_REGISTERED(type)
Register an Object subclass with the TypeId system.
AcIndex
This enumeration defines the Access Categories as an enumeration with values corresponding to the AC ...
Every class exported by the ns3 library is enclosed in the ns3 namespace.