Re: [mpls] This is not a last call! draft-ietf-mpls-mna-requirements-08.txt

Joel Halpern <jmh.direct@joelhalpern.com> Thu, 11 January 2024 14:40 UTC

Return-Path: <jmh.direct@joelhalpern.com>
X-Original-To: mpls@ietfa.amsl.com
Delivered-To: mpls@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 8AC53C1519AB; Thu, 11 Jan 2024 06:40:27 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.106
X-Spam-Level:
X-Spam-Status: No, score=-2.106 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, HTML_MESSAGE=0.001, RCVD_IN_ZEN_BLOCKED_OPENDNS=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 (1024-bit key) header.d=joelhalpern.com
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 6ICNDJjS1K0V; Thu, 11 Jan 2024 06:40:22 -0800 (PST)
Received: from maila2.tigertech.net (maila2.tigertech.net [208.80.4.152]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 5FD7AC14F69F; Thu, 11 Jan 2024 06:37:52 -0800 (PST)
Received: from localhost (localhost [127.0.0.1]) by maila2.tigertech.net (Postfix) with ESMTP id 4T9nMN08vtz6G7k4; Thu, 11 Jan 2024 06:37:52 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=joelhalpern.com; s=2.tigertech; t=1704983872; bh=9SLA3NLi13fU9AeqLf8xIh8pC53FlmW05iK8OyW8r6A=; h=Date:Subject:To:Cc:References:From:In-Reply-To:From; b=CHYpFpB9/u4VIVyQ7hNmKapupSbrpLbesvyULpu9Fv1Yeopcgj6Tl5SUX9ZGlah/f Ixiwu+V94oKi2+EgoiiowGQXOXb0LTAn34YZ04x8aQvhHbuaAxV3DnEa7JjQ99Vl6z EIFvii9Du1PBqR2+uGcur6I/Y2QgemMg87jFLMcw=
X-Quarantine-ID: <CttlvidpBZth>
X-Virus-Scanned: Debian amavisd-new at a2.tigertech.net
Received: from [192.168.1.19] (pool-108-16-122-120.phlapa.fios.verizon.net [108.16.122.120]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by maila2.tigertech.net (Postfix) with ESMTPSA id 4T9nML1JP0z6G7hc; Thu, 11 Jan 2024 06:37:49 -0800 (PST)
Content-Type: multipart/alternative; boundary="------------5O1wwROXN6cdhIa13IvD5tsQ"
Message-ID: <c8b4be49-68f0-47f5-8a1b-e4bc443d027a@joelhalpern.com>
Date: Thu, 11 Jan 2024 09:37:48 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Content-Language: en-US
To: "Matthew Bocci (Nokia)" <matthew.bocci@nokia.com>, "adrian@olddog.co.uk" <adrian@olddog.co.uk>, "mpls@ietf.org" <mpls@ietf.org>
Cc: "draft-ietf-mpls-mna-requirements@ietf.org" <draft-ietf-mpls-mna-requirements@ietf.org>
References: <AM6PR07MB40215418D2CC21047D2F1682EB6B2@AM6PR07MB4021.eurprd07.prod.outlook.com>
From: Joel Halpern <jmh.direct@joelhalpern.com>
In-Reply-To: <AM6PR07MB40215418D2CC21047D2F1682EB6B2@AM6PR07MB4021.eurprd07.prod.outlook.com>
Archived-At: <https://mailarchive.ietf.org/arch/msg/mpls/Nz8Rwxnk6u5LYMzkKAQoatbHMk4>
Subject: Re: [mpls] This is not a last call! draft-ietf-mpls-mna-requirements-08.txt
X-BeenThere: mpls@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: Multi-Protocol Label Switching WG <mpls.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/mpls>, <mailto:mpls-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/mpls/>
List-Post: <mailto:mpls@ietf.org>
List-Help: <mailto:mpls-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/mpls>, <mailto:mpls-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 11 Jan 2024 14:40:27 -0000

Thank you Matthew.  I still have a number of concerns, and I hope I can 
explain them better in line, after your comments, delimited by 
<jmh></jmh>.  (I have trimmed the nits as that appears to be covered.)

Yours,

Joel

On 1/11/2024 7:26 AM, Matthew Bocci (Nokia) wrote:
>
> Hi Joel
>
> Thanks for your detailed review and comments. Please see below.
>
> Best regards
>
> Matthew
>
> On 04/01/2024, 16:41, "Joel Halpern" jmh@joelhalpern.com wrote:
>
> I appreciate the wording of requirement 7 in section 3.1 (General
>
> Requirements). That seems to make clear the scoping of these requirements.
>
> Major:
>
> I keep re-reading requirement 34 that indication of post-stack data must
>
> be consistent with RFC 3031 and I am left very confused as to what it
>
> means.  It doesn't say that there MUST be an indication in the stack.
>
>      It seems to allow for it being magically known?   That doesn't 
> seem like
>
> a requirement.  Please clarify or remove.
>
> MB> I agree that there should be an indication in the stack that something
>
> follows BoS, and I think we should be explicit about this, but for E2E MNA
>
> with post-stack data the end points could just agree that something 
> follows
>
> without the need for any in stack indicator (similar to PW CW).
>
> Alternatively, you could have a post-stack specific MNA alert 
> mechanism and
>
> then you look below stack for an NAI, similar to the way GAL/GACH 
> works. I am
>
> not advocating that. I am just using it as a counterpoint. But I agree 
> that
>
> in-stack may be desirable for intermediate LSRs.
>
> What about?: “  If a network action requires post-stack ancillary
>
> data, it must be implicitly or explicitly indicated in the stack using 
> a method
>
> consistent with  [RFC3031].”
>
<jmh>I admit that part of my reaction is colored by the observation that 
end-to-end post-stack data (the equivalent of what we already have with 
CW) can be handled by ISD in the label set processed by the ultimate 
node.  So I tend not to worry about that case, and read the requirements 
as being about things that need to be known by intermediate nodes.  
Given that your proposed wording does not differentiate, we seem to 
still have the problem.  implicit indication does not seem to work if 
the post-stack ancillary data is to be processed by intermediate nodes.  
YOu could split it into two requirements, one for PSD to be processed by 
intermediate nodes, and one for E2E PSD.  With the latter permitting 
implicit indication. </jmh>
>
> Requirement 43 in section 3.5 (Requirements on Ancillary Data) is either
>
> an unclear restatement that in-stack or post-stack data MUST have
>
> indications, or it is some other requirement not consistent with our
>
> ongoing work.  I recommend removing it.  This seems related to
>
> requirement 44, which I would also recommend removing.
>
> MB> This requirement was intended to apply to post-stack ancillary 
> data, where the stack could
>
> be popped (so discarding the NAI) prior to the packet reaching the 
> egress LER. It is consistent
>
> with section 3.6.1 (First Nibble considerations) of the framework. I 
> suggest rephrasing to:
>
> "A common preamble for post-stack ancillary data MUST be defined so that a
>
> node receiving the ancillary data can determine whether to
>
> process, ignore, skip over or discard it according to network or
>
> local policies.
>
<jmh>I am still left quite confused by what is being required.  If 
post-stack data is indicated by in-stack indications, and is cleaned up 
when the last in-stack indication is removed (as I believe is the common 
case) then there is no need for whatever a "common preamble" is.  If the 
intention is for a common preamble to be tied to implicit indication of 
end-to-end post-stack data, then we need more words making it clear that 
is the case being dealt with.  Also, if we want such a preamble, it 
seems likely that we need some way to avoid ambiguity between the 
preamble and other packet contents?  At which point we are getting into 
solution instead of requirements.  But without that the requirement does 
not seem to have force.</jmh>
>
> I agree that 43 is possibly not needed if the NAI gives you enough
>
> context to find the AD, whether it is post-stack or in-stack. But that 
> assumes the
>
> NAI is present at the receiving node, which it may not be in the case 
> of post-stack
>
> where the stack is popped before reaching the terminating node e.g. in PHP
>
> MB> I think 44
>
> is needed. The in-stack AD needs to be structured so that a forwarder 
> can skip over
>
> it and correctly find the bottom of stack, for example. This is 
> consistent with the framework.
>
<jmh>I suspect that our problem is "container".  If ISD always has a 
length, that includes the ancillary data, then there is no need for a 
separate container for the AD.  Does that constittute a container as you 
understand the requirement?  It doesn't seem to by my reading.  Which is 
why I found the requirement too strong.

What if the wording was "The structure of the NAI and any carried 
in-stack ancillary data must enable proper skipping of unknown operation 
indications and ancillary information"? </jmh>

> I find requirement 50 in section 3.5 (Requirements on Ancillary Data)
>
> which claims to require a means to "verify the integrity of ancillary
>
> data processed by LSR" to be confusing. Despite what we may or may not
>
> have written in RFC 3552 we do not have as far as I know means to verify
>
> the integrity of anything related to MPLS.  I can vaguely imagine an OAM
>
> mechanism implied by this requirement, but I doubt that is what is
>
> meant.  Please clarify or remove?
>
> MB> Yes, agreed but we do need to mention this issue. I would suggest 
> rephrasing to be
>
> more of a commentary and moving it to the security considerations and 
> out of the requirements part.
>
<jmh>Thanks.  That should probably work.  I would suggest adding a few 
more words as to what we are requireing / expecting, as the current 
answer from the WG seems to be "nothing".</jmh>
>
> Requirement 53 in section 3.5 (Requirements on Ancillary Data) seems to
>
> prohibit an intermediate LSR which is pushing on labels and NAI from
>
> pushing on ancillary data along with them. Such a prohibition seems to
>
> be a contradict the WG agreements. Please fix.
>
> MB> The root cause of this issue is that LER is not well defined, and . I
>
> would rather we talked about the functions rather than the nodes. I would
>
> suggest breaking this down and rephrasing splitting into something like:
>
> - In-stack ancillary data MUST only be inserted in conjunction with 
> pushing one or more labels
>
> onto the top of stack and MAY be processed at any LSR.
>
> - Post-stack ancillary data MUST only be inserted where a new bottom 
> of stack label is pushed.
>
> and MAY be processed at any LSR.
>
> - Processing MAY
>
> include rewriting the ancillary data. A solution to a use case that 
> needs to change the size of the
>
> ancillary data MUST analyze the implications on packet forwarding and 
> specify how these are addressed.
>
<jmh>Mostly, that seems to fix my problem.  I don't see why you want to 
include the middle "MUST" about adding PSD only if one is adding at the 
bottom of the stack.  That is certainly the easier case for adding PSD.  
But since I do not know what the use cases are for PSD, I don't know why 
we are adding that clause.</jmh>
>
> Minor:
>
> Is requirement 5 of section 3.1 (General Requirements) intended to prevent
>
> MNA from covering Entropy.  It seems to, as it says that MNA solutions 
> MUST
>
> NOT obsolete existing MPLS mechanisms (e.g. ELI / EL)? This also seems
>
> related to requirement 41.
>
> MB> No. It is intended to prevent MNA from obsoleting basic forwarding
>
> mechanisms in MPLS. It does not prevent MNA from offering an alternative
>
> entropy mechanism if that makes sense in an overall set of solutions.
>
<jmh>Well.... That may be the intent.  But I don't think it says that.  
Entropy label is as much an existing mechanism as push, pop, or swap.  I 
suggest you take another crack at the wording. </jmh>
>
> Would it be helpful to elaborate requirement 21 in section 3.4 
> (Requirements
>
> on Network Action Indicators) to include text that control or management
>
> mechanisms may be used to meet this requirement?
>
> MB> A precedent for this is the signaling involved in Entropy Label
>
> Capability. I am not sure we should spell out such mechanisms here as 
> this is
>
> a requirements draft rather than a solutions draft.
>
<jmh>Yes, there is precedent for being vague.  I think greater clarity 
and specificity would help the reader.  It is okay with me to say "e.g. 
control or management mechanisms" to allow for something else if that is 
your concern. </jmh>
>
> In requirement 22 (apparently related to requirement 21) what does "in the
>
> way the imposing node intends" mean?   The text seems more specific 
> than just
>
> understanding the operation to be performed.
>
> MB> It means don’t send MNA to a node that you don’t know what it will do
>
> with it or will not handle it in a way that is acceptable to you. This is
>
> because it may affect forwarding and the AD may contain metadata form the
>
> payload. Potentially, the receiving node may just drop the whole 
> packet if it
>
> doesn’t recognise at least the MNA indicator. Does the following 
> rephrasing help?:
>
> 22.  An imposing node MUST NOT insert an NAI
>
>         unless it knows that any node that processes it has indicated 
> that it can do so
>
> in the way the imposing node intends.
>
<jmh>I don't think this helps.  As far as I can tell, the expectation of 
the group is that nodes will advertise what operations they support 
(somewhere, somehow, ...)   Reasonable.  But I do not know what "in the 
way the imposing node intends" is supposed to add to such advertised 
support.  Is this supposed to say that if there are sub-opcodes we need 
to have advertisements of those?  It is supposed to say that imposers 
will magically know the details of how processing nodes will do their 
work, or ?? </jmh>
>
> Requirement 47 in section 3.5 (Requirements on Ancillary Data) seems 
> vacuous.
>
> I can not see how its presence would affect any solution proposal.
>
> MB> This necessary advisory text, and is the result of discussions in 
> the OpenDT. I
>
> propose that we change the MUST to a SHOULD as it probably doesn't 
> matter for E2E port-stack
>
> AD that is not intended for processing by intermediate LSRs.
>
<jmh>First, unless it was confirmed by the WG, conclusions of the Open 
DT are not WG conclusions.  So not particularly relevant now.  More 
importantly, I don't know what it means for post-stack data to be as 
close as possible to the bottom of stack.  Is there something else that 
is envisioned that we are trying to require comes after the PSD rather 
than before?  Either elaborate on what is being discussed or remove it 
as meaningless please.</jmh>
>
>