Subject: Re: [Tsv-art] Tsvart last call review of draft-ietf-bfd-multipoint-16

From: Jeffrey Haas <[email-masked]>
Date: Mon, 2 Jul 2018 14:09:08 -0400

Carlos,

On Tue, Jun 26, 2018 at 05:17:20AM +0000, Carlos Pignataro (cpignata) wrote:
[...]
> I do not believe the question was whether S-BFD or any other protocol followed the behavior. It’s a question about this document.
> 
> For correctness, S-BFD (RFC 7880) did not miss to define PointToPoint value — it chose not to.
> 
> Back to this document, the question was whether something needs to be written to clarify.
> 
> The text in rev -18 still needs clarification. It reads:
> 
> https://tools.ietf.org/html/draft-ietf-bfd-multipoint-18#section-5.4.1
> 
>       bfd.SessionType
> 
>          The type of this session as defined in [RFC7880].  Newly added
>          values are:
> 
>             PointToPoint: Classic point-to-point BFD, as described in
>             [RFC5880].
> 
>             MultipointHead: A session on the head responsible for the
>             periodic transmission of multipoint BFD Control packets
>             along the multipoint path.
> 
>             MultipointTail: A multipoint session on a tail.
> 
>          This variable MUST be initialized to the appropriate type when
>          the session is created.
> 
> 
> Basically, the variable MUST be initialized, PointToPoint is used for RFC 5880, and this text effectively renders every implementation of RFC 5880 non compliant.
> 
> Could you please add some clarifying text that codifies what you described above (i.e., existing p2p traditional BFD only do not need to set the variable)

I'm not sure I agree with the assertion that adding this variable makes 5880
"non-compliant".  It's a semantic that in a stand-alone classical 5880
scenario is irrelevant.

We had a similar form of this discussion when we were working through WGLC
comments on the BFD yang module.  Effectively at this point, it's the only
single place that the various modes are gathered together.  In the context
of the yang module, which must be flexible enough to cover implementations
that may or may not support other modes of BFD, the variable is present to
help differentiate session types.

When the question was put to the AD during those comments as to whether we
would need to peel out a separate registry covering the state, the decision
was not to do it and that the yang module's IANA maintenance of that
variable was sufficient.

So, while I agree that the variable effectively comes into existence after
the fact for standard 5880 BFD, I don't see it as a hindrance to any
implementation's conformance.  If we did, each time we added some sort of
comparative state with the introduction of a new feature type, we'd have to
completely re-issue all of the underlying RFCs that were impacted simple to
catch that case.

-- Jeff

---

From: "Carlos Pignataro (cpignata)" <[email-masked]>
Date: Mon, 2 Jul 2018 19:17:40 +0000

Jeff,

On Jul 2, 2018, at 2:09 PM, Jeffrey Haas <[email-masked]<mailto:[email-masked]>> wrote:

Carlos,

     bfd.SessionType

"non-compliant”.

I did not say that adding the variable (or variable value) makes 5880 “non-compliant”; I am happy you disagree (or at least you are not sure you agree) with that assertion, which is not mine made.

I did say that the *text* describing the rules around the variable value, as written, does.

 It's a semantic that in a stand-alone classical 5880
scenario is irrelevant.

It really depends on how the text around the new variable values is crafted.

Instead of arguing what might happen if someone suggested that adding a variable state would render base-specs out of compliance — who said that by the way? — let’s look at the exact text once more:

~~~
5.4.1.  New State Variable Values
      bfd.SessionType

[…]
~~~

I am not advocating a rat-hole discussion, or tempting tangential extrapolations.

But, to me, it can be argued that if the variable is not initialized to PointToPoint (which happens if it doesn’t exist), then the MUST is violated...

Greg Misrky wrote in response to Bob Briscoe:
Only implementations that support the base BFD, single-hop or multi-hop, and this specification, mpBFD, should support bfd.SessionType and set it to PointToPoint value when BFD is in single-hop or multi-hop mode.

But that is not what the spec says.

Thanks,

Carlos.

-- Jeff