PIMRouting

Package: inet.routing.pim

PIMRouting

compound module

(no description)

pimSplitter : PIMSplitter

PIMSplitter module dispatches PIM packets received from the network layer according to the PIM mode...

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

Implementation of PIM-DM protocol (RFC 3973).

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

Implementation of PIM-SM protocol (RFC 4601).

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

The PIMInterfaceTable module contains the PIM specific configuration parameters and state of the...

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

The PIMNeighborTable module contains information about neighboring PIM routers.

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

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(this.interfaceTableModule);
        *.routingTableModule = default(this.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;
}
File: src/inet/routing/pim/PIMRouting.ned