Aller au contenu principal

6.2. Machine à états BFD

6.2. Machine à états BFD

La machine à états BFD est assez simple. Il existe trois états par lesquels une session progresse normalement: deux pour l'établissement d'une session (Init et Up) et un pour la fermeture d'une session (Down). Cela permet une poignée de main à trois voies pour l'établissement de session et la fermeture de session (assurant que les deux systèmes sont conscients de tous les changements d'état de session). Un quatrième état (AdminDown) existe pour qu'une session puisse être mise administrativement inactive indéfiniment.

Chaque système communique son état de session dans le champ State (Sta) dans le paquet de contrôle BFD, et cet état reçu, en combinaison avec l'état de session local, pilote la machine à états.

L'état Down signifie que la session est inactive (ou vient juste d'être créée). Une session reste dans l'état Down jusqu'à ce que le système distant indique qu'il est d'accord que la session est inactive en envoyant un paquet de contrôle BFD avec le champ State positionné à autre chose que Up. Si ce paquet signale l'état Down, la session avance à l'état Init; si ce paquet signale l'état Init, la session avance à l'état Up. Sémantiquement, l'état Down indique que le chemin de transmission est indisponible, et que des actions appropriées doivent être prises par les applications surveillant l'état de la session BFD. Un système PEUT maintenir une session dans l'état Down indéfiniment (en refusant simplement de faire avancer l'état de session). Ceci peut être fait pour des raisons opérationnelles ou administratives, entre autres.

L'état Init signifie que le système distant communique, et que le système local souhaite établir la session, mais le système distant ne le réalise pas encore. Une session restera dans l'état Init jusqu'à ce qu'un paquet de contrôle BFD soit reçu signalant l'état Init ou Up (auquel cas la session avance à l'état Up) ou que le temps de détection expire, signifiant que la communication avec le système distant a été perdue (auquel cas la session avance à l'état Down).

L'état Up signifie que la session BFD a été établie avec succès, et implique que la connectivité entre les systèmes fonctionne. La session restera dans l'état Up jusqu'à ce que la connectivité échoue ou que la session soit fermée administrativement. Si le système distant signale l'état Down ou que le temps de détection expire, la session avance à l'état Down.

L'état AdminDown signifie que la session est maintenue administrativement inactive. Cela provoque l'entrée du système distant dans l'état Down, et d'y rester jusqu'à ce que le système local sorte de l'état AdminDown. L'état AdminDown n'a pas d'implications sémantiques pour la disponibilité du chemin de transmission.

Le diagramme suivant fournit une vue d'ensemble de la machine à états. Les transitions impliquant l'état AdminDown sont supprimées pour plus de clarté (mais sont entièrement spécifiées dans les sections 6.8.6 et 6.8.16). La notation sur chaque arc représente l'état du système distant (tel que reçu dans le champ State dans le paquet de contrôle BFD) ou indique l'expiration du temporisateur de détection.

                        +--+
| | UP, ADMIN DOWN, TIMER
| V
DOWN +------+ INIT
+------------| |------------+
| | DOWN | |
| +-------->| |<--------+ |
| | +------+ | |
| | | |
| | ADMIN DOWN,| |
| |ADMIN DOWN, DOWN,| |
| |TIMER TIMER| |
V | | V
+------+ +------+
+----| | | |----+
DOWN| | INIT |--------------------->| UP | |INIT, UP
+--->| | INIT, UP | |<---+
+------+ +------+