Re: [spring] AD Review of draft-ietf-spring-segment-routing-mpls-10

"Ahmed Bashandy (bashandy)" <bashandy@cisco.com> Mon, 30 October 2017 18:12 UTC

Return-Path: <bashandy@cisco.com>
X-Original-To: spring@ietfa.amsl.com
Delivered-To: spring@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id C450213F49F; Mon, 30 Oct 2017 11:12:21 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -14.519
X-Spam-Level:
X-Spam-Status: No, score=-14.519 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, RCVD_IN_MSPIKE_H4=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_PASS=-0.001, URIBL_BLOCKED=0.001, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=cisco.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 3UnMC_OFoT19; Mon, 30 Oct 2017 11:12:19 -0700 (PDT)
Received: from rcdn-iport-8.cisco.com (rcdn-iport-8.cisco.com [173.37.86.79]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 9CBC513F5A8; Mon, 30 Oct 2017 11:12:18 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=40566; q=dns/txt; s=iport; t=1509387138; x=1510596738; h=from:to:cc:subject:date:message-id:references: in-reply-to:mime-version; bh=VkEFle5nccRezS7XnykzxcK0lrUAymYTXsCJfeamvsw=; b=Sj+A/i0toMx0i1DjknsfGqIzmF96coWqOIOberxAmARpLAAtG58GwIjs +/B+a5EUrFZSn7aqQywsfRH+W9L+UE3m9YFEzlVBxPrNvQtCi3ivI8am8 XU8lX7lON+suax4Y5M/Gdn8Eqq0HgK+64FBU4VOtrGhTFI2eYUpQtkeuh Y=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: A0CvAABQavdZ/5FdJa1bGQEBAQEBAQEBAQEBBwEBAQEBgm9wZG4nB4N1ih+PEoF8lkIQggEKhTsCGoRFPxgBAgEBAQEBAQFrHQuFHQEBAQEDIwpMEAIBBgIRAQMBARYLBwMCAgIwFAMGCAIEDgUIiTdkimSdZ4InJopeAQEBAQEBAQEBAQEBAQEBAQEBAQEBHYMuggeDOwGDKoRMDSA+EAmCVoJhBZhrF4kBApRxgh6GAIU0hWSKLIs3AhEZAYE4AR84gWh6FUmCZIJcBReBZ3eMEIERAQEB
X-IronPort-AV: E=Sophos;i="5.44,320,1505779200"; d="scan'208,217";a="312377298"
Received: from rcdn-core-9.cisco.com ([173.37.93.145]) by rcdn-iport-8.cisco.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 30 Oct 2017 18:12:16 +0000
Received: from XCH-RTP-020.cisco.com (xch-rtp-020.cisco.com [64.101.220.160]) by rcdn-core-9.cisco.com (8.14.5/8.14.5) with ESMTP id v9UICGKo013240 (version=TLSv1/SSLv3 cipher=AES256-SHA bits=256 verify=FAIL); Mon, 30 Oct 2017 18:12:16 GMT
Received: from xch-rtp-020.cisco.com (64.101.220.160) by XCH-RTP-020.cisco.com (64.101.220.160) with Microsoft SMTP Server (TLS) id 15.0.1320.4; Mon, 30 Oct 2017 14:12:15 -0400
Received: from xch-rtp-020.cisco.com ([64.101.220.160]) by XCH-RTP-020.cisco.com ([64.101.220.160]) with mapi id 15.00.1320.000; Mon, 30 Oct 2017 14:12:15 -0400
From: "Ahmed Bashandy (bashandy)" <bashandy@cisco.com>
To: "aretana.ietf@gmail.com" <aretana.ietf@gmail.com>
CC: "draft-ietf-spring-segment-routing-mpls@ietf.org" <draft-ietf-spring-segment-routing-mpls@ietf.org>, "spring-chairs@ietf.org" <spring-chairs@ietf.org>, "spring@ietf.org" <spring@ietf.org>, "martin.vigoureux@nokia.com" <martin.vigoureux@nokia.com>
Thread-Topic: AD Review of draft-ietf-spring-segment-routing-mpls-10
Thread-Index: AQHTHIIh4KJmZ7gcR0CZ8hGMO0nB2aL8+hHQgAAAKiA=
Date: Mon, 30 Oct 2017 18:12:15 +0000
Message-ID: <50d87236662f49bb8a81308dff6abbf5@XCH-RTP-020.cisco.com>
References: <74FB72FC-AD69-4EA3-ACA2-739168EE0A44@cisco.com> <aa2ed0f2b0a845cc83b16adda7566b37@XCH-ALN-001.cisco.com>
In-Reply-To: <aa2ed0f2b0a845cc83b16adda7566b37@XCH-ALN-001.cisco.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-ms-exchange-transport-fromentityheader: Hosted
x-originating-ip: [10.154.160.18]
Content-Type: multipart/alternative; boundary="_000_50d87236662f49bb8a81308dff6abbf5XCHRTP020ciscocom_"
MIME-Version: 1.0
Archived-At: <https://mailarchive.ietf.org/arch/msg/spring/fQfONV2jQLlTF1zpopAMJ_RRYo0>
Subject: Re: [spring] AD Review of draft-ietf-spring-segment-routing-mpls-10
X-BeenThere: spring@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: "Stacked Tunnels for Source Routing \(STATUS\)." <spring.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/spring>, <mailto:spring-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/spring/>
List-Post: <mailto:spring@ietf.org>
List-Help: <mailto:spring-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/spring>, <mailto:spring-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 30 Oct 2017 18:12:22 -0000

Sorry for the late reply and thanks a lot for the thorough review.

We have just uploaded version 11 of the draft.

See replies inline “#Ahmed” to your comments

Thanks

Ahmed



From: spring [mailto:spring-bounces@ietf.org] On Behalf Of Alvaro Retana (aretana)
Sent: Wednesday, August 23, 2017 7:39 PM
To: draft-ietf-spring-segment-routing-mpls@ietf.org<mailto:draft-ietf-spring-segment-routing-mpls@ietf.org>
Cc: spring-chairs@ietf.org<mailto:spring-chairs@ietf.org>; spring@ietf.org<mailto:spring@ietf.org>; Martin Vigoureux <martin.vigoureux@nokia.com<mailto:martin.vigoureux@nokia.com>>
Subject: [spring] AD Review of draft-ietf-spring-segment-routing-mpls-10

Dear authors:

I just finished reading this document.  Please take a look at my comments below.

The main questions/concerns that I have related to this document is not just for the authors, but for the Shepherd and the Chairs too.

Q1. Why is this document on the Standards Track? From the Introduction: “This drafts describes how Segment Routing operates on top of the MPLS data plane.”  Describes, yes.  On the other hand, the Shepherd’s write-up says that it “specifies the generic functions of the architecture” – I don’t see a specification, just a description.  As such, I think this document should be Informational.
#Ahmed: The new version of the draft specifies many things that are applicable to instantiation of SR over MPLS

Q2. Section 2. (MPLS Instantiation of Segment Routing) is the only one with any real content…but there are only a couple of things in it that are not in the Architecture document: the introduction of the SRLB, and some words about the index – both of which should be really explained in the Architecture document, and not here.  I wonder what the value of publishing this document really is.  What long-term archival value does it provide?
#Ahmed: The long term plan is to move details of MPLS-specific specifications to this document and keep the architecture document more general

Q3. I also have to wonder about the IPR declared for this document.  If most of the information here is already defined, described or specified in draft-ietf-spring-segment-routing, should the IPR declaration apply to that document as well (or maybe instead of this one)?  It is not the IETF’s role (including the WG) to discuss whether a piece of IPR is valid or not – I just want to make sure the disclosures apply to the right document.
#Ahmed: We will make sure that all IPR is declared


I didn’t find a discussion on the list about any of these points.

Thanks!

Alvaro.


Major

M1. Section 2. (MPLS Instantiation of Segment Routing) explains how “in the MPLS instantiation, the SID values are allocated within a reduced 20-bit space out of the 32-bit SID space.”  However, I couldn’t find where draft-ietf-spring-segment-routing defines the SID space as using 32 bits (or any other length).  In fact, the closest that document comes is when it defines an SID and mentions “Examples of SIDs are: an MPLS label, an index value in an MPLS label space, an IPv6 address.”   I’m assuming the “32-bit SID space” comes from the fact that the extensions define an SID of that length.  All this is to say that as you describe how SR operates in the MPLS dataplane, do so not explicitly depending on the implementation of the extensions (which in fact seem to already account for different lengths).
#Ahmed: The part that talks about the reduced 20 bit spaced has been removed. Instead the beginning of section 2.2 clearly specifies that a SID is an MPLS label and if it is an index it should be inside the SRGB. Section 2.4 specifies how to translate the Index to a label within the SRGB

M2. [I mentioned these issues in the review of draft-ietf-spring-segment-routing as well.]

M2.1. “The notion of indexed global segment, defined in [I-D.ietf-spring-segment-routing]…”  That document doesn’t properly define the concept/use of the index.  There are several mentions in this document that I think rely on a proper definition/discussion of the concept.
#Ahmed: Section 2.4 specify how to translate the Index to a label within the SRGB. The architecture draft defines the concept of an index

M2.2. The concept of an SRLB is not defined in the Architecture document either.
#Ahmed: The latest version of the architecture document defines the SRLB

M3. Still in Section 2, from this text:

      *  When different SRGBs are used, the outgoing label value is set
         as: [SRGB(next_hop)+index].  If the index can't be applied to
         the SRGB (i.e.: if the index points outside the SRGB of the
         next-hop or the next-hop has not advertised a valid SRGB), then
         no outgoing label value can be computed and the next-hop MUST
         be considered as not supporting the MPLS operations for that
         particular SID.

…several questions/comments…

M3.1. [minor] I hope to see an explanation of the “[SRGB(next_hop)+index]” notation.
#Ahmed: Section 2.4 clearly specifies how to map an index to a label within the SRGB

M3.2. What is a “valid SRGB”?  I don’t think the validity of the SRGB is described in the Architecture document.
#Ahmed: The term “valid SRGB” has been removed. Instead Section 2.3 specifies the conditions an SRGB must satisfy

M3.3. I’m assuming that once the “next-hop MUST be considered as not supporting” then the packets are dropped, right?
#Ahmed: Sections 2.8 and 2.9 specify the forwarding behavior. I hope they are sufficiently clear

M3.4. [Maybe I’m missing something obvious here.]  Going back to the validity of the SRGB advertised by a specific node, shouldn’t the ingress node verify that before imposing a path that will fail?  But I couldn’t find anything in the Architecture document that talks about the ingress node verifying that the path is valid (including the validity of the SRGB).
#Ahmed: Section 2.8 and 2.9 clearly specify the forwarding behavior for PUSH. I hope they are sufficiently clear. This document also have a reference to [I.D. filsfils-spring-segment-routing-policy] where the discussion about calculating and verifying the values of labels in a stack of labels

M4. Still in Section 2: “As described in [I-D.ietf-spring-segment-routing], using the same SRGB on all nodes within the SR domain eases operations and troubleshooting and is expected to be a deployment guideline.”  As I mentioned in my review of the Architecture document, that document doesn’t contain deployment guidelines related to the SRGB, and it doesn’t describe how “using the same SRGB…eases operations and troubleshooting”.
#Ahmed: The latest version of the architecture document addresses this comment


Minor

P1. The term “service chain” is used in the Abstract.  Given that the concept is not vital to the architecture and that there might be unnecessary confusion with SFC, I would suggest taking it out.
#Ahmed: The term “service chain” has been removed from this draft

P2. Informative References to VPN, VPLS, VPWS, LDP, RSVP-TE…would be nice.
#Ahmed: References to all of this has been removed from this document

P3. Section 2. (MPLS Instantiation of Segment Routing) says that “a controller-driven network…MAY use the control plane to discover the available set of local SIDs”.  The “MAY” implies that there is a choice (i.e. it is optional) and that other discovery mechanisms exist.  What are those other choices?  Note that earlier in this section you already wrote that IGPs are used for flooding the information.  s/MAY/may
#Ahmed: This document gives an example of a use of the SRLB. Listing all possible uses of the SRLB is certainly not within the scope of this document.

P4. Section 2: “…the use of the binding segment as specified in [I-D.ietf-spring-segment-routing], also allows to substantially reduce the length of the segment list…”  Nice, but there is no description of the binding segment in draft-ietf-spring-segment-routing.
#Ahmed: The latest version of draft-ietf-spring-segment-routing takes care of defining a binding SID

P5. References.  Please take a look at rfc8174 and update the “Requirements Language” and associated references.
#Ahmed: I agree. I modified the paragraph about requirements language to conform to rfc8174



Nits

N1. I think that the references to *-segment-routing-extensions are superfluous.  BTW, the fourth paragraph of the Introduction uses a reference to *-segment-routing-extensions to point at ISIS/OSPF (the protocols!).
#Ahmed: I agree. Now we have clear references to each IGP extensions separately

N2. It would be very nice if the examples used IPv6 addresses.
#Ahmed: It is just that everyone is used to IPv4 more than IPv6. So we believe using IPv4 is easier for people to understand