Re: AD review of draft-ietf-bfd-unsolicited-09

Reshad Rahman <reshad@yahoo.com> Sat, 22 October 2022 19:09 UTC

Return-Path: <reshad@yahoo.com>
X-Original-To: rtg-bfd@ietfa.amsl.com
Delivered-To: rtg-bfd@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 75DBDC14F730 for <rtg-bfd@ietfa.amsl.com>; Sat, 22 Oct 2022 12:09:41 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -7.108
X-Spam-Level:
X-Spam-Status: No, score=-7.108 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_HI=-5, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01] autolearn=unavailable autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=yahoo.com
Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id uuNQsMe68KH3 for <rtg-bfd@ietfa.amsl.com>; Sat, 22 Oct 2022 12:09:39 -0700 (PDT)
Received: from sonic306-2.consmr.mail.bf2.yahoo.com (sonic306-2.consmr.mail.bf2.yahoo.com [74.6.132.41]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id EB7A5C14F727 for <rtg-bfd@ietf.org>; Sat, 22 Oct 2022 12:09:38 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1666465776; bh=bRXXBDnnHm0hX4aLCRwTqoflEwHPVAgHkRvS34zZSnE=; h=Date:From:Reply-To:To:In-Reply-To:References:Subject:From:Subject:Reply-To; b=l2R4RInxt2PGlqpJ7uteUO/gUmbZORT+qt2iqCObEjUFFK/nxVTzDYmz6wltU0VvDU0DG8EwUbrwDUSD5zVnCwddtjh2+lTEYIRMbSQ+zmLogp7d8Z4r9wCbnKBQTE0CLbaqIH7pY+T/dKgo+coAtgR6GJCpkJd7FDlrtvjiPYLiirBk4on1y4euG10ratHC5zt6XIhtQWQ9TH1s1XivpHiKdq0Ieq14pQ3KXq/PCNOxC0vJpFKZfWN+GrXSNWZz5dg0KIAexlK284Al9hWcfGoFLfsSBnVfWyWtZjRBGBucZuQnQWPrExcwebEdnwjlfJiZv/Df7B5OKb5EmtyJzg==
X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1666465776; bh=apsRKhK6M88l5+Kov60DoUBp8DtuAtPgsw3XfTJTkeI=; h=X-Sonic-MF:Date:From:To:Subject:From:Subject; b=cCEn6R3bzkzMl3d5811MiFewHws8SYzNW7i1bTHjbFeHrxxWetGfxW2eNcoloiJ6mwFm5Tahrcarqbjk3Xziykn7GahtEfuxPYIMkfD/FvRLgYe5h5AzKB+3cH/3WorEIdzQqCDx90YJlauZPfqzxYR1BHoF+N6BsFbw8pWrPiBAZRmy1XZrZdd/ippw6G8uzxkHhqlGu0wFcO6jL3XIXgWj+I9hXxe/i+OD+hLpS1njlTbs6SjnEFd+I9Llf62RSivEH9nmx28W+vvtKHioJeGVAIIMMA5Pod/kPvIoL6+HKyM3OovTXS91kJ8tHKnMI1cx/Sc1K3j2Fb4Rnwturg==
X-YMail-OSG: ao6qZPQVM1nu_HRywguORCrI35A12pF.VnX9d.yEwA9aBkozyyk00pPKL6Mn5al WZM9MnvH3UpfgqvGKj7yOjdTX2nhHQRRl3WTA0U4Mvm20cRioP6JTwW.1WH28LD5RosyAevF10OS 5HArtQKBTpVgAefAw5rx7OaIBml7Duo2NlvryftGMzpSQ494Bq2XO0yZ_yhb1jz241O1NmpfTabL 9s4c57euNh5tgpKhQmduQ5WquOO3nn4jCzV1l47S07yf4YKBxvXQePhUAhj525Lpdm_e9xLv.WU7 TDeNsIjkOz.pe2pJArjfF7NvmqQ57HeGzs7HNg4CXEUGyd_KSdKqLBhNcAYterejdwdrVxzPLV44 Y3Hg50AEruX.Hk3LlOrcPQk1iLK0RCERy3T2D_7M3vj6ZTqdTrnv.R1XTykRHSijjhLvwT5VQ2xR wL.qTTyhJk8qzSOLSnI3Hm9RAYhAwjM8zuLNU89gPOzVpWTCMrVE1.ciRbyzFHGW9waCfClBrZXo CljelEr4.AxzE3fQMWcKGqnT6T5wbTcCChCBNgIo_Ro0wl.iwRYTQDh7fm2HWClKskjGSrNCmu.s gAjzJaeUjiv8nQClQSpgNc2.FZNcFPBAOcJkqAr6Su8HLdK04SNp7r5jNrZccrj5kTfaUUluLpsp 3HM.aYeorJLyFzqddJYjesn.TXNbzgvere7A2baRUtUBqkNbWZq_db.929Cz_GLvGIboHPqvSPNS hqbbl.B_Bl9VA.EOBiiQ2jrqEo9hjTOdXbFi8ZhmLnPJUDb3LflMD9Snv1mSNXK0uwq8GOo6BKCh XhBixd89d5N5Xe6QCLr96hyyn024x9zl4D5QK71ddoR28.k7KL7wobco9UHwQenoEA4HF_v8Jqea zJhIxccl9D3yNs4W6CxH3zLWfNtfqWH8rlKVXYQij5oCAUgT.kMfqQpUtRt2s_YkSE09GWHdilOz BGMymCO4YZcMCeB8UIqbtZwo2E9S5h.2Tc.SavGgpFLHLZBnhewcEJD37x1ixOboEVpfCoe9f3lM _uzEs.yoInS1ALr2332DhFpxMmq9tDUDkCKtDHEEQLaMjsULEAywwvEOiVVmMl3ESoemUzTF09SY Xoh9UXHF3B4QJiWsd.omRtWZUf8kP4KQCgg1pURNvXJe6kwvHkKbkWzQXIMz0.tLA_jYsMyL8C3J MwLLJ7YXuOeJOFdNcU6_ZJxWCFIVcjAMWIYFUrlY3RYXSEvgqw6ltimEQPWpzhG0Q2HQvXnAuLWL g0UZk1TMsfVdlM2RobrgN8hLn5MzHhewOvRGugMaWiMCS_tjn8YVILlXqk4.ctlx4ANDykbylIRx d5cSIY4jplXfsIDeVrKWvX.P.hyCeuORVoBLEE4yNkpkDWKmG7iT4IoDtWX5BjO8E69fjFnSssrr DrhFmqvc_kjDDGQ6XyMRSEWhopBEsdX9kgLj3oJ4QN4JbbzYuxCGrScPyYJ.5LRUfRKEIcYRQFhD maT2yLYqmi2YCm8_jkFkl7YqsV7hR0IFMuVt_pXqZhjVDrIeW.TOVxb_b_UeNIUzryiI7dq38r5R h_CAnBa9oYXQBF2ZKUz47MN3PNgY3cCFyVb7mE44RNpBqcp4TDA3S7cfrL8muOhNbTnNGHYWz.rY TEEHrETGZCBsjCzlneFazIMQyMGXujzrAfdnOJIuMsethh1jg9n63fsBoahs8E1gT1AYM71iep4P wnIiasIlbPZHTqQpI7AcgixHpqIIpkYvl4ShPgY_97bpJ5sJvoQ0jfWzPeZjV1FKA9mN3lDCjWAW Kzx2jisITDetMm47y0tjrBusJLiTBqMaaehkAIcogMyqB.0hUWDm4uHxmW5Y8NQ22DRrlQGAuc5R DUvcW05rrNmXnnNo_Nnfn1IZlDw3Ma3xPR8bmSWHYcLRHgveg0_fmSW9slCCmG6Ar1kXOnHUoUcs VbH4kl2RETHoF.VizZhTq1L37.ccmv.WPZB3pzS562tb_tjI4xEoqY5sGGcWNTpELLHT8u7uRxrO zy2WeZTrBX6.p1JbltF3fz_nEH8M8_1cqBinQyrczc5O9egOKeR3tick53pF7UY1jravvVoXG5k2 5upOsVPUJ7KxCrPQzPz8tcmLJGBDYbBiy1Jv8TjUQgV2kDGbhMuK3EZFnUMrSN4JgBfp66sKvI.j SWDd2XB.pAzE3UKfXoSL2D_Btr3YIi7sJuaweQsTrgMOjOIdVMwD91aGqEaDIsTDJQm5UhwYERse sNBPxOFxFeOq9UIa4zgZ_CljcTTLOFanzUTKuziy.e4o1_taE6L07689cQQclgUoim_zNJ.lGIKF sgf5kfEQEbARwWY8-
X-Sonic-MF: <reshad@yahoo.com>
Received: from sonic.gate.mail.ne1.yahoo.com by sonic306.consmr.mail.bf2.yahoo.com with HTTP; Sat, 22 Oct 2022 19:09:36 +0000
Date: Sat, 22 Oct 2022 19:07:20 +0000
From: Reshad Rahman <reshad@yahoo.com>
Reply-To: Reshad Rahman <reshad@yahoo.com>
To: "draft-ietf-bfd-unsolicited@ietf.org" <draft-ietf-bfd-unsolicited@ietf.org>, "rtg-bfd@ietf.org" <rtg-bfd@ietf.org>, John Scudder <jgs=40juniper.net@dmarc.ietf.org>
Message-ID: <31616779.1202071.1666465640072@mail.yahoo.com>
In-Reply-To: <1793478921.1166660.1666446571793@mail.yahoo.com>
References: <6307C269-DB07-4CA1-807E-8B26458DA240@juniper.net> <1793478921.1166660.1666446571793@mail.yahoo.com>
Subject: Re: AD review of draft-ietf-bfd-unsolicited-09
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary="----=_Part_1202070_730282853.1666465640067"
X-Mailer: WebService/1.1.20754 YMailNorrin
Archived-At: <https://mailarchive.ietf.org/arch/msg/rtg-bfd/W2f5FBVYHNbIELqYDhE3wiaY8_M>
X-Mailman-Approved-At: Sat, 22 Oct 2022 12:11:24 -0700
X-BeenThere: rtg-bfd@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: "RTG Area: Bidirectional Forwarding Detection DT" <rtg-bfd.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/rtg-bfd>, <mailto:rtg-bfd-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/rtg-bfd/>
List-Post: <mailto:rtg-bfd@ietf.org>
List-Help: <mailto:rtg-bfd-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/rtg-bfd>, <mailto:rtg-bfd-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sat, 22 Oct 2022 19:09:41 -0000

 Hi,
Regarding bfd.UnsolicitedRole, I forgot to mention that yes the current text (in -09) is confusing/wrong because it refers to an interface and configuration for unsolicited.  As mentioned below, my take is that this variable is per session, not specific to unsolicited and refers to the role as per RFC5880 section 6.1.
Regards,Reshad.
    On Saturday, October 22, 2022, 09:50:10 AM EDT, Reshad Rahman <reshad@yahoo.com> wrote:  
 
  Hi John,
Thanks for the review and for your patience...
I'm ok with this form of comments. I don't think it necessarily saves us time, unless I'm missing something, since we edit the xml version.
Response below <RR>, co-authors please keep me honest.
Regards,Reshad.
    On Tuesday, August 23, 2022, 12:40:46 PM EDT, John Scudder <jgs=40juniper.net@dmarc.ietf.org> wrote:  
 
  Dear Authors,

Thanks for your patience. Here’s my review of your document. There are some questions I’ve raised that will need some discussion before I can be sure I’ve properly understood the doc.

I’ve supplied my questions and comments in the form of an edited copy of the draft. Minor editorial suggestions I’ve made in place without further comment, more substantive questions and comments are done in-line and prefixed with “jgs:”. You can use your favorite diff tool to review them; I’ve attached a PDF of the iddiff output for your convenience if you’d like to use it. I’ve also pasted a traditional diff below in case you want to use it for in-line reply. I’d appreciate feedback regarding whether you found this a useful way to receive my comments as compared to a more traditional numbered list of comments with selective quotation from the draft.

Thanks,

—John



--- draft-ietf-bfd-unsolicited-09.txt   2022-08-17 20:43:32.000000000 -0400
+++ draft-ietf-bfd-unsolicited-09-jgs-comments.txt      2022-08-23 12:27:35.000000000 -0400
@@ -19,7 +19,7 @@
 
    For operational simplification of "sessionless" applications using
    BFD, in this document we present procedures for "unsolicited BFD"
-   that allow a BFD session to be initiated by only one side, and be
+   that allow a BFD session to be initiated by only one side, and<RR> Good.
    established without explicit per-session configuration or
    registration by the other side (subject to certain per-interface or
    per-router policies).
@@ -128,13 +128,17 @@
       the Router Server), and the nexthop of each router must be present
       at the same time.  These issues are also discussed in
       [I-D.ietf-idr-rs-bfd].
+      
+jgs: I don't get what you're driving at with "and the nexthop of
+each router must be present at the same time", isn't that already 
+covered by the previous clause?<RR> This clause is about IXP where we have 3 nodes. The text "and the nexthop ... at the same time" is a tad confusing, we will remove it.
 
    Clearly it is beneficial and desirable to reduce or eliminate
    unnecessary configurations and coordination in these "sessionless"
    applications using BFD.
 
    In this document we present procedures for "unsolicited BFD" that
-   allow a BFD session to be initiated by only one side, and be
+   allow a BFD session to be initiated by only one side, and<RR> Good.
    established without explicit per-session configuration or
    registration by the other side (subject to certain per-interface or
    per-router policies).
@@ -149,11 +153,11 @@
    Thus we believe that this proposal is inherently simpler in the
    protocol itself and deployment.  As an example, it does not require
    the exchange of BFD discriminators over an out-of-band channel before
-   the BFD session bring-up.
+   BFD session bring-up.<RR> Good.
 
-   When BGP Add-Path [RFC7911] is deployed at an IXP using the Route
-   Server, multiple BGP paths (when exist) can be made available to the
-   clients of the Router Server as described in [RFC7947].  The
+   When BGP Add-Path [RFC7911] is deployed at an IXP using a Route
+   Server, multiple BGP paths (when they exist) can be made available to the
+   clients of the Route Server as described in [RFC7947].  The
    "unsolicited BFD" can be used in BGP route selection by these clients<RR> Good.
    to eliminate paths with "inaccessible nexthops".
 
@@ -177,6 +181,43 @@
    its BFD Control packets.  The "My Discriminator", however, MUST be
    chosen to allow multiple unsolicited BFD sessions.
 
+---   
+jgs: The intent of this paragraph isn't completely clear to me. Of
+lesser importance, the parenthetical is a bit awkward. Would the 
+rewrite below accurately capture your intent?  Note that I changed
+your SHOULD to a MUST -- if it does need to be SHOULD, I think we 
+ought to have a conversation about what the exception cases are. 
+
+   Passive unsolicited BFD support MUST be disabled by default, and
+   MUST require explicit configuration to enable.  
+   <RR> The authors have discussed this point and we've decided that it is preferable not to discuss per-interface v/s global configuration in this section. Thanks for the suggestion and the text above.

+I think that may be sufficient!  I'm not convinced it's necessary for 
+the spec to talk about global vs per-interface configuration, isn't this
+a commonplace in most implementations, and done in an implementation-
+dependent way?  It seems to me that if you DO feel it necessary to go 
+into this level of detail, you've left out the idea of per-interface
+configuration overriding global configuration.  So if you DO cover
+configuration here (again, I discourage this), I think you should add
+something about that point.  Here is some text that might do it?
+
+   It MAY be enabled using a global configuration option (which applies 
+   to all interfaces), or by per-interface configuration, or a choice of
+   either.  If both global and per-interface configuration are in use,
+   the more-specific (that is, per-interface) configuration SHOULD 
+   take precedence over the less-specific (that is, global).
+   
+   Similarly, the BFD parameters to be applied can be either 
+   per-interface or global.  Alternately, the parameters to be used
+   MAY be chosen to be the parameters the active side uses in its BFD
+   Control packets.  The "My Discriminator" value, however, MUST be
+   chosen to allow multiple unsolicited BFD sessions.
+   
+One more question, does the spec need to be at all prescriptive about 
+how the parameters are chosen?  Or would it be perfectly fine for an
+implementation to (for example) always use the active side's params
+and not offer any configurability? <RR> We believe that configuration is handy e.g. to prevent use of too aggressive timers.  But if there is no such constraint, or if the constraint is hard-coded, what you suggested works too.
+---
+
    The active side starts sending the BFD Control packets as specified
    in [RFC5880].  The passive side does not send BFD Control packets.
 
@@ -190,7 +231,7 @@
    BFD session.  If the BFD session fails to get established within
    certain specified time, or if an established BFD session goes down,
    the passive side would stop sending BFD Control packets and MAY
-   delete the BFD session created until the BFD Control packets is
+   delete the BFD session created until the BFD Control packets are<RR> Good.

    initiated by the active side again.
 
    When an Unsolicited BFD session goes down, an implementation MAY
@@ -215,6 +256,58 @@
    for unsolicited behaviour) MUST be set to NULL if present on the
    interface.
 
+jgs: I think we need to discuss just what exactly UnsolicitedRole is
+for and how it's expected to be used.  It's "a new state variable"
+that is "the operational mode".  That is fairly vague.  Per a side
+conversation I had with the shepherd (Jeff), I'm given to understand
+that this variable is supposed to be a read-only (from the user's 
+perspective) value, and is present as essentially a debugging aid --
+to answer the question "where did this session come from?". I guess
+the values would then map to,
+
+PASSIVE: it came up because we were configured to accept unsolicited
+sessions, and one arrived.
+
+ACTIVE: it came up because we were configured to initiate sessions, and
+we did initiate one, and it came up.
+
+       Question: Do we set this state variable even if the other end isn't
+       actually passive? Presumably so, we have no way to know if the other
+       end even has unsolicited configured.  If both ends are active, can
+       the session really be called "unsolicited" in any meaningful way? 
+       (Surely not.)  And if not, then does it really make sense to set a
+       variable called "bfdUnsolicitedRole" for it?
+
+NULL: I actually have no idea what this is supposed to indicate, since
+if I'm right that this is meant to tell me "here's why the session came
+up" it has to be one, or the other.  So either NULL is not useful, or my
+understanding is wrong.  The fact that in the YANG, unsolicited-role
+captures "active" and "passive" but has no consideration for this NULL
+thing, deepens my suspicion.
+
+First, let's get me to understand what bfd.UnsolicitedRole is for -- if
+my description above is more-or-less accurate, or not.  After that, we
+can work on any changes that might be needed.<RR> The role is from section 6.1 of RFC5880. You are correct that it can be set all the time, there is no need for NULL and it is not specific to unsolicited. IIRC the reason I called it UnsolicitedRole is because it's being introduced in the bfd-unsolicited document. We will rename it to "Role" and refer to 5880. Corresponding YANG naming changes must also be made.
+
+
+
+jgs: As far as I can tell, all the new procedures in this document 
+relate to the passive party -- the active party is configured per
+RFC 9127 (and its underlying specs).  As such, I'm having a hard time
+understanding what use the ACTIVE value has -- you don't say what to
+do if UnsolicitedRole is set to ACTIVE, and indeed I think there's 
+nothing TO do, ACTIVE is neither sufficient, nor necessary, in order
+to make a BFD speaker be the active side in an unsolicited session.
+
+If that's right, I think both the name, and values, of this state
+variable are a bit off.  It seems to me it would be better off as a
+boolean named something like bfd.UnsolicitiedEnabled or maybe 
+bfd.PermitUnsolicited, with default state FALSE, which substitutes
+for what you're calling NULL, and TRUE substitutes for what you've 
+called PASSIVE.
+
+Indeed, that seems to be what the YANG module already represents --
+we have a boolean, "enabled", which corresponds to what I've described.<RR> The "enabled" configuration leaf node is to enable/allow unsolicited BFD (i.e passive mode). The leaf node "role" in the operational model tells us the current role of the BFD session, it is there for informational purposes only.
 
 
 
@@ -565,24 +658,48 @@
 7.1.  BFD Protocol Security Considerations
 
    The same security considerations and protection measures as those
-   described in [RFC5880] and [RFC5881] normatively apply to this
-   document.  With "unsolicited BFD" there is potential risk for
+   described in [RFC5880] and [RFC5881] apply to this
+   document.  In addition, with "unsolicited BFD" there is potential risk for<RR> Good.

    excessive resource usage by BFD from "unexpected" remote systems.  To
    mitigate such risks, the following measures are mandatory:
 
-   *  Limit the feature to specific interfaces, and to a single-hop BFD
+   *  Limit the feature to specific interfaces, and to single-hop BFD<RR> Good.

       with "TTL=255" [RFC5082].  For numbered interfaces, the source
       address of an incoming BFD packet should belong to the subnet of
       the interface on which the BFD packet is received.  For unnumbered
       interfaces the above check should be aligned with routing protocol
       addresses running on such pair of interfaces.
+      
+jgs: Is the above addressed to the coder writing the implementation, or to
+the operator configuring it?  I think probably it's to the coder and is
+meant to constrain how the implementation operates.  If so I think (a) it
+would be helpful to consider whether some of the "should" ought to be 
+RFC 2119 SHOULD or MUST, and (b) it might be a good idea to move this out
+of Security Considerations and into Procedures, perhaps with some 
+elaboration.<RR> Yes this is for the implementors, we will move it out.
+
    *  Apply "policy" to allow BFD packets only from certain subnets or
       hosts.
    *  Deploy the feature only in certain "trustworthy" environment,
       e.g., at an IXP, or between a provider and its customers.
+      
+jgs: I presume the two above are deployment guidance to the operator.<RR> Yes.
+
    *  Adjust BFD parameters as needed for the particular deployment and
       scale.
+      
+jgs: Doesn't that one go without saying?  If there's something more
+actionable you have in mind, you should supply more detail.  If there
+isn't, I'm not sure the above is helpful.<RR> Nothing more comes to mind, we'll remove it.
+      
    *  Use BFD authentication.
+   
+jgs: This could also use more detail.  E.g., RFC 5880 specifies no
+fewer than three different authentication modes.  Are you recommending
+one?  Also, some of your motivating use cases (for example, IXP) have
+the underlying assumption that there is little or no coordination 
+between operators of the two ends of the BFD session.  When this is 
+lacking (again, think IXP) how would BFD authentication be used?  <RR> Yes BFD auth is difficult for IXP. BFD auth can be used for the static route use-case: although this requires extra config, it's typically per interface (not per next-hop or per route config). We will add some text here. We will recommend SHA1 meticulous if BFD auth is used.
 
 7.2.  YANG Module Security Considerations