Re: [spring] PSP and a logical application of RFC8200

Brian E Carpenter <brian.e.carpenter@gmail.com> Tue, 03 March 2020 21:17 UTC

Return-Path: <brian.e.carpenter@gmail.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 564DA3A09C2; Tue, 3 Mar 2020 13:17:35 -0800 (PST)
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, FREEMAIL_FROM=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=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 BB0u2aMZKV8v; Tue, 3 Mar 2020 13:17:32 -0800 (PST)
Received: from mail-pf1-x42c.google.com (mail-pf1-x42c.google.com [IPv6:2607:f8b0:4864:20::42c]) (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 7B2703A09A5; Tue, 3 Mar 2020 13:17:32 -0800 (PST)
Received: by mail-pf1-x42c.google.com with SMTP id y21so2134382pfp.1; Tue, 03 Mar 2020 13:17:32 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=IXvs02OxGoIukBAlUjeIbU4C/JL0utOs3KAXYW744MU=; b=EIAJV0VPr34r2hzXf+3THAsXhutkdU8oSqP4P1pjHIL94fAziWlcIBpLczzvYkAifO lTp4n9eK6JuXFUbNB5VzXtXxCZQO+HKGTJaB1wFUXY7/nBvIG5ayfh3SNUv7yIiexmj3 znE1wJR8ZBKL1QYeuCs0n1eXY5/O/trxnXlQWD3DLT1p7z4lABxVargOxOi5sVXEEgr3 59gpSt2NT32B10CE04IWXphCodsG+F3u8rRSICv2lu2z7GK1Pbn6nzyoMk6AJebIpCha VBL+7J4/Vqo/VgY4LW8iJpY491N4MAsvqN9RQqerCBQG2fbsyci+OgkwQhdyseYepSG9 UQfA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=IXvs02OxGoIukBAlUjeIbU4C/JL0utOs3KAXYW744MU=; b=h5TO/5fRGqzNl2ifk/HO/d5hCYSABJO5oRKwmLQPz5LnCsSL5FLFn6KLKi/7G7f/Vj efe7KFd0ktR42JpZJuFdyVdyTDM/hTAWNKNxUR+MHQb1odjWdzB4/RvBzitC3FAsqL+v lOD8tYf3xY3r7njSIxs0RhY0okZDwQF6osplfX/KcH0VIwxM9vXNaDQisa8AigvxFBy7 Dnq/etueH/L+0f1ZEVy8byQQcaWOSJ2LOteAAWdg5+N3YYVJDaLhEChUOnwgMC5T05jQ z1ZbC+o7t48SXeiyjGRpNpjtkPf9/sbAD6TcNx69Ndk3EJ0Jo4gHPXN10wIp0tT7s01n zvyQ==
X-Gm-Message-State: ANhLgQ2s3DM2EKbN2EoNqc/5KzSNjw0QVxI8FSOj3SJltAqaYDg/JW/t BuSBej3lu8TidoJVzMh81pWZvauA
X-Google-Smtp-Source: =?utf-8?q?ADFU+vs04Ch0oTCTInPThOsh7GQDuWDAzYr7Hhos7WXZ?= =?utf-8?q?gLwI7O1QJVkqCdp9b4yQtwsg3zAT+9p/3g=3D=3D?=
X-Received: by 2002:a63:1e57:: with SMTP id p23mr5905726pgm.316.1583270251545; Tue, 03 Mar 2020 13:17:31 -0800 (PST)
Received: from [192.168.178.30] ([165.84.25.143]) by smtp.gmail.com with ESMTPSA id c18sm25061544pgw.17.2020.03.03.13.17.28 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 03 Mar 2020 13:17:30 -0800 (PST)
To: "Pablo Camarillo (pcamaril)" <pcamaril@cisco.com>, "bruno.decraene@orange.com" <bruno.decraene@orange.com>
Cc: "Darren Dukes (ddukes)" <ddukes@cisco.com>, 6man WG <ipv6@ietf.org>, SPRING WG List <spring@ietf.org>
References: <39544C17-1AD0-412E-A8BD-E17376537FCF@cisco.com> <bf9d68e6-cbae-2b19-11e0-1e452f0bf654@gmail.com> <FD806998-8218-4C70-B383-332C5F934A73@cisco.com> <176e9bbf-41c8-8e8a-f26e-e0de5d89735f@gmail.com> =?utf-8?q?=3C23291=5F15832?= =?utf-8?q?46906=5F5E5E6E3A=5F23291=5F112=5F19=5F53C29892C857584299CBF5D0534?= =?utf-8?q?6208A48DD7F0D=40OPEXCAUBM43=2Ecorporate=2Eadroot=2Einfra=2Eftgrou?= =?utf-8?q?p=3E?= <E6BE5ABD-FEE7-4814-A2E2-9CF7C343F40D@cisco.com>
From: Brian E Carpenter <brian.e.carpenter@gmail.com>
Message-ID: <488b1a44-a4b2-39ff-171d-32fafb37df56@gmail.com>
Date: Wed, 4 Mar 2020 10:17:26 +1300
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.9.1
MIME-Version: 1.0
In-Reply-To: <E6BE5ABD-FEE7-4814-A2E2-9CF7C343F40D@cisco.com>
Content-Type: text/plain; charset=utf-8
Content-Language: en-US
Content-Transfer-Encoding: quoted-printable
Archived-At: <https://mailarchive.ietf.org/arch/msg/spring/zJvAkj4joRypuJ6ibBJFFoxXDD4>
Subject: Re: [spring] PSP and a logical application of RFC8200
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: Tue, 03 Mar 2020 21:17:36 -0000

Right, let's get the text clarified. Whether or not the IETF (not just these two WGs, which plainly cannot agree) accepts or refuses this interpretation of RFC 8200 is a separate question.

Regards
   Brian

On 04-Mar-20 09:37, Pablo Camarillo (pcamaril) wrote:
> Brian, Bruno,
> 
>  
> 
> Many thanks for your comments.
> 
> Based on the feedback I would propose to add Brian's proposed text as is into the draft.
> 
>  
> 
> 4.16.1.  PSP: Penultimate Segment Pop of the SRH
> 
>  
> 
>    SR Segment Endpoint Nodes advertise the SIDs instantiated on them via
> 
>    control plane protocols as described in Section 8.  Different
> 
>    behavior ids are allocated for flavored and unflavored SIDs [Table 4]
> 
>    such that an SR Source Node can identify PSP-flavored SIDs as such.
> 
>  
> 
>    The PSP flavor is specifically 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.
> 
>  
> 
>    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.
> 
>  
> 
>    The PSP operation only takes place at a penultimate SR Segment
> 
>    Endpoint Node and does not happen at any Transit Node.
> 
>  
> 
>    The SRH processing of the End, End.X and End.T behaviors are
> 
>    modified: after the instruction "S14.  Update IPv6 DA with Segment
> 
>    List[Segments Left]" is executed, the following instructions must be
> 
>    executed as well:
> 
>  
> 
> S14.1.   If (Segments Left == 0) {
> 
> S14.2.      Update the Next Header field in the preceding header to the
> 
>                 Next Header value of the SRH
> 
> S14.3.      Decrease the IPv6 header Payload Length by the Hdr Ext Len
> 
>                 value of the SRH
> 
> S14.4.      Remove the SRH from the IPv6 extension header chain
> 
> S14.5.   }
> 
>  
> 
>    The usage of PSP does not increase the MTU of the IPv6 packet and
> 
>    hence does not have any impact on the PMTU discovery mechanism.
> 
>  
> 
>    As a reminder, [I-D.ietf-6man-segment-routing-header] defines in
> 
>    section 5 the SR Deployment Model within the SR Domain [RFC8402].
> 
>    Within this framework, the Authentication Header (AH) is not used to
> 
>    secure the SRH as described in Section 7.5 of
> 
>    [I-D.ietf-6man-segment-routing-header].
> 
>  
> 
> *<NEW>*
> 
> *This behavior does not contravene section 4 of [RFC8200]*
> 
> *because the current destination address of the incoming packet*
> 
> *is the address of the node executing the PSP behavior.*
> 
> *</NEW>*
> 
>  
> 
> Additionally, please find some replies inline to the comments from Bruno [PC2].
> 
>  
> 
> Thanks,
> 
> Pablo.
> 
>  
> 
> -----Original Message-----
> 
> From: "bruno.decraene@orange.com" <bruno.decraene@orange.com>
> 
> Date: Tuesday, 3 March 2020 at 15:49
> 
> To: "Pablo Camarillo (pcamaril)" <pcamaril@cisco.com>om>, Brian E Carpenter <brian.e.carpenter@gmail.com>
> 
> Cc: "Darren Dukes (ddukes)" <ddukes=40cisco.com@dmarc.ietf.org>rg>, 6man WG <ipv6@ietf.org>rg>, SPRING WG List <spring@ietf.org>
> 
> Subject: RE: PSP and a logical application of RFC8200
> 
>  
> 
>     Pablo,
> 
>     
> 
>     My reading is that Brian is asking for a clarification of the text, not a change in the behavior.
> 
>     In general, I think that clarification is good and that Brian's request is reasonable.
> 
>    
> 
>     Related to Brian's comment, but on top of them, I have further points on this section 4.16.1:
> 
>    
> 
>     1)
> 
>     " S14.1.   If (Segments Left == 0) {"
> 
>    
> 
>     Although I agree that reading the whole pseudo code (split across the whole document) is self-descriptive, there is the opportunity for people to misread and confuse "Segment Left in the received packet" with "Updated Segment Left". I'd like to avoid misunderstanding similar to the ones in RFC 8200. Could you propose something? E.g.  :s/ Segments Left/ Updated Segments Left.
> 
>  
> 
> PC2: In previous versions of this document we used the term “updated SL”. As part of the WGLC we changed this text in December to “Segments Left” since it is the name of the field defined in the SRH. While I do find the “Updated Segments Left” easier to understand, the working group feedback wasn’t the same in December. Hence I would tend to keep it as is. But no strong preference on my side really.
> 
>  
> 
>     2)
> 
>     As a possible change to try to address Brian's comment
> 
>     OLD:
> 
>        The PSP operation only takes place at a penultimate SR Segment
> 
>        Endpoint Node and does not happen at any Transit Node.
> 
>    
> 
>     NEW:
> 
>        The PSP operation only takes place at a penultimate SR Segment
> 
>        Endpoint Node (where Segment Left == 1) and does not happen at any Transit Node.
> 
>  
> 
> PC2: Given the new text added, and given that we already have this, do we need it?
> 
> *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.*
> 
>  
> 
>     More inline
> 
>    
> 
>     > From: ipv6 [mailto:ipv6-bounces@ietf.org] On Behalf Of Brian E Carpenter
> 
>     >
> 
>     > On 03-Mar-20 09:02, Pablo Camarillo (pcamaril) wrote:
> 
>     > > Brian,
> 
>     > >
> 
>     > > The PSP pseudocode is presented as a modification to the End pseudocode starting at line S14 of such.
> 
>     > > Please go through the PSP pseudocode in conjunction with the End pseudocode (Section 4.1).
> 
>     > > You will see that the ingress state of the packet is (Segments Left == 1 and Destination Address == the PSP node's address).
> 
>     >
> 
>     > Exactly my point. With SL == 1, you are not at the ultimate destination, so according to what I'll call "Fernando's reading" of RFC8200, you are not entitled to delete the header. That is the point that IMHO needs to be stated explicitly in the draft. You are using "Darren's reading" of RFC8200.
> 
>     >
> 
>     > I really think you need to say so explicitly. Something like:
> 
>     >
> 
>     > Note: this behavior does not contravene section 4 of [RFC8200]
> 
>     > because the current destination address of the incoming packet
> 
>     > is the address of the node executing the PSP behavior.
> 
>     >
> 
>     > This will not change the argument, but it will make the issue clear so that we (the IETF) can decide whether to accept it or not. And that is orthogonal to whether RFC 8200 is wrong.
> 
>    
> 
>     3)
> 
>     Given that there is even heated discussions on the text/wording in RFC8200, I'm afraid that whatever text be inserted in draft-ietf-spring-srv6-network-programming would trigger controversy and that in the end be asked to be removed.
> 
>     However, I'm also in favor of making the issue clear.
> 
>    
> 
>     Brian, I would personally prefer to stick as close as possible to the text from RFC 8200, plus that we make clear that we are not changing it but only referring to. So I would propose something along the following:
> 
>    
> 
>                 As indicated in RFC 8200 section 4, extension headers [...] are not [to be]
> 
>                    processed, inserted, or deleted by any node along a packet's delivery
> 
>                    path, until the packet reaches the node [...] identified in the Destination Address field
> 
>                    of the IPv6 header.
> 
>       
> 
>                 The PSP behavior defined in this section specifies that, the node identified in the Destination Address field of the IPv6 header (as restricted by RFC 8200 section 4), when Segment Left is received as 1 and when specifically instructed by the source node, removes the SRH header.
> 
>    
> 
>     
> 
>     As a reminder, the text from RFC 8200 is
> 
>     "   Extension headers (except for the Hop-by-Hop Options header) are not
> 
>        processed, inserted, or deleted by any node along a packet's delivery
> 
>        path, until the packet reaches the node (or each of the set of nodes,
> 
>        in the case of multicast) identified in the Destination Address field
> 
>        of the IPv6 header."
> 
>    
> 
>     I believe that my proposed edits are clearly indicated by "[]" and helps the reader to focus on the relevant text. However, I'm also fine with copy pasting the text verbatim from RFC 8200.
> 
>        
> 
>     4) There is an interesting comment on the 6MAN WG https://mailarchive.ietf.org/arch/msg/ipv6/AJzOX97mUeHjEcDSIgpqUw8gNk0/
> 
>     Although not sent in the SPRING WG, and not mentioning to this document, I think that I should be taken into account.
> 
>     More specifically
> 
>     " IMHO, any specification breaking AH (e.g., by modifying the NextHeader in transport mode) should clearly note that it 'breaks AH' or constraints its use; but, this is still acceptable for an IETF standard specification IMHO to 'break AH'."
> 
>     
> 
>     I'd propose:
> 
>     OLD:
> 
>        As a reminder, [I-D.ietf-6man-segment-routing-header] defines in
> 
>        section 5 the SR Deployment Model within the SR Domain [RFC8402].
> 
>        Within this framework, the Authentication Header (AH) is not used to
> 
>        secure the SRH as described in Section 7.5 of
> 
>        [I-D.ietf-6man-segment-routing-header].
> 
>    
> 
>     NEW:
> 
>     Removing the SRH requires modifying the Next Header field which is defined as Immutable by RFC 4302.  As indicated in [I-D.ietf-6man-segment-routing-header], the use of RH with AH by an SR source node, and processing at a SR
> 
>        segment endpoint node is not defined in this document.  Future documents may define use of SRH with AH and its processing. Such future document needs to take into account that the use of PSP requires the Next Header field to not be Immutable.
> 
>    
> 
> PC2: Given the following text from RFC4301, and the quote above from the SRH, do we really need this?
> 
>    IPsec implementations MUST support ESP and MAY
> 
>    support AH. (Support for AH has been downgraded to MAY because
> 
>    experience has shown that there are very few contexts in which ESP
> 
>    cannot provide the requisite security services.  Note that ESP can be
> 
>    used to provide only integrity, without confidentiality, making it
> 
>    comparable to AH in most contexts.)
> 
>  
> 
>  
> 
>  
> 
>     Or whatever text indicating the issue.
> 
>    
> 
>     Regards,
> 
>     --Bruno
> 
>    
> 
>     >
> 
>     > Regards
> 
>         > Brian
> 
>     > >
> 
>     > > Many thanks,
> 
>     > > Pablo.
> 
>     > >
> 
>     > > -----Original Message-----
> 
>     > > From: ipv6 <ipv6-bounces@ietf.org> on behalf of Brian E Carpenter <brian.e.carpenter@gmail.com>
> 
>     > > Date: Monday, 2 March 2020 at 20:34
> 
>     > > To: "Darren Dukes (ddukes)" <ddukes=40cisco.com@dmarc.ietf.org>rg>, 6man WG <ipv6@ietf.org>rg>, SPRING WG List <spring@ietf.org>
> 
>     > > Subject: Re: PSP and a logical application of RFC8200
> 
>     > >
> 
>     > >     Darren,
> 
>     > >    
> 
>     > >     Regardless of whether you accept Fernando's comment about the intention of RFC 8200, there is also the fact that the description of the PSP flavor cheats by considering the packet to have
> 
>     > >      (Segments Left == 0 and Destination Address == the PSP node's address).
> 
>     > >     In fact that is *never* the state of the packet on the wire, which is either
> 
>     > >      (Segments Left == 1 and Destination Address == the PSP node's address)
> 
>     > >     or
> 
>     > >      (Segments Left == 0 and Destination Address == the final node's address)
> 
>     > >    
> 
>     > >     OK, maybe it's not cheating, maybe it's only a side effect of the pseudocode, but the fact is that the test "S14.1.   If (Segments Left == 0) {" in section 4.16.1 is very confusing because it's applied to a packet that is half way through processing of the routing header (Segments Left has been updated, but Destination Address has not been updated). This makes it very unclear how the spec is claiming to interpret RFC 8200.
> 
>     > >    
> 
>     > >     Regards
> 
>     > >        Brian Carpenter
> 
>     > >    
> 
>     > >     On 03-Mar-20 03:52, Darren Dukes (ddukes) wrote:
> 
>     > >     > What follows has been made clear on the list for a while,
> 
>     > >     > I am re-stating it.
> 
>     > >     >
> 
>     > >     > The draft-ietf-spring-srv6-network-programming PSP behavior
> 
>     > >     > strictly follows the letter of RFC 8200.
> 
>     > >     > 
> 
>     > >     >      RFC8200 section 4 says:
> 
>     > >     > 
> 
>     > >     >      Extension headers (except for the Hop-by-Hop Options header) are not
> 
>     > >     >      *processed, inserted, or deleted* by any node along a packet's delivery
> 
>     > >     >      path, until the packet reaches *the node* (or each of the set of nodes,
> 
>     > >     >      in the case of multicast) *identified in the Destination Address field*
> 
>     > >     >     * of the IPv6 header.*
> 
>     > >     >  
> 
>     > >     >
> 
>     > >     > The processing, insertion and deletion restrictions only apply
> 
>     > >     > “until the packet reaches the node identified in the Destination
> 
>     > >     > Address field of the IPv6 header”.
> 
>     > >     > 
> 
>     > >     > At the penuptimate segment of the segment list, the endpoint IS
> 
>     > >     > “the node identified in the Destination Address field of the IPv6
> 
>     > >     > header” and hence the PSP operation programmed by the source SR
> 
>     > >     > node strictly follows the letter of RFC 8200.
> 
>     > >     >
> 
>     > >     >
> 
>     > >     > Thanks,
> 
>     > >     >   Darren
> 
>     > >     >
> 
>     > >     > --------------------------------------------------------------------
> 
>     > >     > IETF IPv6 working group mailing list
> 
>     > >     > ipv6@ietf.org
> 
>     > >     > Administrative Requests: https://www.ietf.org/mailman/listinfo/ipv6
> 
>     > >     > --------------------------------------------------------------------
> 
>     > >     >
> 
>     > >    
> 
>     > >     --------------------------------------------------------------------
> 
>     > >     IETF IPv6 working group mailing list
> 
>     > >     ipv6@ietf.org
> 
>     > >     Administrative Requests: https://www.ietf.org/mailman/listinfo/ipv6
> 
>     > >     --------------------------------------------------------------------
> 
>     > >    
> 
>     > >
> 
>     >
> 
>     > --------------------------------------------------------------------
> 
>     > IETF IPv6 working group mailing list
> 
>     > ipv6@ietf.org
> 
>     > Administrative Requests: https://www.ietf.org/mailman/listinfo/ipv6
> 
>     > --------------------------------------------------------------------
> 
>    
> 
>     _________________________________________________________________________________________________________________________
> 
>    
> 
>     Ce message et ses pieces jointes peuvent contenir des informations confidentielles ou privilegiees et ne doivent donc
> 
>     pas etre diffuses, exploites ou copies sans autorisation. Si vous avez recu ce message par erreur, veuillez le signaler
> 
>     a l'expediteur et le detruire ainsi que les pieces jointes. Les messages electroniques etant susceptibles d'alteration,
> 
>     Orange decline toute responsabilite si ce message a ete altere, deforme ou falsifie. Merci.
> 
>    
> 
>     This message and its attachments may contain confidential or privileged information that may be protected by law;
> 
>     they should not be distributed, used or copied without authorisation.
> 
>     If you have received this email in error, please notify the sender and delete this message and its attachments.
> 
>     As emails may be altered, Orange is not liable for messages that have been modified, changed or falsified.
> 
>     Thank you.
> 
>    
> 
>     
>