Re: [spring] Question on draft-ietf-spring-srv6-network-programming-12

"Joel M. Halpern" <jmh@joelhalpern.com> Fri, 27 March 2020 16:37 UTC

Return-Path: <jmh@joelhalpern.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 359B63A0C9D for <spring@ietfa.amsl.com>; Fri, 27 Mar 2020 09:37:29 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.098
X-Spam-Level:
X-Spam-Status: No, score=-2.098 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=joelhalpern.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 hUDULzxTXBiv for <spring@ietfa.amsl.com>; Fri, 27 Mar 2020 09:37:27 -0700 (PDT)
Received: from mailb2.tigertech.net (mailb2.tigertech.net [208.80.4.154]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id E6D253A0FBE for <spring@ietf.org>; Fri, 27 Mar 2020 09:34:34 -0700 (PDT)
Received: from localhost (localhost [127.0.0.1]) by mailb2.tigertech.net (Postfix) with ESMTP id 48pnWG5WXQz1p0dh; Fri, 27 Mar 2020 09:34:34 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=joelhalpern.com; s=2.tigertech; t=1585326874; bh=ULct6/NMxhPmY9366fCXvXliNygmmXicKcg22bemVp0=; h=Subject:To:Cc:References:From:Date:In-Reply-To:From; b=SdxDFicm0xbjzAD5+ZpLhc7llwhhmg/fp4HEpq2qbMkq6tJHB7pnaIQvl2FEDxXYU O3t9Xf/llPjKKrnBFLWoPBtIvXd1hm4alej2u6WdbCeUPmcDmrLA//gau/ArzU1ZVZ 66JjHbxECMkImM/hxWkl/jzM6ywAXjvVZYUevFhc=
X-Virus-Scanned: Debian amavisd-new at b2.tigertech.net
Received: from [192.168.128.43] (209-255-163-147.ip.mcleodusa.net [209.255.163.147]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mailb2.tigertech.net (Postfix) with ESMTPSA id 48pnWF4NnTz1nw2N; Fri, 27 Mar 2020 09:34:33 -0700 (PDT)
To: "Pablo Camarillo (pcamaril)" <pcamaril@cisco.com>
Cc: "spring@ietf.org" <spring@ietf.org>
References: <D5A410FF-EEA3-4F01-8147-5E180EE35DE6@chopps.org> <A6B1D2E0-0230-468B-931F-C6C976BDC9DC@cisco.com> <8ef9a49b-0edf-2040-86d6-7c68381352c6@joelhalpern.com> <C060BCFF-49E9-43DE-A816-35509B47033D@cisco.com> <9e2ea3c8-67c4-2442-4ce8-d42cc89a3a0d@joelhalpern.com> <305A5FB1-345F-4207-89BA-9C7F63452F16@cisco.com> <19b840f6-5a1a-32c8-029d-91ae38a58018@joelhalpern.com> <BN6PR11MB1363769DD5EA338553964F54C9CC0@BN6PR11MB1363.namprd11.prod.outlook.com>
From: "Joel M. Halpern" <jmh@joelhalpern.com>
Message-ID: <d4fb72ab-3f59-ab7b-b09a-6bfd923299de@joelhalpern.com>
Date: Fri, 27 Mar 2020 12:34:32 -0400
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:68.0) Gecko/20100101 Thunderbird/68.6.0
MIME-Version: 1.0
In-Reply-To: <BN6PR11MB1363769DD5EA338553964F54C9CC0@BN6PR11MB1363.namprd11.prod.outlook.com>
Content-Type: text/plain; charset="utf-8"; format="flowed"
Content-Language: en-US
Content-Transfer-Encoding: 8bit
Archived-At: <https://mailarchive.ietf.org/arch/msg/spring/mLfOg4pWJ9Gm58ecg9LqYoyaMqo>
Subject: Re: [spring] Question on draft-ietf-spring-srv6-network-programming-12
X-BeenThere: spring@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "Source Packet Routing in NetworkinG \(SPRING\)" <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: Fri, 27 Mar 2020 16:37:29 -0000

Thank you.  That is good enough to proceed regarding my concern.

Yours,
Joel

On 3/27/2020 12:24 PM, Pablo Camarillo (pcamaril) wrote:
> Hi Joel,
> 
> I think the following editorial change clarifies your point. Please let me know.
> 
> Thanks,
> Pablo.
> 
> 
> Diff:
> ====
> 
> -> Section 4.16.1 PSP
>      ....
>     The PSP operation is deterministically controlled by the SR Source
>     Node.  A PSP-flavored SID is used by the Source SR Node when it needs
>     to instruct the penultimate SR Segment Endpoint Node listed in the
>     SRH to remove the SRH from the IPv6 header.
> 
>     PSP allows, for example, for an egress PE to receive a packet with a
>     segment in the DA of the outer header without any need to process the
>     SRH.
> <NEW>This is useful for example when the SRH contains too many SIDs compared to the egress PE dataplane capability as advertised in the IGP [§8.1]. In such case calculating an SRv6 policy to these nodes needs to account for the availability of the PSP capability upstream to these nodes.</NEW>
> 
>     SR Segment Endpoint Nodes receive the IPv6 packet with the
>     Destination Address field of the IPv6 Header equal to its SID
>     address.  A penultimate SR Segment Endpoint Node is one that, as part
>     of the SID processing, copies the last SID from the SRH into the IPv6
>     Destination Address and decrements Segments Left value from one to
>     zero.
>     ....
> 
> -> Section 8.1 IGP
>     The End, End.T and End.X SIDs express topological behaviors and hence
>     are expected to be signaled in the IGP together with the flavors PSP,
>     USP and USD.
> <OLD>The IGP also advertises the support for SRv6 capabilities of the node.</OLD>
> <NEW>The IGP should also advertise the maximum SRv6 SID depth (MSD) capability of the node for each type of SRv6 operation. In particular, the SR source (e.g., H.Encaps), intermediate endpoint (e.g., End, End.X) and final endpoint (e.g., End.DX4, End.DT6) behaviors. These capabilities are factored in by an SR Source Node (or a controller) during the SR Policy computation.</NEW>
>    ...
> 
> 
> 
> -----Original Message-----
> From: Joel Halpern Direct <jmh.direct@joelhalpern.com>
> Sent: martes, 17 de marzo de 2020 18:51
> To: Pablo Camarillo (pcamaril) <pcamaril@cisco.com>
> Cc: spring@ietf.org
> Subject: Re: [spring] Question on draft-ietf-spring-srv6-network-programming-12
> 
> Given that the requirement to be able to ignore the routing header predates any of the SRv6 work, a natural reading would be that ignoring the header is something the device can already do.  In normal situations, the savings for not doing a check that simple is very small.
> 
> Having been told the cost was high, with no further explanation, I am forced to assume the historical (unfortunate) behavior that made the cost high.  If that explanation is correct, then it has other implications.  If that is NOT the reason that the cost is high, please state what the reason is for it having a high cost.  We are asking devices to support a special feature (PSP) to achieve the savings.  We owe it to folks to explain why we are asking for such a thing.  (And no, the fact that PSP is optional does not change things.  If PSP matters, then it matters.  If it doesn't matter, then lets drop it.)
> 
> Yours,
> Joel
> 
> On 3/17/2020 1:43 PM, Pablo Camarillo (pcamaril) wrote:
>> Inline
>>
>> -----Original Message-----
>> From: "Joel M. Halpern" <jmh@joelhalpern.com>
>> Date: Monday, 16 March 2020 at 20:23
>> To: "Pablo Camarillo (pcamaril)" <pcamaril@cisco.com>
>> Cc: "spring@ietf.org" <spring@ietf.org>
>> Subject: Re: [spring] Question on
>> draft-ietf-spring-srv6-network-programming-12
>>
>>       The changes in section 4.16.1 do improve the clarity.
>>       
>>       Having said that, the text about motivating PSP reads:
>>            PSP allows, for example, for an egress PE to receive a packet
>>            with a segment in the DA of the outer header without any need to
>>            process the	SRH.
>>       is a very weak and confusing explanation.  Given that 8200 requires
>>       nodes to be able to ignore any routing header with SL=0, the text as
>>       written seems to be without benefit.
>>
>> Joel, how do you know whether you can ignore a routing header?
>> I believe that the only option is for the router to process the routing header to check whether the Segments Left value is equal to zero.
>> PSP avoids any routing header processing at the egress PE, as the quoted text above states. Hence the benefit.
>>
>> Thanks,
>> Pablo.
>>
>>       Yes, I have seen descriptions of
>>       the benefits from others on the list.  But this text is not it.
>>       
>>       If indeed the benefit is a node where any extension header presence
>>       causes much slower processing (as was alluded to by other posters on the
>>       list) then it seems that should be acknowledged in the description.
>>       Doing something slowly is indeed still compliant to 8200.
>>       I have asked that we go a step further, and acknowledge that such nodes
>>       have other limitations and that if we are going to make allowance for
>>       them, we should call out those other issues as well.
>>       
>>       Yours,
>>       Joel
>>       
>>       On 3/16/2020 2:55 PM, Pablo Camarillo (pcamaril) wrote:
>>       > Hi Joel,
>>       >
>>       > Please check revision 13 of this document that clarifies the PSP section.
>>       >
>>       > About your last point:
>>       > For both SR-MPLS and SRv6, there are restrictions on the path to be used, in particular:
>>       > - the SR policy may only use SIDs instantiated on SR Endpoints.
>>       > - When computing the SR policy, there are additional restrictions to consider, such as the Maximum SID Depth (MSD) capability of nodes in the topology. (for SRv6, see section 4 of draft-ietf-lsr-isis-srv6-extensions).
>>       >
>>       > Regards,
>>       > Pablo.
>>       >
>>       > -----Original Message-----
>>       > From: "Joel M. Halpern" <jmh@joelhalpern.com>
>>       > Date: Tuesday, 10 March 2020 at 19:26
>>       > To: "Pablo Camarillo (pcamaril)" <pcamaril@cisco.com>
>>       > Cc: "spring@ietf.org" <spring@ietf.org>
>>       > Subject: Re: [spring] Question on draft-ietf-spring-srv6-network-programming-12
>>       >
>>       >      Pablo, in your reply below you say that the text in 8200 is "crystal
>>       >      clear".  It requires an interesting lens to find something "crystal
>>       >      clear" about which so many people have expressed so much disagreement.
>>       >      While a lawyer may claim to a judge that text in a contract is crystal
>>       >      clear, it is almost always hyperbole.  That may be useful in other
>>       >      contexts.  It is not useful here.
>>       >
>>       >      As far as I can tell, the text allows the interpretation that the PSP
>>       >      protagonists have reached.  It also allows other interpretations.  In
>>       >      the absence of clarity, I can not claim that PSP biolates 8200.  But it
>>       >      sure as heck is not "crystal clear".
>>       >
>>       >      I also find the articulated use cases for PSP muddy.  And as far as I
>>       >      can tell, if the use cases are accurate, then there is a need for
>>       >      greater clarity in the underlying drafts (NP because I do not want to
>>       >      try call back the base SRH document) about the restrictions on paths
>>       >      that can be used.
>>       >
>>       >      Yours,
>>       >      Joel
>>       >
>>       >      On 3/10/2020 2:13 PM, Pablo Camarillo (pcamaril) wrote:
>>       >      > Hi Chris,
>>       >      >
>>       >      > Thanks for going through the document.
>>       >      > The behaviors 4.13 (End.B6.Encaps), 4.14 (End.B6.Encaps.Red) and 4.15 (End.BM) correspond to Binding SIDs [1].
>>       >      >
>>       >      > As a result of 4.13 for example, the packet is encapsulated with a new IPv6 header and an SRH that contains the SR policy associated to the BSID.
>>       >      > Once the new IPv6 header is pushed into the packet, the NET-PGM pseudocode passes this packet to the IPv6 module of the router for transmission.
>>       >      >
>>       >      > Normally the Upper-Layer Header should not be processed on a packet with a BSID, since you have just pushed an SR policy into the packet.
>>       >      > That said, when the ultimate destination is BSID, then the Upper Layer Header processing is the same to End (4.1).
>>       >      >
>>       >      > Hope it clarifies.
>>       >      >
>>       >      > Thanks,
>>       >      > Pablo.
>>       >      >
>>       >      > [1]. https://tools.ietf.org/html/rfc8402#section-5
>>       >      >
>>       >      >
>>       >      > -----Original Message-----
>>       >      > From: spring <spring-bounces@ietf.org> on behalf of Christian Hopps <chopps@chopps.org>
>>       >      > Date: Saturday, 7 March 2020 at 12:50
>>       >      > To: "spring@ietf.org" <spring@ietf.org>
>>       >      > Cc: Christian Hopps <chopps@chopps.org>
>>       >      > Subject: [spring] Question on draft-ietf-spring-srv6-network-programming-12
>>       >      >
>>       >      >      In sections 4.13, (implicitly in 4.14) and 4.15 a set of steps is indicated. As far as I can tell the processing of the IPv6 header chain in all cases is terminated. e.g.,
>>       >      >
>>       >      >      "
>>       >      >         When N receives a packet whose IPv6 DA is S and S is a local End.BM
>>       >      >         SID, does:
>>       >      >
>>       >      >        S01. When an SRH is processed {
>>       >      >        S02.   If (Segments Left == 0) {
>>       >      >      ....
>>       >      >                     Interrupt packet processing and discard the packet.
>>       >      >        S04.   }
>>       >      >        S05.   If (IPv6 Hop Limit <= 1) {
>>       >      >      ....
>>       >      >                     Interrupt packet processing and discard the packet.
>>       >      >        S07.   }
>>       >      >        S09.   If ((Last Entry > max_LE) or (Segments Left > (Last Entry+1)) {
>>       >      >      ....
>>       >      >                     Interrupt packet processing and discard the packet.
>>       >      >        S11.   }
>>       >      >      ....
>>       >      >        S15.   Submit the packet to the MPLS engine for transmission to the
>>       >      >                  topmost label.
>>       >      >        S16. }
>>       >      >      "
>>       >      >
>>       >      >      The text then says:
>>       >      >
>>       >      >         When processing the Upper-layer header of a packet matching a FIB
>>       >      >         entry locally instantiated as an SRv6 End.BM SID, process the packet
>>       >      >         as per Section 4.1.1.
>>       >      >
>>       >      >      Why would I ever be processing the upper-layer header at this point?
>>       >      >
>>       >      >      Thanks,
>>       >      >      Chris.
>>       >      >      _______________________________________________
>>       >      >      spring mailing list
>>       >      >      spring@ietf.org
>>       >      >      https://www.ietf.org/mailman/listinfo/spring
>>       >      >
>>       >      >
>>       >      > _______________________________________________
>>       >      > spring mailing list
>>       >      > spring@ietf.org
>>       >      > https://www.ietf.org/mailman/listinfo/spring
>>       >      >
>>       >
>>       >
>>       >
>>       
>>