Igmpv3

Package: inet.networklayer.ipv4

Igmpv3

simple module

(no description)

Igmpv3

Inheritance diagram

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

Parameters

Name Type Default value Description
enabled bool true
interfaceTableModule string
routingTableModule string
crcMode string "declared"
robustnessVariable int 2

IGMP is roboust to (roboustnessVariable-1) packet loss

queryInterval double 125s
queryResponseInterval double 10s
groupMembershipInterval double (robustnessVariable * queryInterval) + queryResponseInterval
otherQuerierPresentInterval double (robustnessVariable * queryInterval) + (queryResponseInterval / 2)
startupQueryInterval double queryInterval / 4
startupQueryCount int robustnessVariable
lastMemberQueryInterval double 1s
lastMemberQueryCount int robustnessVariable
unsolicitedReportInterval double 10s

Properties

Name Value Description
display i=block/cogwheel

double version1RouterPresentInterval @unit(s) = default(400s);

Gates

Name Direction Size Description
ipIn input

delivered IGMP packets

ipOut output

to Ipv4

routerIn input
routerOut output

Source code

simple Igmpv3 like IIgmp
{
    parameters:
        bool enabled = default(true);
        string interfaceTableModule;
        string routingTableModule;
        string crcMode @enum("declared","computed") = default("declared");
        int robustnessVariable = default(2); // IGMP is roboust to (roboustnessVariable-1) packet loss
        double queryInterval @unit(s) = default(125s);
        double queryResponseInterval @unit(s) = default(10s);
        double groupMembershipInterval @unit(s) = default((robustnessVariable * queryInterval) + queryResponseInterval);
        double otherQuerierPresentInterval @unit(s) = default((robustnessVariable * queryInterval) + (queryResponseInterval / 2));
        double startupQueryInterval @unit(s) = default(queryInterval / 4);
        int startupQueryCount = default(robustnessVariable);
        double lastMemberQueryInterval @unit(s) = default(1s);
        int lastMemberQueryCount = default(robustnessVariable);
        double unsolicitedReportInterval @unit(s) = default(10s);
        //      double version1RouterPresentInterval @unit(s) = default(400s);
        @display("i=block/cogwheel");

    gates:
        input ipIn @labels(Ipv4ControlInfo/up);  // delivered IGMP packets
        output ipOut @labels(Ipv4ControlInfo/down); // to ~Ipv4

        input routerIn @labels(Ipv4ControlInfo/up);
        output routerOut @labels(Ipv4ControlInfo/down);
}

File: src/inet/networklayer/ipv4/Igmpv3.ned