Passa al contenuto principale

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 correnteEventoNuovo stato
AdminDownNessunoAdminDown
DownADMIN DOWNAdminDown
DownDOWNDown
DownINITUp
InitADMIN DOWNAdminDown
InitDOWNDown
InitINIT o UPUp
UpADMIN DOWNAdminDown
UpDOWNDown
UpTIMERDown

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.