PreemptableStreamer

Package: inet.protocolelement.common

PreemptableStreamer

simple module

This module takes packets passed to its input and streams them to its output.

Inheritance diagram

The following diagram shows inheritance relationships for this type. Unresolved types are missing from the diagram.

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 "processed %p pk (%l)"

determines the text that is written on top of the submodule

clockModule string ""

relative path of a module that implements IClock; optional

datarate double nan bps
minPacketLength int
roundingLength int 1B

Properties

Name Value Description
display i=block/cogwheel
class PreemptableStreamer

Gates

Name Direction Size Description
in input
out output

Direct method calls (observed)

call tofunctioninfo
EthernetFcsCheckerinet::EthernetFcsChecker::pullPacketpullPacket
EthernetFragmentFcsInserterinet::EthernetFragmentFcsInserter::handleCanPullPacketChangedhandleCanPullPacketChanged

Called methods (observed)

functioninfocall from
inet::PreemptableStreamer::handleCanPullPacketChangedhandleCanPullPacketChangedEthernetFcsChecker
inet::PreemptableStreamer::pullPacketEndpullPacketEndEthernetFragmentFcsInserter
inet::PreemptableStreamer::pullPacketStartpullPacketStartEthernetFragmentFcsInserter

Pull in messages (observed)

gatemsgkindctrlsrcModuletags
inPacket0EthernetFcsCheckerDirectionTag, DispatchProtocolInd, EncapsulationProtocolReq, InterfaceReq, MacAddressReq, MulticastReq, NetworkProtocolInd, PacketProtocolTag, TransportProtocolInd, VlanReq

Pulled out messages (observed)

gatemsgkindctrldestModuletags
outPacket0EthernetFragmentFcsInserterDirectionTag, DispatchProtocolInd, EncapsulationProtocolReq, FragmentTag, InterfaceReq, MacAddressReq, MulticastReq, NetworkProtocolInd, TransportProtocolInd, VlanReq, PacketProtocolTag?

Packet operations (observed)

chunkTypepacketAction
ByteCountChunkPacket
ChunkremoveAtBack

Shared Tagging operations (observed)

tagTypetagAction
FragmentTagaddTag, findTagForUpdate, getTagForUpdate
PacketProtocolTagremoveTagIfPresent

Source code

//
// This module takes packets passed to its input and streams them to its output.
//
simple PreemptableStreamer extends PacketProcessorBase like IPacketFlow
{
    parameters:
        string clockModule = default(""); // relative path of a module that implements IClock; optional
        double datarate @unit(bps) = default(nan bps);
        int minPacketLength @unit(b);
        int roundingLength @unit(b) = default(1B);
        @class(PreemptableStreamer);
        @display("i=block/cogwheel");
    gates:
        input in @labels(send,push,pull,pass);
        output out @labels(send,push,pull,stream);
}
File: src/inet/protocolelement/common/PreemptableStreamer.ned