6.8.7. Transmission des paquets de contrôle BFD
À l'exception des cas listés dans le reste de cette section, un système NE DOIT PAS transmettre de paquets de contrôle BFD à un intervalle inférieur au plus grand de bfd.DesiredMinTxInterval et bfd.RemoteMinRxInterval, moins la gigue appliquée (voir ci-dessous). En d'autres termes, le système signalant le débit le plus lent détermine le débit de transmission.
La transmission périodique de paquets de contrôle BFD DOIT être giguée sur une base par paquet jusqu'à 25%, c'est-à-dire que l'intervalle DOIT être réduit d'une valeur aléatoire de 0 à 25%, afin d'éviter l'auto-synchronisation avec d'autres systèmes sur le même sous-réseau. Ainsi, l'intervalle moyen entre les paquets sera d'environ 12,5% inférieur à celui négocié.
Si bfd.DetectMult est égal à 1, l'intervalle entre les paquets de contrôle BFD transmis DOIT être au maximum 90% de l'intervalle de transmission négocié, et DOIT être au minimum 75% de l'intervalle de transmission négocié. Cela permet de s'assurer que, sur le système distant, le temps de détection calculé ne s'écoule pas avant la réception du prochain paquet de contrôle BFD.
L'intervalle de transmission DOIT être recalculé chaque fois que bfd.DesiredMinTxInterval change, ou chaque fois que bfd.RemoteMinRxInterval change, et est égal au plus grand de ces deux valeurs. Voir les sections 6.8.2 et 6.8.3 pour les détails sur les minuteurs de transmission.
Un système NE DOIT PAS transmettre de paquets de contrôle BFD si bfd.RemoteDiscr est zéro et que le système prend le rôle Passif.
Un système NE DOIT PAS transmettre périodiquement de paquets de contrôle BFD si bfd.RemoteMinRxInterval est zéro.
Un système NE DOIT PAS transmettre périodiquement de paquets de contrôle BFD si le mode Demand est actif sur le système distant (bfd.RemoteDemandMode est 1, bfd.SessionState est Up, et bfd.RemoteSessionState est Up) et qu'une séquence de sondage n'est pas en cours de transmission.
Si un paquet de contrôle BFD est reçu avec le bit Poll (P) positionné à 1, le système récepteur DOIT transmettre un paquet de contrôle BFD avec le bit Poll (P) effacé et le bit Final (F) positionné dès que possible, sans tenir compte du minuteur de transmission ou de toute autre limitation de transmission, sans tenir compte de l'état de la session, et sans tenir compte de si le mode Demand est actif sur l'un ou l'autre système. Un système PEUT limiter le débit auquel de tels paquets sont transmis. Si la limitation de débit est en vigueur, la valeur annoncée de Desired Min TX Interval DOIT être supérieure ou égale à l'intervalle entre les paquets transmis imposé par la fonction de limitation de débit.
Un système NE DOIT PAS positionner le bit Demand (D) sauf si bfd.DemandMode est 1, bfd.SessionState est Up, et bfd.RemoteSessionState est Up.
Un paquet de contrôle BFD DEVRAIT être transmis pendant l'intervalle entre les transmissions de paquets de contrôle périodiques lorsque le contenu de ce paquet différerait de celui du paquet transmis précédemment (autre que les bits Poll et Final) afin de communiquer plus rapidement un changement d'état.
Le contenu des paquets de contrôle BFD transmis DOIT être défini comme suit:
Version
Définie au numéro de version actuel (1).
Diagnostic (Diag)
Défini à bfd.LocalDiag.
State (Sta)
Défini à la valeur indiquée par bfd.SessionState.
Poll (P)
Défini à 1 si le système local envoie une séquence de sondage, ou 0 sinon.
Final (F)
Défini à 1 si le système local répond à un paquet de contrôle reçu avec le bit Poll (P) positionné, ou 0 sinon.
Control Plane Independent (C)
Défini à 1 si l'implémentation BFD du système local est indépendante du plan de contrôle (elle peut continuer à fonctionner malgré une perturbation du plan de contrôle).
Authentication Present (A)
Défini à 1 si l'authentification est utilisée sur cette session (bfd.AuthType est non nul), ou 0 sinon.
Demand (D)
Défini à bfd.DemandMode si bfd.SessionState est Up et bfd.RemoteSessionState est Up. Sinon, il est défini à 0.
Multipoint (M)
Défini à 0.
Detect Mult
Défini à bfd.DetectMult.
Length
Défini à la longueur appropriée, basée sur la longueur de l'en-tête fixe (24) plus toute section d'authentification.
My Discriminator
Défini à bfd.LocalDiscr.
Your Discriminator
Défini à bfd.RemoteDiscr.
Desired Min TX Interval
Défini à bfd.DesiredMinTxInterval.
Required Min RX Interval
Défini à bfd.RequiredMinRxInterval.
Required Min Echo RX Interval
Défini à l'intervalle minimum requis de réception de paquet Echo pour cette session. Si ce champ est défini à zéro, le système local n'est pas disposé ou incapable de renvoyer des paquets BFD Echo au système distant, et le système distant n'enverra pas de paquets Echo.
Authentication Section
Incluse et définie selon les règles de la section 6.7 si l'authentification est utilisée (bfd.AuthType est non nul). Sinon, cette section n'est pas présente.