Subject: [pim] AD Review of draft-ietf-pim-multiple-upstreams-reqs-06

From: Alvaro Retana <[email-masked]>
Date: Wed, 31 Jan 2018 10:46:13 -0800

Dear authors:

I just finished reading this document.

In general, I am not a big fan of requirement documents on their own -- if
the problem is important enough then ideally there will be solution work
done as well.  I seem to remember some talk about potential solutions (as
far back as IETF 92), but didn't find a clearly related draft (or one that
references this document) in pim, mboned or even magma.  I want to
encourage the WG to take on work that addresses the scenarios described in
this document.

The document presents some applicable scenarios, which at times are
constraint by assuming that "both providers offer distinct multicast
groups" or that "only one of the upstream interfaces is active in receiving
the multicast content" -- leaving the decision to be straight forward: use
the upstream that provides the required group/source/service.  I then found
the resulting requirements relatively weak and general.  For one, it seems
as if the bulk of the requirements can be summarized as:

 - the proxy should deliver control messages from/to the user to/from the
corresponding upstream

 - the proxy should be able to select an upstream based on the requested
service (group/source combination, when applicable) or other criteria (e.g.
load balancing)

Those two requirements seem both generic and pretty obvious to me...and
don't offer too many details; for example: Should the user be able to set
the other criteria?  Is some criteria specific to the proxy itself and it's
operator (load balancing, for example)?  The description (related to load
balancing) talks about "split the demand, alleviating the bandwidth
requirements", but the requirements mention "balance...as a function of the
group", or "consider the source", both of which have no direct relationship
to helping with the bw requirements.

When the document does get into slightly more interesting scenarios, the
resulting requirements are not as specific as I would have expected to
later successfully build a solution that addresses them:

 - "should be able of rapidly switching from the active to the standby
upstream interface in case of network failure, transparently to the end
user"  How fast is that?  Is there something more specific that could be
used to quantify?  Does it depend on the application?  Are there
expectations on the network failure detection?

 - "decide...according to the situation of the user with respect to the
service migration"...or..."according to the situation of the group and
source included in the request with respect to the service migration."
 Besides knowing which upstream provides the service, is there something
else related to the "situation"?

At times the document reads like a marketing brochure...  For example: "For
the multicast service, the use of an IGMP/MLD proxy with multiple upstream
interfaces in those switches can provide service flexibility in a
lightweight and simpler manner if compared with PIM-routing based
alternatives."  flexible, lightweight, simple...  Nice!  But the
requirements don't directly seem to address those qualifications or offer a
way for an eventual solution to measure flexibility, simplicity,
lightweightness (?).

Another example: "it is now possible to implement channel-based or
subscriber-based upstream selection".  Based on the requirements, I take
that to mean that we can select an upstream based on what the subscriber
wants (source/group).  However, I could also interpret "subscriber-based"
as related to the subscriber him/herself -- is the intent that the proxy
could take into account personally identifiable information (who I am or
where I am, for example) when deciding not just which upstream to use but
whether to even provide the service?   Maybe I'm reading too much into
that, but clarifying that there are no requirements related to exchanging
or using information that would explicitly identify the subscriber
him/herself would help.

I have other comments below.

Let me be clear.  We're at this point of the process because the WG thinks
there's value in publishing this document — I’m not pushing back.  The
objective of my comments are aimed at making this document the best it can
be -- again, so we can build solutions based on the requirements.  I think
that in its current state, this document doesn’t provide valuable direction
for those eventual solutions.

I would like to see a revision to the document, or at least a response to
my comments before starting the IETF Last Call.

Thanks!

Alvaro.

C1. The examples and scenarios are described based on 2 upstreams.  I'm
assuming that the requirements don't really change if it was more than 2,
right?  It would be nice if that statement was made at some point: "all
this is applicable to 2 or more upstreams".

C2. 4.1.1.1.: "Since the use case assumes that each provider offers
distinct multicast groups, the IGMP/MLD proxy should be able to identify
inconsistencies in the SSM requests when a source S does not deliver a
certain group G."  What does it mean to "identify inconsistencies"?  What
are "inconsistencies"?

C3. PIM and PIM solutions are mentioned several times, but there's no
reference.  Please add some.

C4. Same comment for "existing IGMP/MLD proxy functionality".

C5. In 4.1.2.1, what's the difference between the first and last
requirement?

  o  The IGMP/MLD proxy should be able to deliver multicast control
     messages sent by the end user to the corresponding active upstream
     interface.
  ...
  o  The IGMP/MLD proxy should be able to deliver IGMP/MLD messages
     sent by the end user (for both ASM and SSM modes) to the
     corresponding active upstream interface.

C6. The case in 4.1.3 (Load balancing for multicast traffic in the metro
segment) seems to contradict the assumptions in the previous sections:
"both providers offer distinct multicast groups", "only one of the upstream
interfaces is active in receiving the multicast content".  I realize that
the scenarios are different, or that the requirements describe different
areas of (not necessarily concurrent) functionality -- it would be nice to
be specific about that.

C7. Security Considerations: "Apart from that, if proper mechanisms (i.e.,
implementation practices) are in place for channel-based or
subscriber-based upstream interface selection, Denial of Service attacks
can be prevented."  Proper mechanisms like what?  Please provide references.