Re: [spring] Roman Danyliw's Discuss on draft-ietf-spring-srv6-network-programming-19: (with DISCUSS and COMMENT)

Roman Danyliw <rdd@cert.org> Thu, 24 September 2020 13:20 UTC

Return-Path: <rdd@cert.org>
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 160E33A0A4F; Thu, 24 Sep 2020 06:20:38 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.099
X-Spam-Level:
X-Spam-Status: No, score=-2.099 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, 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 (1024-bit key) header.d=cert.org
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 4xqdmr4k_8-2; Thu, 24 Sep 2020 06:20:36 -0700 (PDT)
Received: from taper.sei.cmu.edu (taper.sei.cmu.edu [147.72.252.16]) (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 C65A83A0A6A; Thu, 24 Sep 2020 06:20:35 -0700 (PDT)
Received: from korb.sei.cmu.edu (korb.sei.cmu.edu [10.64.21.30]) by taper.sei.cmu.edu (8.14.7/8.14.7) with ESMTP id 08ODKXcP007251; Thu, 24 Sep 2020 09:20:33 -0400
DKIM-Filter: OpenDKIM Filter v2.11.0 taper.sei.cmu.edu 08ODKXcP007251
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cert.org; s=yc2bmwvrj62m; t=1600953634; bh=Q4P4vorkvb27Z3ugw8A3G/xGdvmGCWkKf2pwwnye1yY=; h=From:To:CC:Subject:Date:References:In-Reply-To:From; b=HOxc4SqcoyjBckHF0Z1cuK8jABNKQapRYNaesrOnnzTpr2BwEjL6yMK64WIvtkz9I e1VSZEhv4YSZ7MktjiHwLcq3KMCYxmZb32yI5sp/H2Vr10KyI+hCd88M3W/jAzWeEQ Yixvi1GxVd6ucGUCoyMmJrkSOUu96/pkwsE1NFx4=
Received: from MURIEL.ad.sei.cmu.edu (muriel.ad.sei.cmu.edu [147.72.252.47]) by korb.sei.cmu.edu (8.14.7/8.14.7) with ESMTP id 08ODKS8k032075; Thu, 24 Sep 2020 09:20:28 -0400
Received: from MORRIS.ad.sei.cmu.edu (147.72.252.46) by MURIEL.ad.sei.cmu.edu (147.72.252.47) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1979.3; Thu, 24 Sep 2020 09:20:28 -0400
Received: from MORRIS.ad.sei.cmu.edu ([fe80::555b:9498:552e:d1bb]) by MORRIS.ad.sei.cmu.edu ([fe80::555b:9498:552e:d1bb%13]) with mapi id 15.01.1979.003; Thu, 24 Sep 2020 09:20:28 -0400
From: Roman Danyliw <rdd@cert.org>
To: "Pablo Camarillo (pcamaril)" <pcamaril@cisco.com>, The IESG <iesg@ietf.org>
CC: "draft-ietf-spring-srv6-network-programming@ietf.org" <draft-ietf-spring-srv6-network-programming@ietf.org>, "spring-chairs@ietf.org" <spring-chairs@ietf.org>, "spring@ietf.org" <spring@ietf.org>, Bruno Decraene <bruno.decraene@orange.com>, Joel Halpern <jmh@joelhalpern.com>
Thread-Topic: Roman Danyliw's Discuss on draft-ietf-spring-srv6-network-programming-19: (with DISCUSS and COMMENT)
Thread-Index: AQHWkERzyjixneZo/UivXsdtFR9Pk6l1WCGAgAJwFtA=
Date: Thu, 24 Sep 2020 13:20:27 +0000
Message-ID: <59b404f1dcdc485485813b2b80376976@cert.org>
References: <160071265366.14948.8163350323208659826@ietfa.amsl.com> <MWHPR11MB1374D5D6DCA0A44C98A29FB3C93B0@MWHPR11MB1374.namprd11.prod.outlook.com>
In-Reply-To: <MWHPR11MB1374D5D6DCA0A44C98A29FB3C93B0@MWHPR11MB1374.namprd11.prod.outlook.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [10.64.202.135]
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
Archived-At: <https://mailarchive.ietf.org/arch/msg/spring/c1dIqpgLOC_ElxwHr1XOoRlRjU4>
Subject: Re: [spring] Roman Danyliw's Discuss on draft-ietf-spring-srv6-network-programming-19: (with DISCUSS and COMMENT)
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: Thu, 24 Sep 2020 13:20:38 -0000

Hi Pablo!

Thanks for the updates in -20.  A few more comments inline ...

> -----Original Message-----
> From: Pablo Camarillo (pcamaril) <pcamaril@cisco.com>
> Sent: Tuesday, September 22, 2020 3:59 PM
> To: Roman Danyliw <rdd@cert.org>; The IESG <iesg@ietf.org>
> Cc: draft-ietf-spring-srv6-network-programming@ietf.org; spring-
> chairs@ietf.org; spring@ietf.org; Bruno Decraene
> <bruno.decraene@orange.com>; Joel Halpern <jmh@joelhalpern.com>
> Subject: RE: Roman Danyliw's Discuss on draft-ietf-spring-srv6-network-
> programming-19: (with DISCUSS and COMMENT)
> 
> Hi Roman,
> 
> Many thanks for your thorough review. Please see inline with [PC].
> 
> Thanks,
> Pablo.
> 
> -----Original Message-----
> From: Roman Danyliw via Datatracker <noreply@ietf.org>
> Sent: lunes, 21 de septiembre de 2020 20:24
> To: The IESG <iesg@ietf.org>
> Cc: draft-ietf-spring-srv6-network-programming@ietf.org; spring-
> chairs@ietf.org; spring@ietf.org; Bruno Decraene
> <bruno.decraene@orange.com>; Joel Halpern <jmh@joelhalpern.com>;
> jmh@joelhalpern.com
> Subject: Roman Danyliw's Discuss on draft-ietf-spring-srv6-network-
> programming-19: (with DISCUSS and COMMENT)
> 
> Roman Danyliw has entered the following ballot position for
> draft-ietf-spring-srv6-network-programming-19: Discuss
> 
> When responding, please keep the subject line intact and reply to all email
> addresses included in the To and CC lines. (Feel free to cut this introductory
> paragraph, however.)
> 
> 
> Please refer to https://www.ietf.org/iesg/statement/discuss-criteria.html
> for more information about IESG DISCUSS and COMMENT positions.
> 
> 
> The document, along with other ballot positions, can be found here:
> https://datatracker.ietf.org/doc/draft-ietf-spring-srv6-network-programming/
> 
> 
> 
> ----------------------------------------------------------------------
> DISCUSS:
> ----------------------------------------------------------------------
> 
> Section 3.1.  (In case I missed it, please provide the obvious reference) Per “In
> such a case, the semantics and format of the ARG bits are defined as part of the
> SRv6 endpoint behavior specification”, is “endpoint behavior specification”
> Section 4 or another document?  If the former, I don’t see any references to
> argument bits in the pseudo-code of the Section 4.* subsections.
> If the latter, what document?  Can the behaviors be polymorphic (i.e., same
> network behavior accepting different arguments)?
> 
> [PC] The End.DT2M behavior in section 4.12 has an argument called “Arg.FE2”.
> The behavior specification explains the semantics of the argument and the
> pseudocode describes how it is handled. The arguments to the function can
> indeed vary.

Thanks for pointing this out.  What I still don't understand is whether End.DT2M the only behavior that uses the arguments?

> ----------------------------------------------------------------------
> COMMENT:
> ----------------------------------------------------------------------
> 
> Thanks for responding to the SECDIR review (and thank you to Brian Weis for
> doing it)
> 
> ** Section 3.2.  Per “An SR Source Node cannot infer the behavior by
> examination of the FUNCT value of a SID”, isn’t there at least some hint
> provided by the use of the FUNCT from the IANA registry?
> [PC] Recall that Section 3.1 says the following (there is no hint):
>    The FUNCT is an opaque identification of a local behavior bound to
>    the SID.
>    The term "function" refers to the bit-string in the SRv6 SID.  The
>    term "behavior" identifies the behavior bound to the SID.  The
>    behaviors are defined in Section 4 of this document.
> 
> [PC] The FUNCT is part of the SID value assigned by the operator. This SID is
> associated with a behavior (defined in the IANA registry). The control plane is
> going to advertise the association of the SID (including the FUNCT) and the
> particular behavior (using the IANA codepoint).
> An intermediate node that only has access to the SRv6 user traffic, only by
> looking at the FUNCT value (and with no control plane information), cannot
> know what the behavior is associated to such SID. Looking ahead at your next
> comment, I believe the confusion might arise from the values used in the
> example in this section.
> 
> ** Section 3.2.
> Per “Function 11 associated with the behavior End.X …” AND
> 
> Per “Function 12 associated with the behavior End.X …”
> 
> The initial registrations for Endpoint Behavior per Section 10.2.1 suggest that
> Function 11 and 12 are End.T.
> [PC] Please see response to previous comment. Indeed, the example can be
> improved.  I’ll replace 11 and 12 for 100 and 101 that are unassigned on the
> IANA registry to more clearly differentiate between FUNCT and Behavior.

Understood.

> ** Section 4.1.  Pseudo-code without formal definition might be open to
> interpretation.  My nits (which likely apply to other sections) are that: -- it
> might not be clear that S03, S06 and S10 are effectively returns/exits from this
> “behavior”, and if they are run, S12-S15 should never be reached (otherwise
> Segments Left or Hop Limit = -1) [PC] Indeed, it would be clearer if we call out
> where there is a return/exit.
> <OLD>
>    S03.      Proceed to process the next header in the packet,
>                 whose type is identified by the Next Header field in
>                 the routing header.
> </OLD>
> <NEW>
>    S03.      Stop processing the SRH, proceed to process the next
>                 header in the packet, whose type is identified by the
>                 Next Header field in the routing header.
> </NEW>
> 
> [PC] For lines S06 and S10 currently include “Interrupt packet processing and
> discard the packet”. Do you think this is sufficient to indicate there is no more
> SRH processing done?

I'd recommend using consistent language.  Since you're using "stop" in S03, I'd recommend using the same thing in S06 and S10

> -- (for consistency) the IF … ELSEIF … END construct is used in Section 4.8, but
> not here.
> [PC] Indeed, pseudocodes should be consistent.
> 
> -- What does it mean to indent the code?  For example S06 is:
> S06.      Send an ICMP Time Exceeded message to the Source Address,
>                 Code 0 (Hop limit exceeded in transit),
>                 Interrupt packet processing and discard the packet.
> 
> I can see why “Code 0 …” is indented under “Send an … “ as this is a line wrap,
> but why is “Interrupt packet processing?”
> [PC] Yes. The indentation of interrupt packet processing is incorrect. It should
> be part of the same statement as above (the period should not be there). I’ll
> review the indentation of all pseudocodes.
>
>
> ** A few other psuedo code nits:
> -- Section 4.1.  S05 uses “IPv6 Hop Limit” but S12 uses “Hop Limit”.
> Recommend consistency.
> [PC] Ack. Fixed for next next rev.
>
>
> -- Section 4.4.  Per S05.  Is “next header” purposely lower case?  I asked because
> it looks like explicit field names are in upper case (e.g., S03 says “Segments Left
> field”).
> [PC] Ack. Fixed for next next rev.
> 
> -- Section 4.16.3.  As a style/consistency note, the other sections which check
> the upper header type seem use of a construct of != 41 or 4 to “Process per
> Section 4.1.1”. (e.g., Section 4.4, 4.5, 4.6, etc.) [PC] Ack. Fixed for next next rev.
> 
> ** Section 8.  Given how meticulously the Section 4 guidance was described, it
> would be helpful to say that the HMAC TLV processing, if present, happens as a
> notional Step “S0” per guidance in Section 2.1.2.1 of RFC8754.
> [PC] Ack. I would propose the following addition at the end of the security
> considerations.
> <NEW>
> When enabled by local configuration, HMAC processing occurs at the beginning
> of SRH processing as defined in Sec 2.1.2.1 of RFC8754.
> </NEW>
> 
> ** Editorial Nits:
> -- Section 3.2. Typo. s/an network/a network/
> -- Section 3.2. Typo. s/is minimum/is minimal/ [PC] Acking both. Fixed for next
> next rev.

Thanks for all of the changes described above.

Regards,
Roman