6.2. BFD State Machine (Macchina a stati BFD)
6.2. BFD State Machine (Macchina a stati BFD)
BFD implementa una semplice macchina a stati con quattro stati. La macchina a stati è illustrata dal seguente diagramma e dalla tabella:
+--+
| | UP, ADMIN DOWN, TIMER
| V
DOWN +------+------+
+------------| |------------+
| | DOWN | |
| +---------| |----------+ |
| | +------+-----+ | |
| | | | |
| | | INIT | |
| | V | |
| | +------+-----+ | |
| | | | | |
| | | INIT | | |
| | | | | |
| | +------+-----+ | |
| | | | |
| | | UP | |
| | V | |
| | +------+-----+ | |
| +-------->| |<---------+ |
| | UP | |
+----------->| |<-----------+
+------+-----+
|
| ADMIN DOWN, TIMER
V
+------+-----+
| |
| ADMIN DOWN |
| |
+------------+
Gli eventi che causano transizioni di stato sono:
- ADMIN DOWN: Il sistema locale dichiara la sessione amministrativamente Down.
- DOWN: Il sistema remoto dichiara la sessione Down (il bit di stato ricevuto è Down o AdminDown).
- INIT: Il sistema remoto dichiara la sessione in stato Init (il bit di stato ricevuto è Init).
- UP: Il sistema remoto dichiara la sessione Up (il bit di stato ricevuto è Up).
- TIMER: Il timer di rilevamento scade, indicando che non sono stati ricevuti pacchetti BFD entro il tempo richiesto.
Le transizioni di stato sono le seguenti:
| Stato corrente | Evento | Nuovo stato |
|---|---|---|
| AdminDown | Nessuno | AdminDown |
| Down | ADMIN DOWN | AdminDown |
| Down | DOWN | Down |
| Down | INIT | Up |
| Init | ADMIN DOWN | AdminDown |
| Init | DOWN | Down |
| Init | INIT o UP | Up |
| Up | ADMIN DOWN | AdminDown |
| Up | DOWN | Down |
| Up | TIMER | Down |
Quando una sessione BFD è nello stato AdminDown, non vengono trasmessi pacchetti di controllo BFD e tutti i pacchetti di controllo BFD ricevuti vengono scartati.
Quando una sessione BFD è nello stato Down, vengono trasmessi pacchetti di controllo BFD con lo stato Down, e il sistema è in attesa di ricevere un pacchetto di controllo BFD dallo stato remoto con lo stato Init o Up.
Quando una sessione BFD è nello stato Init, vengono trasmessi pacchetti di controllo BFD con lo stato Init, e il sistema è in attesa di ricevere un pacchetto di controllo BFD dallo stato remoto con lo stato Init o Up.
Quando una sessione BFD è nello stato Up, vengono trasmessi pacchetti di controllo BFD con lo stato Up, e il sistema monitora la ricezione di pacchetti di controllo BFD per rilevare guasti.
Si noti che la macchina a stati implementa effettivamente un handshake a tre vie per garantire che entrambi i sistemi siano consapevoli dell'inizio della sessione, e un handshake a due vie per garantire che entrambi i sistemi siano consapevoli della fine della sessione.