Re: [mpls] Spencer Dawkins' Discuss on draft-ietf-mpls-tp-shared-ring-protection-05: (with DISCUSS and COMMENT)

Spencer Dawkins at IETF <spencerdawkins.ietf@gmail.com> Mon, 05 June 2017 21:44 UTC

Return-Path: <spencerdawkins.ietf@gmail.com>
X-Original-To: mpls@ietfa.amsl.com
Delivered-To: mpls@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id E1C3F12EB4E; Mon, 5 Jun 2017 14:44:26 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.999
X-Spam-Level:
X-Spam-Status: No, score=-1.999 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
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 UaNjhzNqSUM6; Mon, 5 Jun 2017 14:44:24 -0700 (PDT)
Received: from mail-yb0-x231.google.com (mail-yb0-x231.google.com [IPv6:2607:f8b0:4002:c09::231]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 63F6F12EB4B; Mon, 5 Jun 2017 14:44:20 -0700 (PDT)
Received: by mail-yb0-x231.google.com with SMTP id 202so36861795ybd.0; Mon, 05 Jun 2017 14:44:20 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=JWhN++KV7mpsnVJ8M9bp1nMZDM7vp25mZLL++iy7MH8=; b=pKT1a5EzZsIgUcGJI5WvH9PenEXIxgLhvAEr0upnrge+wzqhpjneOgBLv7PFmWiFBe H+Fh3bOfDtxEJA1VRQKpZAmndTutnGaXM+gzcmKuCcjJ0ZkGO7lkRrmlFF7gN7RueVDI aLrkUs9gT1T6lq9MgD8X0U6dVqAox77P4/bET9VlD9db2XUs1uHdPFmICwxp34b1UXrI 2k3OfFxO8btD0i+fCyYLc0oLEg4iVLrfZ7wuiOF/lZRAgCHlqG5HPWE1LINmhLsBbmET QIkThHR8Al+Cyf4Z3/FWypoQf4dZnCXZqSfI7R3l8Vg8Dm2bWIhcr6ZwBRmaAuOrxs95 /f1Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=JWhN++KV7mpsnVJ8M9bp1nMZDM7vp25mZLL++iy7MH8=; b=T3znmGpAGaZGUDZhe29OrDiEohHnYL9YBb+8Kd3rQKpfdfg1kuaR7TtMDLoy/ErgbU s5ls+hLH1ezE+SzGQr25/QLQ4IBZWQ/2/QlZ9cMUIIuR8eU4yDGklrGrNAuwLt6B9QOg Wl/5HUaIiPRMrGDGAryARrd4xHdRlG57oGp1a/5ZWmQ9w5XJury1Z9UZ0KIrWDguaZnO dC4bZwVJ8MMCEGcitQBvy90xw2C0gxGAE7k8lyy89/mslbZjDy6i1qQ4ftRfhWeojGsa T0yOeva0Ox9iikEQxuZuVgNqYPwU87HaRdYSFcDv6PlhOAUxzhgv+O2ErUgu5n/X5iYi vIaw==
X-Gm-Message-State: AODbwcBFGXo3xDeh0KC+OZEqJ5aDOLn2tiR4cTOGx3xZGyhJihF0l5wa hE0uKMRHMScClKJ67GXAe3E+8LGbfA==
X-Received: by 10.37.246.29 with SMTP id t29mr433126ybd.211.1496699059619; Mon, 05 Jun 2017 14:44:19 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.37.195.194 with HTTP; Mon, 5 Jun 2017 14:44:19 -0700 (PDT)
In-Reply-To: <d3c84c04-f6d5-a416-41b2-94fbe5aa358b@gmail.com>
References: <149565660910.8641.739437988075507213.idtracker@ietfa.amsl.com> <d3c84c04-f6d5-a416-41b2-94fbe5aa358b@gmail.com>
From: Spencer Dawkins at IETF <spencerdawkins.ietf@gmail.com>
Date: Mon, 05 Jun 2017 16:44:19 -0500
Message-ID: <CAKKJt-eOKg=u6eXe8+x0asM_J6gt4ov1W7mO=p5=P=62rK+0nw@mail.gmail.com>
To: huubatwork@gmail.com
Cc: The IESG <iesg@ietf.org>, draft-ietf-mpls-tp-shared-ring-protection@ietf.org, Eric Gray <Eric.Gray@ericsson.com>, "mpls-chairs@ietf.org" <mpls-chairs@ietf.org>, "mpls@ietf.org" <mpls@ietf.org>
Content-Type: multipart/alternative; boundary="f403045da456c8d53d05513d67d7"
Archived-At: <https://mailarchive.ietf.org/arch/msg/mpls/RK2Fr_SnjBiS7IUj3IHpySmBgKw>
Subject: Re: [mpls] Spencer Dawkins' Discuss on draft-ietf-mpls-tp-shared-ring-protection-05: (with DISCUSS and COMMENT)
X-BeenThere: mpls@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: Multi-Protocol Label Switching WG <mpls.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/mpls>, <mailto:mpls-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/mpls/>
List-Post: <mailto:mpls@ietf.org>
List-Help: <mailto:mpls-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/mpls>, <mailto:mpls-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 05 Jun 2017 21:44:27 -0000

Hi, Huub,

On Fri, Jun 2, 2017 at 5:29 PM, Huub van Helvoort <huubatwork@gmail.com>
wrote:

> Hello Spencer,
>
> I am back from our holiday.
> As promised I will now answer the remaining comments
> in-line [Huub]
>

Thanks - and all your proposed responses in this e-mail seem good to me.

Spencer


>
> ----------------------------------------------------------------------
>> DISCUSS:
>> ----------------------------------------------------------------------
>>
> ---8<--- snipped (see my previous response)
>
>> ----------------------------------------------------------------------
>> COMMENT:
>> ----------------------------------------------------------------------
>>
>> ---------- all the other questions
>>
>> In this text,
>>
>>     When the service LSP passes through the interconnected rings, the
>>     direction of the working ring tunnels used on both rings SHOULD be
>>     the same.  For example, if the service LSP uses the clockwise
>> working
>>     ring tunnel on Ring1, when the service LSP leaves Ring1 and enters
>>     Ring2, the working ring tunnel used on Ring2 SHOULD also follow the
>>     clockwise direction.
>>
>> I'm not understanding why this is a SHOULD, and not a MUST. If the
>> direction of the working ring tunnels used on both rings is not the same,
>> does this still work?
>>
>
> [Huub] it will still work.
> The SHOULD is in particular useful in case of  dual-node interconnected
> rings. It ensures that the traffic passes only one of the two
> interconnecting
> nodes, and does not pass the link between the two interconnecting nodes.
> The traffic will then only be switched to the protection path if the
> interconnecting node fails which is in working path.
>
> If it still works, why does this matter? But, either way, you might
>> usefully say something about why this isn't always the right thing to do,
>> even if you just give one example. The point of SHOULD is that
>> implementers make their own informed decisions, so providing information
>> that will inform those decisions seems important.
>>
>
> [Huub] OK, point taken.
>
> I wanted to call out
>>
>>     Ring switches MUST be preempted by higher priority RPS requests.
>> For
>>     example, consider a protection switch that is active due to a manual
>>     switch request on the given link, and another protection switch is
>>     required due to a failure on another link.  Then an RPS request MUST
>>     be generated, the former protection switch MUST be dropped, and the
>>     latter protection switch established.
>>
>>     MSRP mechanism SHOULD support multiple protection switches in the
>>     ring, resulting in the ring being segmented into two or more
>> separate
>>     segments.  This may happen when several RPS requests of the same
>>     priority exist in the ring due to multiple failures or external
>>     switch commands.
>>
>> as really good examples of the kind of text I think would help the places
>> in this document ("For example", "This may happen when") where no
>> examples are given. Thanks for providing those examples!
>>
>
> [Huub] thank you for your advise.
>
> Ouch. Do I understand from
>>
>>     o  Protection Switching Mode (M): This 2-bit field indicates the
>>        protection switching mode used by the sending node of the RPS
>>        message.  This can be used to check that the ring nodes on the
>>        same ring use the same protection switching mechanism.  The
>>        defined values of the M field are listed as below:
>>
>>               +------------------+-----------------------------+
>>               |  Bits (MSB-LSB)  |   Protecton Switching Mode  |
>>               +------------------+-----------------------------+
>>               |       0 0        |         Reserved            |
>>               |       0 1        |         Wrapping            |
>>               |       1 0        |       Short Wrapping        |
>>               |       1 1        |         Steering            |
>>               +------------------+-----------------------------+
>>
>> that you already have three protection mechanisms, and have only one
>> possible codepoint to allocate for any future optimizations? Assuming
>> that "0 0" can be unReserved ...
>>
>
> [Huub] I hope the explanations I provided for the application of
> wrapping/short-wrapping/steering show that these are the only
> three possible mechanisms.
>
> Could you clarify what "anyway" means in this text?
>>
>>     When multiple MS RPS requests exist at the same time addressing
>>     different links and there is no higher priority request on the ring,
>>     no switch SHOULD be executed and existing switches MUST be dropped.
>>     The nodes MUST signal, anyway, the MS RPS request code.
>>
>
> [Huub] good point. To avoid confusion it would be better to
> replace the last sentence by:
> "The node still SHOULD signal the relevant RPS request".
>
> I'm seeing that the commands like LP described in section 5.2.1.1  are
>> used in the document before these (I'm serious) helpful and clear
>> explanations appear. If it's possible to move section 5.2.1.1 up in the
>> document, that would be great, but if it isn't possible, a forward
>> pointer would be helpful to readers who don't already know what the
>> command abbreviations mean.
>>
>
> [Huub] good point, we will take this into account when we make
> the revision of the draft.
>
> I'm really confused by this SHOULD:
>>
>>     The PSC protocol [RFC6378] is designed for point-to-point LSPs, on
>>     which the protection switching can only be performed on one or both
>>     of the end points of the LSP.  The RPS protocol is designed for ring
>>     tunnels, which consist of multiple ring nodes, and the failure could
>>     happen on any segment of the ring, thus RPS SHOULD be capable of
>>     identifying and handling the different failures on the ring, and
>>     coordinating the protection switching behavior of all the nodes on
>>     the ring.
>>
>> I suspect that's because it's not a 2119 SHOULD, but if people think it
>> is, I wouldn't mind understanding why.
>>
>
> [Huub] you are right that is not a 2119 SHOULD,
> It would be better to replace "SHOULD be" by "is".
> (the protocol has been implemented and the capability has been tested
> successfully)
>
> Section 5.3, "RPS and PSC Comparison on Ring Topology" is really helpful,
>> but it appears 43 pages in. Given that I'd expect people to be asking why
>> they should implement a new protection switching protocol when they've
>> already implemented PSC, I'd think this would be much more useful, early
>> in the document.
>>
>
> [Huub] we can move the text up in the draft.
>
> I'm somewhat confused about the code point allocation strategy in this
>> text:
>>
>>     The RPS Request Field is 8 bits, the allocated values are as
>> follows:
>>
>>         Value       Description               Reference
>>        -------  --------------------------- ---------------
>>           0     No Request (NR)             this document
>>           1     Reverse Request (RR)        this document
>>           2     unassigned
>>           3     Exercise (EXER)             this document
>>           4     unassigned
>>           5     Wait-To-Restore (WTR)       this document
>>           6     Manual Switch (MS)          this document
>>          7-10   unassigned
>>          11     Signal Fail (SF)            this document
>>          12     unassigned
>>          13     Forced Switch (FS)          this document
>>          14     unassigned
>>          15     Lockout of Protection (LP)  this document
>>        16-254   unassigned
>>          255    Reserved
>>
>> My first question is, why the highest priority RPS value is 15, given
>> that the field is 8 bits wide.
>>
>
> [Huub] the four LSB of the request field are sufficient for the
> required values. (in PSC and other technologies also four bits
> are used for the request coding).
>
> If anyone ever needs to add a code point
>> higher than the highest priority code point, will that work well?
>>
>
> [Huub] that will never be necessary. LP means protection is disabled.
>
>   I can
>> imagine code that says "if operation_priority is greater than
>> highest_priority, it's an error", for example.
>>
>
> [Huub] indeed, this will be reported as FOP (failure of protocol).
>
> Best regards, Huub.
>
>
>
> --
> ================================================================
> Always remember that you are unique...just like everyone else...
>
>