Zum Hauptinhalt springen

6.8.6. Reception of BFD Control Packets

6.8.6. Reception of BFD Control Packets (Empfang von BFD Control Packets)

Wenn ein BFD Control Packet empfangen wird, MUSS das folgende Verfahren in der angegebenen Reihenfolge befolgt werden. Wenn das Paket gemäß diesen Regeln verworfen wird, MUSS die Verarbeitung des Pakets an diesem Punkt beendet werden.

  • Wenn die Versionsnummer nicht korrekt ist (1), MUSS das Paket verworfen werden.
  • Wenn das Length-Feld kleiner als der minimale korrekte Wert ist (24, wenn das A-Bit gelöscht ist, oder 26, wenn das A-Bit gesetzt ist), MUSS das Paket verworfen werden.
  • Wenn das Length-Feld größer als die Nutzdaten des verkapselenden Protokolls ist, MUSS das Paket verworfen werden.
  • Wenn das Detect Mult-Feld null ist, MUSS das Paket verworfen werden.
  • Wenn das Multipoint (M) Bit ungleich Null ist, MUSS das Paket verworfen werden.
  • Wenn das My Discriminator-Feld null ist, MUSS das Paket verworfen werden.
  • Wenn das Your Discriminator-Feld ungleich Null ist, MUSS es verwendet werden, um die Sitzung auszuwählen, mit der dieses BFD-Paket assoziiert ist. Wenn keine Sitzung gefunden wird, MUSS das Paket verworfen werden.
  • Wenn das Your Discriminator-Feld null ist und das State-Feld nicht Down oder AdminDown ist, MUSS das Paket verworfen werden.
  • Wenn das Your Discriminator-Feld null ist, MUSS die Sitzung basierend auf einer Kombination anderer Felder ausgewählt werden, möglicherweise einschließlich Quelladressierungsinformationen, des My Discriminator-Felds und der Schnittstelle, über die das Paket empfangen wurde. Die genaue Auswahlmethode ist anwendungsspezifisch und liegt somit außerhalb des Geltungsbereichs dieser Spezifikation. Wenn keine passende Sitzung gefunden wird, KANN eine neue Sitzung erstellt werden, oder das Paket KANN verworfen werden. Diese Wahl liegt außerhalb des Geltungsbereichs dieser Spezifikation.
  • Wenn das A-Bit gesetzt ist und keine Authentifizierung verwendet wird (bfd.AuthType ist null), MUSS das Paket verworfen werden.
  • Wenn das A-Bit gelöscht ist und Authentifizierung verwendet wird (bfd.AuthType ist ungleich Null), MUSS das Paket verworfen werden.
  • Wenn das A-Bit gesetzt ist, MUSS das Paket gemäß den Regeln von Abschnitt 6.7 authentifiziert werden, basierend auf dem verwendeten Authentifizierungstyp (bfd.AuthType). Dies kann dazu führen, dass das Paket verworfen wird.
  • Setzen Sie bfd.RemoteDiscr auf den Wert von My Discriminator.
  • Setzen Sie bfd.RemoteState auf den Wert des State (Sta) Felds.
  • Setzen Sie bfd.RemoteDemandMode auf den Wert des Demand (D) Bits.
  • Setzen Sie bfd.RemoteMinRxInterval auf den Wert von Required Min RX Interval.
  • Wenn das Required Min Echo RX Interval-Feld null ist, MUSS die Übertragung von Echo-Paketen, falls vorhanden, beendet werden.
  • Wenn eine Poll Sequence vom lokalen System übertragen wird und das Final (F) Bit im empfangenen Paket gesetzt ist, MUSS die Poll Sequence beendet werden.
  • Aktualisieren Sie das Übertragungsintervall wie in Abschnitt 6.8.2 beschrieben.
  • Aktualisieren Sie die Detection Time wie in Abschnitt 6.8.4 beschrieben.

Zustandsmaschinenverarbeitung:

Wenn bfd.SessionState AdminDown ist:

  • Verwerfen Sie das Paket

Wenn empfangener Zustand AdminDown ist:

  • Wenn bfd.SessionState nicht Down ist:
    • Setzen Sie bfd.LocalDiag auf 3 (Neighbor signaled session down)
    • Setzen Sie bfd.SessionState auf Down

Sonst:

  • Wenn bfd.SessionState Down ist:
    • Wenn empfangener State Down ist:
      • Setzen Sie bfd.SessionState auf Init
    • Sonst wenn empfangener State Init ist:
      • Setzen Sie bfd.SessionState auf Up
  • Sonst wenn bfd.SessionState Init ist:
    • Wenn empfangener State Init oder Up ist:
      • Setzen Sie bfd.SessionState auf Up
  • Sonst (bfd.SessionState ist Up):
    • Wenn empfangener State Down ist:
      • Setzen Sie bfd.LocalDiag auf 3 (Neighbor signaled session down)
      • Setzen Sie bfd.SessionState auf Down

Überprüfen Sie, ob Demand Mode aktiv werden sollte oder nicht (siehe Abschnitt 6.6).

Wenn bfd.RemoteDemandMode 1 ist, bfd.SessionState Up ist und bfd.RemoteSessionState Up ist, ist Demand Mode auf dem entfernten System aktiv und das lokale System MUSS die periodische Übertragung von BFD Control Packets beenden (siehe Abschnitt 6.8.7).

Wenn bfd.RemoteDemandMode 0 ist, oder bfd.SessionState nicht Up ist, oder bfd.RemoteSessionState nicht Up ist, ist Demand Mode auf dem entfernten System nicht aktiv und das lokale System MUSS periodische BFD Control Packets senden (siehe Abschnitt 6.8.7).

Wenn das Poll (P) Bit gesetzt ist, senden Sie ein BFD Control Packet an das entfernte System mit gelöschtem Poll (P) Bit und gesetztem Final (F) Bit (siehe Abschnitt 6.8.7).

Wenn das Paket nicht verworfen wurde, wurde es für die Zwecke der Detection Time-Ablaufregeln in Abschnitt 6.8.4 empfangen.