Thanks John.

On Sat, Sep 3, 2022 at 11:31 PM John Scudder <j...@juniper.net> wrote:

> Thanks, Ketan. Enough tweaking :-), I’ve requested it move to IETF last
> call.
>
> —John
>
> > On Sep 3, 2022, at 5:03 AM, Ketan Talaulikar <ketant.i...@gmail.com>
> wrote:
> >
> >
> > [External Email. Be cautious of content]
> >
> >
> > Hi John,
> >
> > Thanks for your quick response and clarifications. Please check inline
> below for responses with KT3.
> >
> > We've also posted an update with the changes discussed below as well as
> the formal "updates RFC2328" point that was discussed earlier in this
> thread:
> https://datatracker.ietf.org/doc/html/draft-ietf-lsr-ospf-bfd-strict-mode-07
> >
> >
> > On Sat, Sep 3, 2022 at 2:06 AM John Scudder <j...@juniper.net> wrote:
> > Hi Ketan,
> >
> > My comments in line below.
> >
> > > On Sep 2, 2022, at 6:37 AM, Ketan Talaulikar <ketant.i...@gmail.com>
> wrote:
> > >
> > > Hi John,
> > >
> > > Please check inline below for responses with KT2
> > >
> > >
> > > On Thu, Sep 1, 2022 at 10:42 PM John Scudder <j...@juniper.net> wrote:
> > > Hi Ketan,
> > >
> > > Thanks for the prompt update. I have one question about your edits. In
> Section 6, I had suggested
> > >
> > > OLD:
> > >    Implementations MAY
> > >    provide a local configuration option to specifically enable BFD
> > >    operation in OSPF BFD strict-mode only.
> > >
> > > NEW (my suggestion):
> > >    Implementations MAY
> > >    provide a local configuration option to require BFD strict-mode.
> > >
> > > NEW (your revision):
> > >    Implementations MAY
> > >    provide a local configuration option to require BFD operation in
> OSPF
> > >    BFD strict-mode only.
> > >
> > > I’m wrestling with whether this option is supposed to mean “the
> adjacency must not establish unless BFD comes up first” or “if the neighbor
> supports BFD, then BFD must come up first before the adjacency is allowed
> to establish”.
> > >
> > > KT2> I meant the former. So this is like "force" BFD strict-mode
> operation. The default mode is negotiation when strict-mode is enabled.
> > >
> > > I.e., as written I can make the argument that if my neighbor doesn’t
> advertise the B-bit, then it’s fine for the adjacency to come up as long as
> BFD isn’t run at all. The former interpretation seems more operationally
> useful, but the spec text is ambiguous.
> > >
> > > I’m not sure my proposed text even resolved that problem, on
> reflection. In any case, I would be happier if the ambiguity were resolved
> somehow.
> > >
> > > KT2> How about the following?
> > >
> > > Implementations MAY provide a local configuration option to force BFD
> operation only in
> > > OSPF BFD strict-mode (i.e, adjacency will not come up unless BFD
> session is established).
> >
> > It gets the job done; good enough.
> >
> > KT3> Thanks.
> >
> >
> > [snip]
> >
> > > >     Whenever the neighbor state transitions to Down state, the
> removal of
> > > >     the BFD session associated with that neighbor SHOULD be
> requested by
> > > > @@ -246,6 +281,14 @@
> > > >     result in the deletion and creation of the BFD session
> respectively
> > > >     when OSPF is the only client interested in the BFD session with
> the
> > > >     neighbor address.
> > > > +
> > > > +jgs: Please do a global search for the RFC 2119 keyword SHOULD and
> in
> > > > +each instance, consider whether it can be a MUST, or the normal
> English
> > > > +word "should" (in lower or mixed case).  If SHOULD is the
> appropriate
> > > > +keyword, please supply some detail about when it would be
> appropriate
> > > > +for an implementor to disregard the SHOULD.  (The one place where I
> > > > +thought "should" might be the appropriate choice is in the
> Operations &
> > > > +Management Considerations section.)
> > > >
> > > > KT> In this specific case, we are discussing implementation
> specifics that are also applicable without the strict-mode, and hence
> introducing a MUST here was not appropriate. We could change it to "should"
> if that would be more appropriate. Looking for feedback if this change is
> required.
> > >
> > > This actually motivates the question, why does that paragraph need to
> be there at all? Was the base behavior underspecified and in need of update?
> > >
> > > KT2> Yes, I believe has been underspecified in RFC5882.
> > >
> > > Is this just a nota bene for the implementor? Should you more clearly
> signal that’s what it is? But this is in any case tangential to the main
> point; we can return to it later perhaps. I did note the peculiar nature of
> the paragraph on my first read-through, and figured it did no harm to
> clarify that this is how implementations should be done regardless — but in
> any case I don’t see why that makes MUST inappropriate.
> > >
> > > KT2> This is at the end and internal behavior between OSPF and BFD
> within a system. It may be possible to do this differently and yet exhibit
> the same external behavior. That is why either SHOULD or should seem more
> appropriate.
> >
> > If I understand the situation correctly (and I haven’t gone and
> re-checked what RFC 5882 says), that sounds like a case for “should”. You
> can change it (and the one subsequent SHOULD that’s in the same category,
> total three) or not, at your discretion.
> >
> > KT3> Removed the first two SHOULD. I am retaining the third one as
> SHOULD since it is related to the mixed operation of strict-mode and normal
> mode of BFD use (in the next sentence).
> >
> >
> > > > In some other places, the behavior may be applicable and shared with
> "base" BFD and hence we felt not appropriate to make it a MUST. However, we
> have taken the opportunity to suggest a desirable behavior. We look for
> feedback if any specific instance needs change or clarification.
> > >
> > > I have a different take on the appropriate use of SHOULD vs. MUST.
> Let’s look at what RFC 2119 says about SHOULD:
> > >
> > > 3. SHOULD   This word, or the adjective "RECOMMENDED", mean that there
> > >    may exist valid reasons in particular circumstances to ignore a
> > >    particular item, but the full implications must be understood and
> > >    carefully weighed before choosing a different course.
> > >
> > > I tend to think of SHOULD informally as a “MUST… UNLESS” pair.
> > >
> > > KT2> I am not sure if the "MUST ... UNLESS" is the only pair and we
> can also have "SHOULD ... and if not then …"
> >
> > Sure.
> >
> > > or "SHOULD ... so that ... will be ensured"
> >
> > I don’t get why that construct would be a “SHOULD”. You can equally
> supply an explanation with a MUST. The crucial difference would be whether
> the thing represented by the ellipsis between “that” and “will” is
> mandatory or a nice-to-have.
> >
> > KT3> Ack. The use of SHOULD implies nice-to-have and otherwise, MUST is
> used when mandatory.
> >
> >
> >
> > > and such. In some cases, the consequences are obvious - therefore the
> RECOMMENDED.
> >
> > Formally, RECOMMENDED is nothing more nor less than a stand-in for
> SHOULD, which again, is not the same as the English word “should”, it has a
> defined meaning (albeit not a precisely nailed-down and perfectly defined
> one). It’s not just emphasis.
> >
> > > Regarding your point that the extension is optional, it’s my position
> that in the case of a specification for an optional extension, MUST means
> “if you choose to practice this extension to the protocol, i.e. if the
> extension is both implemented and enabled by configuration, then you MUST”.
> > >
> > > KT2> Agree on this point. My point was that this interaction on when
> OSPF should "delete" BFD session on down is applicable to the base BFD
> behavior as well - not just this extension.
> >
> > As regards that particular case, we’ve discussed it above — your point
> about it being a hint for implementors is persuasive, but it moves it out
> of RFC 2119 territory altogether.
> >
> > KT3> Ack
> >
> >
> > > If you still feel uncertain about this, we can dig into it
> case-by-case and discuss each occurrence, but possibly the context above
> will help? (Note that I am not the only reviewer who’s likely to be
> triggered by unqualified use of SHOULD…)
> > >
> > > KT2> The first 3 SHOULD are related to base OSPF BFD interactions. For
> the 4th one, I'll add text to clarify (i.e., the reason is to avoid
> disrupting routing). An explanation is already provided for the 5th one.
> The final 6th one is related to authentication which is a SHOULD in the
> base protocol. Please let me know if I've missed anything.
> >
> > OK, that works.
> >
> > KT3> Thanks.
> >
> >
> > > >     An implementation MUST NOT wait for BFD session establishment in
> Init
> > > >     state unless OSPF BFD strict-mode is enabled on the interface
> and the
> > > > @@ -268,6 +311,12 @@
> > > >     BFD sessions.  Disabling BFD would result in the BFD session
> being
> > > >     brought down due to Admin reason [RFC5882] and hence would not
> bring
> > > >     down the OSPF adjacency.
> > > > +
> > > > +jgs: Regarding the last sentence above, suppose the router is
> configured
> > > > +as you permit in Section 6, such that strict mode is required in
> order
> > > > +to establish an adjacency.  Would it then be appropriate to bring
> > > > +down the adjacency if the B-bit is cleared?  If the B-bit is
> cleared and
> > > > +the BFD session moves to admin down?
> > > >
> > > > KT> No. The OSPF adjacency would not be brought down. The checking
> for B-bit and BFD session UP dependency check is only while in the INIT
> state.
> > >
> > > I’m going to defer this until we settle on what exactly the “local
> configuration option” text is trying to say (the discussion at the
> beginning of this note).
> > >
> > > KT2> Ack
> >
> > That having been settled…
> >
> > … if my implementation has a knob to say “don’t let the adjacency come
> up until BFD comes up”, it seems fairly perverse if the BFD session is
> subsequently allowed to go away without having that affect the session.
> Seems like it violates the principle of least astonishment. I would think
> the expectation of the operator would be “I set this knob, so I know that
> if OSPF is up, BFD must be up”. But no, it turns out there is an asterisk
> and that it only means “if OSPF is up, BFD must have been up at some point
> in the past”.
> >
> > KT3> One can look at this differently as well. There are config changes
> that get applied on the next reload of the system, bring-up of a
> link/session, etc. This is to avoid disruption of ongoing operations. We
> have past examples of this.
> >
> > I’m somehow reminded of the old Roadrunner cartoon where the coyote
> steps out into thin air and as long as he doesn’t look down, he doesn’t
> fall.
> >
> > I do acknowledge that the spec is cleaner this way, because all you have
> to do is modify the Init state description… and Init doesn’t affect things
> once you’re in Full.  But I question whether the cost of making the spec
> cleaner, is making a compliant implementation’s behavior worse from the
> operator’s point of view.
> >
> > KT3> While keeping the spec clean was one consideration, it was not the
> main one. We need to look at the objective of this extension which is to
> avoid adjacency flaps on noisy links due to intermittent packet losses due
> to BFD flaps or bring-up issues. If an adjacency is already UP, there are
> two possibilities - it is operating well or it may be in trouble. We are
> now looking at the scenario when the operator is turning ON this feature
> and we don't know the operator's intent. What the spec is recommending
> (hence the SHOULD NOT) is to not bring the adjacency into INIT state to
> enter the BFD wait. If there is a problem then the BFD session would go
> down and result in an adjacency flap anyway - so we are talking only about
> the case where the BFD session cannot be established in the first place.
> The operator has the choice to bring down the adjacency immediately if they
> are really dealing with a known/suspected link issue. Note that the spec
> does not have a time limit on how long to wait for the BFD session to come
> up - this would be required for the behavior that you were looking for.
> >
> > We've updated the text slightly to clarify. Please let us know your
> feedback.
> >
> > Thanks,
> > Ketan
> >
> >
> > —John
> >
>
>
_______________________________________________
Lsr mailing list
Lsr@ietf.org
https://www.ietf.org/mailman/listinfo/lsr

Reply via email to