Review of draft-ietf-idr-bgp-bfd-strict-mode-18

Alvaro Retana <aretana.ietf@gmail.com> Fri, 28 August 2026 21:47 UTC

Return-Path: <aretana.ietf@gmail.com>
X-Original-To: rtg-bfd@mail2.ietf.org
Delivered-To: rtg-bfd@mail2.ietf.org
Received: from localhost (localhost [127.0.0.1]) by mail2.ietf.org (Postfix) with ESMTP id 3EAD813139D76 for <rtg-bfd@mail2.ietf.org>; Fri, 28 Aug 2026 14:47:03 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ietf.org; s=ietf1; t=1787953623; bh=2sqfuqr8B2G3uRvw835s+qqa1xmWv1746A1/En3lF24=; h=From:Date:Subject:To:Cc; b=pB8va7z6WicTSMd+aVlUepsUgUZo7adhMLOfN/YwiJ8mMVUWTpAGajP4M0PfHE697 YlDcLL8SZum+01aON147xWgp94l91xvZes7s4o5iHdUALG2AgZsoAnZxWlEKvomFxo KHzktbVv2GknMYy8RbTYx7lIfgvW2Rv/YyopnkXU=
X-Virus-Scanned: amavisd-new at ietf.org
X-Spam-Flag: NO
X-Spam-Score: -2.098
X-Spam-Level:
X-Spam-Status: No, score=-2.098 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=unavailable autolearn_force=no
Authentication-Results: mail2.ietf.org (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
Received: from mail2.ietf.org ([166.84.6.31]) by localhost (mail2.ietf.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id aJBQMeaUPPmJ for <rtg-bfd@mail2.ietf.org>; Fri, 28 Aug 2026 14:47:00 -0700 (PDT)
Received: from mail-pg1-x52f.google.com (mail-pg1-x52f.google.com [IPv6:2607:f8b0:4864:20::52f]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature ECDSA (P-256) server-digest SHA256) (No client certificate requested) by mail2.ietf.org (Postfix) with ESMTPS id 4D92C13139D64 for <rtg-bfd@ietf.org>; Fri, 28 Aug 2026 14:47:00 -0700 (PDT)
Received: by mail-pg1-x52f.google.com with SMTP id 41be03b00d2f7-cc11a905ba5so1124138a12.2 for <rtg-bfd@ietf.org>; Fri, 28 Aug 2026 14:47:00 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; t=1787953619; cv=none; d=google.com; s=arc-20260327; b=hJmxKt7J3Zf+vyA9wCW0Bx2rXkErdeuYWyirkuCS+6m8yL2VkZIx180HTVy4VHgu1i XJCNXXErkzHV90aMjy8Mgx853I6kl8iFnIi1l0njhgoQWevnE7Pr7Cb9v9insBwsPwm0 eVoxtGvVughbJPXs9PkYto69Ny5xhyZWN8O2QSOBZUVvpQGUASrJxy3+5gMbGoJlqiRQ km1Q1+SiIex9vKwF1V3Z4UySopvDzcNscGLFnOl1+CY/8oUS/gKJBGMnfYnzdmQMj4hp JPHf7zgXjdg0ysIMJ/gWzccHfrRExsrEtCJxt+6vjXmdY9YivcxSpFyKKNBt2QNoxfmh Irxg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20260327; h=cc:to:subject:message-id:date:mime-version:from:dkim-signature; bh=jaU54XmRoZQe7mA8RZ0QOWM8dHlsOodcj/WQJh8aohk=; fh=mAWaxxjJHznCUIbz/T5VVAeRKw20+FjFI87rHx2zQN8=; b=Qj8QdHtUJrABeyw86x4Xj84x2dNYcMN6/aJgEooXhKTlp8S6O0svJ12QW509Yl4BLn d1ztCYjSHpBdX7vOctsNi8YN2CfT/PSanlAGuTpVtOteYyKjka19n4g5fAYM5Q+h9Dmh Vnkf5Xa/2OBuSduQc8ASf5Uiwv4ZSLHVOAMgz5K812iL+ln1bsN02VN1jbiwW90tDrMA VNipR2dgx1fqWBPXaoSYTdsrxV4UCkU5WcdRsix3nMEf3acy+YPpXD5jXoGSfl1iWFUk Lc116KLPwu2TN/RsWFdVGhDgV+vf57WY1aqvnH0T3KtrG+/dsl5Wpi+XXyUks2ofnXSp H8DQ==; darn=ietf.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1787953619; x=1788558419; darn=ietf.org; h=content-type:cc:to:subject:message-id:date:mime-version:from:from :to:cc:subject:date:message-id:reply-to:content-type; bh=jaU54XmRoZQe7mA8RZ0QOWM8dHlsOodcj/WQJh8aohk=; b=WRQDbnY7eBKd3KTWfzQwzzXJA/Evu4K7wmUgbID6OA0rl+YvH8sDik3i71GyUQqKoj T2RZTv6mafulnP05D4GNIAxkJargoJtY+2TMqAhF3i3OoMEd7UDzwiWinJ0Ya0/qNA9K VaxV5heE8ImxBedruSXJ9mor8Dg9FxjOuvzq9gNkAOCWpw2ahTX5GpxMHUHwIpTC2bBn K5J2FvMShqNGAk498AK9pQ9E3qXomrcmic0aaCJQVjSI9gYfcvqXPzNqrMvrMwYCXtqi VznNTYK5/jVIaH3Nm/cSi0f5vCQ3nF9tq+kt/ytPeUh6rR79zka80EeFQFcREwjEWkpb gAQQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787953619; x=1788558419; h=content-type:cc:to:subject:message-id:date:mime-version:from :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to:content-type; bh=jaU54XmRoZQe7mA8RZ0QOWM8dHlsOodcj/WQJh8aohk=; b=oRyXWeCT659WEGwEfgOJ93MADbDj8kwR4hg8XaMvYH/6/xkXanFbs0D3AUBqi09LxU psx4lFA9q3aCDYGAB7FI6XESWpW+Ekyvq6tL/kO3njKd+46WSPfKDxU3Sihb9J3lLMYY P2rOhjNpZwDs2CGWLLHX0BvSeUtv6Gf8BCnhP2fxm5hlBNT4RiUNpS3XKILun+zr6uOY dTjoo9Y0qybLSCDb4HKyH6MWFdOBgUJ5ieidRopB/32uyc89DDhixfLpXZC6V6sFIqKG XaDwqJYc4crudaubsDBuUPvXXVe2PrgJhlbetdUUhvwUbceNCJd8NIXSPFeZC9h7tUVI Lbew==
X-Forwarded-Encrypted: i=1; AHgh+RoXsmxf/Jv8+PVnpVIIGeU42Ylfn3MyC7UyEyPUto9zUg/JBEzh2cSIFj93eIIeN3P2eUI3NQ50@ietf.org
X-Gm-Message-State: AFuF++mHTNXJj6UyPFOT2yGiTtnR63Q/dDo9dmlINjgUBEcmJeLWfLFG exUItWqLSd/+a0oetGwINgaL2qWHPdyyxhZRcfssFZQihm2YB4zvD/M6za544tJtEVnJAUZL+IJ IJ6sJWDMLvAYUMibzRBJGIkkzbgjJeMU=
X-Gm-Gg: AR+sD12tMLJa566IE6o9zWmcbFb6YHJ3d6W2P5m8MP6lzu28ecOAbxH+GOYtZSJRveh 5G6eZkmPndO3RV7f4i+fI92p3bCvZywjhwBFC12dj8dh2zsV2ubpPMWGaSEVHxKAN7sKoJnD59H Kw352VZ295k9TU4RFREpYBh66pWZ0LFH2vOzJfT2hsxJm1wznpkq/p7nIH8QMHjxVAw5pYgDDlp AMPvcebWRhWTOrOHeKH/3h9lDpsetZUHRSHmgv7vPLo+NXW1nkloOmUgIxCv3sciDhcOc6xpO8n 7dPQsJaVfwYxJ/AI2PZRLNuhoPzTVC00FiA0DXWFo0rOx1aGFvUMSNCZZt5OWf5Oj9gkn3plF2Z NKo0p6Af+w+8VUA==
X-Received: by 2002:a05:6a21:9098:b0:3d3:adbf:7778 with SMTP id adf61e73a8af0-3d3adbf8191mr4144312637.20.1787953618801; Fri, 28 Aug 2026 14:46:58 -0700 (PDT)
Received: from 1058052472880 named unknown by gmailapi.google.com with HTTPREST; Fri, 28 Aug 2026 16:46:57 -0500
Received: from 1058052472880 named unknown by gmailapi.google.com with HTTPREST; Fri, 28 Aug 2026 16:46:57 -0500
From: Alvaro Retana <aretana.ietf@gmail.com>
MIME-Version: 1.0
Date: Fri, 28 Aug 2026 16:46:57 -0500
X-Gm-Features: AcwNN1XhuHbXDeGzKqi-ika2WdiwPcKpXjuptI5LPEfUuUhWYuNm2CEbHuHeduQ
Message-ID: <CAMMESsx=CxveCpB-47Zob7fs5BFVdUE5cGuUVm6kDE8_jMchMw@mail.gmail.com>
Subject: Review of draft-ietf-idr-bgp-bfd-strict-mode-18
To: draft-ietf-idr-bgp-bfd-strict-mode@ietf.org
Content-Type: multipart/alternative; boundary="00000000000052d838065a226489"
Message-ID-Hash: HW5BXLKVC4N5CDMQ247ADIKVISCVJ3FV
X-Message-ID-Hash: HW5BXLKVC4N5CDMQ247ADIKVISCVJ3FV
X-MailFrom: aretana.ietf@gmail.com
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-rtg-bfd.ietf.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header
CC: "idr@ietf. org" <idr@ietf.org>, rtg-bfd@ietf.org
X-Mailman-Version: 3.3.9rc6
Precedence: list
List-Id: "RTG Area: Bidirectional Forwarding Detection" <rtg-bfd.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/rtg-bfd/W4GQw5Dl0IHpbtIRaAK0GX-IiAo>
List-Archive: <https://mailarchive.ietf.org/arch/browse/rtg-bfd>
List-Help: <mailto:rtg-bfd-request@ietf.org?subject=help>
List-Owner: <mailto:rtg-bfd-owner@ietf.org>
List-Post: <mailto:rtg-bfd@ietf.org>
List-Subscribe: <mailto:rtg-bfd-join@ietf.org>
List-Unsubscribe: <mailto:rtg-bfd-leave@ietf.org>

 Dear authors:

As I read draft-ietf-idr-bgp-fsm-iana, I reviewed this document as well.

I added inline comments (below). I have a significant concern that I want
to highlight here first:

   Does strict-more mean "BFD Up", or are there other cases?

   The Introduction defines strict-mode as: "BFD "strict-mode" operation as
   preventing BGP session establishment until both the local and remote
   speakers have an established BFD session."  However, the FSM specifies
   cases where BfdAdminDown or BfdDisabled are TRUE, but session
establishment
   continues. See related comments near line 200.


Thanks in advance for considering my comments.

Alvaro.


[Line numbers from idnits.]

...
121 1.  Introduction
...
129   The BFD interaction with BGP is specified in Section 10.2 of
130   [RFC5882].  When BFD is enabled for a BGP neighbor, faults in the
131   bidirectional forwarding detected by BFD result in BGP session
132   termination.  It is possible in some failure scenarios for the
133   network to be in a state such that a BGP session may be established
134   but a BFD session cannot be established.  In some other scenarios, it
135   may be possible to establish a BGP session, but a degraded or poor-
136   quality link may result in the corresponding BFD session going up and
137   down frequently.

[nit] "BFD interaction with BGP is specified in Section 10.2 of [RFC5882]"

§10/rfc5882 is non-normative.  s/specified/described



...
197 4.  BGP FSM Events for BFD Strict-Mode

199   Event 30: BfdAdminDown
200      Definition:
201         The BFD session associated with this BGP session has
202         transitioned to the AdminDown state.

[minor] Because this draft is referencing 2 different FSMs, it would be
helpful to indicate when the BGP FSM is not the one referenced (which
should be a lot less than when the BFD FSM is referenced).  For example,
AdminDown is a state in the BFD FSM [rfc5880].



[major] The use of BfdAdminDown is not consistent with "strict-mode".

[The same comment applies to BfdDisabled.]

The use of BfdAdminDown, for example in §8.3.1:

=====
8.3.1. Connect - Handling BfdAdminDown / BfdDisabled / BfdUp
   In response to the BfdAdminDown event (Event 30), the BfdDisabled
   event (Event 33), or the BfdUp event (Event 32) the the local system
   checks to see if it is in the ConnectDelayOpenBfdUpPending sub-state.
   If the FSM is in the ConnectDelayOpenBfdUpPending sub-state, the
   local system:

   * sends a KEEPALIVE message,
   ...
=====

...is not consistent with how strict-mode is defined: "BFD "strict-mode"
operation as preventing BGP session establishment until both the local and
remote speakers have an established BFD session." (from the Introduction).

[Several places in the draft group BfdAdminDown / BfdDisabled / BfdUp.]

By definition, an AdminDown BFD session is not Up, so in a "strict-mode"
the BGP session should not be sending KEEPALIVEs (as specified above).
Note that §8.1 (Overview of BFD Strict FSM Changes) also mentions the
expected behavior:

   When BFD is enabled, and BFD strict-mode is enabled and negotiated,
   the BGP finite state machine is prevented from send a KEEPALIVE to
   the remote BGP speaker and advancing to the OpenConfirm state until
   the associated BFD session has reached the Up state.

Again, in AdminDown the BFD session is not Up!



204      Status:
205         Optional

207      Optional Attribute Status:
208         The BfdEnabled attribute for this BGP session SHOULD be set to
209         TRUE.

[major] Setting BfdEnabled to TRUE when BFD is AdminDown doesn't make sense
to me.  Did you mean FALSE?


[major] When is it ok to not set BfdEnabled?  IOW, why is this action
recommended and not required?



211   Event 31: BfdDown
212      Definition:
213         The BFD session associated with this BGP session has
214         transitioned to the Down state.

216      Status:
217         Optional

219      Optional Attribute Status:

[nit] Some of the "Optional Attribute Status" descriptions are left blank
-- it gives the impression that something may be missing.  Consider adding
"None".



221   Event 32: BfdUp
222      Definition:
223         The BFD session associated with this BGP session has
224         transitioned to the Up state.

226      Status:
227         Optional

229      Optional Attribute Status:
230         The BfdEnabled attribute for this BGP session SHOULD be set to
231         TRUE.

[major] When is it ok to not set BfdEnabled?  IOW, why is this action
recommended and not required?



...
242   Event 34: BfdHoldTimerExpires
243      Definition:
244         The BFD holdtimer, which is set when the negotiated BGP hold
245         time is zero, has expired.

247      Status:
248         Optional

250      Optional Attribute Status:
251         *  The HoldTimer SHOULD NOT be running.

253         *  The negotiated HoldTime SHOULD be zero.

255         *  The BGP session state SHOULD be in Connect, Active, or
256            OpenSent.

[major] These 3 sentences sound like statements (expectations), not
normative actions, which makes the use of SHOULD/SHOULD NOT inappropriate.
Is that the intent?



258   Event 35: BfdStrictConfigChanged
259      Definition:
260         The configuration for the BFD strict configuration for the BGP
261         session has been changed.

263      Status:
264         Optional

266      Optional Attribute Status:
267         If BfdEnabled is FALSE, this event MUST NOT occur.  When BFD
268         has been disabled, the local system will trigger a BfdAdminDown
269         event instead.

[major] "this event MUST NOT occur"

This fragment seems to be a statement of fact, not a Normative requirement:
s/MUST NOT/must not



...
292 7.  Starting and Stopping BFD Sessions Associated BGP BFD Strict-Mode

[nit] s/BFD Sessions Associated BGP/BFD Sessions Associated with BGP



294   Implementations SHOULD start the BFD session associated with the BGP
295   BFD strict-mode session prior to the BGP FSM starting.  The
296   motivation is to avoid delaying BGP FSM transitions while waiting for
297   the BFD session reach the Up state.

[nit] s/session reach/session to reach



299   Similarly, to support BFD hold-down requirements for detecting BFD
300   session stability (see Section 10), implementations SHOULD NOT
301   immediately destroy BFD sessions when associated BGP connections
302   transition to Idle.

[major] When is it ok to immediately destroy BFD sessions?  Or is the
"later" destruction ok?  Why is this behavior recommended and not required?

The general suggestion seems valuable, regardless of hold-down.  Alternate
suggestion>

   When associated BGP connections transition to Idle, an implementation
   MAY destroy the BFD session, but doing so may delay the next BGP
   establishment.



304 8.  BGP FSM State Changes

306 8.1.  Overview of BFD Strict FSM Changes

308   When BFD is enabled, and BFD strict-mode is enabled and negotiated,
309   the BGP finite state machine is prevented from send a KEEPALIVE to
310   the remote BGP speaker and advancing to the OpenConfirm state until
311   the associated BFD session has reached the Up state.

[nit] s/prevented from send/prevented from sending



...
324   For each of these scenarios, when BFD is enabled, and BFD strict-mode
325   is negotiated, a sub-state is introduced to track the pending BFD Up
326   event:

328   *  ConnectDelayOpenBfdUpPending

330   *  ActiveDelayOpenBfdUpPending

332   *  OpenSentBfdUpPending
333   *  OpenSentConfirmedBfdUpPending

[minor] It would be nice to explicitly state what each sub-state implies
(for example, KEEPALIVE received, BFD no up, etc.).  Yes, this information
is in the FSM, but it could make further implementations easier.



...
360 8.3.1.  Connect - Handling BfdAdminDown / BfdDisabled / BfdUp

362   In response to the BfdAdminDown event (Event 30), the BfdDisabled
363   event (Event 33), or the BfdUp event (Event 32) the the local system
364   checks to see if it is in the ConnectDelayOpenBfdUpPending sub-state.
365   If the FSM is in the ConnectDelayOpenBfdUpPending sub-state, the
366   local system:

[nit] s/the the/the



...
727 8.5.1.  OpenSent - Handling BfdAdminDown / BfdDisabled / BfdUp

729   In response to the the BfdAdminDown event (Event 30), the BfdDisabled
730   event (Event 33), or the BfdUp event (Event 32), and the FSM is in
731   the OpenSentBfdUpPending or the OpenSentConfirmedBfdUpPending sub-
732   states, the local system:

[nit] s/the the/the



...
909 8.5.6.  OpenSent - Handling Event 26, KeepAliveMsg

911   When BFD strict-mode is not in use, receiving a KEEPALIVE message
912   while in the OpenSent state is a finite state machine error.
...
960   When a KEEPALIVE message is received, and either BfdEnabled is FALSE
961   or BfdStrictNegotiated is FALSE, or in response to any other event
962   (Events 9, 11-13, 20, 25, 27-28), the local system:

964   *  sends the NOTIFICATION with the Error Code Finite State Machine
965      Error,

[major] "BfdEnabled is FALSE or BfdStrictNegotiated is FALSE"

Maybe I'm lost...  We should only have advanced to OpenSent if BFD
strict-mode was enabled and negotiated, right?  If so, how can they now be
FALSE?  I'm assuming BFD was disabled manually (that explains BfdEnabled
being FALSE), but what about the negotiation?

IF we somehow got to a place where BfdStrictNegotiated is FALSE (but
BfdEnabled is TRUE), then we're at the boundary between strict-mode (what
is defined in this document) and "normal" (non-strict operation:
BfdStrictNegotiated is FALSE). This makes me uneasy because the scope of
this document is strict-mode; "normal" is specified in rfc5882, so if we
change anything here to operate in "normal” mode, we might need to consider
rfc5882 (even if some of the BGP-specific guidance is non-normative).



[major] Using FSM Errors is consistent with the FSM in rfc4271. The logic
here seems reasonable too.  My concern is that the resulting state machine
is becoming increasingly nontrivial (which is not unexpected).

The problem is that an implementation can easily miss an event that is
supposed to be inherited from rfc4271 versus one that is newly overridden.
I strongly suggest adding a state/event table for the four new pending
states, rather than only relying on prose replacements of rfc4271
paragraphs.

[I realize that there's no such table in rfc4271...something for the WG to
consider, maybe as a reference artifact...]



...
1064 9.  Closing BGP Sessions

1066   When BGP sessions are closed according to the procedures in this
1067   document, the session SHOULD be terminated with a NOTIFICATION
1068   message with the Cease Code (6) and the "BFD Down" Subcode (10); see
1069   [RFC9384].  This informs the operator that interaction with BFD is
1070   the root cause of the BGP session being unable to move to the
1071   Established state.

[major] rfc9384 only considers using this NOTIFICATION when BFD goes Down,
but this document adds other reasons.  IMO, this document should explicitly
Update rfc9384.



1073 10.  Stability Considerations
...
1082   To avoid deadlock when utilizing both BFD hold-down and BFD strict-
1083   mode, when strict-mode is enabled for a peer, the BGP FSM MUST be
1084   enabled.  That is, BFD hold-down procedures MUST NOT prevent BGP
from
1085   establishing a connection with the remote BGP speaker.

[major] "BGP FSM MUST be enabled"

What does this mean? Isn't the BGP FSM enabled whenever BGP runs?  I see no
interoperability requirement to use "MUST".



[major] "BFD hold-down procedures MUST NOT prevent..."

This seems to be a statement of requirements, not something that needs
Normative language for interoperability.  What am I missing?



...
1093   It is RECOMMENDED that the BFD hold-down intervals used with BFD
1094   strict-mode, when configured, use similar values.  Similarly, the
1095   negotiated BGP holdtime SHOULD be long enough to account for the
time
1096   between the BGP FSM reaching the OpenConfirm state, the BFD
hold-down
1097   interval, and any delay for the BFD session being initiated.
Failure
1098   to do so can result in the BGP speaker that has transitioned to the
1099   Established state expiring its BGP holdtime and closing the
1100   connection.  This is because the remote BGP speaker hasn't
1101   transitioned to Established and begun sending KEEPALIVE messages.

[major] "RECOMMENDED that the BFD hold-down intervals used with BFD
strict-mode, when configured, use similar values"

Similar, but not the same?  From an interoperability point of view, what is
"similar".  For example, are 1s and 30s "similar" (they are both less than
a minute)?  Also, why is this action recommended and not required?  IMO,
this draft should explain the operational reason and consequences of using
values that are not "similar" -- the use of Normative language is not
necessary, but the explanation would be valuable.



[major] "negotiated BGP holdtime SHOULD be long enough"

The HoldTime is negotiated, so the local BGP Speaker cannot guarantee that
the result will be "long enough".  Please add this caveat at the end of the
paragraph.



...
1106   The behavior of BGP speakers implementing BFD hold-down without
1107   negotiating the BFD strict-mode feature is out of scope of this
1108   document.  However, the authors are aware that inconsistent
behaviors
1109   in BGP implementations for BFD hold-down without BFD strict-mode may
1110   result in BGP session deadlock.

[major] Leaving the use of BFD hold-down in general BGP sessions out of
scope is fine. However, we should add more coverage if one peer is trying
to negotiate BFD strict-mode. In other words, even if the configuration is
asymmetric, one side follows the recommendations in this document -- what
are the issues in those cases?



1112 11.  Manageability Considerations
...
1118   To simplify troubleshooting and avoid inconsistencies, it is
1119   RECOMMENDED that BFD strict-mode configuration be consistent for
both
1120   BGP peers.

[major] "RECOMMENDED that BFD strict-mode configuration be consistent"

Capability negotiation allows the configuration to be asymmetric. I
understand the rationale behind this recommendation, but it is not required
for interoperability.  s/RECOMMENDED/recommended



1122   This draft introduces sub-states in the existing BGP finite state
1123   machine for tracking BFD session status inputs for strict mode
1124   operation.  Implementations SHOULD provide visibility for these sub-
1125   states in its display of the BGP finite state machine.

[major] "SHOULD provide visibility"

Same as above: good recommendation, but not needed for interoperability.
s/SHOULD/should



1127 12.  Security Considerations

[major] Please start this section by stating that the Security
Considerations in rfc5880 and rfc4271 apply.



1129   The mechanism defined in this document interacts with the BGP finite
1130   state machine when so configured.  The security considerations for
1131   BFD thus, become BGP-4 considerations [RFC4271] when so used.  Given
1132   that a BFD session is required for a BGP session, a
Denial-of-Service
1133   (DoS) attack on BGP can now be mounted by preventing a BFD session
1134   between the BGP peers from reaching the Up state, or interrupting an
1135   existing BFD session.  The use of a BFD Authentication mechanism,
1136   some of which are defined in [RFC5880], is thus RECOMMENDED when
used
1137   to protect BGP-4 [RFC4271].

[major] A series of rogue node-related attacks are not covered in this
section.  For example:

- as mentioned in §10, the BGP session may deadlock -- this type of
risk/threat should be included here by reference.

- Authentication can help, but it may not stop a DoS attack where the BFP
packets are simply dropped/filtered, delayed, etc.

- There's a distinction between preventing the session from reaching Up and
tearing down an Established session -- also possible by configuration.

- An attacker can make the receiver believe BFD is Up when the forwarding
path isn't actually usable -- I think rfc5880 mentions this too.


Some of these attacks are not new wrt BFD or BGP, but they should be
mentioned nonetheless -- and the fact that they are known should be
highlighted.  Even if known threats, the attack surface is different.



[minor] s/The use of a BFD Authentication mechanism, some of which are
defined in [RFC5880], is thus RECOMMENDED.../The use of BFD Authentication
[RFC5880] is thus RECOMMENDED...

I'm suggesting this wording change to narrow the recommendation and avoid
opening the door to discussion about rfc9985/rfc9986, which are
Experimental.



[major] "BFD Authentication...is thus RECOMMENDED"

Why is it recommended and not required? When is it ok not to use it?

Instead of going through any in-depth treatment of the threat model, etc.,
stating up front that the Security Considerations in rfc5880 apply would
help.



...
1146 13.2.  BGP-4 FSM Optional Session Attributes Sub-Registries

1148   This document defines new BGP finite state machine session
1149   attributes.  [BGP-IANA-FSM] manages these new registrations.

[] This section and the next don't ask IANA for an action, so they
shouldn't be included here.

IMHO, a better model would be to let BGP-IANA-FSM define the registry and
have this document request the values to be registered (an IANA action).



...
1202 15.  Normative References

1204   [BGP-IANA-FSM]
1205              Haas, J., Hares, S., and K. Patel, "IANA Registrations
for
1206              the BGP Finite State Machine (FSM)", Work in Progress,
1207              Internet-Draft, draft-ietf-idr-bgp-fsm-iana-01, 12 June
1208              2026, <https://datatracker.ietf.org/doc/html/draft-ietf-
1209              idr-bgp-fsm-iana-01>.

[minor] This reference can be Informative: it is used only to indicate
where the registries are defined.

[EoR-18]