6.8.7. Transmitting BFD Control Packets
6.8.7. Transmitting BFD Control Packets (Senden von BFD Control Packets)
Mit Ausnahme der im Rest dieses Abschnitts aufgeführten Fälle DARF ein System BFD Control Packets NICHT mit einem Intervall übertragen, das kleiner ist als das größere von bfd.DesiredMinTxInterval und bfd.RemoteMinRxInterval, abzüglich angewendetem Jitter (siehe unten). Mit anderen Worten, das System, das die langsamere Rate meldet, bestimmt die Übertragungsrate.
Die periodische Übertragung von BFD Control Packets MUSS paketweise um bis zu 25% geglättert werden, d.h. das Intervall MUSS um einen Zufallswert von 0 bis 25% reduziert werden, um eine Selbstsynchronisation mit anderen Systemen im selben Subnetz zu vermeiden. Somit wird das durchschnittliche Intervall zwischen Paketen etwa 12,5% geringer sein als das ausgehandelte.
Wenn bfd.DetectMult gleich 1 ist, MUSS das Intervall zwischen übertragenen BFD Control Packets nicht mehr als 90% des ausgehandelten Übertragungsintervalls und MUSS nicht weniger als 75% des ausgehandelten Übertragungsintervalls betragen. Dies soll sicherstellen, dass auf dem entfernten System die berechnete Detection Time nicht vor dem Empfang des nächsten BFD Control Packets abläuft.
Das Übertragungsintervall MUSS neu berechnet werden, wann immer bfd.DesiredMinTxInterval sich ändert oder wann immer bfd.RemoteMinRxInterval sich ändert, und ist gleich dem größeren dieser beiden Werte. Siehe Abschnitte 6.8.2 und 6.8.3 für Details zu Übertragungstimern.
Ein System DARF NICHT BFD Control Packets übertragen, wenn bfd.RemoteDiscr null ist und das System die Passive Role übernimmt.
Ein System DARF NICHT periodisch BFD Control Packets übertragen, wenn bfd.RemoteMinRxInterval null ist.
Ein System DARF NICHT periodisch BFD Control Packets übertragen, wenn Demand Mode auf dem entfernten System aktiv ist (bfd.RemoteDemandMode ist 1, bfd.SessionState ist Up und bfd.RemoteSessionState ist Up) und keine Poll Sequence übertragen wird.
Wenn ein BFD Control Packet mit gesetztem Poll (P) Bit empfangen wird, MUSS das empfangende System ein BFD Control Packet mit gelöschtem Poll (P) Bit und gesetztem Final (F) Bit so bald wie praktikabel übertragen, ohne Rücksicht auf den Übertragungstimer oder andere Übertragungsbeschränkungen, ohne Rücksicht auf den Sitzungszustand und ohne Rücksicht darauf, ob Demand Mode auf beiden Systemen aktiv ist. Ein System KANN die Rate begrenzen, mit der solche Pakete übertragen werden. Wenn eine Ratenbegrenzung aktiv ist, MUSS der angekündigte Wert von Desired Min TX Interval größer oder gleich dem Intervall zwischen übertragenen Paketen sein, das durch die Ratenbegrenzungsfunktion auferlegt wird.
Ein System DARF NICHT das Demand (D) Bit setzen, es sei denn, bfd.DemandMode ist 1, bfd.SessionState ist Up und bfd.RemoteSessionState ist Up.
Ein BFD Control Packet SOLLTE während des Intervalls zwischen periodischen Control Packet-Übertragungen übertragen werden, wenn der Inhalt dieses Pakets sich von dem im zuvor übertragenen Paket unterscheiden würde (außer den Poll- und Final-Bits), um eine Zustandsänderung schneller zu kommunizieren.
Inhalt übertragener BFD Control Packets
Der Inhalt übertragener BFD Control Packets MUSS wie folgt gesetzt werden:
Version: Auf die aktuelle Versionsnummer (1) gesetzt.
Diagnostic (Diag): Auf bfd.LocalDiag gesetzt.
State (Sta): Auf den durch bfd.SessionState angegebenen Wert gesetzt.
Poll (P): Auf 1 gesetzt, wenn das lokale System eine Poll Sequence sendet, oder 0, wenn nicht.
Final (F): Auf 1 gesetzt, wenn das lokale System auf ein empfangenes Control Packet mit gesetztem Poll (P) Bit antwortet, oder 0, wenn nicht.
Control Plane Independent (C): Auf 1 gesetzt, wenn die BFD-Implementierung des lokalen Systems unabhängig von der Control Plane ist (sie kann durch eine Störung der Control Plane weiter funktionieren).
Authentication Present (A): Auf 1 gesetzt, wenn Authentifizierung in dieser Sitzung verwendet wird (bfd.AuthType ist ungleich Null), oder 0, wenn nicht.
Demand (D): Auf bfd.DemandMode gesetzt, wenn bfd.SessionState Up ist und bfd.RemoteSessionState Up ist. Andernfalls auf 0 gesetzt.
Multipoint (M): Auf 0 gesetzt.
Detect Mult: Auf bfd.DetectMult gesetzt.
Length: Auf die entsprechende Länge gesetzt, basierend auf der festen Header-Länge (24) plus eventuellem Authentication Section.
My Discriminator: Auf bfd.LocalDiscr gesetzt.
Your Discriminator: Auf bfd.RemoteDiscr gesetzt.
Desired Min TX Interval: Auf bfd.DesiredMinTxInterval gesetzt.
Required Min RX Interval: Auf bfd.RequiredMinRxInterval gesetzt.
Required Min Echo RX Interval: Auf das minimale erforderliche Echo-Paketempfangsintervall für diese Sitzung gesetzt. Wenn dieses Feld auf Null gesetzt ist, ist das lokale System nicht bereit oder nicht in der Lage, BFD Echo-Pakete an das entfernte System zurückzuschleifen, und das entfernte System wird keine Echo-Pakete senden.
Authentication Section: Enthalten und gemäß den Regeln in Abschnitt 6.7 gesetzt, wenn Authentifizierung verwendet wird (bfd.AuthType ist ungleich Null). Andernfalls ist dieser Abschnitt nicht vorhanden.