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

peng.shaofu@zte.com.cn Thu, 24 September 2020 01:49 UTC

Return-Path: <peng.shaofu@zte.com.cn>
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 8C3143A170B; Wed, 23 Sep 2020 18:49:58 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.917
X-Spam-Level:
X-Spam-Status: No, score=-1.917 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_MSPIKE_H4=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, UNPARSEABLE_RELAY=0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
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 ZJAtBG9lgeSZ; Wed, 23 Sep 2020 18:49:55 -0700 (PDT)
Received: from mxhk.zte.com.cn (mxhk.zte.com.cn [63.217.80.70]) (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 618083A09D1; Wed, 23 Sep 2020 18:49:53 -0700 (PDT)
Received: from mse-fl2.zte.com.cn (unknown [10.30.14.239]) by Forcepoint Email with ESMTPS id C956E23B8D6ABE40E23D; Thu, 24 Sep 2020 09:49:49 +0800 (CST)
Received: from njxapp03.zte.com.cn ([10.41.132.202]) by mse-fl2.zte.com.cn with SMTP id 08O1nmrK097288; Thu, 24 Sep 2020 09:49:48 +0800 (GMT-8) (envelope-from peng.shaofu@zte.com.cn)
Received: from mapi (njxapp01[null]) by mapi (Zmail) with MAPI id mid201; Thu, 24 Sep 2020 09:49:47 +0800 (CST)
Date: Thu, 24 Sep 2020 09:49:47 +0800
X-Zmail-TransId: 2af95f6bfb3b8c06266f
X-Mailer: Zmail v1.0
Message-ID: <202009240949477255408@zte.com.cn>
In-Reply-To: <MWHPR11MB137435A6BFD6771E4E1F641FC9380@MWHPR11MB1374.namprd11.prod.outlook.com>
References: 160071265366.14948.8163350323208659826@ietfa.amsl.com, MWHPR11MB137435A6BFD6771E4E1F641FC9380@MWHPR11MB1374.namprd11.prod.outlook.com
Mime-Version: 1.0
From: peng.shaofu@zte.com.cn
To: pcamaril=40cisco.com@dmarc.ietf.org
Cc: pcamaril@cisco.com, rdd@cert.org, iesg@ietf.org, bruno.decraene@orange.com, spring@ietf.org, jmh@joelhalpern.com, spring-chairs@ietf.org, draft-ietf-spring-srv6-network-programming@ietf.org
Content-Type: multipart/mixed; boundary="=====_001_next====="
X-MAIL: mse-fl2.zte.com.cn 08O1nmrK097288
Archived-At: <https://mailarchive.ietf.org/arch/msg/spring/OzxYA9XFxSPxS45AJtKGONniAEo>
Subject: Re: [spring] Roman Danyliw's Discuss ondraft-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 01:49:59 -0000

Hi Pablo,






The following questions have been sent before, but I didn't see the corresponding discussion. So send it again. Hope to get your reply. Thanks!






1) Is it necessary to distinguish between USP and USD ?


It is not very clear when to use USP-flavor SID and when to use USD-flavor SID.


According to the pseudo code in this document, USP does not strip the outer IPv6 header, while USD does.


Let's discuss it in two ways:


    a) According to the H.encaps mode only supported in the current version, it is assumed that there is only one routing extension header SRH whthin the IPv6 header. In this case, I think both USP and USD should remove the IPv6 header, i.e, there's no need to make a difference.


    b) If the H.insert mode may be supported later, it means that the IPv6 header will contain multiple routing extension headers. In this case, if the current route extension header is terminated, the next header will be active, and outer IPv6 header needs to be kept. This is the behavior of USP, and, USD cannot be used. The question is that, the node implementing the insert operation cannot predict what kind of routing extension header may appear in the packet, thus, for the SID in the outer segment list, to be on the safe side, should we always try to use USP flavor ?


After all, is USP flavor enough and USD flavor redundant ?





2) Processing of upper layer header does not support MPLS payload type.


The pseudo code is considered that under normal circumstances, the inner layer payload is IPv4, IPv6, or ICMPv6, why not MPLS ? When we implement the SRv6 function, we face the requirements of traditional PW/L3VPN label over SRv6 policy. I don't think any pseudo code in this document covers this scenario.





3) The application scenario of End.T is not clear and the description is very vague. Although it is said (see section 8.1) that it can represent topology information and be announced with IGP, but we don't see the relevant description in any IGP extension draft.





4) I think the SRv6 Endpoint Behaviors Registry (see section 9.2) is cumbersome. As long as a new flavor is added, it is necessary to combine the existing batched basic behaviors and old flavors with the new flavor, to define multiple new codepoints. This will result in a poor readability of the table (see 9.2.1. Initial Registrations). Why not split this field in two, for example, high 8 bits represent basic behavior, and low 8 bits indicate flavor ?






Regards,



PSF









原始邮件



发件人:PabloCamarillo(pcamaril)
收件人:Pablo Camarillo (pcamaril);Roman Danyliw;The IESG;
抄送人:Bruno Decraene;spring@ietf.org;Joel Halpern;spring-chairs@ietf.org;draft-ietf-spring-srv6-network-programming@ietf.org;
日 期 :2020年09月24日 00:26
主 题 :Re: [spring] Roman Danyliw's Discuss ondraft-ietf-spring-srv6-network-programming-19: (with DISCUSS and COMMENT)


Hi Roman,

We have posted an updated version of the I-D with the proposed changes below (together with other comments from Barry, Rob and Eric).
Please review and let me know your feedback.

Many thanks,
Pablo.

There are also htmlized versions available at:
https://tools.ietf.org/html/draft-ietf-spring-srv6-network-programming-20
https://datatracker.ietf.org/doc/html/draft-ietf-spring-srv6-network-programming-20

A diff from the previous version is available at:
https://www.ietf.org/rfcdiff?url2=draft-ietf-spring-srv6-network-programming-20


-----Original Message-----
From: Pablo Camarillo (pcamaril) <pcamaril@cisco.com> 
Sent: martes, 22 de septiembre de 2020 21:59
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.

----------------------------------------------------------------------
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.

** 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?

-- (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.


_______________________________________________
spring mailing list
spring@ietf.org
https://www.ietf.org/mailman/listinfo/spring