1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
//! Internet Group Management Protocol (IGMP, RFC 1112 / RFC 2236 / RFC 3376) AST definitions.
//!
//! Defines IPv4 host-to-router multicast group membership signaling carried directly over IPv4
//! protocol `2` (`0x02`). The 8-byte IGMPv2 (RFC 2236) message header consists of an 8-bit `Type`
//! (`0x11` Membership `QUERY`, `0x16` v2 Membership `REPORT`, `0x17` `LEAVE` Group), an 8-bit
//! `Max Resp Time` in tenths of a second (`MAX_RESP`, default `100` = 10.0s for Queries, `0` for
//! Reports and Leaves), a 16-bit ones'-complement `Checksum`, and a 32-bit `Group Address` (`GROUP`,
//! default `224.0.0.1` for General Queries, `239.1.1.1` for Reports, and `224.0.0.2` for Leaves).
//!
//! Canonical `.fasm` syntax:
//! `a -> b IGMP [QUERY | REPORT | LEAVE] [GROUP <ipv4>] [MAX_RESP <u8>] [V1 | V2 | V3]`
use PhantomData;
use IpAddr;
/// RFC 2236 / RFC 3376 IGMP message type code.
/// Internet Group Management Protocol (RFC 2236 / RFC 3376) specification over IPv4 protocol `2`.
///
/// Syntax mapping: `IGMP [QUERY | REPORT | LEAVE] [GROUP <ipv4>] [MAX_RESP <u8>] [V1 | V2 | V3]`