Namespace inet
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.
Extends
Name | Type | Description |
---|---|---|
Igmpv2Query | (unknown -- not in documented files) |
Fields
Name | Type | Description |
---|---|---|
chunkLength |
12 + sourceListArraySize * 4 |
|
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 |
Packet operations (observed)
action | module |
---|---|
insertAtFront | Igmpv3 |
peekAtFront | Igmpv3 |
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