6.8.4. Calculating the Detection Time (Calcolo del tempo di rilevamento)
6.8.4. Calculating the Detection Time (Calcolo del tempo di rilevamento)
Il tempo di rilevamento (Detection Time) è il periodo entro il quale un sistema DEVE ricevere almeno un pacchetto di controllo BFD dal sistema remoto, altrimenti la sessione verrà dichiarata Down. Il tempo di rilevamento viene calcolato in modo diverso a seconda che il sistema sia in modalità asincrona o in modalità Demand.
In modalità asincrona:
Quando un sistema non è in modalità Demand (cioè, bfd.RemoteDemandMode è 0), il tempo di rilevamento viene calcolato come segue:
bfd.DetectTime = bfd.RemoteDetectMult * bfd.DesiredMinTxInterval
Dove:
bfd.RemoteDetectMultè il moltiplicatore di rilevamento ricevuto dal sistema remoto (dal campoDetect Mult).bfd.DesiredMinTxIntervalè l'intervallo minimo di trasmissione che il sistema remoto ha dichiarato di voler utilizzare.
In altre parole, il sistema si aspetta di ricevere un pacchetto di controllo BFD dal sistema remoto entro un tempo pari al moltiplicatore di rilevamento moltiplicato per l'intervallo di trasmissione del sistema remoto.
Tuttavia, se il sistema remoto ha segnalato bfd.RequiredMinRxInterval maggiore di zero, il tempo di rilevamento DEVE essere calcolato come:
bfd.DetectTime = bfd.RemoteDetectMult * max(bfd.RemoteDesiredMinTxInterval, bfd.RequiredMinRxInterval)
Questo assicura che il tempo di rilevamento tenga conto sia della velocità di trasmissione del sistema remoto sia della capacità di ricezione del sistema locale.
In modalità Demand:
Quando un sistema è in modalità Demand (cioè, bfd.RemoteDemandMode è 1), il rilevamento dei guasti NON si basa sulla ricezione di pacchetti di controllo BFD periodici. Invece, il sistema DEVE utilizzare qualche altro meccanismo (come la funzione Echo o un meccanismo di rilevamento esterno) per determinare lo stato della connettività.
Se viene utilizzata una sequenza di Poll in modalità Demand, il sistema DEVE attendere un tempo ragionevole per la risposta, ma questo tempo non è strettamente definito dal protocollo BFD.
Aggiornamento del Detection Timer:
Ogni volta che viene ricevuto un pacchetto di controllo BFD valido in modalità asincrona, il Detection Timer DEVE essere resettato a bfd.DetectTime. Se il Detection Timer scade senza ricevere un pacchetto valido, la sessione DEVE essere dichiarata Down.
Caso speciale:
Se bfd.RequiredMinRxInterval del sistema locale è zero, questo indica che il sistema locale non desidera ricevere pacchetti di controllo BFD periodici. In questo caso, il sistema NON DEVE utilizzare un timer di rilevamento basato sulla ricezione dei pacchetti di controllo BFD. Il sistema potrebbe invece fare affidamento sulla funzione Echo o su altri meccanismi per il rilevamento dei guasti.