WG, Authors,

hello.

thank you for this Document. I have done my AD review.
I find the document much harder to apprehend than mpBFD. I have a number of comments but may have another round of them based on your replies.

-m

---

General:
I find the use of reliable (and of its variants) not appropriate. You refer to reliability in terms disambiguating failure scenarios, you don't make packet transfer/delivery more reliable which is usually the context that comes in mind when talking about reliability. So I'd really prefer if you could use another word.

The discussion on fate sharing between unicast and multipoint paths is really reduced to the bare minimum while it is of key importance on the operation of the protocol and on the deduction the head can make of what it receives or not.


Abstract

Please specify here which document(s) this one updates. Please see further down on the Update point.


1.  Introduction

   Multipoint BFD base document [I-D.ietf-bfd-multipoint] describes
   procedures to verify only the head-to-tail connectivity over the
   multipoint path.  Although it may use unicast paths in both
   directions, Multipoint BFD does not verify those paths (and in fact
   it is preferable if unicast paths share as little fate with the
   multipoint path as is feasible, so to increase probability of
   delivering the notification from the tail to the head).
This is unclear. The first sentence sets the reader in the context of I-D.ietf-bfd-multipoint where unicast paths are not discussed at all. And the rest of this paragraph discusses the unicast paths which are in fact introduced later in this document. So this is totally confusing. One only understands this after having read the whole document... I would suggest to completely remove, or rephrase to indicate to the user that this is an aspect that is introduced later, or move to the relevant place in the document.

   This document effectively modifies and adds to the base BFD
   specification [RFC5880] and base BFD multipoint document
   [I-D.ietf-bfd-multipoint].
In the same was as for mpBFD, I don't see how this document updates 7880. Please clarify.
In fact I also think this document does not update 5880.
This document updates mpBFD so in principle that should be reflected in the header, but I'm not sure if we can reference anything else than RFCs there... But I'll push the two at the same time to IESG so that might work.
And one could wonder why these two documents are separate and not merged.


2.  Overview

   A head may wish to be alerted to the tails' connectivity (or lack
   thereof), there are a number of options.
Something's wrong with the structure of that sentence.

I find this:
   First, if all that is needed is an unreliable failure notification,
   as discussed in Section 3.2, the head can request the tails to
   transmit unicast BFD Control packets back to the head when the path
   fails, as described in Section 4.4.
somehow in conflict with what is said in 3.2 (to which the reader is pointed) and which says:
   In this scenario, the tail sends back unsolicited BFD packets in
   response to the detection of a multipoint path failure.  It uses the
   reverse unicast path, but not the forward unicast path.
On one hand you say "request" on the other you say "unsolicited", and just before that word you say "sends back" which gives a sense of "in response to". Could you clarify? I have more comments on this section, and more precisely on the different modes of operations, but I'll discuss theses as part of the review of Section 3.x

In the two subsequent paragraphs a pointer to 3.3. and 3.4 would not be superfluous.

   If the head wishes to know the identity of the tails on the
   multipoint path, it may solicit membership by sending a multipoint
I don't think it is appropriate to talk about identity and membership. Head is polling a set of tails. You can't say much more than that.


   Individual tails may be configured so that they never send BFD
   control packets to the head, even when the head wishes notification
   of path failure from the tail.  Such tails will never be known to the
   head, but will still be able to detect multipoint path failures from
   the head.
ok, but how does the head knows of this config? How can the head distinguish between a failure and this? I guess the answer is oos of the document but I think that this situation is worth more than 4 lines. Or is there a requirement that a Head SHOULD/MUST NOT have a MulticastClient session with a tail who is silent?


3.x Operational Scenarios

I find the description of the different modes of operation quite confusing. Beyond this I have other comments/questions on 3.x that you'll find after.
3.1 is plain multipoint BFD I guess. Correct?
In 3.2 you say that tails send packets to the source when they detect a failure (stop receiving packets). At this point of the reading it is not clear which element makes a difference between 3.1 and 3.2 such that, suddenly in 3.2, tails can send packets. I believe it is worth clarifying that, though not giving too many details. Relates to 4.4? Also at this stage it is not clear what are those packets that tails send in 3.2. Are they replies to Polls? If so what is the difference between 3.2 and 3.3?


3.1.  No Head Notification

You say:
   Since the only path used in this scenario is the multipoint path
as if it had been stated before that this scenario only uses the mpPath.
It would be much more comprehensible if it was saying:
   In this scenario only the multipoint path is used.


3.3.  Semi-reliable Head Notification and Tail Solicitation

You say (twice):
   the head will see the BFD session fail
Could you clarify which session fails,?


3.4.  Reliable Head Notification

same comment as for 3.3


4.  Protocol Details

   This section is an update to section 4 of [I-D.ietf-bfd-multipoint].
Should you rather say that it's only some parts of this section which update mpBFD, and say which ones.


4.1.  Multipoint Client Session

   If the head is keeping track of some or all of the tails, it has a
   session of type MultipointClient per tail that it cares about.  All
   of the MultipointClient sessions for tails on a particular multipoint
   path are grouped with the MultipointHead session to which the clients
   are listening.
What do you mean by "grouped", associated?

   These sessions receive any BFD Control packets sent by the tails, and
   never transmit periodic BFD Control packets other than Poll Sequences
   (since periodic transmission is always done by the MultipointHead
   session).
Should it be "MUST never send"?

   A BFD Poll Sequence may be sent over such a session to a tail if the
   head wishes to verify connectivity.
It is not clear here if you are talking about sending a multipoint Poll sequence to all tails over the MultipointHead session or a unicast Poll sequence to a single tail over one MultipointClient session.


4.3.2.  New State Variable Value

      This variable MUST be initialized to the appropriate type when the
      session is created, according to the rules in section 4.13 of
      [I-D.ietf-bfd-multipoint].
There is nothing in 4.13 of mpBFD that talks about the initialization of bfd.SessionType.


4.3.3.  State Variable Initialization and Maintenance

   Some state variables defined in section 6.8.1 of the [RFC5880] needs
   to be initialized or manipulated differently depending on the session
   type (see section 4.4.2 of [I-D.ietf-bfd-multipoint]).
s/of the/of/
s/needs/need/
s/ (see section 4.4.2 of [I-D.ietf-bfd-multipoint])./. The values of some of these variables relate to those of the same variables of a MultipointHead session (see section 4.4.2 of [I-D.ietf-bfd-multipoint])./


      bfd.RequiredMinRxInterval
         It should be noted that for sessions of type MultipointTail,
         this variable only affects the rate of unicast Polls sent by
         the head; the rate of multipoint packets is necessarily
         unaffected by it.
what is specific to MultipointClient here? If nothing, please remove.
If something, please add it clearly.


4.4.  Controlling Multipoint BFD Options

   The most basic form of operation, as explained in
   [I-D.ietf-bfd-multipoint], in which BFD Control packets flow only
   from the head and no tracking is desired of tail state at the head,
   is accomplished by setting bfd.ReportTailDown to 0 in the
   MultipointHead session (Section 3.1).
I am a bit concerned that mpBFD in fact works with a state variable defined in another document. Wouldn't it be better to introduce this variable in mpBFD and set it to always be zero and then allow in this doc to be set at 1. A bit like the M bit.

You have text relating to 3.1. What about 3.2/3/4?

   If the head wishes to know the identity of the tails, it sends
   multipoint Polls as needed.  Previously known tails that don't
   respond to the Polls will be detected (as per Section 3.3).
Again, I'd prefer not to talk about identity, but simply about messages received from tails or not. I don't see the purpose of this paragraph here. What is the relation with state variables?

   If the head wishes to be notified by the tails when they lose
   connectivity, it sets bfd.ReportTailDown to 1 in either the
   MultipointHead session (if such notification is desired from all
   tails) or in the MultipointClient session (if notification is desired
   from a particular tail).  Note that the setting of this variable in a
   MultipointClient session for a particular tail overrides the setting
   in the MultipointHead session.
Does that correspond to 3.2, 3.3, 3.4?

   If the head wishes to verify the state of a tail on an ongoing basis,
   it sends a Poll Sequence from the MultipointClient session associated
   with that tail as needed.
   If the head wants to more quickly be alerted to a session failure
   from a particular tail, it sends a BFD Control packet from the
   MultipointClient session associated with that tail.  This has the
   effect of eliminating the initial delay, described in Section 4.13.3,
   that the tail would otherwise insert prior to transmission of the
   packet.
I don't see the link with state variables here neither. Consider moving somewhere else.

   If a tail wishes to operate silently (sending no BFD Control packets
   to the head) it sets bfd.SilentTail to 1 in the MultipointTail
   session.  This allows a tail to be silent independent of the settings
   on the head.
The implications of that option are not really discussed. The head will likely consider the session down, no?


4.5.  State Machine

   The state machine for session of type MultipointClient is same as
   defined in section 4.5 of [I-D.ietf-bfd-multipoint].
Is that really the case? MultipointHead only fails administratively while MultipointClient can fails based on received message, no?


4.6.  Session Establishment

   The head directly controls whether or not tails are allowed to send
   BFD Control packets back to the head.
Not fully true, because of SilentTail, no?


4.13.1/2/3

I think that, as said, you are not updating 5880. Also, you said that you update sections but really you are updating parts of them.
I encourage you to find a clear way to indicate what you change/update.


7. Security Considerations

Can't you elaborate a bit? This look a bit like the bare minimum.
---

Reply via email to