Re: [spring] I-D Action: draft-ietf-spring-srv6-network-programming-06.txt

Brian E Carpenter <brian.e.carpenter@gmail.com> Sat, 14 December 2019 20:04 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 582EB120026 for <spring@ietfa.amsl.com>; Sat, 14 Dec 2019 12:04:34 -0800 (PST)
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, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, 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 9I5TUAhioLnz for <spring@ietfa.amsl.com>; Sat, 14 Dec 2019 12:04:32 -0800 (PST)
Received: from mail-pg1-x543.google.com (mail-pg1-x543.google.com [IPv6:2607:f8b0:4864:20::543]) (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 2E69812000F for <spring@ietf.org>; Sat, 14 Dec 2019 12:04:32 -0800 (PST)
Received: by mail-pg1-x543.google.com with SMTP id q127so1295048pga.4 for <spring@ietf.org>; Sat, 14 Dec 2019 12:04:32 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:to:references:from:message-id:date:user-agent:mime-version :in-reply-to:content-language:content-transfer-encoding; bh=40pEbScl0NL1+vWsbOHJsSqjQ/nYcuT0lzxa7uQHBjs=; b=ocTG4bSzo+7mbeXhGjaFEyLCILQ19+Ss4k+PXCQXFd5gYVpQEcVB2FRJsvwgrSOH06 U7QSd6LOH+nAyUtJwlPXXU9yoNkO+4w/SPE+biqazJR9qgIKc+tKglC81nrMZEfwdAjf 5yHEME7AjiM4PEGL8v4g8RbR84hFc5G+w5xosPensVuNE6wppIhe9kgIFKdcD5fvqO2J LU3OU072GV0RwhaopPQc4SfsjX4zPqJJlGLqhjaw/LbqioJDUkkbMhRAB2EJY0ffI658 IlR1vT/EZH9RNGbbnjlwXDmMRaNhqkR/BLh/AUH32jHv9USL814sutvvXm26efibxzlP FWMw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=40pEbScl0NL1+vWsbOHJsSqjQ/nYcuT0lzxa7uQHBjs=; b=cevDAWUECn64rzkjB+ebHwgf7iieLT0jrip/2cs/AxJJ+EKYJ5giOUVxS938k/mQcI 05p7MBBf0W2eH2amsYbY3ePl+reK5Y1KtJWRLMDRb3PSjXVqQ0IfkPuf5X2/BWjmjvuR w2bmQ97mGng2ijlU4KG7+dkie1WjnLnP1oNzdcQEXX2b8KQ1cP588xyEt8/vzGmWKln3 lo6M6ceCumIkTKBktQ2YvGBdbUtGth6BX6mGiKqSn/pmx+IeJzwNOmCAOeDR3hUdKj1f D9bugD8p/NqxseG8qGNGvLvZH2ZHY0dLoNLWqFf/kcZzQv/j1J89+9led8JVdTGUNWf3 s8rg==
X-Gm-Message-State: APjAAAV6T7Xfv55FH7JImu+rZI1z2Cwl0L3HGAJOqjf9YAX1LkMyOon8 Wct6w3tNdd+j0vtTDwSBPR7xGaro
X-Google-Smtp-Source: APXvYqxOZ5Y1oBVP95jD02ZY/lZ+C5CzKxL3tHYew3Z7eeFmVv7hSL0Sl2YWTyUPQi+tNNr8FGFQcQ==
X-Received: by 2002:aa7:9aa5:: with SMTP id x5mr6991701pfi.131.1576353871318; Sat, 14 Dec 2019 12:04:31 -0800 (PST)
Received: from [192.168.178.30] (228.147.69.111.dynamic.snap.net.nz. [111.69.147.228]) by smtp.gmail.com with ESMTPSA id b2sm17027190pff.6.2019.12.14.12.04.29 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 14 Dec 2019 12:04:30 -0800 (PST)
To: "Pablo Camarillo (pcamaril)" <pcamaril@cisco.com>, "spring@ietf.org" <spring@ietf.org>
References: <157609408568.11496.11799785813274132900@ietfa.amsl.com> <4c762fc5-8a61-e182-a9cc-d45b0f586ccc@gmail.com> <3A12D735-7899-4679-8FC8-DF8875D40A62@cisco.com>
From: Brian E Carpenter <brian.e.carpenter@gmail.com>
Message-ID: <628e5dfb-7ba4-d841-ebeb-cfc52d7294f1@gmail.com>
Date: Sun, 15 Dec 2019 09:04:28 +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: <3A12D735-7899-4679-8FC8-DF8875D40A62@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/r0tYgDCU8rpd_Ve5ON4pLEzqzFk>
Subject: Re: [spring] I-D Action: draft-ietf-spring-srv6-network-programming-06.txt
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: Sat, 14 Dec 2019 20:04:34 -0000

Hi Pablo,

See in line:

On 14-Dec-19 22:34, Pablo Camarillo (pcamaril) wrote:
> Brian,
> 
> Many thanks for having another look to the draft. Please see inline [PC].
> 
> Thank you,
> Pablo.
> 
> -----Original Message-----
> From: spring <spring-bounces@ietf.org> on behalf of Brian E Carpenter <brian.e.carpenter@gmail.com>
> Date: Wednesday, 11 December 2019 at 23:06
> To: "spring@ietf.org" <spring@ietf.org>
> Subject: Re: [spring] I-D Action: draft-ietf-spring-srv6-network-programming-06.txt
> 
>     So, I've tried to look at this with fresh eyes, and thanks for the
>     various updates and clarifications.
>     
>     (I'm still not on the SPRING list so please leave me in CC.)
>     
>     I remain a bit puzzled. First, a quote from the SRH specification
>     (draft-ietf-6man-segment-routing-header-26):
>     
>     > 4.2.  Transit Node
>     > 
>     >    As specified in [RFC8200], the only node allowed to inspect the
>     >    Routing Extension Header (and therefore the SRH), is the node
>     >    corresponding to the DA of the packet.  Any other transit node MUST
>     >    NOT inspect the underneath routing header and MUST forward the packet
>     >    toward the DA according to its IPv6 routing table.
>     
>     Next, a quote from the current draft:
>     
>     >    SRH[n]: A shorter representation of Segment List[n], as defined in
>     >    [I-D.ietf-6man-segment-routing-header].
>     > 
>     >    When a packet is intercepted on a wire, it is possible that SRH[SL]
>     >    is different from the DA.
>     
>     Huh? That would be extremely unusual in the normal interpretation
>     of a routing header, where is RH[SL] is by definition the next
>     destination where the RH will be processed. Any other node is a transit
>     node, and I don't see anything in draft-ietf-6man-segment-routing-header-26
>     that allows for anything else. So it seems to me that the quoted statement
>     needs an explanation of why it isn't a violation of
>     draft-ietf-6man-segment-routing-header-26, not to mention why it's useful.
> 
> PC: This occurs when we use the reduced SRH as described in: https://tools.ietf.org/html/draft-ietf-6man-segment-routing-header-26#section-4.1.1

OK, well that definitely needs to be added to the draft, since it is very far from
obvious to a newcomer.

> If you think this sentence does not reflect that, I can edit it for the next revision of the draft. 
>     
>     That leads us back to:
>     
>     > 4.16.1.  PSP: Penultimate Segment Pop of the SRH
>     > 
>     >    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.   }
>     
>     This is clearly a breach of RFC8200, but it can never be reached if DA == SRH[SL]. 

> PC: PSP executes at the segment that is the Destination Address.

I am probably being stupid, but I don't understand what is "penultimate" about
a condition where SL == 0 and the packet has reached the node that owns DA.
Where will the packet be sent next, since it's already at the final DA?

(The example at
https://tools.ietf.org/html/draft-filsfils-spring-srv6-net-pgm-illustration-01#section-2.8.1
doesn't help me in the least. Is there a conceptual discussion of the purpose
of PSP?)

If the packet is to be forwarded again, "Remove the SRH from the IPv6
extension header chain" violates RFC 8200, as does "Decrease the IPv6 header
Payload Length by the Hdr Ext Len value of the SRH".

This objection doesn't seem to arise for USP, since presumably at that point
the packet has reached the final DA and any mangling is internal to the host.
  
>     The operation "4.16.2.  USP: Ultimate Segment Pop of the SRH" seems like
>     a pointless variant on "4.16.3.  USD: Ultimate Segment Decapsulation", 
>     since the packet has reached its destination anyway and will presumably
>     be decapsulated anyway. 
> 
> PC: This has already been discussed in the past in the SPRING mailer. https://mailarchive.ietf.org/arch/msg/spring/Q3MYlGDQs5MO-dOFOZJUx2hHni4

Yes, OK, the offload NIC as a use case is reasonable. As far as the network
is concerned, that is internal to the host. But some hint about the purpose
and value of these features is needed in the draft, IMHO.

Regards
    Brian


>     
>     Regards
>        Brian Carpenter
>     
>     On 12-Dec-19 08:54, internet-drafts@ietf.org wrote:
>     > 
>     > A New Internet-Draft is available from the on-line Internet-Drafts directories.
>     > This draft is a work item of the Source Packet Routing in Networking WG of the IETF.
>     > 
>     >         Title           : SRv6 Network Programming
>     >         Authors         : Clarence Filsfils
>     >                           Pablo Camarillo Garvia
>     >                           John Leddy
>     >                           Daniel Voyer
>     >                           Satoru Matsushima
>     >                           Zhenbin Li
>     > 	Filename        : draft-ietf-spring-srv6-network-programming-06.txt
>     > 	Pages           : 39
>     > 	Date            : 2019-12-11
>     > 
>     > Abstract:
>     >    The SRv6 Network Programming framework enables a network operator or
>     >    an application to specify a packet packet processing program by
>     >    encoding a sequence of instructions in the IPv6 packet header.
>     > 
>     >    Each instruction is implemented on one or several nodes in the
>     >    network and identified by an SRv6 Segment Identifier in the packet.
>     > 
>     >    This document defines the SRv6 Network Programming concept and
>     >    specifies the base set of SRv6 behaviors that enables the creation of
>     >    interoperable overlays with underlay optimization (Service Level
>     >    Agreements).
>     > 
>     > 
>     > The IETF datatracker status page for this draft is:
>     > https://datatracker.ietf.org/doc/draft-ietf-spring-srv6-network-programming/
>     > 
>     > There are also htmlized versions available at:
>     > https://tools.ietf.org/html/draft-ietf-spring-srv6-network-programming-06
>     > https://datatracker.ietf.org/doc/html/draft-ietf-spring-srv6-network-programming-06
>     > 
>     > A diff from the previous version is available at:
>     > https://www.ietf.org/rfcdiff?url2=draft-ietf-spring-srv6-network-programming-06
>     > 
>     > 
>     > Please note that it may take a couple of minutes from the time of submission
>     > until the htmlized version and diff are available at tools.ietf.org.
>     > 
>     > Internet-Drafts are also available by anonymous FTP at:
>     > ftp://ftp.ietf.org/internet-drafts/
>     > 
>     > _______________________________________________
>     > I-D-Announce mailing list
>     > I-D-Announce@ietf.org
>     > https://www.ietf.org/mailman/listinfo/i-d-announce
>     > Internet-Draft directories: http://www.ietf.org/shadow.html
>     > or ftp://ftp.ietf.org/ietf/1shadow-sites.txt
>     > 
>     
>     _______________________________________________
>     spring mailing list
>     spring@ietf.org
>     https://www.ietf.org/mailman/listinfo/spring
>     
>