Aller au contenu principal

6.8.6. Réception des paquets de contrôle BFD

Lorsqu'un paquet de contrôle BFD est reçu, la procédure suivante DOIT être suivie, dans l'ordre spécifié. Si le paquet est rejeté selon ces règles, le traitement du paquet DOIT cesser à ce point.

Si le numéro de version n'est pas correct (1), le paquet DOIT être rejeté.

Si le champ Length est inférieur à la valeur correcte minimale (24 si le bit A est effacé, ou 26 si le bit A est positionné), le paquet DOIT être rejeté.

Si le champ Length est supérieur à la charge utile du protocole d'encapsulation, le paquet DOIT être rejeté.

Si le champ Detect Mult est zéro, le paquet DOIT être rejeté.

Si le bit Multipoint (M) est non nul, le paquet DOIT être rejeté.

Si le champ My Discriminator est zéro, le paquet DOIT être rejeté.

Si le champ Your Discriminator est non nul, il DOIT être utilisé pour sélectionner la session à laquelle ce paquet BFD est associé. Si aucune session n'est trouvée, le paquet DOIT être rejeté.

Si le champ Your Discriminator est zéro et que le champ State n'est pas Down ou AdminDown, le paquet DOIT être rejeté.

Si le champ Your Discriminator est zéro, la session DOIT être sélectionnée en fonction d'une combinaison d'autres champs, incluant éventuellement les informations d'adressage source, le champ My Discriminator, et l'interface sur laquelle le paquet a été reçu. La méthode exacte de sélection est spécifique à l'application et est donc en dehors du champ d'application de cette spécification. Si une session correspondante n'est pas trouvée, une nouvelle session PEUT être créée, ou le paquet PEUT être rejeté. Ce choix est en dehors du champ d'application de cette spécification.

Si le bit A est positionné et qu'aucune authentification n'est utilisée (bfd.AuthType est zéro), le paquet DOIT être rejeté.

Si le bit A est effacé et que l'authentification est utilisée (bfd.AuthType est non nul), le paquet DOIT être rejeté.

Si le bit A est positionné, le paquet DOIT être authentifié selon les règles de la section 6.7, en fonction du type d'authentification utilisé (bfd.AuthType). Cela peut entraîner le rejet du paquet.

Définir bfd.RemoteDiscr à la valeur de My Discriminator.

Définir bfd.RemoteState à la valeur du champ State (Sta).

Définir bfd.RemoteDemandMode à la valeur du bit Demand (D).

Définir bfd.RemoteMinRxInterval à la valeur de Required Min RX Interval.

Si le champ Required Min Echo RX Interval est zéro, la transmission des paquets Echo, le cas échéant, DOIT cesser.

Si une séquence de sondage est transmise par le système local et que le bit Final (F) dans le paquet reçu est positionné, la séquence de sondage DOIT être terminée.

Mettre à jour l'intervalle de transmission comme décrit dans la section 6.8.2.

Mettre à jour le temps de détection comme décrit dans la section 6.8.4.

Si bfd.SessionState est AdminDown

Rejeter le paquet

Si l'état reçu est AdminDown Si bfd.SessionState n'est pas Down Définir bfd.LocalDiag à 3 (Neighbor signaled session down) Définir bfd.SessionState à Down

Sinon

Si bfd.SessionState est Down
Si l'état reçu est Down
Définir bfd.SessionState à Init
Sinon si l'état reçu est Init
Définir bfd.SessionState à Up

Sinon si bfd.SessionState est Init
Si l'état reçu est Init ou Up
Définir bfd.SessionState à Up

Sinon (bfd.SessionState est Up)
Si l'état reçu est Down
Définir bfd.LocalDiag à 3 (Neighbor signaled
session down)
Définir bfd.SessionState à Down

Vérifier si le mode Demand doit devenir actif ou non (voir section 6.6).

Si bfd.RemoteDemandMode est 1, bfd.SessionState est Up, et bfd.RemoteSessionState est Up, le mode Demand est actif sur le système distant et le système local DOIT cesser la transmission périodique de paquets de contrôle BFD (voir section 6.8.7).

Si bfd.RemoteDemandMode est 0, ou bfd.SessionState n'est pas Up, ou bfd.RemoteSessionState n'est pas Up, le mode Demand n'est pas actif sur le système distant et le système local DOIT envoyer des paquets de contrôle BFD périodiques (voir section 6.8.7).

Si le bit Poll (P) est positionné, envoyer un paquet de contrôle BFD au système distant avec le bit Poll (P) effacé, et le bit Final (F) positionné (voir section 6.8.7).

Si le paquet n'a pas été rejeté, il a été reçu aux fins des règles d'expiration du temps de détection de la section 6.8.4.