Package: inet.queueing.base
PacketFilterBase
simple moduleThis is a base module for various packet filter modules. Derived modules must implement a single packet matcher function which determines if a packet is to be passed through or filtered out.
See also: IPacketFilter
Inheritance diagram
The following diagram shows inheritance relationships for this type. Unresolved types are missing from the diagram.
Known subclasses
Name | Type | Description |
---|---|---|
ContentBasedFilter | simple module |
This module filters for packets matching the configured filter criteria. When the filter is pushed by a connected packet producer, it either pushes the packet to the connected packet consumer or drops it depending on the configured packet filter. Similarily, when the filter is popped by a connected packet collector, it pops packets from the connected packet provider until it finds one which matches the configured packet filter. |
OrdinalBasedDropper | simple module |
This module drops packets based on the ordinal number of the packet in the received stream of packets. |
PacketFilter | simple module |
This module filters for packets matching the configured filter criteria. When the filter is pushed by a connected packet producer, it either pushes the packet to the connected packet consumer or drops it depending on the configured packet filter. Similarily, when the filter is popped by a connected packet collector, it pops packets from the connected packet provider until it finds one which matches the configured packet filter. |
RateLimiter | simple module |
This module limit the datarate or the packetrate of a stream of packets based on the RateTag attached to the packets. |
RedDropper | simple module |
This module implements Random Early Detection (RED). |
Extends
Name | Type | Description |
---|---|---|
PacketProcessorBase | simple module |
This is a base module for various packet processing modules which maintains a few statistics. |
Parameters
Name | Type | Default value | Description |
---|---|---|---|
displayStringTextFormat | string | "dropped %d/%p pk (%k/%l)" |
determines the text that is written on top of the submodule |
Properties
Name | Value | Description |
---|---|---|
display | i=block/downarrow |
Gates
Name | Direction | Size | Description |
---|---|---|---|
in | input | ||
out | output |
Signals
Name | Type | Unit |
---|---|---|
packetPushed | inet::Packet | |
packetDropped | inet::Packet | |
packetPopped | inet::Packet |
Statistics
Name | Title | Source | Record | Unit | Interpolation Mode |
---|---|---|---|---|---|
packetPushed | packets pushed | count, sum(packetBytes), vector(packetBytes) | none | ||
packetDropped | packets dropped | count, sum(packetBytes), vector(packetBytes) | none | ||
packetPopped | packets popped | count, sum(packetBytes), vector(packetBytes) | none |
Source code
// // This is a base module for various packet filter modules. Derived modules must // implement a single packet matcher function which determines if a packet is to // be passed through or filtered out. // // @see ~IPacketFilter // simple PacketFilterBase extends PacketProcessorBase { parameters: displayStringTextFormat = default("dropped %d/%p pk (%k/%l)"); // determines the text that is written on top of the submodule @display("i=block/downarrow"); @signal[packetPushed](type=inet::Packet); @signal[packetPopped](type=inet::Packet); @signal[packetDropped](type=inet::Packet); @statistic[packetPushed](title="packets pushed"; record=count,sum(packetBytes),vector(packetBytes); interpolationmode=none); @statistic[packetPopped](title="packets popped"; record=count,sum(packetBytes),vector(packetBytes); interpolationmode=none); @statistic[packetDropped](title="packets dropped"; record=count,sum(packetBytes),vector(packetBytes); interpolationmode=none); gates: input in; output out; }File: src/inet/queueing/base/PacketFilterBase.ned