Igmpv3Query¶
Namespace: inet
class Igmpv3Query
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.
Usage diagram¶
Inheritance diagram¶
Extends¶
Name |
Type |
Description |
|---|---|---|
class |
(no description) |
Fields¶
Name |
Type |
Description |
|---|---|---|
id |
int |
|
mutable |
bool |
|
complete |
bool |
|
correct |
bool |
|
properlyRepresented |
bool |
|
chunkLength |
||
rawBin |
string[] |
|
rawHex |
string[] |
|
regionTags |
||
type |
1 byte |
|
checksum |
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). |
checksumMode |
0 bytes, inet only |
|
type |
||
groupAddress |
||
chunkLength |
||
maxRespTimeCode |
uint8_t |
stored in |
chunkLength |
12 + sourceListArraySize * 4 maxRespTime stored in |
|
resv |
uint8_t |
4 bit |
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 |
16 + n*32 bit |
Properties¶
Name |
Value |
Description |
|---|---|---|
beforeChange |
handleChange() |
|
descriptor |
readonly |
|
existingClass |
||
packetData |
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
}