Re: [pim] AD Review of draft-ietf-pim-drlb-05

"Heidi Ou (hou)" <hou@cisco.com> Fri, 21 November 2014 18:46 UTC

Return-Path: <hou@cisco.com>
X-Original-To: pim@ietfa.amsl.com
Delivered-To: pim@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 6BE521A004C for <pim@ietfa.amsl.com>; Fri, 21 Nov 2014 10:46:53 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -15.094
X-Spam-Level:
X-Spam-Status: No, score=-15.094 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-5, RP_MATCHES_RCVD=-0.594, SPF_PASS=-0.001, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id gnR3aLU51fX9 for <pim@ietfa.amsl.com>; Fri, 21 Nov 2014 10:46:49 -0800 (PST)
Received: from rcdn-iport-6.cisco.com (rcdn-iport-6.cisco.com [173.37.86.77]) (using TLSv1 with cipher RC4-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 4D8CA1A0006 for <pim@ietf.org>; Fri, 21 Nov 2014 10:46:49 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=21424; q=dns/txt; s=iport; t=1416595609; x=1417805209; h=from:to:subject:date:message-id:in-reply-to:mime-version; bh=3khzDFdC1YaOALPv8ffe9RlQn6yYUh7j7qitJSUdpwc=; b=TS/KpvmA+SwVrHZxJy8ZS75K4Z9yaQwHS7Ux+GVP5kzjw9+S1MnX2cOy 7/vyZzXbVBbNKY6FaCNf+80aTvB1V1mmkunQEvsGHoS8WYR8qYEyJeGhg ROYfEJUu3KTMezktcLl2yMbWr//5iykdasmY38+wFoqDo45C8jHccEhwH I=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: AicFAH+Hb1StJA2M/2dsb2JhbABcgkhGgS4E0ywCgQQWAQEBAQF9hAIBAgSBCwEIDgMDAQIoKBEUCQgCBAESG4gRAxLGVQ2GTwEBAQEBBQEBAQEBARyOTYIqGIRLBZJXhyuCS4IUgTODVYp9gm2ECYICHoFbbYFIgQMBAQE
X-IronPort-AV: E=Sophos;i="5.07,432,1413244800"; d="scan'208,217";a="374277959"
Received: from alln-core-7.cisco.com ([173.36.13.140]) by rcdn-iport-6.cisco.com with ESMTP; 21 Nov 2014 18:46:47 +0000
Received: from xhc-aln-x13.cisco.com (xhc-aln-x13.cisco.com [173.36.12.87]) by alln-core-7.cisco.com (8.14.5/8.14.5) with ESMTP id sALIklCd006723 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=FAIL); Fri, 21 Nov 2014 18:46:47 GMT
Received: from xmb-rcd-x06.cisco.com ([169.254.6.58]) by xhc-aln-x13.cisco.com ([173.36.12.87]) with mapi id 14.03.0195.001; Fri, 21 Nov 2014 12:46:47 -0600
From: "Heidi Ou (hou)" <hou@cisco.com>
To: Alia Atlas <akatlas@gmail.com>, "draft-ietf-pim-drlb@tools.ietf.org" <draft-ietf-pim-drlb@tools.ietf.org>, "pim@ietf.org" <pim@ietf.org>
Thread-Topic: [pim] AD Review of draft-ietf-pim-drlb-05
Thread-Index: AQHQBbuAD6y7m7LYlkW4y/4WPYqc3Q==
Date: Fri, 21 Nov 2014 18:46:46 +0000
Message-ID: <D094C727.AF9DE%hou@cisco.com>
In-Reply-To: <CAG4d1rewMKVdo-xVWHv+n-V_EULYAK+sS69bCxBUGwbFg=xFUA@mail.gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
user-agent: Microsoft-MacOutlook/14.2.3.120616
x-originating-ip: [10.154.209.31]
Content-Type: multipart/alternative; boundary="_000_D094C727AF9DEhouciscocom_"
MIME-Version: 1.0
Archived-At: http://mailarchive.ietf.org/arch/msg/pim/Q0uJZvTcTm889AGUvBTZhAxEu1Q
Subject: Re: [pim] AD Review of draft-ietf-pim-drlb-05
X-BeenThere: pim@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Protocol Independent Multicast <pim.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/pim>, <mailto:pim-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/pim/>
List-Post: <mailto:pim@ietf.org>
List-Help: <mailto:pim-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/pim>, <mailto:pim-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 21 Nov 2014 18:46:53 -0000

Hi, Alia

Thanks for your comments.  I will work on it and we will create a new version after the thanksgiving.

- Heidi

From: Alia Atlas <akatlas@gmail.com<mailto:akatlas@gmail.com>>
Date: Thursday, November 6, 2014 9:25 AM
To: "draft-ietf-pim-drlb@tools.ietf.org<mailto:draft-ietf-pim-drlb@tools.ietf.org>" <draft-ietf-pim-drlb@tools.ietf.org<mailto:draft-ietf-pim-drlb@tools.ietf.org>>, "pim@ietf.org<mailto:pim@ietf.org>" <pim@ietf.org<mailto:pim@ietf.org>>
Subject: [pim] AD Review of draft-ietf-pim-drlb-05

Hi,

For all publication requests, I do or have done a review of the draft.  I have done that (finally - sorry for the delay!) with draft-ietf-pim-drlb-05.
The draft clearly describes a useful problem to be solved and a reasonable solution.  Thanks to the authors and WG for this work.

Unfortunately, enough of the technical details are under-specified that I would like to see an updated version addressing my concerns and comments before bringing this to IETF Last Call.

Below is my review:

Major Comments:

0) In Sec 6.2, there needs to be very clear specification about what a router's behavior should be that supports this spec.  Specifically,

  a) When a router supports this specification, it creates and advertises a DRLBC Hello Option.
  b) When a router receives a new or modified DRLBGDR from the current PIM DR or when the current PIM DR changes,
      the router checks all flows for which it has been the GDR and if it is no longer the GDR, then it sets its Assert metric for this
      flow to be (PIM_ASSERT_INFINITY - 1), as explained in Sec 6.3.
  c) When a router receives an unchanged DRLBGDR from the current PIM DR, it does nothing.
  d) When a router receives a IGMP/MLD join for a previously unknown flow, the router determines if it is the GDR for the flow.  If so, then the router...
  e) When a router receives an IGMP/MLD join for a flow for which the router has been the GDR AND the DRLBGDR has changed since the last time an IGMP/MLD join for this flow was received, then the router MUST determine if it is still the GDR.  If it is, no new work is needed.  If it is not, then the router sets its Assert metric for this flow to be (PIM_ASSERT_INFINITY -1) and ...   Once this is done, the router should forget that it was previously responsible for the flow.

I'm assuming that a router does not need to store information about IGMP/MLD joins for which the router was not the GDR.


1) In Sec 6.2, there needs to be text describing specifically what a GDR Candidate does when it receives the IGMP/LD join. For example:

"A router supporting this specification processes each DRLBGDR Hello Option received from the current PIM DR. If the router is listed as a GDR
Candidate, then it does the following additional work when an IGMP/MLD join is received. If the router is not listed as a GDR Candidate or no DRLBGDR Hello Option has been received from the current PIM DR, no additional work to process the join is done.

A router which is a GDR Candidate first determines if it is responsible for building forwarding trees on behalf of the host. This is done by using the
masks received in the most recent DRLBGDR Hello Option received from the current PIM DR and the Hash Algorithm that the router advertised in
its DRLBC Hello Option to calculate the appropriate hash value, as described in Sec. 4.3.

If the computed hash matches the router's listing as a GDR Candidate, then the router is responsible for building forwarding trees on behalf of the host.  This means doing...."


2) In Sec 6.3:  Does the following:

 " if a router enables this
   specification on its downstream interface, but it is not a GDR, it
   would adjust its Assert metric to (PIM_ASSERT_INFINITY - 1)."

mean that the router is not the selected GDR for this flow? Is this done when a new DRLBGDR Hello Option is received?  Is this done when a join is refreshed?  As written, it sounds like "not a GDR" is a characteristic of the router -

i.e. not a GDR candidate - instead of not the selected GDR for the particular flow.  The example does clarify it slightly, but specific and clear text is needed.


3) In Sec 6.3, the text says

  "the next PIM Hello option from DR is seen that selects R3 as the

      GDR.  R3 will then build the forwarding tree and send an Assert.

   The process continues until R2 agrees to the selection of R3 as being
   the GDR, and set its own Assert metric to (PIM_ASSERT_INFINITY - 1),
   which will make R3 the Assert winner."

but surely a router would only trigger work only when the DRLBGDR has changed?  As I mentioned  in comment (0), I really think that some description is necessary to explain what the behavior is on receiving an unchanged join or unchanged DRLBGDDR Hello Option.

Are flows which a router has lost the Assert on stored?


Minor Comments:

1) In Sec 4.2, it says "The Hash Masks MUST be configured on the PIM routers that can

   potentially become a PIM DR."  Is this a requirement that implementations must provide a configuration knob for the hash masks?  Why?  Couldn't ones be automatically generated?  Is this a requirement that an operator must configure them - and if so, what guidelines are provided?  What happens if masks aren't configured - for instance on a PIM DR that wasn't expected to become a DR?


2) I see that there is an algorithm ID, but no way to have two algorithms valid at the same time.  That makes it hard to transition. I'm not sure that's a serious concern here.  If it were, then the DRLBC Hello Option could contain multiple Hash Algorithms - showing those supported - and the DRLBGDR Hello Option could contain the Hash Algorithm that the DR has selected (which all the listed GDR Candidates would have to have indicated support for).  This would provide a migration path from one algorithm to another.  If you don't take this suggestion (and assuming there are implementation and this doesn't avoid traffic disruption because the selected GDRs could change), then I'd at least like a "Manageability Considerations" section that discusses this briefly.


3) n Sec 5.2, the formula for calculating the value for the Length should be specified.


4) Remove tentative language, such as "this document suggests".  This is going to be an RFC.  It should sound authoritative!

Nits:

a) Introduction should be the first section.

b) In Sec 4, the sentence "Hash Masks are defined for Source, Group and RP separately, in order

   to handle PIM ASM/SSM." appears twice in consecutive paragraphs.  The repetition should be cleaned up.


c) In Sec 4.2, hashvalue_RP, hashvalue_Group, and hashvalue_SG are used without being defined or tied to the RP Hash Mask, Group Hash Mask, or Source Hash Mask.  It isn't hard to guess the meaning of the first two, but what hashvalue_SG is is not clear from this section.  I see that they are defined in Sec 4.3; at a minimum, please add a forward reference.


Regards,

Alia