Package: inet.queueing.contract
IPacketQueue
module interfaceThis module interface is implemented by packet queue modules. A packet queue is a passive module which has one passive input and one passive output. Packets pushed into the passive input are either stored or dropped. Packets popped from the passive output are provided from the stored packets.
Inheritance diagram
The following diagram shows inheritance relationships for this type. Unresolved types are missing from the diagram.
Implemented by
Name | Type | Description |
---|---|---|
CompoundPacketQueue | compound module |
This compound module serves as a base module for complex packet queues formed by combining several queueing components. |
CompoundPendingQueue | compound module | (no description) |
DiffservQueue | compound module |
This is an example queue, that can be used in interfaces of DS core and edge nodes to support the AFxy (RFC 2597) and EF (RFC 3246) PHBs. |
DropHeadQueue | simple module |
This is a limited packet queue which drops packets at the head of the queue. |
DropTailQueue | simple module |
This module is a limited packet queue which drops packets at the tail of the queue. |
EtherQosQueue | compound module |
Queue module that gives the PAUSE frames a higher priority, and can be parametrized with an IPacketQueue for serving the data frames. |
EtherQosRedQueue | compound module |
Queue module that gives the PAUSE frames a higher priority, and using Random Early Detection algorithm on data frames, and can be parametrized with an IPacketQueue for serving the data frames. |
EtherQueue | compound module |
Queue module that gives the PAUSE frames a higher priority. |
PacketQueue | simple module |
This module implements a widely configurable packet queue, which is suitable among others, to be used in MAC protocols, traffic conditioning, and quality of services. This module can be used on its own, but it's also often supplemented by additional queueing components such as servers, classifiers, schedulers, multiplexers, etc. This kind of composition allows to form a larger module which can act as a packet queue with more complex behavior. |
PendingQueue | simple module | (no description) |
PriorityQueue | compound module |
This module implements a priority queue with multiple inner queues and an optional shared memory buffer. |
RedDropperQueue | compound module |
Combines a packet queue with random early detection (RED) dropper. |
Used in compound modules
Name | Type | Description |
---|---|---|
AckingMac | compound module |
This module implements a trivial MAC protocol for use in AckingWirelessInterface. |
BMac | compound module |
Implementation of B-MAC (called also Berkeley MAC, Low Power Listening or LPL). See C++ documentation for details. |
CsmaCaMac | compound module |
Implements an imaginary CSMA/CA-based MAC protocol with optional acknowledgements and a retry mechanism. With the appropriate settings, it can approximate basic 802.11b ad-hoc mode operation. |
Dcaf | compound module | (no description) |
Edcaf | compound module |
IEEE 802.11 Enhanced Distributed Channel Access Function |
EtherMac | compound module |
Ethernet MAC layer. MAC performs transmission and reception of frames. See the IEtherMac for the Ethernet MAC layer general informations. Doesn't do encapsulation/decapsulation; see Ieee8022Llc and EtherEncap for that. |
EtherMacFullDuplex | compound module |
Ethernet MAC which supports full-duplex operation ONLY. See the IEtherMac for general informations. |
EtherQosQueue | compound module |
Queue module that gives the PAUSE frames a higher priority, and can be parametrized with an IPacketQueue for serving the data frames. |
EtherQosRedQueue | compound module |
Queue module that gives the PAUSE frames a higher priority, and using Random Early Detection algorithm on data frames, and can be parametrized with an IPacketQueue for serving the data frames. |
Ieee802154Mac | compound module |
Generic CSMA protocol supporting Mac-ACKs as well as constant, linear or exponential backoff times. |
LeakyBucket | compound module |
This module implements a parameterizable leaky bucket algorithm. |
LMac | compound module |
Implementation of L-MAC (Lightweight Medium Access Protocol for Wireless Sensor Networks). |
PacketHistory | compound module |
This module connects one packet producer to one packet consumer. It can be pushed with packets from the connected packet producer. It keeps a copy of the last N packets pushed into its input. The packets are available in the runtime user interface (Qtenv) for inspection. |
Ppp | compound module |
PPP implementation. |
PriorityQueue | compound module |
This module implements a priority queue with multiple inner queues and an optional shared memory buffer. |
RedDropperQueue | compound module |
Combines a packet queue with random early detection (RED) dropper. |
RequestConsumer | compound module |
This module processes incoming packets one by one in the order they arrive. First it classifies a packet according to the configured classifier function, then it generates tokens for the selected category in the configured response producer. |
TokenBucket | compound module |
This module implements a parameterizable token bucket algorithm. |
XMac | compound module |
Implementation of X-MAC. See C++ documentation for details. |
Extends
Name | Type | Description |
---|---|---|
IPassivePacketSink | module interface |
This module interface must be implemented by passive packet sink modules. A passive packet sink, also called a consumer, has one input that must be connected to an active packet source module. The connected active packet source is expected to push packets into the passive packet sink over time. |
IPassivePacketSource | module interface |
This module interface must be implemented by passive packet source modules. A passive packet source, also called a provider, has one output that must be connected to an active packet sink module. The connected active packet sink is expected to pop packets from the passive packet source over time. |
Properties
Name | Value | Description |
---|---|---|
display | i=block/queue |
Source code
// // This module interface is implemented by packet queue modules. A packet queue // is a passive module which has one passive input and one passive output. // Packets pushed into the passive input are either stored or dropped. Packets // popped from the passive output are provided from the stored packets. // moduleinterface IPacketQueue extends IPassivePacketSink, IPassivePacketSource { parameters: @display("i=block/queue"); }File: src/inet/queueing/contract/IPacketQueue.ned