IGMP - Internet Group Management Protocol
What is IGMP?
IGMP stands for Internet Group Management Protocol. It’s a communication protocol used by devices and routers to manage multicast group memberships on IPv4 networks. It allows devices to join or leave multicast groups, enabling efficient delivery of data to multiple recipients.
Why is IGMP useful?
IGMP is essential for multicast communication, where data is sent to multiple devices simultaneously without sending separate copies to each one.
This is useful for:
Streaming media (like IPTV)
Online gaming
Real-time data feeds (like stock tickers or live sports scores)
How it works?
Device wants to join a multicast group – It sends an IGMP Membership Report to the router.
Router listens – The router keeps track of which devices are interested in which multicast groups.
Multicast data is sent – The router forwards multicast traffic only to the devices that requested it.
Leaving the group – When a device no longer wants the data, it sends a Leave Group message.
Where is IGMP used?
IPTV and video conferencing – To deliver the same video stream to many viewers efficiently.
Online multiplayer games – For real-time updates to multiple players.
Financial services – For distributing live market data to many clients.
Enterprise networks – For internal broadcasts like training or announcements.
Which OSI layer does this protocol belong to?
Works with IP multicast addresses (Class D addresses: 224.0.0.0 to 239.255.255.255).
Manages group membership for multicast routing.
Interacts directly with routers and IP-level multicast mechanisms.
Topics in this section,
In this section, you are going to learn
Terminology
Version Info
Version & RFC Details |
|||
---|---|---|---|
IGMP Version |
RFC Version |
Year |
Core Idea / Contribution |
IGMPv1 |
|||
RFC 1112 |
1989 |
Standardized IGMPv1; introduced multicast group join mechanism. |
|
IGMPv2 |
|||
RFC 2236 |
1997 |
Defined IGMPv2; added Leave Group messages and Group-Specific Queries. |
|
IGMPv3 |
|||
RFC 3376 |
2001 |
Introduced IGMPv3; added Source-Specific Multicast (SSM) with include/exclude filtering. |
|
RFC 4541 |
2006 |
Guidelines for switches implementing IGMP snooping. |
|
RFC 4605 |
2006 |
Describes multicast forwarding using IGMP/MLD without full routing protocols. |
|
RFC 9776 |
2025 |
Clarifies and updates RFC 3376; latest standard for IGMPv3 behavior. |
Setup
Setup
IGMP Membership Query Packet
S.No |
Protocol Packets |
Description |
Size(bytes) |
---|---|---|---|
1 |
IGMP Membership Query |
Sent by multicast routers to learn which groups have |
8 |
members on an attached network. |
|||
Type |
Specifies the type of IGMP message |
1 |
|
0x11-Indiactes a Membership Query |
|||
Max Response Time |
Specifies the maximum allowed time a host can |
1 |
|
wait before sending a corresponding report. |
|||
Checksum |
used for error-checking the IGMP message,Verifies |
2 |
|
packet integrity |
|||
Group Address |
All zeroes for a general query or the specific multicast |
4 |
|
group address for a group-specific query. |
IGMP Membership Report Packet
S.No |
Protocol Packets |
Description |
Size(bytes) |
---|---|---|---|
2 |
IGMP Membership Report |
Sent by hosts to indicate membership in a multicast |
7 |
group |
|||
Type |
Specifies the type of IGMP message |
1 |
|
0x16-Indiactes a Membership Report |
|||
Max Response Time |
Not used in Membership Report messages. |
0 |
|
Checksum |
Calculated over the IGMP message |
2 |
|
Group Address |
Contains the multicast group address. |
4 |
IGMP Leave Group Packet
S.No |
Protocol Packets |
Description |
Size(bytes) |
---|---|---|---|
3 |
IGMP Leave Group |
Sent by hosts to indicate they are leaving a multicast |
7 |
group. |
|||
Type |
Specifies the type of IGMP message |
1 |
|
0x17-Indiactes a Leave Group |
|||
Max Response Time |
Not used in Leave Group messages. |
0 |
|
Checksum |
Calculated over the IGMP message |
2 |
|
Group Address |
Contains the multicast group address. |
4 |
IGMP - Use Cases |
||
---|---|---|
S.no |
Use Case |
Description |
1 |
IPTV (Internet Protocol Television) |
igmp is used by set-top boxes to join or leave multicast groups for live TV channels, enabling efficient streaming without overloading the network. |
2 |
Video Conferencing |
In enterprise networks, igmp helps manage multicast streams for real-time video conferencing, ensuring only interested participants receive the stream. |
3 |
Online Gaming |
Multiplayer games use multicast for real-time updates. igmp ensures only players in a session receive relevant game data. |
4 |
Financial Market Data Distribution |
Stock exchanges use multicast to distribute real-time market data to subscribers. IGMP helps manage group memberships efficiently. |
5 |
Software Updates in Enterprise Networks |
Organizations use multicast to push software updates to multiple systems simultaneously. igmp ensures only intended devices receive the updates. |
6 |
Smart Grid Communications |
Utility companies use multicast for real-time data distribution to smart meters and control systems. igmp manages group memberships dynamically. |
7 |
Surveillance Systems |
IP cameras stream video to multiple monitoring stations using multicast. igmp ensures only active viewers receive the feed. |
8 |
Digital Signage |
Multicast is used to distribute content to multiple digital signs. igmp helps manage which signs receive which content. |
9 |
Virtual Reality (VR) Streaming |
In VR environments, multicast can be used to stream synchronized content to multiple users. igmp manages group participation. |
10 |
Enterprise Training Broadcasts |
Companies use multicast for live training sessions. igmp ensures only employees who opt in receive the stream. |
IGMP - Basic Features |
||
---|---|---|
S.no |
Features |
Description |
1 |
Multicast Group Management |
IGMP allows hosts to join and leave multicast groups, enabling efficient delivery of data to multiple recipients. |
2 |
Efficient Bandwidth Usage |
By sending data only to interested receivers, IGMP helps reduce unnecessary network traffic. |
3 |
Host-Router Communication |
IGMP facilitates communication between hosts and local multicast routers to manage group memberships. |
4 |
Dynamic Membership |
Hosts can dynamically join or leave multicast groups at any time, allowing flexible participation. |
5 |
Version Compatibility |
IGMP supports multiple versions (v1, v2, v3), ensuring backward compatibility and feature enhancements. |
6 |
Query and Report Mechanism |
Routers send queries to discover group members, and hosts respond with membership reports. |
7 |
Leave Group Notification |
Hosts can notify routers when they leave a group, helping routers stop forwarding unnecessary traffic. |
8 |
Support for Source Filtering (v3/v4) |
IGMPv3 and igmp support source-specific multicast, allowing hosts to specify which sources they want to receive traffic from. |
9 |
Minimal Overhead |
IGMP messages are lightweight, minimizing the impact on network performance. |
10 |
Integration with Multicast Routing Protocols |
IGMP works with protocols like PIM (Protocol Independent Multicast) to build multicast distribution trees. |
Multicast Group Management - Testcases
Multicast Group Management - Test Cases |
|||
---|---|---|---|
# |
Test Case |
Description |
Expected Result |
1 |
Join Multicast Group |
Host sends IGMP Membership Report |
Host joins group successfully |
2 |
Leave Multicast Group |
Host sends IGMP Leave message |
Group membership removed |
3 |
Join Multiple Groups |
Host joins 5 multicast groups |
All groups joined successfully |
4 |
Leave One of Multiple Groups |
Host leaves one group |
Only that group is removed |
5 |
IGMPv1 Join |
Host sends IGMPv1 Membership Report |
Router accepts join |
6 |
IGMPv2 Join |
Host sends IGMPv2 Membership Report |
Router accepts join |
7 |
IGMPv3 Join |
Host sends IGMPv3 Membership Report |
Router accepts join |
8 |
IGMPv3 Source-Specific Join |
Join with specific source |
Router filters by source |
9 |
IGMPv3 Exclude Source Join |
Join excluding specific source |
Router filters accordingly |
10 |
IGMP Query Response |
Router sends query, host replies |
Membership Report received |
11 |
IGMP General Query |
Router sends general query |
All hosts respond |
12 |
IGMP Group-Specific Query |
Query for one group |
Only relevant hosts respond |
13 |
IGMP Group-and-Source-Specific Query |
Query for group and source |
Only matching hosts respond |
14 |
IGMP Leave Without Join |
Host sends Leave without join |
Router ignores |
15 |
IGMP Join Without Response |
Host joins but router doesn’t respond |
Join still processed |
16 |
IGMP Join with Invalid Group |
Join with invalid address |
Join rejected |
17 |
IGMP Leave with Invalid Group |
Leave with invalid address |
Leave ignored |
18 |
IGMP Join with TTL = 1 |
Send with TTL=1 |
Join accepted |
19 |
IGMP Join with TTL = 0 |
Send with TTL=0 |
Packet dropped |
20 |
IGMP Join with Fragmented Packet |
Send fragmented IGMP join |
Join processed correctly |
21 |
IGMP Join with Spoofed Source |
Fake source IP |
Router may log or drop |
22 |
IGMP Join Flood |
Send 100 joins/sec |
Router rate limits or logs |
23 |
IGMP Leave Flood |
Send 100 leaves/sec |
Router rate limits or logs |
24 |
IGMP Query Flood |
Router sends frequent queries |
Hosts respond within limits |
25 |
IGMP Join with Delay |
Delay Membership Report |
Router waits before pruning |
26 |
IGMP Join with Duplicate Report |
Send duplicate joins |
Router handles gracefully |
27 |
IGMP Leave with Duplicate Report |
Send duplicate leaves |
Router handles gracefully |
28 |
IGMP Join with Multicast Routing Enabled |
Join with PIM enabled |
Multicast traffic forwarded |
29 |
IGMP Join with Multicast Routing Disabled |
Join with PIM disabled |
No multicast forwarding |
30 |
IGMP Join with VLAN Tagging |
Join on tagged VLAN |
Join processed per VLAN |
31 |
IGMP Join with QoS |
Join with DSCP marking |
Join accepted |
32 |
IGMP Join with ACL Blocking |
ACL blocks IGMP |
Join fails |
33 |
IGMP Join with ACL Allowing |
ACL allows IGMP |
Join succeeds |
34 |
IGMP Join with Interface Down |
Interface down |
Join fails |
35 |
IGMP Join with Interface Up |
Interface up |
Join succeeds |
36 |
IGMP Join with CPU Load |
High CPU load |
Join still processed |
37 |
IGMP Join with Memory Pressure |
Low memory |
Join may be delayed |
38 |
IGMP Join with Router Reboot |
Reboot router |
Memberships re-established |
39 |
IGMP Join with Host Reboot |
Reboot host |
Host rejoins after boot |
40 |
IGMP Join with Multicast Application |
App joins group |
Join succeeds |
41 |
IGMP Leave with Multicast Application Exit |
App exits |
Leave sent |
42 |
IGMP Join with Static Group |
Static group configured |
No join needed |
43 |
IGMP Leave with Static Group |
Static group configured |
Leave ignored |
44 |
IGMP Join with Fast Leave Enabled |
Fast leave on interface |
Immediate pruning |
45 |
IGMP Join with Fast Leave Disabled |
Fast leave off |
Wait for query timeout |
46 |
IGMP Join with Multiple Hosts |
Multiple hosts join same group |
Router maintains group |
47 |
IGMP Leave with Last Host |
Last host leaves |
Router prunes group |
48 |
IGMP Leave with Other Hosts |
One host leaves, others remain |
Group maintained |
49 |
IGMP Join with Multicast Snooping |
Switch with snooping |
Traffic forwarded only to members |
50 |
IGMP Join with Snooping Disabled |
Snooping off |
Traffic flooded to all |
Efficient Bandwidth Usage - Testcases
Efficient Bandwidth Usage - Test Cases |
|||
---|---|---|---|
# |
Test Case |
Description |
Expected Result |
1 |
Single Host Join |
One host joins a multicast group |
Multicast traffic sent only to that host |
2 |
Multiple Hosts Same Group |
Multiple hosts join same group |
Traffic sent once per group, not per host |
3 |
Host Leaves Group |
Host leaves multicast group |
Traffic stops for that host |
4 |
All Hosts Leave Group |
All hosts leave group |
Multicast traffic pruned |
5 |
IGMP Snooping Enabled |
Switch with IGMP snooping |
Traffic forwarded only to member ports |
6 |
IGMP Snooping Disabled |
Switch without snooping |
Traffic flooded to all ports |
7 |
Join on One VLAN |
Join multicast on VLAN 10 |
Traffic scoped to VLAN 10 |
8 |
Join on Multiple VLANs |
Join same group on VLANs 10, 20 |
Traffic scoped per VLAN |
9 |
Join with Fast Leave |
Fast leave enabled |
Immediate pruning after leave |
10 |
Join with Fast Leave Disabled |
Fast leave disabled |
Wait for query timeout |
11 |
Join with Querier Present |
IGMP querier active |
Efficient group tracking |
12 |
Join with Querier Absent |
No querier |
Group state may become stale |
13 |
Join with Querier Election |
Multiple routers, one elected |
Only elected router sends queries |
14 |
Join with Low Query Interval |
Frequent queries |
Faster pruning, more control traffic |
15 |
Join with High Query Interval |
Infrequent queries |
Slower pruning, less control traffic |
16 |
Join with Robustness Value = 2 |
Default robustness |
Normal leave detection |
17 |
Join with Robustness Value = 5 |
Higher robustness |
More tolerance to packet loss |
18 |
Join with IGMPv3 Include Mode |
Include specific sources |
Traffic limited to selected sources |
19 |
Join with IGMPv3 Exclude Mode |
Exclude specific sources |
Traffic from excluded sources blocked |
20 |
Join with Source Filtering |
Join with source list |
Only desired sources allowed |
21 |
Join with No Source Filtering |
Join without source list |
All sources allowed |
22 |
Join with Multicast Routing Enabled |
PIM enabled |
Traffic routed efficiently |
23 |
Join with Multicast Routing Disabled |
PIM disabled |
No inter-subnet multicast |
24 |
Join with Static Group |
Static join on router |
Traffic always forwarded |
25 |
Leave with Static Group |
Static group remains |
Traffic not pruned |
26 |
Join with ACL Blocking Multicast |
ACL blocks group |
No traffic forwarded |
27 |
Join with ACL Allowing Multicast |
ACL allows group |
Traffic forwarded |
28 |
Join with Bandwidth Monitoring |
Monitor multicast bandwidth |
Usage drops after leave |
29 |
Join with Multicast Storm |
Flood multicast traffic |
IGMP limits unnecessary flooding |
30 |
Join with Multicast Suppression |
Suppress unnecessary joins |
Bandwidth conserved |
31 |
Join with Multicast Proxy |
Proxy joins on behalf of clients |
Efficient group management |
32 |
Join with Multicast Load Balancing |
Load balance across links |
Optimized bandwidth usage |
33 |
Join with Multicast over Wireless |
Join on Wi-Fi |
Traffic scoped to wireless clients |
34 |
Join with Multicast over WAN |
Join across WAN |
Traffic optimized via PIM |
35 |
Join with Multicast over VPN |
Join via VPN tunnel |
Traffic scoped to VPN clients |
36 |
Join with Multicast over MPLS |
Join in MPLS network |
Traffic tunneled efficiently |
37 |
Join with Multicast over IPv6 |
Use MLD instead of IGMP |
Efficient IPv6 multicast |
38 |
Join with Multicast Video Stream |
Join IPTV stream |
Only viewers receive stream |
39 |
Leave Multicast Video Stream |
Leave IPTV stream |
Stream stops for that host |
40 |
Join with Multicast Audio Stream |
Join audio group |
Bandwidth used only by listeners |
41 |
Join with Multicast File Transfer |
Join file distribution group |
Efficient one-to-many delivery |
42 |
Join with Multicast Gaming |
Join game update group |
Updates sent only to players |
43 |
Join with Multicast Backup |
Join backup sync group |
Data sent once to all nodes |
44 |
Join with Multicast IoT Devices |
IoT devices join group |
Efficient sensor data distribution |
45 |
Join with Multicast Security Cameras |
Cameras join group |
Video sent only to viewers |
46 |
Join with Multicast Classroom |
Students join virtual class |
Stream sent only to attendees |
47 |
Join with Multicast CDN |
CDN edge joins group |
Content delivered efficiently |
48 |
Join with Multicast Cloud Sync |
Cloud nodes join group |
Sync traffic optimized |
49 |
Join with Multicast Firmware Update |
Devices join update group |
Update sent once to all |
50 |
Join with Multicast Analytics |
Analytics agents join group |
Data collected efficiently |
Host-Router Communication - Testcases
Host-Router Communication - Test Cases |
|||
---|---|---|---|
# |
Test Case |
Description |
Expected Result |
1 |
Host Sends IGMP Join |
Host sends Membership Report |
Router updates group table |
2 |
Host Sends IGMP Leave |
Host sends Leave message |
Router initiates group-specific query |
3 |
Router Sends General Query |
Router sends IGMP General Query |
Host responds with Membership Report |
4 |
Router Sends Group-Specific Query |
Query for specific group |
Only relevant hosts respond |
5 |
Router Sends Group-and-Source-Specific Query |
Query for group and source |
Only matching hosts respond |
6 |
Host Responds to Query |
Host sends Membership Report |
Router refreshes group membership |
7 |
Host Does Not Respond |
Host fails to respond |
Router prunes group after timeout |
8 |
Host Rejoins After Timeout |
Host rejoins after pruning |
Router re-adds group |
9 |
Multiple Hosts Join Same Group |
Multiple hosts send join |
Router maintains group until all leave |
10 |
Last Host Leaves Group |
Last host sends leave |
Router prunes group |
11 |
Host Sends IGMPv1 Report |
Router supports IGMPv2/3 |
Router accepts and downgrades version |
12 |
Host Sends IGMPv2 Report |
Router supports IGMPv3 |
Router accepts and downgrades version |
13 |
Host Sends IGMPv3 Report |
Router supports IGMPv3 |
Router processes source filtering |
14 |
Host Sends Invalid Report |
Malformed IGMP message |
Router discards message |
15 |
Host Sends Report with Invalid Group |
Invalid multicast address |
Router ignores message |
16 |
Host Sends Report with TTL = 0 |
TTL too low |
Router discards packet |
17 |
Host Sends Report with TTL = 1 |
Valid TTL |
Router accepts message |
18 |
Host Sends Report with Spoofed IP |
Fake source IP |
Router may log or ignore |
19 |
Host Sends Report with Duplicate Group |
Same group joined twice |
Router handles gracefully |
20 |
Host Sends Leave Without Join |
Leave without prior join |
Router ignores message |
21 |
Router Handles Join Flood |
Burst of join messages |
Router rate limits or logs |
22 |
Router Handles Leave Flood |
Burst of leave messages |
Router rate limits or logs |
23 |
Router Handles Query Flood |
Frequent queries |
Hosts respond within limits |
24 |
Host Responds to Multiple Queries |
Multiple queries received |
Host responds once per group |
25 |
Host Sends Source-Specific Join |
IGMPv3 include mode |
Router filters by source |
26 |
Host Sends Source-Exclude Join |
IGMPv3 exclude mode |
Router blocks excluded sources |
27 |
Router Handles Querier Election |
Multiple routers present |
One router elected as querier |
28 |
Querier Router Fails |
Querier goes down |
Backup router takes over |
29 |
Host Reboots |
Host rejoins group |
Router updates membership |
30 |
Router Reboots |
Router rebuilds group table |
Hosts resend Membership Reports |
31 |
Host Sends Join on VLAN |
Join on VLAN 10 |
Router tracks per VLAN |
32 |
Host Sends Join on Trunk Port |
Tagged join |
Router processes correctly |
33 |
Host Sends Join on Access Port |
Untagged join |
Router processes correctly |
34 |
Host Sends Join with ACL Blocking |
ACL blocks IGMP |
Router does not receive join |
35 |
Host Sends Join with ACL Allowing |
ACL allows IGMP |
Router receives join |
36 |
Host Sends Join with QoS Marking |
DSCP marked IGMP |
Router accepts join |
37 |
Host Sends Join with Fragmented Packet |
Fragmented IGMP |
Router reassembles and processes |
38 |
Host Sends Join with Extension Headers |
IPv6 extension headers |
Router processes correctly |
39 |
Host Sends Join with High Latency |
Delayed join |
Router still updates group |
40 |
Host Sends Join with Packet Loss |
Some reports lost |
Router maintains group due to robustness |
41 |
Host Sends Join with Multicast App |
App joins group |
Router updates group table |
42 |
Host Leaves Group on App Exit |
App exits |
Leave sent to router |
43 |
Host Sends Join with Multicast Proxy |
Proxy sends join |
Router updates group |
44 |
Host Sends Join with Multicast Snooping |
Switch forwards to router |
Router receives join |
45 |
Host Sends Join with Multicast Routing Enabled |
PIM enabled |
Router forwards multicast traffic |
46 |
Host Sends Join with Multicast Routing Disabled |
PIM disabled |
No multicast forwarding |
47 |
Host Sends Join with Static Group |
Static group configured |
Router always forwards traffic |
48 |
Host Sends Leave with Static Group |
Static group remains |
Router ignores leave |
49 |
Host Sends Join with IGMP Timer Expiry |
Timer expires |
Router sends query |
50 |
Host Sends Join with Robustness Value Change |
Robustness increased |
Router tolerates more loss |
Dynamic Membership - Testcases
Dynamic Membership - Test Cases |
|||
---|---|---|---|
# |
Test Case |
Description |
Expected Result |
1 |
Host Dynamically Joins Group |
Host sends IGMP join |
Router adds host to group |
2 |
Host Dynamically Leaves Group |
Host sends IGMP leave |
Router removes host from group |
3 |
Multiple Hosts Join at Different Times |
Hosts join at intervals |
Router updates group membership dynamically |
4 |
Multiple Hosts Leave at Different Times |
Hosts leave at intervals |
Router prunes group as needed |
5 |
Host Joins and Leaves Rapidly |
Join and leave in quick succession |
Router handles transitions correctly |
6 |
Host Rejoins After Leave |
Host rejoins same group |
Router re-adds host |
7 |
Host Joins Multiple Groups |
Host joins 3 groups |
Router tracks all memberships |
8 |
Host Leaves One of Multiple Groups |
Leaves one group |
Router updates only that group |
9 |
Host Joins with IGMPv1 |
Dynamic join using IGMPv1 |
Router accepts and tracks |
10 |
Host Joins with IGMPv2 |
Dynamic join using IGMPv2 |
Router accepts and tracks |
11 |
Host Joins with IGMPv3 |
Dynamic join using IGMPv3 |
Router accepts and tracks |
12 |
Host Sends Source-Specific Join |
IGMPv3 include mode |
Router filters by source |
13 |
Host Sends Source-Exclude Join |
IGMPv3 exclude mode |
Router blocks excluded sources |
14 |
Host Sends Join with Delay |
Delayed join after query |
Router still updates group |
15 |
Host Sends Leave with Delay |
Delayed leave |
Router prunes after timeout |
16 |
Host Sends Join with TTL = 1 |
Valid TTL |
Router accepts join |
17 |
Host Sends Join with TTL = 0 |
Invalid TTL |
Router drops packet |
18 |
Host Sends Join with Spoofed IP |
Fake source IP |
Router may ignore or log |
19 |
Host Sends Join with Invalid Group |
Invalid multicast address |
Router ignores join |
20 |
Host Sends Leave Without Join |
Leave without prior join |
Router ignores leave |
21 |
Host Sends Duplicate Join |
Same group joined twice |
Router handles gracefully |
22 |
Host Sends Duplicate Leave |
Same group left twice |
Router handles gracefully |
23 |
Host Sends Join During Query Interval |
Join during active query |
Router updates group |
24 |
Host Sends Leave During Query Interval |
Leave during active query |
Router sends group-specific query |
25 |
Host Sends Join After Query Timeout |
Join after timeout |
Router re-adds group |
26 |
Host Sends Leave After Query Timeout |
Leave after timeout |
Router prunes group |
27 |
Host Reboots After Join |
Host rejoins after reboot |
Router updates membership |
28 |
Host Reboots After Leave |
Host does not rejoin |
Router does not add group |
29 |
Host Joins via Proxy |
Proxy sends join |
Router updates group |
30 |
Host Leaves via Proxy |
Proxy sends leave |
Router prunes group |
31 |
Host Joins via Application |
App triggers join |
Router updates group |
32 |
Host Leaves via Application Exit |
App exits |
Leave sent to router |
33 |
Host Joins on VLAN |
Join on VLAN 20 |
Router tracks per VLAN |
34 |
Host Leaves on VLAN |
Leave on VLAN 20 |
Router updates VLAN group |
35 |
Host Joins on Trunk Port |
Tagged join |
Router processes correctly |
36 |
Host Joins on Access Port |
Untagged join |
Router processes correctly |
37 |
Host Joins with ACL Blocking |
ACL blocks IGMP |
Join fails |
38 |
Host Joins with ACL Allowing |
ACL allows IGMP |
Join succeeds |
39 |
Host Joins with QoS Marking |
DSCP marked join |
Router accepts join |
40 |
Host Joins with Fragmented Packet |
Fragmented IGMP |
Router reassembles and processes |
41 |
Host Joins with High Latency |
Delayed join |
Router still updates group |
42 |
Host Joins with Packet Loss |
Some reports lost |
Router maintains group due to robustness |
43 |
Host Joins with Multicast Snooping |
Switch forwards to router |
Router receives join |
44 |
Host Leaves with Multicast Snooping |
Leave forwarded |
Router prunes group |
45 |
Host Joins with Multicast Routing Enabled |
PIM enabled |
Multicast traffic forwarded |
46 |
Host Joins with Multicast Routing Disabled |
PIM disabled |
No multicast forwarding |
47 |
Host Joins with Static Group |
Static group configured |
Router always forwards traffic |
48 |
Host Leaves with Static Group |
Static group remains |
Router ignores leave |
49 |
Host Joins with Querier Present |
Querier active |
Group tracked dynamically |
50 |
Host Joins with Querier Absent |
No querier |
Group state may become stale |
Version Compatibility - Testcases
Version Compatibility - Test Cases |
|||
---|---|---|---|
# |
Test Case |
Description |
Expected Result |
1 |
IGMPv1 Host with IGMPv2 Router |
Host sends v1 join |
Router accepts and downgrades to v1 |
2 |
IGMPv2 Host with IGMPv1 Router |
Host sends v2 join |
Router accepts as v1 |
3 |
IGMPv3 Host with IGMPv2 Router |
Host sends v3 join |
Router accepts in v2-compatible mode |
4 |
IGMPv2 Host with IGMPv3 Router |
Host sends v2 join |
Router accepts and tracks as v2 |
5 |
IGMPv1 Host with IGMPv3 Router |
Host sends v1 join |
Router accepts and tracks as v1 |
6 |
IGMPv3 Host with IGMPv3 Router |
Full v3 support |
Source filtering supported |
7 |
IGMPv2 Host with IGMPv2 Router |
Full v2 support |
Leave and query supported |
8 |
IGMPv1 Host with IGMPv1 Router |
Full v1 support |
No leave messages used |
9 |
Mixed Hosts (v1, v2, v3) |
All versions present |
Router downgrades to lowest version |
10 |
IGMPv3 Source-Specific Join with v2 Router |
v3 host sends SSM join |
Router ignores source filtering |
11 |
IGMPv3 Source-Exclude Join with v2 Router |
v3 host sends exclude join |
Router ignores exclude list |
12 |
IGMPv2 Leave with v1 Router |
v2 host sends leave |
Router ignores leave |
13 |
IGMPv1 Join with v2 Querier |
v1 host joins |
Querier sends v1-compatible queries |
14 |
IGMPv2 Join with v3 Querier |
v2 host joins |
Querier sends v2-compatible queries |
15 |
IGMPv3 Join with v1 Querier |
v3 host joins |
Querier ignores source filtering |
16 |
Querier Election with Mixed Versions |
v1, v2, v3 routers present |
Lowest version wins election |
17 |
IGMPv3 Host Sends v2-Compatible Join |
v3 host in v2 mode |
Join accepted without source filtering |
18 |
IGMPv3 Host Sends v1-Compatible Join |
v3 host in v1 mode |
Join accepted, no leave support |
19 |
IGMPv2 Host Sends v1-Compatible Join |
v2 host in v1 mode |
Join accepted, no leave support |
20 |
IGMPv3 Host Sends Full Report to v3 Router |
Full v3 report |
Source filtering applied |
21 |
IGMPv3 Host Sends Full Report to v2 Router |
Full v3 report |
Source filtering ignored |
22 |
IGMPv2 Host Sends Leave to v3 Router |
Leave message |
Router prunes group |
23 |
IGMPv1 Host Sends Join to v3 Router |
Join message |
Router accepts, no leave expected |
24 |
IGMPv3 Host Sends Join with Invalid Source |
Invalid source list |
Router ignores or logs error |
25 |
IGMPv2 Host Sends Join with Invalid Group |
Invalid group address |
Router ignores join |
26 |
IGMPv1 Host Sends Join with TTL = 0 |
TTL too low |
Router drops packet |
27 |
IGMPv3 Host Sends Join with TTL = 1 |
Valid TTL |
Router accepts join |
28 |
IGMPv3 Host Sends Join with Fragmented Packet |
Fragmented IGMP |
Router reassembles and processes |
29 |
IGMPv2 Host Sends Join with Spoofed IP |
Fake source IP |
Router may log or ignore |
30 |
IGMPv3 Host Sends Join with Source Filtering |
Include mode |
Router applies filtering if supported |
31 |
IGMPv3 Host Sends Join with Exclude Mode |
Exclude mode |
Router applies filtering if supported |
32 |
IGMPv2 Host Sends Join During Query Interval |
Join during active query |
Router updates group |
33 |
IGMPv1 Host Sends Join During Query Interval |
Join during active query |
Router updates group |
34 |
IGMPv3 Host Sends Join After Query Timeout |
Join after timeout |
Router re-adds group |
35 |
IGMPv2 Host Sends Leave After Timeout |
Leave after timeout |
Router prunes group |
36 |
IGMPv3 Host Sends Join with Robustness = 2 |
Default robustness |
Normal tolerance to loss |
37 |
IGMPv3 Host Sends Join with Robustness = 5 |
High robustness |
More tolerance to packet loss |
38 |
IGMPv3 Host Sends Join with Querier Present |
Querier active |
Group tracked dynamically |
39 |
IGMPv3 Host Sends Join with Querier Absent |
No querier |
Group state may become stale |
40 |
IGMPv3 Host Sends Join with ACL Blocking |
ACL blocks IGMP |
Join fails |
41 |
IGMPv3 Host Sends Join with ACL Allowing |
ACL allows IGMP |
Join succeeds |
42 |
IGMPv3 Host Sends Join with QoS Marking |
DSCP marked join |
Router accepts join |
43 |
IGMPv3 Host Sends Join with High Latency |
Delayed join |
Router still updates group |
44 |
IGMPv3 Host Sends Join with Packet Loss |
Some reports lost |
Router maintains group due to robustness |
45 |
IGMPv3 Host Sends Join with Multicast Snooping |
Switch forwards to router |
Router receives join |
46 |
IGMPv3 Host Sends Leave with Snooping |
Leave forwarded |
Router prunes group |
47 |
IGMPv3 Host Sends Join with Multicast Routing Enabled |
PIM enabled |
Multicast traffic forwarded |
48 |
IGMPv3 Host Sends Join with Multicast Routing Disabled |
PIM disabled |
No multicast forwarding |
49 |
IGMPv3 Host Sends Join with Static Group |
Static group configured |
Router always forwards traffic |
50 |
IGMPv3 Host Sends Leave with Static Group |
Static group remains |
Router ignores leave |
Query and Report Mechanism - Testcases
Query and Report Mechanism - Test Cases |
|||
---|---|---|---|
# |
Test Case |
Description |
Expected Result |
1 |
Router Sends General Query |
Query to all hosts |
All hosts respond with Membership Reports |
2 |
Router Sends Group-Specific Query |
Query for one group |
Only hosts in that group respond |
3 |
Router Sends Group-and-Source-Specific Query |
Query for group and source |
Only matching hosts respond |
4 |
Host Responds to General Query |
Host sends Membership Report |
Router updates group membership |
5 |
Host Responds to Group-Specific Query |
Host sends report for that group |
Router refreshes group state |
6 |
Host Responds to Group-and-Source-Specific Query |
Host sends source-specific report |
Router updates source list |
7 |
Host Ignores Unrelated Group Query |
Query for group not joined |
Host does not respond |
8 |
Host Sends Report Without Query |
Host joins group |
Router updates membership |
9 |
Host Sends Report After Query Timeout |
Delayed response |
Router still accepts report |
10 |
Host Sends Report with Delay |
Response after random delay |
Prevents report collisions |
11 |
Host Sends Report with Suppression |
Another host already responded |
Host suppresses its own report |
12 |
Host Sends Report with TTL = 1 |
Valid TTL |
Router accepts report |
13 |
Host Sends Report with TTL = 0 |
Invalid TTL |
Router drops packet |
14 |
Host Sends Report with Invalid Group |
Invalid multicast address |
Router ignores report |
15 |
Host Sends Report with Spoofed IP |
Fake source IP |
Router may log or ignore |
16 |
Host Sends Report with Fragmented Packet |
Fragmented IGMP |
Router reassembles and processes |
17 |
Host Sends Report with Source Filtering |
IGMPv3 include/exclude |
Router applies filtering |
18 |
Host Sends Report with No Source Filtering |
IGMPv1/v2 |
Router tracks group only |
19 |
Router Sends Query with Low Interval |
Frequent queries |
Hosts respond more often |
20 |
Router Sends Query with High Interval |
Infrequent queries |
Hosts respond less often |
21 |
Router Sends Query with Robustness = 2 |
Default robustness |
Normal tolerance to loss |
22 |
Router Sends Query with Robustness = 5 |
High robustness |
More retries before pruning |
23 |
Router Sends Query with Max Response Time = 10s |
Hosts delay response |
Responses spread out |
24 |
Router Sends Query with Max Response Time = 1s |
Quick responses |
Higher chance of collision |
25 |
Host Sends Report with Duplicate Group |
Same group reported twice |
Router handles gracefully |
26 |
Host Sends Report with Multiple Groups |
Reports multiple memberships |
Router updates all groups |
27 |
Host Sends Report with Source List |
IGMPv3 report |
Router updates source-specific state |
28 |
Host Sends Report with Empty Source List |
IGMPv3 exclude all |
Router blocks all sources |
29 |
Host Sends Report with Invalid Source |
Invalid IP in source list |
Router ignores or logs |
30 |
Host Sends Report with ACL Blocking |
ACL blocks IGMP |
Report not received by router |
31 |
Host Sends Report with ACL Allowing |
ACL allows IGMP |
Report received successfully |
32 |
Host Sends Report with QoS Marking |
DSCP marked packet |
Router accepts report |
33 |
Host Sends Report with High Latency |
Delayed due to network |
Router still updates group |
34 |
Host Sends Report with Packet Loss |
Some reports lost |
Router maintains group due to robustness |
35 |
Host Sends Report with Multicast Snooping |
Switch forwards to router |
Router receives report |
36 |
Host Sends Report with Snooping Disabled |
Report flooded |
Router still receives it |
37 |
Host Sends Report with Multicast Routing Enabled |
PIM enabled |
Multicast traffic forwarded |
38 |
Host Sends Report with Multicast Routing Disabled |
PIM disabled |
No multicast forwarding |
39 |
Host Sends Report with Querier Present |
Querier active |
Group tracked dynamically |
40 |
Host Sends Report with Querier Absent |
No querier |
Group state may become stale |
41 |
Querier Election with Multiple Routers |
Routers send queries |
Lowest IP becomes querier |
42 |
Querier Fails |
Querier stops sending queries |
Backup router takes over |
43 |
Host Sends Report After Reboot |
Host rejoins group |
Router updates membership |
44 |
Router Sends Query After Reboot |
Queries all hosts |
Hosts respond with reports |
45 |
Host Sends Report via Proxy |
Proxy sends on behalf |
Router updates group |
46 |
Host Sends Report via Application |
App triggers join |
Report sent to router |
47 |
Host Sends Report on VLAN |
VLAN-specific join |
Router tracks per VLAN |
48 |
Host Sends Report on Trunk Port |
Tagged report |
Router processes correctly |
49 |
Host Sends Report on Access Port |
Untagged report |
Router processes correctly |
50 |
Host Sends Report with Static Group |
Static group configured |
Report not required, router always forwards |
Leave Group Notification - Testcases
Leave Group Notification - Test Cases |
|||
---|---|---|---|
# |
Test Case |
Description |
Expected Result |
1 |
Host Sends Leave Message |
Host leaves group |
Router sends group-specific query |
2 |
Host Leaves Last in Group |
Last host leaves |
Router prunes group after query |
3 |
Host Leaves but Others Remain |
One host leaves, others stay |
Router maintains group |
4 |
Host Leaves Without Join |
Sends leave without prior join |
Router ignores message |
5 |
Host Sends Leave with Invalid Group |
Invalid multicast address |
Router ignores message |
6 |
Host Sends Leave with TTL = 0 |
TTL too low |
Router drops packet |
7 |
Host Sends Leave with TTL = 1 |
Valid TTL |
Router accepts message |
8 |
Host Sends Leave with Spoofed IP |
Fake source IP |
Router may log or ignore |
9 |
Host Sends Leave with Fragmented Packet |
Fragmented IGMP |
Router reassembles and processes |
10 |
Host Sends Leave with Delay |
Delayed leave |
Router still processes |
11 |
Host Sends Duplicate Leave |
Sends leave twice |
Router handles gracefully |
12 |
Host Leaves Multiple Groups |
Leaves 3 groups |
Router updates all memberships |
13 |
Host Leaves One of Multiple Groups |
Leaves one group |
Router updates only that group |
14 |
Host Leaves During Query Interval |
Leave during active query |
Router sends group-specific query |
15 |
Host Leaves After Query Timeout |
Leave after timeout |
Router prunes group |
16 |
Host Leaves with Fast Leave Enabled |
Fast leave on switch |
Immediate pruning |
17 |
Host Leaves with Fast Leave Disabled |
Fast leave off |
Router waits for query response |
18 |
Host Leaves with IGMPv2 |
Sends IGMPv2 leave |
Router sends group-specific query |
19 |
Host Leaves with IGMPv3 |
Sends IGMPv3 leave |
Router processes source filtering |
20 |
Host Leaves with IGMPv1 |
No leave message sent |
Router relies on query timeout |
21 |
Host Leaves with Source Filtering |
IGMPv3 exclude mode |
Router updates source list |
22 |
Host Leaves Source-Specific Group |
Leaves SSM group |
Router updates source-specific state |
23 |
Host Leaves with ACL Blocking |
ACL blocks IGMP |
Leave not received by router |
24 |
Host Leaves with ACL Allowing |
ACL allows IGMP |
Leave received successfully |
25 |
Host Leaves with QoS Marking |
DSCP marked leave |
Router accepts message |
26 |
Host Leaves with High Latency |
Delayed leave |
Router still updates group |
27 |
Host Leaves with Packet Loss |
Leave lost |
Router relies on query timeout |
28 |
Host Leaves with Multicast Snooping |
Switch forwards leave |
Router receives message |
29 |
Host Leaves with Snooping Disabled |
Leave flooded |
Router still receives it |
30 |
Host Leaves with Multicast Routing Enabled |
PIM enabled |
Multicast traffic pruned |
31 |
Host Leaves with Multicast Routing Disabled |
PIM disabled |
No multicast forwarding |
32 |
Host Leaves with Querier Present |
Querier active |
Group tracked dynamically |
33 |
Host Leaves with Querier Absent |
No querier |
Group state may become stale |
34 |
Querier Sends Group-Specific Query |
After leave |
Hosts respond if still interested |
35 |
No Response to Group-Specific Query |
No hosts respond |
Router prunes group |
36 |
Host Leaves via Proxy |
Proxy sends leave |
Router updates group |
37 |
Host Leaves via Application Exit |
App exits |
Leave sent to router |
38 |
Host Leaves on VLAN |
VLAN-specific leave |
Router updates VLAN group |
39 |
Host Leaves on Trunk Port |
Tagged leave |
Router processes correctly |
40 |
Host Leaves on Access Port |
Untagged leave |
Router processes correctly |
41 |
Host Leaves with Static Group |
Static group configured |
Router ignores leave |
42 |
Host Leaves with Robustness = 2 |
Default robustness |
Normal tolerance to loss |
43 |
Host Leaves with Robustness = 5 |
High robustness |
More retries before pruning |
44 |
Host Leaves During Network Congestion |
High traffic |
Leave still processed |
45 |
Host Leaves During CPU Load |
High CPU usage |
Leave still processed |
46 |
Host Leaves During Memory Pressure |
Low memory |
Leave still processed |
47 |
Host Leaves After Reboot |
Host does not rejoin |
Router prunes group after timeout |
48 |
Host Leaves with Querier Election |
Querier changes |
Leave still processed |
49 |
Host Leaves with Multicast Application |
App stops stream |
Leave sent to router |
50 |
Host Leaves with Multicast Proxy |
Proxy stops forwarding |
Router updates group |
Support for Source Filtering - Testcases
Support for Source Filtering (v3/v4) - Test Cases |
|||
---|---|---|---|
# |
Test Case |
Description |
Expected Result |
1 |
IGMPv3 Include Mode Join |
Host joins group with specific source |
Router forwards only from specified source |
2 |
IGMPv3 Exclude Mode Join |
Host joins group excluding a source |
Router forwards from all except excluded source |
3 |
IGMPv3 Include Mode with Multiple Sources |
Host includes multiple sources |
Router forwards from all listed sources |
4 |
IGMPv3 Exclude Mode with Multiple Sources |
Host excludes multiple sources |
Router blocks all listed sources |
5 |
IGMPv3 Include Mode with Empty Source List |
Host includes no sources |
No traffic forwarded |
6 |
IGMPv3 Exclude Mode with Empty Source List |
Host excludes no sources |
All sources allowed |
7 |
IGMPv3 Source Filter Change |
Host changes source list |
Router updates forwarding accordingly |
8 |
IGMPv3 Source Filter Timeout |
Host stops sending reports |
Router prunes group after timeout |
9 |
IGMPv3 Source Filter with General Query |
Router sends general query |
Host responds with full source list |
10 |
IGMPv3 Source Filter with Group-Specific Query |
Router queries specific group |
Host responds with source list for that group |
11 |
IGMPv3 Source Filter with Group-and-Source-Specific Query |
Router queries group and source |
Host responds if matching |
12 |
IGMPv3 Source Filter with Querier Present |
Querier active |
Source filtering maintained |
13 |
IGMPv3 Source Filter with Querier Absent |
No querier |
Source filtering may become stale |
14 |
IGMPv3 Source Filter with Querier Election |
Multiple routers |
Lowest IP becomes querier |
15 |
IGMPv3 Source Filter with TTL = 1 |
Valid TTL |
Router accepts report |
16 |
IGMPv3 Source Filter with TTL = 0 |
Invalid TTL |
Router drops packet |
17 |
IGMPv3 Source Filter with Invalid Source IP |
Invalid IP in source list |
Router ignores or logs |
18 |
IGMPv3 Source Filter with Invalid Group |
Invalid multicast address |
Router ignores report |
19 |
IGMPv3 Source Filter with Fragmented Packet |
Fragmented IGMP |
Router reassembles and processes |
20 |
IGMPv3 Source Filter with Spoofed Source |
Fake source IP |
Router may log or ignore |
21 |
IGMPv3 Source Filter with ACL Blocking Source |
ACL blocks source IP |
Traffic from source blocked |
22 |
IGMPv3 Source Filter with ACL Allowing Source |
ACL allows source IP |
Traffic forwarded |
23 |
IGMPv3 Source Filter with QoS Marking |
DSCP marked packet |
Router accepts report |
24 |
IGMPv3 Source Filter with High Latency |
Delayed report |
Router still updates group |
25 |
IGMPv3 Source Filter with Packet Loss |
Some reports lost |
Router maintains group due to robustness |
26 |
IGMPv3 Source Filter with Multicast Snooping |
Switch forwards to router |
Router receives report |
27 |
IGMPv3 Source Filter with Snooping Disabled |
Report flooded |
Router still receives it |
28 |
IGMPv3 Source Filter with Multicast Routing Enabled |
PIM enabled |
Source-specific forwarding applied |
29 |
IGMPv3 Source Filter with Multicast Routing Disabled |
PIM disabled |
No multicast forwarding |
30 |
IGMPv3 Source Filter with Static Group |
Static group configured |
Source filtering not applied |
31 |
IGMPv3 Source Filter with VLAN Tagging |
Join on VLAN 10 |
Source filtering scoped to VLAN |
32 |
IGMPv3 Source Filter with Trunk Port |
Tagged report |
Router processes correctly |
33 |
IGMPv3 Source Filter with Access Port |
Untagged report |
Router processes correctly |
34 |
IGMPv3 Source Filter with Host Reboot |
Host rejoins with source list |
Router updates group |
35 |
IGMPv3 Source Filter with Router Reboot |
Router queries hosts |
Hosts resend source lists |
36 |
IGMPv3 Source Filter with Application Join |
App joins with source filter |
Router updates group |
37 |
IGMPv3 Source Filter with Application Exit |
App exits |
Leave or timeout triggers pruning |
38 |
IGMPv3 Source Filter with Proxy |
Proxy sends report |
Router updates group |
39 |
IGMPv3 Source Filter with Mixed Hosts |
v2 and v3 hosts |
Router downgrades to v2 behavior |
40 |
IGMPv3 Source Filter with v2 Router |
v3 host sends report |
Source filtering ignored |
41 |
IGMPv3 Source Filter with v3 Router |
Full support |
Source filtering applied |
42 |
IGMPv3 Source Filter with Duplicate Sources |
Same source listed twice |
Router handles gracefully |
43 |
IGMPv3 Source Filter with Overlapping Groups |
Same source in multiple groups |
Router tracks per group |
44 |
IGMPv3 Source Filter with Leave Message |
Host leaves group |
Router prunes source list |
45 |
IGMPv3 Source Filter with No Leave Message |
Host stops reporting |
Router prunes after timeout |
46 |
IGMPv3 Source Filter with Robustness = 2 |
Default robustness |
Normal tolerance to loss |
47 |
IGMPv3 Source Filter with Robustness = 5 |
High robustness |
More retries before pruning |
48 |
IGMPv3 Source Filter with Max Response Time = 10s |
Delayed responses |
Router accepts within window |
49 |
IGMPv3 Source Filter with Max Response Time = 1s |
Quick responses |
Higher chance of collision |
50 |
IGMPv3 Source Filter with Multicast Application |
App uses include/exclude |
Router filters traffic accordingly |
Minimal Overhead - Testcases
Minimal Overhead - Test Cases |
|||
---|---|---|---|
# |
Test Case |
Description |
Expected Result |
1 |
Host Sends Single Join |
One join message sent |
Minimal bandwidth used |
2 |
Host Sends Single Leave |
One leave message sent |
Minimal bandwidth used |
3 |
Host Responds to General Query Once |
One report per group |
No redundant messages |
4 |
Host Suppresses Report |
Another host already responded |
Report suppressed |
5 |
Host Sends Report with Delay |
Random delay before response |
Reduces collision |
6 |
Host Sends Report for Multiple Groups |
One message with multiple groups |
Efficient reporting |
7 |
Router Sends General Query Periodically |
Controlled interval |
Avoids excessive queries |
8 |
Router Sends Group-Specific Query |
Targets only one group |
Reduces unnecessary responses |
9 |
Router Sends Query with Max Response Time = 10s |
Spreads out responses |
Reduces burst traffic |
10 |
Router Sends Query with Max Response Time = 1s |
Quick response |
Higher overhead risk |
11 |
Host Sends Report with TTL = 1 |
Valid TTL |
No unnecessary routing |
12 |
Host Sends Report with TTL = 0 |
Invalid TTL |
Packet dropped, no overhead |
13 |
Host Sends Report with Source Filtering |
IGMPv3 include/exclude |
Efficient source control |
14 |
Host Sends Report with Empty Source List |
No sources included |
No traffic forwarded |
15 |
Host Sends Report with Duplicate Group |
Same group listed twice |
Router handles gracefully |
16 |
Host Sends Report with Fragmented Packet |
Fragmented IGMP |
Router reassembles efficiently |
17 |
Host Sends Report with Spoofed IP |
Fake source |
Router ignores, no processing overhead |
18 |
Host Sends Report with Invalid Group |
Invalid address |
Router ignores |
19 |
Host Sends Report with ACL Blocking |
ACL blocks IGMP |
No processing overhead |
20 |
Host Sends Report with ACL Allowing |
ACL allows IGMP |
Report processed |
21 |
Host Sends Report with QoS Marking |
DSCP marked |
Prioritized without extra load |
22 |
Host Sends Report with High Latency |
Delayed report |
Still within response window |
23 |
Host Sends Report with Packet Loss |
Some reports lost |
Router maintains group due to robustness |
24 |
Host Sends Report with Multicast Snooping |
Switch forwards only to router |
Reduces broadcast overhead |
25 |
Host Sends Report with Snooping Disabled |
Report flooded |
Higher overhead |
26 |
Host Sends Report with Multicast Routing Enabled |
PIM enabled |
Efficient traffic forwarding |
27 |
Host Sends Report with Multicast Routing Disabled |
PIM disabled |
No unnecessary routing |
28 |
Host Sends Report with Static Group |
Static join |
No dynamic overhead |
29 |
Host Sends Report with VLAN Tagging |
VLAN-specific join |
Scoped traffic |
30 |
Host Sends Report on Trunk Port |
Tagged report |
Efficient VLAN handling |
31 |
Host Sends Report on Access Port |
Untagged report |
Standard processing |
32 |
Host Sends Report After Reboot |
Rejoins group |
Minimal rejoin overhead |
33 |
Router Sends Query After Reboot |
Queries all hosts |
Hosts respond efficiently |
34 |
Host Sends Report via Proxy |
Proxy aggregates joins |
Reduces host overhead |
35 |
Host Sends Report via Application |
App triggers join |
Efficient group management |
36 |
Host Sends Report with Robustness = 2 |
Default robustness |
Balanced overhead |
37 |
Host Sends Report with Robustness = 5 |
Higher robustness |
More tolerance, more traffic |
38 |
Host Sends Report with Querier Present |
Querier active |
Controlled query traffic |
39 |
Host Sends Report with Querier Absent |
No querier |
Group state may become stale |
40 |
Querier Election with Multiple Routers |
One elected |
Prevents redundant queries |
41 |
Querier Fails |
Backup takes over |
Minimal disruption |
42 |
Host Sends Report with Duplicate Sources |
Same source listed twice |
Router handles efficiently |
43 |
Host Sends Report with Overlapping Groups |
Same source in multiple groups |
Router tracks per group |
44 |
Host Sends Leave with No Join |
Leave without prior join |
Router ignores |
45 |
Host Sends Join with No Leave |
Host stops reporting |
Router prunes after timeout |
46 |
Host Sends Join with Low Frequency |
Infrequent joins |
Minimal control traffic |
47 |
Host Sends Join with High Frequency |
Frequent joins |
Router handles without overload |
48 |
Host Sends Join with Multicast Application |
App joins group |
Efficient traffic delivery |
49 |
Host Leaves Group on App Exit |
App exits |
Leave sent, group pruned |
50 |
Host Sends Join with Minimal Payload |
Small IGMP message |
Minimal bandwidth usage |
Integration with Multicast Routing Protocols - Testcases
Integration with Multicast Routing Protocols - Test Cases |
|||
---|---|---|---|
# |
Test Case |
Description |
Expected Result |
1 |
IGMP Join with PIM-SM Enabled |
Host joins group |
PIM-SM builds multicast tree |
2 |
IGMP Leave with PIM-SM Enabled |
Host leaves group |
PIM prunes branch if no members |
3 |
IGMP Join with PIM-DM Enabled |
Host joins group |
PIM-DM floods and prunes traffic |
4 |
IGMP Leave with PIM-DM Enabled |
Host leaves group |
PIM-DM prunes traffic to router |
5 |
IGMP Join with DVMRP Enabled |
Host joins group |
DVMRP forwards multicast traffic |
6 |
IGMP Leave with DVMRP Enabled |
Host leaves group |
DVMRP prunes traffic |
7 |
IGMP Join with MOSPF Enabled |
Host joins group |
MOSPF updates multicast routing table |
8 |
IGMP Leave with MOSPF Enabled |
Host leaves group |
MOSPF recalculates tree |
9 |
IGMP Join with No Routing Protocol |
Host joins group |
No multicast forwarding occurs |
10 |
IGMP Join with Static Multicast Routing |
Static route configured |
Traffic forwarded regardless of IGMP |
11 |
IGMP Join with PIM Assert Mechanism |
Multiple routers on LAN |
Assert winner forwards traffic |
12 |
IGMP Join with RP Discovery |
PIM-SM uses RP |
RP receives join and builds tree |
13 |
IGMP Join with SPT Switchover |
PIM-SM switches to SPT |
Traffic forwarded via shortest path |
14 |
IGMP Join with RP Failure |
RP becomes unreachable |
Multicast traffic disrupted |
15 |
IGMP Join with RP Redundancy |
Backup RP available |
Traffic continues via backup RP |
16 |
IGMP Join with MSDP Enabled |
RP shares group info |
Inter-domain multicast supported |
17 |
IGMP Join with BSR Mechanism |
Bootstrap router assigns RP |
RP discovered dynamically |
18 |
IGMP Join with PIM Register Process |
First packet encapsulated |
RP receives register message |
19 |
IGMP Join with PIM Join/Prune Messages |
Router sends join/prune |
Upstream routers update state |
20 |
IGMP Join with Multicast RPF Check |
RPF check passes |
Traffic accepted |
21 |
IGMP Join with RPF Failure |
RPF check fails |
Traffic dropped |
22 |
IGMP Join with Multicast Loop Prevention |
Loop detected |
Traffic dropped or pruned |
23 |
IGMP Join with Multicast Load Balancing |
ECMP enabled |
Traffic balanced across paths |
24 |
IGMP Join with Multicast VPN |
Join in VPN context |
Traffic scoped to VPN |
25 |
IGMP Join with Multicast over MPLS |
MVPN enabled |
Traffic tunneled via MPLS |
26 |
IGMP Join with Multicast over GRE |
GRE tunnel used |
Traffic encapsulated and forwarded |
27 |
IGMP Join with Multicast over IPsec |
Secure multicast |
Traffic encrypted and routed |
28 |
IGMP Join with Multicast over WAN |
WAN link used |
Traffic forwarded across WAN |
29 |
IGMP Join with Multicast over LAN |
LAN segment |
Traffic scoped to LAN |
30 |
IGMP Join with Multicast over VLAN |
VLAN-specific join |
Traffic scoped to VLAN |
31 |
IGMP Join with Multicast over Trunk Port |
Tagged join |
Traffic forwarded correctly |
32 |
IGMP Join with Multicast over Access Port |
Untagged join |
Traffic forwarded correctly |
33 |
IGMP Join with Multicast over Wireless |
Wireless AP forwards |
Traffic scoped to wireless clients |
34 |
IGMP Join with Multicast over IPv6 |
MLD used instead of IGMP |
IPv6 multicast routing applies |
35 |
IGMP Join with Multicast ACLs |
ACLs permit group |
Traffic forwarded |
36 |
IGMP Join with Multicast ACLs Deny |
ACLs block group |
Traffic dropped |
37 |
IGMP Join with Multicast QoS |
QoS policies applied |
Traffic prioritized |
38 |
IGMP Join with Multicast Policing |
Rate limits applied |
Excess traffic dropped |
39 |
IGMP Join with Multicast Logging |
Logging enabled |
Join/leave events logged |
40 |
IGMP Join with Multicast Monitoring |
SNMP or telemetry |
Group state monitored |
41 |
IGMP Join with Multicast Troubleshooting |
Debug enabled |
Join/prune messages visible |
42 |
IGMP Join with Multicast Redundancy |
HSRP/VRRP active |
Redundant routers handle joins |
43 |
IGMP Join with Multicast Failover |
Primary router fails |
Backup router takes over |
44 |
IGMP Join with Multicast Convergence |
Network reconverges |
Traffic resumes after delay |
45 |
IGMP Join with Multicast Flapping |
Frequent join/leave |
Routing protocol handles gracefully |
46 |
IGMP Join with Multicast Timer Tuning |
Query/response timers adjusted |
Optimized convergence |
47 |
IGMP Join with Multicast Source Mobility |
Source IP changes |
Routing protocol adapts |
48 |
IGMP Join with Multicast Receiver Mobility |
Host moves subnets |
Join re-initiated from new location |
49 |
IGMP Join with Multicast Application |
App triggers join |
Routing protocol forwards traffic |
50 |
IGMP Leave with Multicast Application Exit |
App exits |
Routing protocol prunes tree |
Reference links