Igmpv3Query
classIgmpv3Query extends Igmpv2Query, because Igmpv2 routers must accept Igmpv3Query packets.
Note: in Igmpv3Query the maxResponseTime field is renamed to maxResponseCode and it is interpreted differently than in Igmpv2.
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.
Extends
Name | Type | Description |
---|---|---|
Igmpv2Query | class |
FIXME Igmpv1Query and Igmpv2Query differs only value of code field. |
Fields
Name | Type | Description |
---|---|---|
chunkLength | b | |
resv | uint8_t |
maxRespTime stored in `code` in units of 1/10 second 0-127: 0-12.7s 128-255: 1eeemmmm : (mant | 0x10) << (exp + 3) |
suppressRouterProc | bool |
1 bit, S flag |
robustnessVariable | uint8_t |
3 bit, QRV |
queryIntervalCode | uint8_t |
8 bit, QQIC, in seconds, format similar to macRespTime (0nnnnnnn or 1eeemmmm) |
sourceList | Ipv4AddressVector |
16 + n*32 bit |
maxRespTimeCode | uint8_t |
stored in `code` in units of 1/10 second, 0.1-25.5s |
type | IgmpType |
1 byte |
groupAddress | Ipv4Address | |
crc | uint16_t |
2 bytes, The checksum is the 16-bit one's complement of the one's complement sum of the whole IGMP message (the entire IP payload). |
crcMode | CrcMode |
0 bytes, inet only |
mutable | bool | |
complete | bool | |
correct | bool | |
properlyRepresented | bool | |
rawBin | string[] | |
rawHex | string[] | |
tags | RegionTagSet::cObjectRegionTag[] |
Source code
// // Igmpv3Query extends Igmpv2Query, because // Igmpv2 routers must accept Igmpv3Query packets. // // Note: in Igmpv3Query the maxResponseTime field is // renamed to maxResponseCode and it is interpreted // differently than in Igmpv2. class Igmpv3Query extends Igmpv2Query { chunkLength = B(12); // 12 + sourceListArraySize * 4 // maxRespTime stored in `code` in units of 1/10 second // 0-127: 0-12.7s // 128-255: 1eeemmmm : (mant | 0x10) << (exp + 3) uint8_t resv = 0; // 4 bit bool suppressRouterProc; // 1 bit, S flag uint8_t robustnessVariable; // 3 bit, QRV uint8_t queryIntervalCode; // 8 bit, QQIC, in seconds, format similar to macRespTime (0nnnnnnn or 1eeemmmm) Ipv4AddressVector sourceList; // 16 + n*32 bit }File: src/inet/networklayer/ipv4/IgmpMessage.msg