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