Compound Module PIMRouting

Package: inet.routing.pim
File: src/inet/routing/pim/PIMRouting.ned

(no description)

PIMSplitter PIMDM PIMSM PIMInterfaceTable PIMNeighborTable

Usage diagram:

The following diagram shows usage relationships between types. Unresolved types are missing from the diagram.

Inheritance diagram:

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

Parameters:

Name Type Default value Description
interfaceTableModule string
routingTableModule string

Properties:

Name Value Description
display i=block/network2;bgl=4;bgb=350,207

Gates:

Name Direction Size Description
networkLayerIn input
networkLayerOut output

Unassigned submodule parameters:

Name Type Default value Description
pimSplitter.interfaceTableModule string
pimSplitter.pimInterfaceTableModule string
pimDM.interfaceTableModule string
pimDM.routingTableModule string
pimDM.pimInterfaceTableModule string
pimDM.pimNeighborTableModule string
pimDM.holdTime double 3.5 * helloPeriod
pimSM.interfaceTableModule string
pimSM.routingTableModule string
pimSM.pimInterfaceTableModule string
pimSM.pimNeighborTableModule string
pimSM.RP string ""
pimSM.designatedRouterPriority int -1
pimSM.holdTime double 3.5 * helloPeriod
pimSM.joinPrunePeriod double 60s

period between Join/Prune messages (called t_periodic in the RFC)

pimInterfaceTable.interfaceTableModule string
pimInterfaceTable.pimConfig xml xml("")

Source code:

module PIMRouting like IPIMRouting
{
    parameters:
        @display("i=block/network2;bgl=4;bgb=350,207");
        string interfaceTableModule;
        string routingTableModule;
        *.interfaceTableModule = default(interfaceTableModule);
        *.routingTableModule = default(routingTableModule);
        *.pimInterfaceTableModule = default("^.pimInterfaceTable");
        *.pimNeighborTableModule = default("^.pimNeighborTable");

    gates:
        input networkLayerIn;
        output networkLayerOut;

    submodules:
        pimSplitter: PIMSplitter {
            parameters:
                @display("p=69,95");
        }

        pimDM: PIMDM {
            parameters:
                @display("p=165,142");
        }

        pimSM: PIMSM {
            parameters:
                @display("p=165,56");
        }

        pimInterfaceTable: PIMInterfaceTable {
            parameters:
                @display("p=268,56");
        }

        pimNeighborTable: PIMNeighborTable {
            parameters:
                @display("p=268,142");
        }

    connections:

        // pimDM
        pimSplitter.pimDMOut --> pimDM.ipIn;
        pimSplitter.pimDMIn <-- pimDM.ipOut;

        // pimSM
        pimSplitter.pimSMOut --> pimSM.ipIn;
        pimSplitter.pimSMIn <-- pimSM.ipOut;

        // splitter out
        pimSplitter.ipOut --> networkLayerOut;
        pimSplitter.ipIn <-- networkLayerIn;
}