Subject: AD review for draft-ietf-bfd-multipoint-active-tail

From: Martin Vigoureux <[email-masked]>
Date: Fri, 18 May 2018 19:35:34 +0200

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.
---

---

From: Greg Mirsky <[email-masked]>
Date: Tue, 22 May 2018 20:56:37 -0700

Hi Martin,
thank you for the thorough review, thoughtful comments, and questions that
require discussion.
Please find my answers, notes in-line tagged GIM>>.

Attached are the new working version of the draft and the diff to -07. I'll
update the references and share an update after that's done.

Regards,
Greg

On Fri, May 18, 2018 at 10:35 AM, Martin Vigoureux <
[email-masked]> wrote:

> 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.
>
GIM>> Trying to characterize polling tails by the head over the multicast
path as unreliable mechanism vs. over the unicast as relaible may be is as
a strech. I think that we should replace
"unreliable/semi-reliable/reliable" references with ones that characterize
the polling. The "unreliable" notification to the head doesn't use polling
tail(s) and may be referred to as no-polling method. For the two other
methods I can propose two options:

   - "in-band" for polling using the multicast tree and "out-band" -
   polling using unicast;
   - "fate-sharing" for polling using the multicast tree and "disjoint" -
   polling using unicast.

> operation of the protocol and on the deduction the head can make of what it
> receives or not.
>
GIM>> The new text to introduce and explain the terms may be good place to
expand on how selection of the path to use for tail polling impacts on how
useful is the proposed extension.

>
>
> Abstract
>
> Please specify here which document(s) this one updates. Please see further
> down on the Update point.
>
>
> 1.  Introduction
>
> 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.
>
GIM>> The text is confusing, agree. And I think that removing this
paragraph would not lose any helpful information as the very next paragraph
gives clear motivation for this extension:
   The goal of this application is for the head to reasonably rapidly
   have knowledge of tails that have lost connectivity from the head.

> In the same was as for mpBFD, I don't see how this document updates 7880.
> Please clarify.
>
GIM>> It is all related, or so we thought, to bfd.SessionType that has been
added as the new BFD variable in RFC 7880 and the new values added in mp
BFD. In this draft a new value, MultipointClient, is added:
    bfd.SessionType

      The type of this session as defined in [RFC7880].  A new value
      introduced is:

         MultipointClient: A session on the head that tracks the state
         of an individual tail, when desirable.

We've discussed whether the base mp BFD specification updates RFC 7880 and
had agreed to remove it from the list. I'll be glad to do the same for this
draft.

> And one could wonder why these two documents are separate and not merged.
GIM>> I think that you're right that this specification does not  update
RFC 5880 but does update mp BFD specification (which, in turn, updates RFC
5880). Should references to sections of RFC 5880 in 14.13.1 through 14.13.3
of this draft be replaced with references to corresponding sections 4.13.1
through 4.13.3 of I-D.ietf-bfd-multipoint?

> 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
>
GIM>> The new state variable bfd.ReportTailDown controls whether a
MultipointClient sends periodic, i.e. unsolicited, BFD control packets to
the MultipointHead, as

> In the two subsequent paragraphs a pointer to 3.3. and 3.4 would not be
GIM>> Will add.

> Head is polling a set of tails. You can't say much more than that.
GIM>> Agree. Would the following update be acceptable:
OLD TEXT:
   If the head wishes to know the identity of the tails on the
   multipoint path, it may solicit membership by sending a multipoint
   BFD Control packet with the Poll (P) bit set ...
NEW TEXT:
   If the head wishes to know of the active tails on the
   multipoint path, it may send a multipoint
   BFD Control packet with the Poll (P) bit set ...

> MulticastClient session with a tail who is silent?
GIM>> I think this refers to the case when bfd.SilentTail being set to 1.
In this case the tail is invisible to the head as it would not respond to
any polling, muticast or unicast. As result, such tail would not notify the
head of the detected failure either. These tails acting as in the mode
defined in the base mp BFD specification.

> confusing. Beyond this I have other comments/questions on 3.x that you'll
> find after.
GIM>> Yes the behavior of MultipointTail as defined
in I-D.ietf-bfd-multipoint (can we refer to it as base mp BFD
specification?). But with active tail extension this behavior is the result
of setting the new BFD variables to very specific values. Section 4.4
explains that the base mp BFD mode is when bfd.ReportTailDown to 0
bfd.SessionType is  MultipointHead.

> suddenly in 3.2, tails can send packets.
GIM>> For one, bfd.SilentTail must be set to 0.

> 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?
>
GIM>> The MultipointTail may periodically send BFD control packets with
Poll set. If the MultipointHead does not send unicast BFD control packet
with Poll cleared and the Final set, then, I believe, the MultipointTail
will continue sending its Poll packets periodically. Hence the difference
between polling by the MultipointHead per 3.3 and 3.4 and the unsolicited
periodic Polls from the tail.

>    In this scenario only the multipoint path is used.
GIM>> Thank you, accepted. The text now is:
In this scenario only the multipoint path is used and none of the others
matter.

> Could you clarify which session fails,?
GIM>> It is the MultipointClient session. Would the new text make it
clearer:
OLD TEXT:
... the head will see the BFD session fail, but the state of the
   multipoint path will be unknown to the head.
NEW TEXT:
... the head will see that the particular MultipointClient
session fail ...

> 3.4.  Reliable Head Notification
GIM>> Would the text proposed above be acceptable?

> update mpBFD, and say which ones.
GIM>> Here's the proposed new text:
OLD TEXT:
   This section is an update to section 4 of [I-D.ietf-bfd-multipoint].
NEW TEXT:
   This section updates Section 4 of [I-D.ietf-bfd-multipoint] as the
following:
   - Section 4.3 introduces new state variables and modifies the usage of a
few existing ones;
   - Section 4.13 replaces the corresponding sections in the base BFD for
multipoint networks specification.

> What do you mean by "grouped", associated?
GIM>> Yes, "associated" is better term, I agree. Will update.

> Should it be "MUST never send"?
GIM>> Would s/never/MUST NOT/ to make it into "MUST NOT transmit" be
acceptable?

> sequence to a single tail over one MultipointClient session.
GIM>> s/such a session/a MultipointClient session/

> There is nothing in 4.13 of mpBFD that talks about the initialization of
GIM>> This is the problem with keeping cross-references while updating both
documents. The correct reference now is to Section 4.4 of
[I-D.ietf-bfd-multipoint].

> 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
GIM>> All accepted and applied to the working version.

> If something, please add it clearly.
GIM>> I propose the new text below.
OLD TEXT:
         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.
NEW TEXT:
It MAY be set to zero at the head BFD system to suppress traffic from the
tails.
Setting it to zero in the MultipointHead session suppresses traffic from
all tails,
setting in a MultipointClient session suppresses traffic form a single tail.

> 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.
>
GIM>> Great idea, thank you! If we do that, would such update to mpBFD
document require re-start of WGLC?

> You have text relating to 3.1. What about 3.2/3/4?
GIM>> The fifth paragraph can be back referenced to section 3.4. The fourth
paragrah describes use of bfd.ReportTailDown common to unsolicited
notifications, multicast and unicast polling, i.e. sections 3.2, 3.3, and
3.4.

> I don't see the purpose of this paragraph here. What is the relation with
> state variables?
>
GIM>> It may be better to move this paragraph down by one, swap paragraphs.
And would the following re-wording mak text clearer:
OLD TEXT:
   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).
NEW TEXT:
   If the head wishes to know of the active 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).

> Does that correspond to 3.2, 3.3, 3.4?
GIM>> Yes, it enables all three modes.

> I don't see the link with state variables here neither. Consider moving
GIM>> I read it as continuation of what described in the preceeding
paragraph regarding setting  bfd.ReportTailDown in MultipointClient.

> likely consider the session down, no?
GIM>> The head would not learn of such tail nor it will be able to notice
the tail state change. I think that s/be silent/be invisible to the head/
may make the text clearer.

> Is that really the case? MultipointHead only fails administratively while
> MultipointClient can fails based on received message, no?
>
GIM>> True. It is noted in Section 4.5 in mpBFD that for MultipointHead all
state transitions are administratively driven. But the diagram is still
applicable for BFD MultipointClient session.

> Not fully true, because of SilentTail, no?
GIM>> It can be done by setting bfd.RequiredMinRxInterval to zero in
MultipointHead session or a MultipointClient session. The former will force
all tails not to send any BFD packet to the head. The latter - only the
particular BFD tail. As stressed in the specification, the value in
MultipointClient overrides the value in MultipointHead.

>
>
> 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.
GIM>> I'll remove from these sections references to sections 6.8.6 and
6.8.7 of RFC 5880 and link updates to mpBFD specification.

> Can't you elaborate a bit? This look a bit like the bare minimum.
GIM>> You're right and more should be said about possible impact
MultipointClient sessions. Proposed new text below:
NEW TEXT:
   Additionally, implementations that create
   MultpointClient sessions dynamically upon receipt of BFD
   Control packet from a tail MUST implement protective measures to prevent
an
   infinite number of MultipointClient sessions being created.  Below are
   listed some points to be considered in such implementations.

      When the number of MultipointClient sessions exceeds the number of
      expected tails, then the implementation should generate an alarm
      to users to indicate the anomaly.

      The implementation should have a reasonable upper bound on the
      number of MultipointClient sessions that can be created, with the
      upper bound potentially being computed based on the number of
      multicast streams that the system is expecting.

The text may be inserted as the second paragraph or replace the current
second paragraph.

---

From: Greg Mirsky <[email-masked]>
Date: Mon, 28 May 2018 15:31:35 -0700

Hi Martin, et. al,
I've updated sections Base BFD for Multipoint Networks Specification Text
Replacement (you may notice that the title of the section now refers to
mpBFD specification, not RFC 5880). Greatly appreciate your feedback.

Regards,
Greg

On Tue, May 22, 2018 at 8:56 PM, Greg Mirsky <[email-masked]> wrote:

> Attached are the new working version of the draft and the diff to -07.
> I'll update the references and share an update after that's done.
>
> Regards,
> Greg
>
> a strech. I think that we should replace "unreliable/semi-reliable/reliable"
> references with ones that characterize the polling. The "unreliable"
> notification to the head doesn't use polling tail(s) and may be referred to
> as no-polling method. For the two other methods I can propose two options:
>
> GIM>> It is all related, or so we thought, to bfd.SessionType that has
> been added as the new BFD variable in RFC 7880 and the new values added in
> mp BFD. In this draft a new value, MultipointClient, is added:
>     bfd.SessionType
>
>    - Section 4.3 introduces new state variables and modifies the usage of
> a few existing ones;
> GIM>> This is the problem with keeping cross-references while updating
> both documents. The correct reference now is to Section 4.4 of
> GIM>> The fifth paragraph can be back referenced to section 3.4. The
> fourth paragrah describes use of bfd.ReportTailDown common to unsolicited
> GIM>> It may be better to move this paragraph down by one, swap
> paragraphs. And would the following re-wording mak text clearer:
> OLD TEXT:
> GIM>> True. It is noted in Section 4.5 in mpBFD that for MultipointHead
> all state transitions are administratively driven. But the diagram is still
>    Control packet from a tail MUST implement protective measures to
> prevent an

---

From: Martin Vigoureux <[email-masked]>
Date: Thu, 31 May 2018 14:53:37 +0200

Greg,
thanks in return for your answers.
Please see in-line. Please publish a new version.
I'll go through it and then might request LC.

-m

Le 2018-05-23 à 5:56, Greg Mirsky a écrit :
> Hi Martin,
> thank you for the thorough review, thoughtful comments, and questions 
> that require discussion.
> On Fri, May 18, 2018 at 10:35 AM, Martin Vigoureux 
> <[email-masked] <mailto:[email-masked]>> wrote:
> 
>     WG, Authors,
> 
>     hello.
> 
>     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.
> 
> GIM>> Trying to characterize polling tails by the head over the 
> multicast path as unreliable mechanism vs. over the unicast as relaible 
> may be is as a strech. I think that we should replace 
> "unreliable/semi-reliable/reliable" references with ones that 
> characterize the polling. The "unreliable" notification to the head 
> doesn't use polling tail(s) and may be referred to as no-polling method. 
> For the two other methods I can propose two options:
> 
>   * "in-band" for polling using the multicast tree and "out-band" -
>     polling using unicast;
>   * "fate-sharing" for polling using the multicast tree and "disjoint" -
>     polling using unicast.
I don't like any of these :-)

I'd simply call them: "no-poll", "1-poll", "2-polls".
And I would rewrite first paragraph as:
    This application of BFD is an extension to Multipoint BFD
    [I-D.ietf-bfd-multipoint], which allows tails to notify the head of
    the lack of multipoint connectivity.  As a further option, heads can
    request a notification from the tails by means of a polling
    mechanism.  Notification to the head can be enabled for all tails, or
    for only a subset of the tails.

>     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.
> 
> GIM>> The new text to introduce and explain the terms may be good place 
> to expand on how selection of the path to use for tail polling impacts 
> on how useful is the proposed extension.
Maybe, though I'm not convinced. To do so you'd have to get a bit into 
the details of the three modes of operation. That would look a lot like 
4.1/2/3/4.
I think it would fit nicely in 4. because you introduce here the types 
of paths. Have a paragraph there which raises the awareness of the 
reader to the fate sharing issue. Doesn't need to be long.

>     further down on the Update point.
You still need to address that.
This Document updates mpBFD. It is also missing in the header now.
>     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...
> paragraph would not lose any helpful information as the very next 
> paragraph gives clear motivation for this extension:
agreed.

> been added as the new BFD variable in RFC 7880 and the new values added 
> in mp BFD. In this draft a new value, MultipointClient, is added:
>      bfd.SessionType
> 
> We've discussed whether the base mp BFD specification updates RFC 7880 
> and had agreed to remove it from the list. I'll be glad to do the same 
> for this draft.
I view Update as a way to indicate a modification rather than an 
addition. As an example 7471 does not Update 3630. From that point of 
view, adding a value to a variable defined in 7880 does not change and 
thus does not Update 7880.

>     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.
> RFC 5880 but does update mp BFD specification (which, in turn, updates 
> RFC 5880). Should references to sections of RFC 5880 in 14.13.1 through 
> 14.13.3 of this draft be replaced with references to corresponding 
> sections 4.13.1 through 4.13.3 of I-D.ietf-bfd-multipoint?
Yes, please make sure that you point to the correct rfc/section that you 
update.
Please also add what you update in the header and in the abstract.

>     Something's wrong with the structure of that sentence.
you missed that one.

>     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?
>     different modes of operations, but I'll discuss theses as part of
>     the review of Section 3.x
> 
> MultipointClient sends periodic, i.e. unsolicited, BFD control packets 
> to the MultipointHead, as
Did you really mean "MultipointClient to MultipointHead" here?

Also, as far as I understand, in the "no-poll" scenario the head is not 
requesting anything so this needs to be reworded:
    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.
You could say:
    the tails can send unsolicited unicast BFD Control packets to the
    head when the path fails.

Also:
s/the tail sends back unsolicited/the tail sends unsolicited/
> 
> 
>     In the two subsequent paragraphs a pointer to 3.3. and 3.4 would not
>     be superfluous.
> 
> GIM>> Will add.
Please do.
>     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.
> 
I'm ok with that, but that is not what you changed the text to in the 
Document.
>     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.
> GIM>> I think this refers to the case when bfd.SilentTail being set to 
> 1. In this case the tail is invisible to the head as it would not 
> respond to any polling, muticast or unicast. As result, such tail would 
> not notify the head of the detected failure either. These tails acting 
> as in the mode defined in the base mp BFD specification.
Ok. understood. Then I think there is a slight clarification to bring.
Indeed the first sentence says:
    even when the head wishes notification of path failure from the tail.
This gives the impression that the head knows *the tail*. You can't be 
wishing a notification from something you don't know exists.
Maybe simply remove that part of the sentence.

>     confusing. Beyond this I have other comments/questions on 3.x that
I would like to see some text saying:
For the different modes described below the setting of new state 
variables are given even if these are only introduced later in the 
document (see Section X.Y).

And that for each mode you say how should the variables be set, in which 
session.

> specification?). But with active tail extension this behavior is the 
> result of setting the new BFD variables to very specific values. Section 
> 4.4 explains that the base mp BFD mode is when bfd.ReportTailDown to 0 
So I believe it is important to inform the reader of that. With 
something like:
    This mode emulates the behaviour of mpBFD.

> 
>     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.
> 
> will continue sending its Poll packets periodically. Hence the 
> difference between polling by the MultipointHead per 3.3 and 3.4 and the 
> unsolicited periodic Polls from the tail.
> 
> 
> 
ok
> ... the head will see that the particular MultipointClient
ok

> GIM>> Would the text proposed above be acceptable?
yes. please apply it
>     Should you rather say that it's only some parts of this section
>     which update mpBFD, and say which ones.
> 
>     - Section 4.3 introduces new state variables and modifies the usage 
> of a few existing ones;
>     - Section 4.13 replaces the corresponding sections in the base BFD 
> for multipoint networks specification.
ok

> GIM>> Yes, "associated" is better term, I agree. Will update.
ok

> GIM>> Would s/never/MUST NOT/ to make it into "MUST NOT transmit" be 
yes, thanks
>     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.
> 
thanks

>     There is nothing in 4.13 of mpBFD that talks about the
>     initialization of bfd.SessionType.
> 
> both documents. The correct reference now is to Section 4.4 
> of[I-D.ietf-bfd-multipoint].

ok
> GIM>> All accepted and applied to the working version.
thanks
minor typo:
s/type/type./
> It MAY be set to zero at the head BFD system to suppress traffic from 
> the tails.

ok
>     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.
> 
thinking twice about that, let's keep the way things are.

> fourth paragrah describes use of bfd.ReportTailDown common to 
> unsolicited notifications, multicast and unicast polling, i.e. sections 
> 3.2, 3.3, and 3.4.
please do.
>     Again, I'd prefer not to talk about identity, but simply about
>     messages received from tails or not.
ok, ok.
> GIM>> Yes, it enables all three modes.
Still not clear.
ReportTailDown = 0 : don't poll tails
ReportTailDown = 1 : poll tails
is that correct?

If so:
s/If the head wishes to be notified by the/If the head wishes to request 
a notification from the/

>     I don't see the link with state variables here neither. Consider
>     moving somewhere else.
> 
So please indicate it
>     The implications of that option are not really discussed. The head
>     will likely consider the session down, no?
> 
> GIM>> The head would not learn of such tail nor it will be able to 
> notice the tail state change. I think that s/be silent/be invisible to 
> the head/ may make the text clearer.
understood
> all state transitions are administratively driven. But the diagram is 
> still applicable for BFD MultipointClient session.
So, is a small clarification needed? I would think so.
> MultipointHead session or a MultipointClient session. The former will 
> force all tails not to send any BFD packet to the head. The latter - 
> only the particular BFD tail. As stressed in the specification, the 
> value in MultipointClient overrides the value in MultipointHead.
So please remind that to the reader (pointing to mpBFD spec)
> 
> 
> 
>     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.
please do
> The text may be inserted as the second paragraph or replace the current 

ok