Hi!
I think that the title of this document clearly reflects what you want to do —
which may be one of the reasons there was virtually no discussion about it (or
any of its predecessors) on the list. However, I think the contents leave many
open doors that need to be closed before this document can be published.
I put more detailed comments below, but my main concerns are here:
1. The Abstract says that the procedures are "inspired from BGP unicast
route damping". It seems to me that the intent is in fact to adopt the
algorithm from RFC2439. However, the text is not explicit/clear about that.
2. As you all know, the history behind BGP damping has not been without it
being considered useless and even having recommendations (from RIPE, for
example) not to use it. How did you arrive at the default and maximum values?
It concerns me that there are no known implementations (from the Shepherd's
report). Because of that, I think this document would be better suited as an
Experimental RFC, with the explicit purpose of gaining experience with the
values and determine the impact in live deployments (which then could support a
standard version). Please consider changing the intended Status.
According to the e-mail archive, it looks like an early presentation of this
work happened in an mboned meeting, but I didn't find discussion on the pim or
idr lists. Once the comments below are addressed I will want to forward the
document to pim/idr for their review.
Thanks!
Alvaro.
Major:
1. There are 6 authors listed on the front page. According to RFC7322, the
total number is generally limited to 5. Please work among yourselves to cut
the number of authors. Alternatively, we can just list an Editor (there's one
already identified)..or you can produce a justification detailing the
contributions of each author to consider an exception.
2. Replace the reference to RFC4601 with a reference to
draft-ietf-pim-rfc4601bis. Note that the section numbers have changed slightly!
3. Are you adopting the exponential decay algorithm from RFC2439? That
seems to be what's happening because you are not explicitly defining a new
algorithm, but some of the text leave doubts. For example:
* "inspired from BGP unicast route damping" I know the application is
different, but if the algorithm is the same then please say it.
* Section 5.1. (PIM procedures)
* "updating the *figure-of-merit* based on the decay algorithm must
be done prior to this increment" This statement seems to directly imply that
the algorithm is used. Please reorder the steps to explicitly call this one
out, instead of plugging it in as an afterthought. BTW, should the "must" be
"MUST"? Ordering should help you not having to deal with that last question.
* "Same techniques as the ones described in [RFC2439] can be
applied…" "Can be"? This sentence seems to imply that what is described in
RFC2439 is optional. Are there other ways of determining the same thing? What
about the exponential decay algorithm?
* It would also help if the terminology was consistent. For example,
instead of "damping becomes active" use "suppressed". I can see how
"suppressed" may give the wrong impression as only the propagation of state is
affected. Explaining then how the terminology applies would make it easier to
reuse, avoid confusion and be clear. Note that there's no mention of RFC2439
in the terminology section.
4. Section 3. (Overview): "…it is expected that this technique will allow to
meet the goals of protecting the multicast routing infrastructure control plane
without a significant average increase of bandwidth". In general, I want to
make sure that the qualities of the solution and the expected results are
properly reflected in the document. [I'm using the text above as the base for
my comment, but the impact is larger.] Some questions:
* "…it is expected that this technique will…" I wonder why an assertion
can't be made that this technique can (vs just expecting that it will) address
specific problems. Is it the case that experience is needed to make a stronger
assertion? Are the goals the same (or at least similar) in every network? Are
there implementations available? If so, please consider an "Implementation
Status" section (see rfc6982). What has been the deployment experience? This
goes back to my comment above about the Intended Status of this document.
* What specifically are the goals? In a couple of places the text
points back at Section 1. (Introduction), but I'm not sure exactly what the
goals are. Of special interest for understanding the goals is the part in
Section 4.2. (Existing PIM, IGMP and MLD timers) where other solutions are
discarded for not meeting them.
* There is scattered text that talks about "…ensure that the load put
on the BGP control plane, and on the P-tunnel setup control plane, remains
under control…", "protecting these control planes…avoiding negative
effects…although at the expense of a minimal increase in average of bandwidth
use…". However, the description is too vague to point at what can satisfy
these goals and what can't.
* Section 4.1. (Rate-limiting of multicast control traffic) mentions the
"risk described in Section 1", which does mention "risks of denial of service
attacks". Is that the risk you're referring to, or something else?
* Section 4.3. (BGP Route Damping) mentions "the principle described in
this document", which I thought was related to the goals, but Section 1 says
that the "base principle is described in Section 3". I'm assuming the
"principle" in question is such that a "network operator…can delay the
propagation of multicast state prune messages between PEs, when faced with a
rate of multicast state dynamicity exceeding a certain configurable threshold".
That sounds like a potential goal to me.
5. Section 5.2. (Procedures for multicast VPN state damping)
* In the Introduction you write that "Section 16 of [RFC6514]
specifically spells out the need for damping the activity…" I think that
RFC6514 does a lot more than that: Section 16.1. (Dampening C-Multicast
Routes) "proposes OPTIONAL route dampening procedures similar to what is
described in [RFC2439]." Those procedures look very similar to the ones in
this document. What is the difference? Is the intent of this document to
complement, replace or maybe update what is already specified in RFC6514?
* There's an rfc2119 conflict. "…then the withdrawal of a C-multicast
route…SHOULD NOT be damped. An implementation of the specification in this
document MUST whether, not damp these withdrawals by default, or alternatively
provide a tuning knob to disable the damping of these withdrawals."
s/whether/either The "MUST..not damp" and "SHOULD NOT be damped" are in
conflict. I think that eliminating the last sentence would fix the problem
and still allow an implementation to put in any knobs that it wants.
6. Section 7.3. (Default and maximum values) lists values that are
"RECOMMENDED to adopt as default conservative values". Any guidance about when
and/or how an operator should consider changing the recommended defaults? What
does "conservative" mean in this context? What if the operator wants to be
more aggressive?
Minor:
1. In 4.2
* s/prune override interval/J/P_Override_Interval
* Reference for explicit tracking..?? BTW, how would the mechanism in
this document interact with explicit tracking?
2. Section 5.1. (PIM procedures):
* "…a router implementing these procedures MUST…apply unchanged
procedures for everything…". I guess that these "unchanged procedures" are the
ones in rfc4601bis, right? In other words, what you seem to want is that, in
addition to what rfc4601bis specifies, for the other steps defined in this
document to happen. If that is correct, please reword the description to make
it clear — at least put a reference so that there is no question about which
procedures are left unchanged.
* "…freeze the upstream state machine…and setup a trigger to update it…"
Maybe a word like "hold" or "maintain" might be better. In fact, even better
would be an explicit indication that "events that may result in the state
changing [rfc4601bis] SHOULD be ignored until the reuse threshold is reached",
or something along those lines. What should the state be updated to when the
reuse threshold is reached?
* I had some trouble parsing this text: "When the recompilation is done
periodically, the period should be low enough to not significantly delay the
inactivation of damping on a multicast state beyond what the operator wanted to
configure (i.e. for a *decay-half-life* of 10s, recomputing the
*figure-of-merit* each minute would result in a multicast state to remained
damped for a much longer time than what the parameters are supposed to
command)." I think I got it…but what I don't get (based on my understanding
of RFC2439) is that the figure-of-merit should decay according to the
half-life, so I don't get why its value would be adjusted at a period that is
not related to the half-life.
3. Section 5.2. (Procedures for multicast VPN state damping)
* There are several places in this section where rfc2119 language is
used to describe what an implementation should do that sound to me as an
attempt to define functionality that is mandatory to implement (MTI). I find
that hard/impossible to enforce and would like to see the rfc2119 language
removed. Please see below..
* The text says that an "implementation of [RFC6513] relying on the use
of PIM to carry C-multicast routing information MUST support this technique."
That "MUST" is really strong and it makes me think that this document should
then be marked as an update to RFC6513. Is that the intent? Reading through
it again, is the intent MTI?
* "…the following procedure is proposed as an alternative to the
procedures in Section 5.1…" "proposed"?? Does this mean that 5.1 is also
applicable in this case (when "BGP is used to distribute C-multicast routing
information")? It sounds like the operator would have an option — if so, when
should each be considered?
* Later in the same section you wrote: "…choice to implement damping
based on BGP routes or the procedures described in Section 5, is up to the
implementor, but at least one of the two MUST be implemented." I think it
should be section 5.1. Do you really mean the "implementor", or are you
referring to the operator of the network? The "MUST" sounds too strong for me
because it is not needed for interoperability (rfc2119) -- or is this an
attempt at MTI?
* Same question/observation for "In the perspective of allowing
damping to be done on RRs and ASBRs, implementing the BGP approach is
RECOMMENDED." Maybe s/RECOMMENDED/recommended
* "…it can be considered useful to also be able to apply damping on RRs
as well." When is it considered useful?
* Note that later you also write: "…in such a context, it is
RECOMMENDED to not enable any multicast VPN route damping on RRs…" This
partially answers the question. It would be nice to put the guidance together.
* "…damping SHOULD NOT be applied to BGP routes of the following
sub-types…" Are there cases when it is ok? In other words, why is the "SHOULD
NOT" not a "MUST NOT"?
4. Section 6.1. (Damping mVPN P-tunnel change events) "Possible ways to do
so depend on the type of P-tunnel, and local implementation details are left up
to the implementor. The following is proposed as example of how the above
can be achieved." Either you leave it as an implementation detail or you
provide guidance. If this document was Experimental, then providing guidance
it great!
Nits:
1. Please put references on first appearance. For example, IGMP and MLD are
mentioned in the introduction, but no reference is made until the 5th mention.
The same for BGP route damping…
* You also need a reference to route reflectors.
2. "these control planes" Which control planes? Please be specific.
There are other places where "these" is uses that may not be completely
clear..please take a look.
3. s/these specifications/this specification
4. s/when enabled /when enabled,
5. "PIM-SM specifications [RFC4609]" RFC4609 is not the PIM spec.
6. Section 6.2. (Procedures for Ethernet VPNs) "…an implementation of these
procedures MUST follow the procedures described in Section 6.1." It is not
completely clear which "these procedures" are. I'm guessing RFC7117.
_______________________________________________
BESS mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/bess