Package: inet.queueing.contract
IPassivePacketSource
module interfaceThis 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 pull packets from the passive packet source over time.
See also: PassivePacketSource, PacketQueue, PacketScheduler, IActivePacketSink
Inheritance diagram
The following diagram shows inheritance relationships for this type. Unresolved types are missing from the diagram.
Implemented by
Name | Type | Description |
---|---|---|
CompoundPacketQueueBase | 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) |
ContentBasedScheduler | simple module |
This module connects one packet collector to multiple packet providers. It can be pulled for packets by the connected packet collector. When this happens, the scheduler pulls a packet from one of its packet providers based on the configured packet filters. The first matching expression determines the index of the input gate. |
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. |
EligibilityTimeQueue | simple module |
This module is a packet queue that keeps the packets in ascending order based on the eligibility time in the attached EligibilityTimeTag of the packets. |
EmptyPacketSource | simple module |
This module is an active/passive empty packet source. It doesn't push packets into the connected module, and it doesn't allow packets to be pulled from it by the connected module. The output gate generates backpressure for pull packet operations. |
EthernetGatingQueue | compound module | (no description) |
EthernetPriorityQueue | compound module | (no description) |
EthernetQosQueue | compound module |
Queue module that gives the PAUSE frames a higher priority, and can be parametrized with an IPacketQueue for serving the data frames. |
EthernetQosRedQueue | 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. |
EthernetQueue | compound module |
Queue module that gives the PAUSE frames a higher priority. |
GatingPriorityQueue | compound module |
This module implements a priority queue with multiple inner queues each having its own periodic gate for packet selection and an optional shared memory buffer. |
Ieee8021qTimeAwareShaper | compound module |
This module implements the IEEE 802.1Q time aware shaper. |
InProgressQueue | simple module | (no description) |
LabelScheduler | simple module |
This module schedules packets based on the attached labels in a LabelsTag. |
MarkovScheduler | simple module |
This module implements a packet scheduler using a Markov process that has as many states as input gates the scheduler has. The input gate for the next packet is determined by the current state of the Markov process. |
OmittedPacketQueue | compound module |
This module implements the module given interface and can be used as an omitted optional module that removes itself from the module hierarchy during initialize. |
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. |
PacketScheduler | simple module |
This module connects one packet collector to multiple packet providers. It can be pulled for packets by the connected packet collector. When this happens, the scheduler pulls a packet from one of its packet providers based on the configured scheduler function. The packet scheduler function takes a list of packet providers and returns an integer which in turn is used for determining the input gate. |
PassivePacketSource | simple module |
This module is a passive packet source which can be pulled for packets from the connected packet collector. |
PendingQueue | simple module | (no description) |
PriorityQueue | compound module |
This module implements a priority queue with multiple inner queues and an optional shared memory buffer. |
PriorityScheduler | simple module |
This scheduler pulls packets from the first non-empty among its connected packet providers. |
PriorityShaper | compound module |
This module combines a classifier, a scheduler and several traffic shapers into a single packet shaper. Packets are classified into one of the traffic shapers and the scheduler prioritizes among them. |
RedDropperQueue | compound module |
Combines a packet queue with random early detection (RED) dropper. |
WrrScheduler | simple module |
This module implements weighted round-robin scheduling. |
Used in compound modules
Name | Type | Description |
---|---|---|
QueueFiller | compound module |
This module produces packets in order to prevent a queue from becoming empty. |
TelnetServerConnection | compound module |
This module contains a configurable pre-composed telnet traffic source and traffic sink as part of a telnet server application. |
Known subclasses
Name | Type | Description |
---|---|---|
IPacketPuller | module interface |
This module interface is implemented by packet pullers. A packet puler connects one input to one output. Packets can be pulled from its output and it pulls packets from its input. |
IPacketQueue | module interface |
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 pulled from the passive output are provided from the stored packets. |
IPacketScheduler | module interface |
This module interface is implemented by packet scheduler modules. A packet scheduler is a passive module which has multiple active inputs and one passive output. Packets pulled from the passive output are provided by one of the inputs without any delay and reordering. |
Properties
Name | Value | Description |
---|---|---|
display | i=block/source |
Source code
// // 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 pull packets from the passive packet source over time. // // @see ~PassivePacketSource, ~PacketQueue, ~PacketScheduler, ~IActivePacketSink // moduleinterface IPassivePacketSource { parameters: @display("i=block/source"); gates: output out @labels(pull); }File: src/inet/queueing/contract/IPassivePacketSource.ned