2. IGMP Snooping Recommendations
The following sections describe the forwarding rules for control and data packets. Le seguenti sezioni descrivono le regole di inoltro per i pacchetti di controllo e di dati.
2.1. Forwarding Rules
The switch must snoop on all IGMP packets and maintain a state table for each port. Lo switch deve eseguire lo snooping su tutti i pacchetti IGMP e mantenere una tabella di stato per ogni porta.
2.1.1. IGMP Membership Reports
- The switch must forward all IGMP Membership Reports to all ports that are detected as router ports. Lo switch deve inoltrare tutti i report di appartenenza IGMP (IGMP Membership Reports) a tutte le porte rilevate come porte router.
- The switch should not forward IGMP Membership Reports to non-router ports. This prevents other hosts from suppressing their own reports (in IGMPv1 and IGMPv2). Lo switch non dovrebbe inoltrare i report di appartenenza IGMP alle porte non router. Ciò impedisce ad altri host di sopprimere i propri report (in IGMPv1 e IGMPv2).
2.1.2. IGMP Leave Group
- The switch must forward IGMP Leave Group messages to all router ports. Lo switch deve inoltrare i messaggi IGMP Leave Group a tutte le porte router.
- The switch should process the Leave Group message to determine if there are other members of the group on the port. If not, it should stop forwarding multicast data for that group to that port. Lo switch dovrebbe elaborare il messaggio Leave Group per determinare se ci sono altri membri del gruppo sulla porta. In caso contrario, dovrebbe interrompere l'inoltro dei dati multicast per quel gruppo a quella porta.
- The switch should implement a membership timeout mechanism such as the router-side functionality of the IGMP protocol as described in the IGMP and MLD specifications (See Normative Reference section for IGMPv1-3 and MLDv1-2) on all its non-router ports. This timeout value should be configurable. Lo switch dovrebbe implementare un meccanismo di timeout dell'appartenenza come la funzionalità lato router del protocollo IGMP descritta nelle specifiche IGMP e MLD (vedere la sezione Riferimenti normativi per IGMPv1-3 e MLDv1-2) su tutte le sue porte non router. Questo valore di timeout dovrebbe essere configurabile.
2.2. Data Forwarding Rules
- Packets with a destination IP address outside 224.0.0.X which are not IGMP should be forwarded according to group-based port membership tables. I pacchetti con un indirizzo IP di destinazione al di fuori di 224.0.0.X che non sono IGMP dovrebbero essere inoltrati secondo le tabelle di appartenenza delle porte basate sul gruppo.
- Packets with a destination IP address in the 224.0.0.X range which are not IGMP must be forwarded on all ports. I pacchetti con un indirizzo IP di destinazione nell'intervallo 224.0.0.X che non sono IGMP devono essere inoltrati su tutte le porte.
- The practical implementation of the (G,S1,S2,...) based data forwarding tables are not within the scope of this document. However, one possibility is to maintain two (G,S) forwarding lists: one for the INCLUDE filter where a match of a specific (G,S) is required before forwarding will happen, and one for the EXCLUDE filter where a match of a specific (G,S) will result in no forwarding. L'implementazione pratica delle tabelle di inoltro dati basate su (G,S1,S2,...) non rientra nell'ambito di questo documento. Tuttavia, una possibilità è mantenere due liste di inoltro (G,S): una per il filtro INCLUDE in cui è richiesta una corrispondenza di uno specifico (G,S) prima che avvenga l'inoltro, e una per il filtro EXCLUDE in cui una corrispondenza di uno specifico (G,S) non comporterà alcun inoltro.