[Pce] Re: A review of draft-ietf-pce-state-sync-07

Adrian Farrel <adrian@olddog.co.uk> Wed, 18 September 2024 08:53 UTC

Return-Path: <adrian@olddog.co.uk>
X-Original-To: pce@ietfa.amsl.com
Delivered-To: pce@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 7B942C151063; Wed, 18 Sep 2024 01:53:26 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.104
X-Spam-Level:
X-Spam-Status: No, score=-2.104 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, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, URIBL_BLOCKED=0.001, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=olddog.co.uk
Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 2qvA45mJhgiO; Wed, 18 Sep 2024 01:53:22 -0700 (PDT)
Received: from mta6.iomartmail.com (mta6.iomartmail.com [62.128.193.156]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 05593C15152B; Wed, 18 Sep 2024 01:53:20 -0700 (PDT)
Received: from vs2.iomartmail.com (vs2.iomartmail.com [10.12.10.123]) by mta6.iomartmail.com (8.14.7/8.14.7) with ESMTP id 48I8r8Eb013083; Wed, 18 Sep 2024 09:53:08 +0100
Received: from vs2.iomartmail.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 25C8A4604B; Wed, 18 Sep 2024 09:53:08 +0100 (BST)
Received: from vs2.iomartmail.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 0FDE246048; Wed, 18 Sep 2024 09:53:08 +0100 (BST)
Received: from asmtp1.iomartmail.com (unknown [10.12.10.248]) by vs2.iomartmail.com (Postfix) with ESMTPS; Wed, 18 Sep 2024 09:53:08 +0100 (BST)
Received: from LAPTOPK7AS653V (82-69-109-75.dsl.in-addr.zen.co.uk [82.69.109.75]) (authenticated bits=0) by asmtp1.iomartmail.com (8.14.7/8.14.7) with ESMTP id 48I8r7gK029191 (version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Wed, 18 Sep 2024 09:53:07 +0100
From: Adrian Farrel <adrian@olddog.co.uk>
To: 'Zhenghaomian' <zhenghaomian@huawei.com>, draft-ietf-pce-state-sync@ietf.org
References: <02d901dac995$bb48a020$31d9e060$@olddog.co.uk> <78a13d1f0a884e849670023df7ebacbf@huawei.com>
In-Reply-To: <78a13d1f0a884e849670023df7ebacbf@huawei.com>
Date: Wed, 18 Sep 2024 09:53:08 +0100
Organization: Old Dog Consulting
Message-ID: <024201db09a8$2f8d32a0$8ea797e0$@olddog.co.uk>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
X-Mailer: Microsoft Outlook 16.0
Thread-Index: AQIdccJC6JAjLeP9NvOhb5QCd0tZ+wF6Gg24scyHVHA=
Content-Language: en-gb
X-Originating-IP: 82.69.109.75
X-Thinkmail-Auth: adrian@olddog.co.uk
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed; d=olddog.co.uk; h=reply-to :from:to:cc:references:in-reply-to:subject:date:message-id :mime-version:content-type:content-transfer-encoding; s= 20221128; bh=8vwR5L7A+feKrPXDeDnkOqlSfzRRSLYbLp/zsFqzLmE=; b=cwE w6ttjo7hRdilQAUr+qEgiS2jv8qv+74jpV4eJlijMvjbWLEgONij3unu2r7icG0o OA9i6cRkjqZsNiDHceZSHKX1uFYKNRZIwE+KJcvI9GpC1Q/vDWCYsGJ1PPLRf34x 4Le7Jl2e4KTIDxvBvxnDoElfRObTjOHSH729U0t1QbR68LHeHBBMIar8AwYPuS/h aYKaHJzHkxCII92c0Zc7s1V1GR30DF1TmrDz6TLJJUFjEWxmsO8TEm38lCMLF2hT nX2nTkb0Y4MZeNyuWdd8eWy4eXHRkW3JtSKnJuNrYleQ6ylaFB+5g0hfNpAU6IyZ UYqwXfaFDzZoVVFf74A==
X-TM-AS-GCONF: 00
X-TM-AS-Product-Ver: IMSVA-9.1.0.2090-9.0.0.1002-28352.003
X-TM-AS-Result: No--34.260-10.0-31-10
X-imss-scan-details: No--34.260-10.0-31-10
X-TMASE-Version: IMSVA-9.1.0.2090-9.0.1002-28352.003
X-TMASE-Result: 10--34.259500-10.000000
X-TMASE-MatchedRID: jFqw+1pFnMzxIbpQ8BhdbI61Z+HJnvsOxddRrnptOedlEv6AItKWF0WV xBAe6/8O340/I41ma+Xck4040p09EtLk9xgocluY3IFFT9wqfr1lH44U2Ru12rdK2TrYyqIIb4r AnT6P9PJPW2XfphBWwsP4kqNvRvVhbYSeyF0SKjb0hv/rD7WVZFn4Ir4HFD2T1YzbHoRn9L3b8c dJ7UCsmYw9rt9E8A4oYyuB0WxALS1Rw4wRh5HzXGMugLQMu2GXKQNhMboqZlqwZuykSn6+/Dsss uIpK9WSh6y6sVpgqH1u8V4ljfPDBNvK4VdCWlR8DnkURiAlfT0YQYFQ2+HwYNTSDdVx8njunMum 355jRFibcLuvF7mKkDMGeP2oMmzijzShsBdWTBcSEYfcJF0pRVvQxoz1O6zP1VNlojpO42hWFhm PLWym/g6+oZBPa752sWrFmy5tHQVbRQvtDrVPjkWX0DfhVamwdmWMDQajOiKZtziFUn+D+c70gf 9fuH3kSpW4dTiIVhXjbgmcfKQejsbfpj4DSzaWRLmyB39u4483n3RO4dBvVKGJvXrvUiHwQbNTs IpfWx1hhimhJ1BlvQjch7tdM36RRyp5Rb75y3XP01G0ZRd+f8qspZV+lCSLzf+duMCJLEzxNzYH EwaZ8JSCPKJzP4F25WAb+ld6mCZ/39KZrvx/km03YawHJvPC45oDENe4eeu6pZ/o2Hu2YWSDo+c 54/5Pbqm1oygU5ObhsQYtEvU1ymssPgR1kCiiZBMtKnKUIRjnrllatbeJEN9zZd3pUn7KBDRH0l oVrhppgg0d8uDI+k+U1a88xcWQvUxpsK1XD0ueAiCmPx4NwLTrdaH1ZWqCpvI8UZOf47hTZDOrz lZ+cHQdJ7XfU86e4kYXbobxJbLyU/oX+tpNmCG2Ull2Wedt
X-TMASE-SNAP-Result: 1.821001.0001-0-1-22:0,33:0,34:0-0
Message-ID-Hash: SVDA2Z7A5IKERLBW2NOKJZLKADIC7XQQ
X-Message-ID-Hash: SVDA2Z7A5IKERLBW2NOKJZLKADIC7XQQ
X-MailFrom: adrian@olddog.co.uk
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-pce.ietf.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header
CC: pce@ietf.org
X-Mailman-Version: 3.3.9rc4
Precedence: list
Reply-To: adrian@olddog.co.uk
Subject: [Pce] Re: A review of draft-ietf-pce-state-sync-07
List-Id: Path Computation Element <pce.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/pce/dmW3ZKUSnOX1iRunRUdcAaXN7IA>
List-Archive: <https://mailarchive.ietf.org/arch/browse/pce>
List-Help: <mailto:pce-request@ietf.org?subject=help>
List-Owner: <mailto:pce-owner@ietf.org>
List-Post: <mailto:pce@ietf.org>
List-Subscribe: <mailto:pce-join@ietf.org>
List-Unsubscribe: <mailto:pce-leave@ietf.org>

Thanks, Haomian.

Lots of snipping, just leaving the conversations.

Cheers,
Adrian

> 1.
>
> However, I find the examples running through sections 1.2, 1.3, and 1.4 to
be quite 
> unnecessary. There is a feeling of "trying too hard" to prove that there
are uses for
> the protocol extensions described in the body of the document. I would
have been
> very happy with just one paragraph listing out a few of the possible use
cases.
>
> Further, section 4 (which seems to rework the examples in sections 1.2,
1.3, and 1.4)
> is not really an explanation of how the protocol extension works, but more
of a set
> of use cases. Again, this feels like it is trying to prove the value of
the extension. Do
> we really need it? It is such a simple protocol extension.

<Haomian> I would agree on this point. By reading through I understand how
to use the state sync, but it's too much to be included in the document. We
need to agree on 'how many percentage of the current text we should keep
here?' My personal suggestion is around 30%.

[AF] An option here, in order to make a smoother change, is to move examples
into an Appendix. Then there can be just a simple paragraph in section 1
enumerating the use cases and pointing to the Appendix. 
[AF] Section 4 is a different thing.

> 1.2 para 2
>
[snip]
>
<Haomian> I interpreted the content as, and we can simplify it. To update
once confirmed. 

OLD: 
when a PCE makes an update, it is the PCC that is in charge of reporting the
LSP status to all PCEs with any LSP parameter changes which brings
additional hops and delays in notifying the overall network of the LSP
parameter change.

NEW: 
when a PCE makes an update, it is the PCC that is in charge of reporting the
LSP status to all PCEs with such LSP parameter updates.

[AF] Better :-)

BEST:
when a PCE makes an update, the PCC is responsible for reporting the LSP
parameter updates all PCEs.

> All the figures in the document need numbers and titles. The text should
refer to them using <xref> rather than "the figure above" etc.
<Haomian> leave it to later version. 

[AF] OK

> I'm confused by the example given in 1.2. LSP1 is under the control of
PCE1, 
> so any changes that are made are made with the direct instruction from
PCE1.
> Therefore, it is not necessary to wait for the change to be reported by
PCC1
> - PCE2 can be notified of the intended change. Surely that would be more
>   efficient. (Yes, that would only be possible if there is a session
between
>   the PCEs.)
>
> Additionally, when the change is made in the network, it seems unlikely to
me
> that PCC1 would be aware that it is LSP2 that has had its resources
reduced
> because PCC1 does not know about the existence of LSP2. However, the
> network nodes servicing LSP2 would know about this and so it would be
> reported to PCC2 which can report it direct to PCE2.
>
> (Note that this does not take anything away from the proposed protocol 
> extension. It is just a confusing example.)


<Haomian> I don't see anything wrong about the current text - the confusion
comes from too many alternative way to do the sync and people may have
different intuition. I would propose to remove the descriptions about LSP2,
just saying PCC1 reporting the update of LSP1 to PCE2 is slower than sync it
from PCE1 to PCE2, does it work better?

[AF] I agree with saying that "PCC1 reporting the update of LSP1 to PCE2 is
slower than sync it from PCE1 to PCE2"

> 1.3
>
>   By considering a network with
>   multiple PCCs and implementing multiple stateful PCEs for redundancy
>   purpose, there is no guarantee that at any time all the PCCs delegate
>   their LSPs to the same PCE.
>
> There is something not quite right about this sentence. Is there a 'not'
> missing, such as...
>
>   By considering a network with
>   multiple PCCs and implementing multiple stateful PCEs for redundancy
>   purpose, there is no guarantee that at any time all the PCCs will not
>   delegate their LSPs to the same PCE.
>
> The word 'preemption' is used later in the section, as well.

<Haomian> I am having different understanding, perhaps the following. (BTW I
am not a fan of double negative) 
NEW: 
   By considering a network with
   multiple PCCs and implementing multiple stateful PCEs for redundancy
   purpose, it is not likely that all PCCs delegate their LSPs to the same
PCE.

[AF] That's better.

> 1.3. The figures on page 7, it is slightly odd that you have named the
> destination/egress of the LSPs as PCCs. It is true that they might be
> PCCs for other LSPs, but is that relevant?
<Haomian> How about change the arrows from uni-directional to
bi-directional?

[AF] Hmmm. Even so, does that mean just that the LSPs are bidirectional? I
think you need to have a pair of unidirectional LSPs for this to be the
case.

> 2.2
>
>   To provide
>   the best efficiency, an LSP association constraint-based computation
>   requires that a single PCE performs the path computation for all LSPs
>   in the association group.
>
> I don't agree with this as stated.
>
> I do agree that it can be more optimal, and that there are some algorithms
> that compute two paths at the same time, but it is also possible to
construct
> "split brain" solutions that work fine, if a little more slowly and with
more
> information exchange.
>
> Further, not all LSP associations need knowledge of the path of one LSP to
> establish the other LSPs.
<Haomian>Following changes proposed: 

OLD: 
To provide the best efficiency, an LSP association constraint-based
computation requires that a single PCE performs the path computation for all
LSPs in the association group.

NEW: 
To achieve better efficiency, an LSP association constraint-based
computation MAY require that a single PCE performs the path computation for
all LSPs in the association group.

[AF] Good. But s/MAY/may/

> In 2.2 I am not clear whether PCE2 is transferring delegation to PCE1 or
just asking
> PCE1 to perform a computation. I think that PCE2 is allowed to ask anyone
for help
> performing a computation, but the issue of delegation could be sensitive -
the PCC 
> has delegated to PCE2: does that mean that the PCC is giving permission
for the
> delegation to be passed on? Could this be sensitive because PCE2 might be
in a 
> domain that the PCC doesn't trust? Or do you assume that, because the PCC
has
> a session with both PCEs, it trusts them equally?
>
> I did find 3.5 about "sub-delegation" and I think this is relevant.

<Haomian> We need some consensus on this comment in section 2.2
(primary-secondary relationship): I assume that PCC has a session with both
primary/secondary PCEs and delegate the LSP to primary PCE, and such
delegation would be migrated to secondary PCE in case there is a need (may
because of the failure of primary PCE or just a policy). We can tweak the
text after we are on the same page, proposal are welcome.

[AF] It's a triangular relationship, isn't it. This function depends on the
PCC having a relationship between both PCEs, the PCEs having a relationship,
*and* each PCE knows that the PCC has a relationship with the other PCE.
[AF] To reiterate:
[AF] - The PCC is free to delegate as it wishes and to change the
delegation.
[AF] - The PCEs are not free to "simply" exchange delegation because they
can't know that they are allowed to. Well, I suppose that is a network
policy?

3.5

   If the highest priority PCE is failing or if the state-sync session
   between the local PCE and the highest priority PCE failed, the local
   PCE MAY decide to delegate the LSP to the next highest priority PCE
   or to take back control of the LSP.  It is a local policy decision.

What does "is failing" mean? How can one PCE know that another is failing?

<Haomian> I don't think the PCE knows the failure automatically, it's more
likely to be manually configured.

[AF] Right. So the point would be that the operator may decide to instruct a
switch-over.

> 3.5.1
>
>   A PCE SHOULD NOT compute a path
>   using an association-group constraint if it has delegation for only a
>   subset of LSPs in the association-group
>
> It is unclear to me that a PCE can know this. In some cases, the
association is
> for a known number of LSPs (e.g., bidirectional), but in other cases there
can
> be a large number of LSPs in the group (e.g., VN), and the group can be
added
> to at any time.

<Haomian>We need to check the motivation on section 3.5.1. I would reword
this sentence as "A PCE SHOULD ONLY compute a path using an
association-group constraint if it has delegation for all of LSPs in the
association-group". The PCE know this by checking the LSP identifier to see
if they are correctly delegated.

[AF] Hmmm.
[AF] s/SHOULD ONLY/SHOULD only/  
[AF] But I don't think this addresses my point. For some association groups,
it is possible to know when you have the complete set of LSPs. But other
association groups are open-ended. How can you know when you have them all
unless you have information from the creator of the group?

> 6.
>
>   The list of speakers within the PCEP-PATH-VECTOR TLV MUST be ordered.
>
> Ah, but what order? 
>
>   When sending a PCEP message (PCRpt, PCUpd, or PCInitiate), a PCEP
>   Speaker MAY add the PCEP-PATH-VECTOR TLV with a PCEP-SPEAKER-
>   INFORMATION containing its own information.
>
> Addition is presumably in a specific order. "add to the end of the list"?
>
> You do say "append" at the bottom of the paragraph, so I think it is 
> clear what you intend: you just need to bring it out more clearly.

<Haomian> I am confused. Does it mean "the PCEP speaker MAY append a new
PCEP-SPEAKER-INFORMATION containing its own information at the end of the
TLV"?

[AF] This is how I read it.