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