Aller au contenu principal

4.1. PIM Protocol State (État du protocole PIM)

Cette section spécifie tout l'état du protocole qu'une implémentation PIM doit maintenir pour fonctionner correctement. Nous appelons cet état la base d'informations d'arbre (Tree Information Base, TIB), car elle contient l'état de tous les arbres de distribution multicast sur ce routeur.

Bien que nous spécifiions précisément l'état à conserver, cela ne signifie pas qu'une implémentation de PIM-SM doit conserver l'état sous cette forme. Il s'agit en fait d'une définition d'état abstraite, nécessaire pour spécifier le comportement du routeur.

Nous divisons l'état TIB en trois sections:

État (*,G): État qui maintient l'arbre RP pour G.

État (S,G): État qui maintient un arbre spécifique à la source pour la source S et le groupe G.

État (S,G,rpt): État qui maintient des informations spécifiques à la source concernant la source S sur l'arbre RP pour G.

4.1.1. General-Purpose State (État à usage général)

Pour chaque interface, un routeur maintient l'état suivant:

État par interface:

  • Temporisateur Hello (Hello Timer, HT): Utilisé pour déclencher l'envoi du prochain message Hello
  • État du voisin: Pour chaque voisin, maintient l'adresse du voisin, l'ID de génération (Generation ID), le temps de maintien Hello, et d'autres informations
remarque

Pour les définitions détaillées des champs d'état, les valeurs de temporisateur et les transitions de machine à états, veuillez consulter la section 4.1.1 de la RFC 7761 pour la spécification complète.

4.1.2. (,G) State (État (,G))

Pour chaque groupe G, un routeur maintient l'état suivant:

État par interface:

  • Appartenance locale (Local Membership): L'état est "NoInfo" ou "Include"
  • État PIM (*,G) Join/Prune: Comprend l'état (NoInfo, Join, Prune-Pending), le temporisateur Prune-Pending et le temporisateur d'expiration Join/Prune
  • État (*,G) Assert Winner: Comprend l'état (NoInfo, I lost Assert, I won Assert), le temporisateur Assert et les informations du gagnant

État non spécifique à l'interface:

  • État amont (*,G) Join/Prune: L'état est "NotJoined(,G)" ou "Joined(,G)"
  • Temporisateur amont Join/Prune (JT)
  • Dernier RP utilisé
  • Dernier voisin RPF vers le RP utilisé
remarque

Pour les définitions détaillées des champs d'état, les règles de transition d'état et les définitions de macro, veuillez consulter la section 4.1.2 de la RFC 7761 pour la spécification complète.

4.1.3. (S,G) State (État (S,G))

Pour chaque paire source/groupe (S,G), un routeur maintient l'état suivant:

État par interface:

  • Appartenance locale: L'état est "NoInfo" ou "Include"
  • État PIM (S,G) Join/Prune: Comprend l'état et les temporisateurs
  • État (S,G) Assert Winner: Comprend l'état, les temporisateurs et les informations du gagnant

État non spécifique à l'interface:

  • État amont (S,G) Join/Prune
  • Temporisateur amont (S,G) Join/Prune
  • Dernier voisin RPF vers S utilisé
  • SPTbit: Indique si l'état (S,G) est actif
  • Temporisateur (S,G) Keepalive (KAT)

État (S,G) supplémentaire au DR:

  • État Register: Join, Prune, Join-Pending, ou NoInfo
  • Temporisateur Register-Stop (RST)
remarque

Pour les définitions détaillées des champs d'état, l'utilisation du SPTbit et les fonctions du temporisateur Keepalive, veuillez consulter la section 4.1.3 de la RFC 7761 pour la spécification complète.

4.1.4. (S,G,rpt) State (État (S,G,rpt))

Pour chaque paire source/groupe (S,G) pour laquelle le routeur a également un état (*,G), il maintient également l'état suivant:

État par interface:

  • Appartenance locale: L'état est "NoInfo" ou "Exclude"
  • État PIM (S,G,rpt) Join/Prune: Comprend l'état (NoInfo, Pruned, Prune-Pending) et les temporisateurs

État non spécifique à l'interface:

  • État amont (S,G,rpt) Join/Prune: RPTNotJoined(G), NotPruned(S,G,rpt), ou Pruned(S,G,rpt)
  • Temporisateur de remplacement (Override Timer, OT)
remarque

Pour les définitions détaillées des champs d'état et le comportement de la machine à états, veuillez consulter la section 4.1.4 de la RFC 7761 pour la spécification complète.

4.1.5. State Summarization Macros (Macros de résumé d'état)

La spécification PIM utilise un certain nombre de macros pour résumer l'état afin de déterminer le comportement de transmission et la génération de messages. Ces macros comprennent:

  • immediate_olist(*,G): Liste d'interfaces sortantes immédiates
  • inherited_olist(S,G): Liste d'interfaces sortantes héritées
  • joins(*,G): Si un état de jonction (*,G) existe sur une interface
  • pim_include(*,G): Si une interface a une appartenance locale
  • lost_assert(*,G): Si une assertion a été perdue sur une interface
  • Et d'autres macros utilisées pour calculer le comportement de transmission et de jonction/élagage
remarque

Pour les définitions complètes et les scénarios d'utilisation de toutes les macros de résumé d'état, veuillez consulter la section 4.1.5 de la RFC 7761 pour les spécifications détaillées. Ces macros sont essentielles pour comprendre le comportement de transmission et du plan de contrôle de PIM.