Passa al contenuto principale

6.8.6. Reception of BFD Control Packets (Ricezione dei pacchetti di controllo BFD)

6.8.6. Reception of BFD Control Packets (Ricezione dei pacchetti di controllo BFD)

Quando viene ricevuto un pacchetto di controllo BFD, vengono eseguite le seguenti procedure. Se il pacchetto viene scartato in base a queste procedure, NON DEVE essere elaborato ulteriormente.

Le seguenti verifiche DEVONO essere eseguite su tutti i pacchetti di controllo BFD ricevuti, prima di ulteriori elaborazioni. Se una qualsiasi di queste verifiche fallisce, il pacchetto ricevuto DEVE essere scartato:

  • Se il campo Version non è uguale a 1, il pacchetto DEVE essere scartato.

  • Se il campo Length è minore della lunghezza minima richiesta per il tipo di pacchetto (24 byte per i pacchetti senza autenticazione, più la lunghezza della sezione di autenticazione se presente), il pacchetto DEVE essere scartato.

  • Se il campo Detect Mult è zero, il pacchetto DEVE essere scartato.

  • Se il bit Multipoint (M) è impostato a 1, il pacchetto DEVE essere scartato.

  • Se il campo My Discriminator è zero, il pacchetto DEVE essere scartato.

  • Se il campo Your Discriminator è zero e lo stato non è Down o AdminDown, il pacchetto DEVE essere scartato.

  • Se il campo Your Discriminator è diverso da zero, deve corrispondere al valore bfd.LocalDiscr o il pacchetto DEVE essere scartato.

Se il bit Authentication Present (A) è impostato:

  • Se non è stato configurato alcun tipo di autenticazione per questa sessione, il pacchetto DEVE essere scartato.

  • Se il campo Auth Type non corrisponde al tipo di autenticazione configurato per questa sessione, il pacchetto DEVE essere scartato.

  • Se il pacchetto fallisce la validazione dell'autenticazione in base al tipo di autenticazione specificato, il pacchetto DEVE essere scartato. Vedi le sezioni 6.7.2, 6.7.3 e 6.7.4 per i dettagli della validazione dell'autenticazione.

Se il bit Authentication Present (A) non è impostato:

  • Se l'autenticazione è configurata per la sessione, il pacchetto DEVE essere scartato.

Una volta che il pacchetto ha superato le verifiche sopra, le seguenti azioni vengono eseguite:

  • Se bfd.RemoteDiscr è zero e il campo Your Discriminator non è zero, impostare bfd.RemoteDiscr al valore del campo Your Discriminator.

  • Se bfd.RemoteDiscr è diverso da zero e il campo My Discriminator non è uguale a bfd.RemoteDiscr, il pacchetto DEVE essere scartato.

  • Se è ricevuto lo stato AdminDown, bfd.SessionState DEVE essere impostato a Down, e bfd.LocalDiag DEVE essere impostato a 3 (Neighbor Signaled Session Down). Il Detection Timer DEVE essere cancellato.

  • Se è ricevuto lo stato Down, bfd.SessionState DEVE essere impostato a Down, e bfd.LocalDiag DEVE essere impostato a 3 (Neighbor Signaled Session Down). Il Detection Timer DEVE essere cancellato.

  • Se lo stato ricevuto è Init e bfd.SessionState è Down o AdminDown, la sessione DEVE avanzare allo stato Init, e il Detection Timer DEVE essere avviato con il valore calcolato di bfd.DetectTime.

  • Se lo stato ricevuto è Init o Up, e bfd.SessionState è Init, la sessione DEVE avanzare allo stato Up.

  • Se lo stato ricevuto è Up, bfd.SessionState è Up, e il Detection Timer non è in esecuzione, avviare il Detection Timer con il valore calcolato di bfd.DetectTime.

  • Se lo stato ricevuto è diverso da AdminDown, il Detection Timer DEVE essere reimpostato al valore calcolato di bfd.DetectTime.

  • Aggiornare bfd.RemoteSessionState con il valore del campo State ricevuto.

  • Aggiornare bfd.RemoteDemandMode con il valore del bit Demand (D) ricevuto.

  • Aggiornare bfd.RemoteMinRxInterval con il valore del campo Required Min RX Interval ricevuto.

  • Aggiornare bfd.RemoteMinEchoRxInterval con il valore del campo Required Min Echo RX Interval ricevuto.

  • Ricalcolare il tempo di trasmissione in base ai nuovi valori ricevuti (vedi sezione 6.8.2).

Queste procedure garantiscono che i pacchetti vengano validati correttamente e che lo stato della sessione venga aggiornato in modo appropriato in risposta ai pacchetti ricevuti.