CompoundPendingQueue.ned
NED File src/inet/linklayer/ieee80211/mac/queue/CompoundPendingQueue.ned
| Name | Type | Description |
|---|---|---|
| CompoundPendingQueue | compound module |
Implements a prioritized queue system for IEEE 802.11 MAC frames. Uses a classifier to separate incoming packets into three queues: management frames (highest priority), multicast frames (medium priority), and unicast frames (lowest priority). A priority scheduler then selects packets from these queues in order of priority. |
Source code
// // Copyright (C) 2020 OpenSim Ltd. // // SPDX-License-Identifier: LGPL-3.0-or-later // package inet.linklayer.ieee80211.mac.queue; import inet.queueing.classifier.PacketClassifier; import inet.queueing.queue.CompoundPacketQueueBase; import inet.queueing.queue.PacketQueue; import inet.queueing.scheduler.PriorityScheduler; // // Implements a prioritized queue system for IEEE 802.11 MAC frames. Uses a classifier // to separate incoming packets into three queues: management frames (highest priority), // multicast frames (medium priority), and unicast frames (lowest priority). A priority // scheduler then selects packets from these queues in order of priority. // // @see PendingQueue // module CompoundPendingQueue extends CompoundPacketQueueBase { parameters: packetCapacity = default(100); // -1 means unlimited submodules: classifier: PacketClassifier { parameters: classifierClass = default("inet::ieee80211::MgmtOverDataClassifier"); // MgmtOverDataClassifier, MgmtOverMulticastOverUnicastClassifier, ... @display("p=100,200"); } managementQueue: PacketQueue { parameters: @display("p=300,100"); } multicastQueue: PacketQueue { parameters: @display("p=300,200"); } unicastQueue: PacketQueue { parameters: @display("p=300,300"); } prioritizer: PriorityScheduler { parameters: @display("p=500,200"); } connections: in --> classifier.in; classifier.out++ --> managementQueue.in; classifier.out++ --> multicastQueue.in; classifier.out++ --> unicastQueue.in; managementQueue.out --> prioritizer.in++; multicastQueue.out --> prioritizer.in++; unicastQueue.out --> prioritizer.in++; prioritizer.out --> out; }