Jeff, On Jul 2, 2018, at 2:09 PM, Jeffrey Haas <jh...@pfrc.org<mailto:jh...@pfrc.org>> wrote:
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”. 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. 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. 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 PointToPoint: Classic point-to-point BFD, as described in [RFC5880]. […] This variable MUST be initialized to the appropriate type when the session is created. ~~~ 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