[spring] Re: A review of draft-ietf-spring-srv6-path-segment
zengguanming <zengguanming@huawei.com> Mon, 15 June 2026 03:14 UTC
Return-Path: <zengguanming@huawei.com>
X-Original-To: spring@mail2.ietf.org
Delivered-To: spring@mail2.ietf.org
Received: from localhost (localhost [127.0.0.1]) by mail2.ietf.org (Postfix) with ESMTP id D7B6E1014AA79; Sun, 14 Jun 2026 20:14:50 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ietf.org; s=ietf1; t=1781493290; bh=0ytciCdii3Md0ftzvjkaoWXO/LM4mPl5WOmjFyHFDZ8=; h=From:To:CC:Subject:Date:References:In-Reply-To; b=VFZF6H7RzYBuhN4tV3emfPpcFbiIJzDINgTDVxwHQqhKqbFOL4YWThDOOWv7HK5yE 0s8Q+/kcfMeRxh+nE56cwVbqZlzxkkkffE9Js+z4GQKWEHsxyFJbGxLHg/G1agYrKY 9y3HSZ8DXcM+0fFiDPcVy20V9f+KW+XrHZglp93I=
X-Virus-Scanned: amavisd-new at ietf.org
X-Spam-Flag: NO
X-Spam-Score: -4.196
X-Spam-Level:
X-Spam-Status: No, score=-4.196 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Received: from mail2.ietf.org ([166.84.6.31]) by localhost (mail2.ietf.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id gPp6t7c4_kSr; Sun, 14 Jun 2026 20:14:49 -0700 (PDT)
Received: from frasgout.his.huawei.com (frasgout.his.huawei.com [185.176.79.56]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-256) server-digest SHA256) (No client certificate requested) by mail2.ietf.org (Postfix) with ESMTPS id 739911014AA6E; Sun, 14 Jun 2026 20:14:49 -0700 (PDT)
Received: from mail.maildlp.com (unknown [172.18.224.83]) by frasgout.his.huawei.com (SkyGuard) with ESMTPS id 4gdwFs4VflzJ46cv; Mon, 15 Jun 2026 11:14:25 +0800 (CST)
Received: from kwepemh500011.china.huawei.com (unknown [7.202.181.142]) by mail.maildlp.com (Postfix) with ESMTPS id 7D8D540569; Mon, 15 Jun 2026 11:14:46 +0800 (CST)
Received: from kwepemq500017.china.huawei.com (7.202.195.88) by kwepemh500011.china.huawei.com (7.202.181.142) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.11; Mon, 15 Jun 2026 11:14:45 +0800
Received: from kwepemq100016.china.huawei.com (7.202.195.35) by kwepemq500017.china.huawei.com (7.202.195.88) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.11; Mon, 15 Jun 2026 11:14:44 +0800
Received: from kwepemq100016.china.huawei.com ([7.202.195.35]) by kwepemq100016.china.huawei.com ([7.202.195.35]) with mapi id 15.02.1544.011; Mon, 15 Jun 2026 11:14:44 +0800
From: zengguanming <zengguanming@huawei.com>
To: "adrian@olddog.co.uk" <adrian@olddog.co.uk>, "draft-ietf-spring-srv6-path-segment@ietf.org" <draft-ietf-spring-srv6-path-segment@ietf.org>
Thread-Topic: A review of draft-ietf-spring-srv6-path-segment
Thread-Index: AdzjCdWlw7paqzG/QFKZ1faNs+I1wAXWuDJQAIPxCaA=
Date: Mon, 15 Jun 2026 03:14:44 +0000
Message-ID: <4f859decf0ee4eb7b405e9a36a71ebf7@huawei.com>
References: <1ea401dcfa66$42368630$c6a39290$@olddog.co.uk>
In-Reply-To: <1ea401dcfa66$42368630$c6a39290$@olddog.co.uk>
Accept-Language: en-US
Content-Language: zh-CN
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [10.112.40.135]
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
Message-ID-Hash: GE63KQ64XJ563STHQTXOOUBZQOE4XA2E
X-Message-ID-Hash: GE63KQ64XJ563STHQTXOOUBZQOE4XA2E
X-MailFrom: zengguanming@huawei.com
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-spring.ietf.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header
CC: "spring@ietf.org" <spring@ietf.org>
X-Mailman-Version: 3.3.9rc6
Precedence: list
Subject: [spring] Re: A review of draft-ietf-spring-srv6-path-segment
List-Id: "Source Packet Routing in NetworkinG (SPRING)" <spring.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/spring/zc8tMV-EvncnEnqXZeUcTqv6ORU>
List-Archive: <https://mailarchive.ietf.org/arch/browse/spring>
List-Help: <mailto:spring-request@ietf.org?subject=help>
List-Owner: <mailto:spring-owner@ietf.org>
List-Post: <mailto:spring@ietf.org>
List-Subscribe: <mailto:spring-join@ietf.org>
List-Unsubscribe: <mailto:spring-leave@ietf.org>
Hi Adrian, Sorry for delaying the response for your questions on draft-ietf-spring-srv6-path-segment. Since something has taken over the time. Nevertheless, we would discuss about the questions and give you feedback as soon as possible. Best regards, Guanming -----Original Message----- From: Adrian Farrel <adrian@olddog.co.uk> Sent: Friday, June 12, 2026 8:23 PM To: draft-ietf-spring-srv6-path-segment@ietf.org Cc: spring@ietf.org Subject: RE: A review of draft-ietf-spring-srv6-path-segment Hi there, Wondering whether anyone has a response to this review. Thanks, Adrian -----Original Message----- From: Adrian Farrel <adrian@olddog.co.uk> Sent: 13 May 2026 19:56 To: 'draft-ietf-spring-srv6-path-segment@ietf.org' <draft-ietf-spring-srv6-path-segment@ietf.org> Cc: 'spring@ietf.org' <spring@ietf.org> Subject: A review of draft-ietf-spring-srv6-path-segment Hi, I'm catching up on some of the SPRING drafts, and thought I would have a look at this one to see how it has progressed since I last reviewed it. It is so refreshing to see a draft that is not too long - thanks! I found a whole pile of minor issues and nits, but nothing very big. And everything should be easy to fix. Once that is done, I would consider the draft ready to progress. Thanks for the work. Adrian = Puzzling Question = In section 5 you have When a PSID is allocated on the egress, it MUST be distributed to the ingress node of the path that identified by the PSID. I can accept that the means of doing this could be out of scope for this document, but I think there is something curious. I can see how the PSID identifies which path is which at a node that knows the mapping, but I don't know how that gets conveyed to other nodes. The path is otherwise indicated by the full SID list, so is the assumption that egress will communicate with other nodes sending the whole SID list along with the PSID? Otherwise, I don't see how the distributed PSID is of any use. = Minor = Section 3 You have... [RFC8754] states that the SR segment endpoint node creates Forwarding Information Base (FIB) entries for its local SIDs (without constraining the details of implementation). In order to provide a new independent 128-bit ID space for PSID, the PSID is required to be stored separating from the other SIDs (for example in a different table from the FIB). I am not sure why you find it necessary to constrain the implementation about how it stores PSIDs, immediately after you note that 8754 does not constrain the implementation. Further, is a PSID a local SID or not? If it is not, why is the first sentence in any way relevant? If it is, then your second sentence means you are making an Update to RFC 8754. It is clear that PSIDs MUST NOT be used for routing (it is less clear why not!), and I think you have said this well. So why is the storage mechanism any of your business? Indeed, a FIB lookup of a PSID could return a "do not forward" indication, or a special null interface, or "not found". I would suggest deleting these two sentences. However, there may be something hiding here which you have not made clear: Is it required that a PSID value must also not be the same as any other SID value. I think this is the case (but if it is not the case then you have work to do!). Now, this issue resurfaces at the top of 3.1 where you have: As mentioned above, an SRv6 PSID is stored independent from the FIB, so that the total 128-bit can be programmed in use. I think this could be deleted as well. --- 3.1 To avoid the value conflict, the value of a PSID MUST be global unique within the SRv6 domain. This is important! But there are some things missing: - What does "global" mean? (SR domain? AS? The world?) - How is this achieved? (If you use the encoding in 3.1.1 this is easy) - What happens if there is a clash? --- 3.1 A use case can define its specific structure of the PSID. Presumably all nodes participating in that use case must agree on the structure of the PSID. But what happens if a PSID from one use case is seen by a router that also participates in another use case - how can it tell the structures apart? --- 4. You have... The SRv6 PSID MUST appear only once in the segment list. Do you mean... The SRv6 PSID MUST NOT appear more than once in the segment list. And, per RFC 8754 as updated by draft-ietf-6man-sidlist-clarification, the Segment List contains entries that are mapped to SIDs, but are not necessarily SIDs. So, in the case of Segment List compression, presumably the PSID does not appear explicitly in the SID list. BTW, the whole issue of segment list compression seems to be forgotten throughout the document apart from one short mention buried in the middle of 4.1. It's mainly a problem of use of language. --- 4.1 I like the description of the G Flag as indicating that the final entry in the Segment List contains (i.e., is mapped to) a 128 bit meta data value. However, this opens up uses beyond PSID and that leaves the question of how one would distinguish between different metadata cases: when does the G Flag indicate the presence of a PSID and when does it indicate some other metadata? Although later you have... When the SRH.G-flag is set, it indicates that a PSID is encoded in ...which suggests that, perhaps, the generality of the G Flag is not intended. Then I see: * Set (1): Indicates that Segment List[n] (the last entry) contains a Generic Metadata object. The content of this 128-bit field is not treated as a standard IPv6 destination address for routing lookup but as an opaque identifier or data payload defined by the specific application (e.g., a Path Segment Identifier). * Unset (0): Indicates that Segment List[n] is not valid. Surely 0 indicates the Segment List[n] is (mapped to) a normal (routable) SID? Otherwise you've broken backward compatibility etc. --- 6. What happens if the G Flag is clear, but a PSID is at the bottom of the SID list. I think that the PSID is easily identified by the egress node, but is it allowed to process the PSID? --- 6. What happens if the end of a segment advances to the next SID and that SID is a PSID, but not a locally assigned PSID? Yes, this is not supposed to happen, but there is no protection. If the G Flag is set, the node will know that: - it is at the bottom of the SID list - the final SID is a PSID - the PSID was not locally allocated ...so it will not forward the packet If the G flag is not set, the node will not know that this is not a routable SID. So won't it try to forward the packet which is routable based on the Loc part of the PSID? = Nits = Abstract OLD The SR architecture can be implemented over an MPLS data plane as well as an IPv6 data plane. NEW The SR architecture can be implemented over an MPLS data plane (SR-MPLS) as well as an IPv6 data plane (SRv6). END --- Abstract OLD Currently, Path Segment Identifier (PSID) has been defined to identify an SR path in SR-MPLS networks, and is used for various use- NEW The Path Segment Identifier (PSID) was defined to identify an SR path in SR-MPLS networks, and is used for various use- END --- 1. OLD To identify an SR-MPLS path, a Path Segment Identifier is defined in [RFC9545]. NEW To identify an SR-MPLS path, a Path Segment Identifier (PSID) is defined in [RFC9545]. END --- 1. s/384-bits value and a 1280-bits/384-bit value and a 1280-bit/ --- 1. s/are merged/is merged/ --- 1. OLD distinguish the path in different SR policy NEW distinguish the paths in different SR policies END --- 1. OLD However, an SRv6 policy may need to measure a segment list in its own candidate path, where the packets statistics associated with this segment list is independent with other segment lists in other SRv6 policies even if the same segment list is used. NEW However, an SRv6 policy may require that the traffic is measured for a specific segment list in its own candidate path, where the packet statistics associated with this segment list are independent from the traffic for segment lists in other SRv6 policies even if the same segment list is used. END --- 1. OLD Without a Path ID to specify the path will cause the statistic of the traffic from multiple paths using the same segment list under different SRv6 policies merge into an aggregated result on the egress endpoint node. NEW Without a Path ID to specify the path, the traffic statistic from multiple paths using the same segment list under different SRv6 policies will be merged into an aggregated result on the egress endpoint node. END --- 1. s/a new SRv6 segment/a new SRv6 segment identifier/ s/which in total is an 128-bits value,/which i a 128-bit value,/ s/has the better processing/has better processing/ s/Using an SRv6 PSID is used in reduced/Using an SRv6 PSID in reduced/ --- 1. OLD can solve the problem of cannot identifying a segment list by the reduced segment list, NEW can solve the problem of not being able to identify a segment list from the reduced segment list, END --- 1.2 If you are going to include "SR-MPLS" and "SRv6 path", I think you also need to include "SRv6". --- Outside the term "SRv6 Path Identifier" you use "SRv6 Path" and "SRv6 path". Pick one and make sure section 1.2 is consistent. --- 2. OLD packets counts/timestamps NEW packet counts/timestamps END --- 3. s/A PSID is used for identify/A PSID is used to identify/ --- 3. OLD In normal cases, each segment list will have a its own PSID with different value. However, depending on the use case, different segment list might use the same value PSID, causing the statistics of these SRv6 path are merged on the egress node. For example, a use case may use the same PSID for some or all the segment list under a Candidate path, or even some or all Candidate Path within an SRv6 policy. NEW In normal cases, each segment list will have its own PSID with a different value. However, depending on the use case, different segment lists might use the same PSID, causing the statistics of these SRv6 paths to be merged on the egress node. For example, a use case may use the same PSID for some or all the segment lists under a Candidate path, or even all Candidate paths within an SRv6 policy. END --- Within the document you have: Candidate Path Candidate path candidate path Pick one. --- 3. OLD For example, the same segment list in different Candidate Path or SR policy may use different PSIDs for identifying its path to distinguish the statistics data of other SRv6 path in other SRv6 policies using the same segment list. NEW For example, the same segment list in different Candidate Paths or SR policies may use different PSIDs to identify its path to distinguish the statistics data of other SRv6 paths in other SRv6 policies using the same segment list. END --- 3.1 Does Figure 1 add anything to the document? I see you don't reference it and it doesn't seem to make anything clearer. --- 3.1 s/A future document MAY/A future document may/ s/further new formats/further formats/ --- 3.1.1 s/suggested to follows/suggested to follow/ --- 3.1.1 Does Figure 2 add anything to the document? You have already referenced RFC 8986, and there is no actual change from what that RFC defines. --- 4. and Figure 3 I think you should... OLD As depicted in figure.3, PSID MUST be placed at SegmentList[n] in the SRH, where n equals SRH.LastEntry. NEW The PSID, if present, MUST be placed to be mapped from the final entry in the Segment List in the SRH. END And that would mean that Figure 3 contains no new information and can safely be deleted. --- 4.1 The pseudocode has ref1 and ref2 The text has Ref1 and Ref2 --- You have performance measurement Performance measurement Performance Measurement Make a choice. --- 6. (similar to 4) Probably replace... * The SRv6 PSID MUST appear only once in a segment list ...with... * The SRv6 PSID MUST NOT appear more than once in a segment list --- 6. Expand SL on first use. --- 7. This document also requests IANA to allocate bit position TBA1 within the "Segment Routing Header Flags" registry defined in [RFC8402]. I think that should be RFC 8754 --- 8. A bit odd that the first paragraph says "no additional security considerations" and then you have quite a lot of text describing security considerations. --- It's not a requirement, but it might be really nice to include an Operational Considerations section per draft-ietf-opsawg-rfc5706bis.
- [spring] A review of draft-ietf-spring-srv6-path-… Adrian Farrel
- [spring] Re: A review of draft-ietf-spring-srv6-p… Adrian Farrel
- [spring] Re: A review of draft-ietf-spring-srv6-p… zengguanming