PimSplitter

Package: inet.routing.pim

PimSplitter

simple module

PimSplitter module dispatches PIM packets received from the network layer according to the PIM mode of the incoming interface. Bu using a PimSplitter it is possible to build nodes that operates in Dense Mode on some interfaces, and in Sparse Mode on others.

See Pim module for example usage.

Used in compound modules

Name Type Description
Pim compound module (no description)

Parameters

Name Type Default value Description
interfaceTableModule string
pimInterfaceTableModule string

Properties

Name Value Description
display i=block/dispatch

Gates

Name Direction Size Description
ipIn input
ipOut output
pimDMIn input
pimDMOut output
pimSMIn input
pimSMOut output

Direct method calls (observed)

call tofunctioninfo
MessageDispatcherinet::MessageDispatcher::arrivedarrived

Incoming messages (observed)

gatemsgkindctrlsrcModuletags
ipInPacket0Ipv4DispatchProtocolReq, DscpInd, EcnInd, HopLimitInd, InterfaceInd, L3AddressInd, MacAddressInd, NetworkProtocolInd, PacketProtocolTag, TosInd
pimDMInPacket0PimDmDispatchProtocolInd, DispatchProtocolReq, HopLimitReq, InterfaceReq, L3AddressReq, PacketProtocolTag
pimSMInPacket0PimSmDispatchProtocolReq, HopLimitReq, InterfaceReq, L3AddressReq, PacketProtocolTag, DispatchProtocolInd?, DscpInd?, EcnInd?, HopLimitInd?, InterfaceInd?, L3AddressInd?, MacAddressInd?, NetworkProtocolInd?, TosInd?

Outgoing messages (observed)

gatemsgkindctrldestModuletags
ipOutPacket0Ipv4DispatchProtocolReq, HopLimitReq, InterfaceReq, L3AddressReq, PacketProtocolTag, DispatchProtocolInd?, DscpInd?, EcnInd?, HopLimitInd?, InterfaceInd?, L3AddressInd?, MacAddressInd?, NetworkProtocolInd?, TosInd?
pimDMOutPacket0PimDmDispatchProtocolReq, DscpInd, EcnInd, HopLimitInd, InterfaceInd, L3AddressInd, MacAddressInd, NetworkProtocolInd, PacketProtocolTag, TosInd
pimSMOutPacket0PimSmDispatchProtocolReq, DscpInd, EcnInd, HopLimitInd, InterfaceInd, L3AddressInd, MacAddressInd, NetworkProtocolInd, PacketProtocolTag, TosInd

Packet operations (observed)

chunkTypepacketAction
PimPacketpeekAtFront

Shared Tagging operations (observed)

tagTypetagAction
DispatchProtocolReqaddTagIfAbsent
InterfaceIndgetTag
PacketProtocolTaggetTag

Source code

//
// ~PimSplitter module dispatches PIM packets received from the network layer
// according to the PIM mode of the incoming interface. Bu using a ~PimSplitter
// it is possible to build nodes that operates in Dense Mode on some interfaces,
// and in Sparse Mode on others.
//
// See ~Pim module for example usage.
//
simple PimSplitter
{
    parameters:
        @display("i=block/dispatch");
        string interfaceTableModule;
        string pimInterfaceTableModule;

    gates:
        input ipIn;
        output ipOut;
        input pimDMIn;
        output pimDMOut;
        input pimSMIn;
        output pimSMOut;
}

File: src/inet/routing/pim/PimSplitter.ned