Igmpv3
Package: inet.networklayer.ipv4
Igmpv3
simple module(no description)
Inheritance diagram
The following diagram shows inheritance relationships for this type. Unresolved types are missing from the diagram.
Extends
| Name | Type | Description |
|---|---|---|
| SimpleModule | simple module |
Base module for all INET simple modules. |
Parameters
| Name | Type | Default value | Description |
|---|---|---|---|
| displayStringTextFormat | string | "" |
Determines the text that is written on top of the submodule, supports displaying pars, watches, and module-specific information |
| enabled | bool | true | |
| interfaceTableModule | string | ||
| routingTableModule | string | ||
| checksumMode | string | "declared" | |
| robustnessVariable | int | 2 |
IGMP is robust to (robustnessVariable-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 |
|---|---|---|
| class | Igmpv3 | |
| display | i=block/cogwheel |
double version1RouterPresentInterval @unit(s) = default(400s); |
| selfMessageKinds | inet::IgmpTimerKind |
Gates
| Name | Direction | Size | Description |
|---|---|---|---|
| ipIn | input |
Delivered IGMP packets |
|
| ipOut | output |
To ~Ipv4 |
|
| routerIn | input | ||
| routerOut | output |
Source code
simple Igmpv3 extends SimpleModule like IIgmp { parameters: @class(Igmpv3); bool enabled = default(true); string interfaceTableModule; string routingTableModule; string checksumMode @enum("declared","computed") = default("declared"); int robustnessVariable = default(2); // IGMP is robust to (robustnessVariable-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"); @selfMessageKinds(inet::IgmpTimerKind); 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