Re: [ippm] John Scudder's Discuss on draft-ietf-ippm-ioam-conf-state-07: (with DISCUSS and COMMENT)

xiao.min2@zte.com.cn Fri, 28 October 2022 03:41 UTC

Return-Path: <xiao.min2@zte.com.cn>
X-Original-To: ippm@ietfa.amsl.com
Delivered-To: ippm@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 4CE60C14CE26; Thu, 27 Oct 2022 20:41:27 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.908
X-Spam-Level:
X-Spam-Status: No, score=-1.908 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_MSPIKE_H2=-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, UNPARSEABLE_RELAY=0.001] autolearn=ham autolearn_force=no
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 PlH1yn59aRYh; Thu, 27 Oct 2022 20:41:24 -0700 (PDT)
Received: from mxhk.zte.com.cn (mxhk.zte.com.cn [63.216.63.40]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 711F4C14E514; Thu, 27 Oct 2022 20:41:22 -0700 (PDT)
Received: from mse-fl2.zte.com.cn (unknown [10.5.228.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mxhk.zte.com.cn (FangMail) with ESMTPS id 4Mz7cx1RrBz8QrkZ; Fri, 28 Oct 2022 11:41:21 +0800 (CST)
Received: from njxh01app02.zte.com.cn ([10.41.132.206]) by mse-fl2.zte.com.cn with SMTP id 29S3fD4J008092; Fri, 28 Oct 2022 11:41:13 +0800 (+08) (envelope-from xiao.min2@zte.com.cn)
Received: from mapi (njxh01app01[null]) by mapi (Zmail) with MAPI id mid201; Fri, 28 Oct 2022 11:41:15 +0800 (CST)
Date: Fri, 28 Oct 2022 11:41:15 +0800
X-Zmail-TransId: 2af9635b4f5b2932e265
X-Mailer: Zmail v1.0
Message-ID: <202210281141150800523@zte.com.cn>
In-Reply-To: <BCA27C5F-529B-43FA-BDFA-0F308510DDEE@juniper.net>
References: 166681647836.46740.1588555524214771641@ietfa.amsl.com, 202210271751442400444@zte.com.cn, BCA27C5F-529B-43FA-BDFA-0F308510DDEE@juniper.net
Mime-Version: 1.0
From: xiao.min2@zte.com.cn
To: jgs@juniper.net
Cc: iesg@ietf.org, draft-ietf-ippm-ioam-conf-state@ietf.org, ippm-chairs@ietf.org, ippm@ietf.org, marcus.ihlar@ericsson.com
Content-Type: multipart/mixed; boundary="=====_001_next====="
X-MAIL: mse-fl2.zte.com.cn 29S3fD4J008092
X-Fangmail-Gw-Spam-Type: 0
X-FangMail-Miltered: at cgslv5.04-192.168.250.137.novalocal with ID 635B4F61.000 by FangMail milter!
X-FangMail-Envelope: 1666928481/4Mz7cx1RrBz8QrkZ/635B4F61.000/10.5.228.133/[10.5.228.133]/mse-fl2.zte.com.cn/<xiao.min2@zte.com.cn>
X-Fangmail-Anti-Spam-Filtered: true
X-Fangmail-MID-QID: 635B4F61.000/4Mz7cx1RrBz8QrkZ
Archived-At: <https://mailarchive.ietf.org/arch/msg/ippm/Y02KrU2aLaunNssWGmfDiXgMwyg>
Subject: Re: [ippm] John Scudder's Discuss on draft-ietf-ippm-ioam-conf-state-07: (with DISCUSS and COMMENT)
X-BeenThere: ippm@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: IETF IP Performance Metrics Working Group <ippm.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/ippm>, <mailto:ippm-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/ippm/>
List-Post: <mailto:ippm@ietf.org>
List-Help: <mailto:ippm-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ippm>, <mailto:ippm-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 28 Oct 2022 03:41:27 -0000

Hi John,






Thank you for the quick reply.


Please check inline my responses.






Best Regards,


Xiao Min







Original



From: JohnScudder <jgs@juniper.net>
To: 肖敏10093570;
Cc: The IESG <iesg@ietf.org>;draft-ietf-ippm-ioam-conf-state@ietf.org <draft-ietf-ippm-ioam-conf-state@ietf.org>;ippm-chairs@ietf.org <ippm-chairs@ietf.org>;ippm@ietf.org <ippm@ietf.org>;marcus.ihlar@ericsson.com <marcus.ihlar@ericsson.com>;
Date: 2022年10月27日 21:55
Subject: Re: John Scudder's Discuss on draft-ietf-ippm-ioam-conf-state-07: (with DISCUSS and COMMENT)


Hi Xiao Min,
 
Some replies in-line below; I’ve snipped out agreed points that don’t need further discussion.
 
> On Oct 27, 2022, at 5:51 AM, xiao.min2@zte.com.cn wrote:
[…snip…]
> NEW:
>    There is a need to extend echo request/reply mechanisms used in IPv6
>    (including Segment Routing with IPv6 data plane (SRv6)), MPLS
>    (including Segment Routing with MPLS data plane (SR-MPLS)), Service
>    Function Chain (SFC) and Bit Index Explicit Replication (BIER)
>    environments, for use within the In situ Operations, Administration,
>    and Maintenance (IOAM) domain, allowing the IOAM encapsulating node
>    to discover the enabled IOAM capabilities of each IOAM transit and
>    IOAM decapsulating node.
>  
>    Although this document does not itself specify the necessary
>    extensions, it specifies formats and objects that can be used in such
>    specifications, and provides guidelines and requirements for their
>    development.
>  
> [XM]>>> It seems this comment is similar to that one made by Alvaro Retana. Does the abstract proposed by Alvaro work for you?
>  
> NEW Abstract:
>  
>    This document describes a generic format for use in echo
> request/reply mechanisms, which can be used within an In situ
> Operations, Administration, and Maintenance (IOAM) domain, allowing
> the IOAM encapsulating node to discover the enabled IOAM capabilities
> of each IOAM transit and IOAM decapsulating node.  The generic format
> is intended to be used with a variety of data planes such as IPv6,
> MPLS, Service Function Chain (SFC)
>    and Bit Index Explicit Replication (BIER).
 
Yes, that’s OK, although on the balance I do prefer an abstract that plainly states that follow-on documents are needed. But that’s relatively minor, Alvaro’s text works too.

[XM]>>> OK. Will use Alvaro's text.


[…snip…]
> - It wasn't clear to me from a quick perusal of RFC 9197 §4.3 whether a request
> carrying 0x0000 would elicit replies for all Namespace-IDs (since 0x0000
> matches everything) or if it would elicit replies only for capabilities that
> have no configured non-default namespace, or are explicitly configured with
> namespace 0x0000. Can you either clarify this in the text, or if you think it's
> clear from the reference, help me understand what makes it clear?
>  
> [XM]>>> As I understand it, a request carrying 0x0000 would elicit replies only for capabilities that are explicitly configured with namespace 0x0000. Also note that namespace 0x0000 is the default one, so if there is no any other namespace configured, then all capabilities configured are for namespace 0x0000 by default. Propose to add some text as below.
>  
> NEW
>  
>    An IOAM Capabilities Query carrying only the Default-Namespace-ID 0x0000 would elicit replies only for capabilities that are explicitly configured with the Default-Namespace-ID 0x0000.
 
That helps my understanding, thanks. I wonder if the new text above is exactly what you want or if it would benefit from a little more tuning. Two questions to consider —
 
- As written the statement doesn’t apply to a query carrying 0x0000 and some other value, say 0x0001. Probably you don’t want to restrict it to only singleton 0x0000 lists? Probably you could fix this by dropping the first instance of “only”, so “… carrying the Default-Namespace-ID”. (Keep the second “only” though.)
- Do you really want to restrict it to “explicitly configured”? That might create some ambiguity with regard to capabilities that are implicitly configured with 0x0000, for example, due to a system default. Perhaps drop “explicitly”?
 
So the possible revision is:
 
   An IOAM Capabilities Query carrying the Default-Namespace-ID 0x0000 would elicit replies only for capabilities that are configured with the Default-Namespace-ID 0x0000.

[XM]>>> The revision implicates that as long as an IOAM Capabilities Query carries 0x0000, whether the only one or along with other namespace-id, it would elicit replies only for capabilities that are configured with the 0x0000, however that's not the intended behavior, right?


[…snip…]
> - The specification that the payload is zero-padded to 4-octet alignment
> carries some implications. Let's explore these with an example. Suppose we want
> to signal a single Namespace-ID, 0x0001. Then presumably the payload has to be
> 0x0001 0x0000, once the mandated pad bytes are added. Is the receiver supposed
> to know that it ignores the 0x0000 value (which is otherwise the
> Default-Namespace-ID) because it comes at the end of the list, not the
> beginning as the previous paragraph required? If so, this seems worth calling
> out. If not, how is the receiver supposed to know where payload ends and
> padding begins?
>  
> [XM]>>> In your example, I believe the last 0x0000 should be treated as padding by the receiver. Do you see a need for some new text?
 
Yes I do, I think that case is too subtle to leave it to the implementor to figure out and indeed someone might misapply Postel’s principle and consume the 0x0000 anyway, absent clear direction to the contrary. Perhaps something like,
 
OLD:
   The IOAM Capabilities Query Container has a container header that is
   used to identify the type and optionally length of the container
   payload, and the container payload (List of IOAM Namespace-IDs) is
   zero-padded to align to a 4-octet boundary.
 
NEW:
   The IOAM Capabilities Query Container has a container header that is
   used to identify the type and optionally length of the container
   payload, and the container payload (List of IOAM Namespace-IDs) is
   zero-padded to align to a 4-octet boundary. Note that since the
   Default-Namespace-ID of 0x0000 is mandated to appear first in the
   list, if it appears any trailing 0x0000 octets must therefore be padding
   and MUST be disregarded.

[XM]>>> The new text you provided looks good to me.


> ### Section 3.2, container format, padding
>  
> Similar questions to those above apply to:
>  
> ```
>    The IOAM Capabilities Response Container has a container header that
>    is used to identify the type and optionally length of the container
>    payload, and the container payload (List of IOAM Capabilities
>    Objects) is zero-padded to align to a 4-octet boundary.
> ```
>  
> That is, considering you've disclaimed defining specifics about the semantics
> of the header, how is the recipient of one of these things supposed to know how
> to ignore the zero-padding?
>  
>  
>  
> I do see that all the objects you've defined in this document are a multiple of
> four bytes long (if we assume their unspecified headers are a multiple of four
> byte long, that is!) so no padding would ever be required for a payload
> consisting only of these objects, and thus my question wouldn't apply. But if
> that's the answer to my question, then the final clause I quote above (about
> zero-padding) should just be removed.
>  
> [XM]>>> Will remove the final clause you quoted above (about zero-padding).
 
OK.  
 
How problematic would it be if the header turned out not to be word-aligned? Do you need to say something about this in the spec? (This applies to everywhere you have an abstract header in the spec.)

[XM]>>> Yes, I would like to borrow your text as below.

OLD

    The IOAM Capabilities Response Container has a container header that    is used to identify the type and optionally length of the container    payload, and the container payload (List of IOAM Capabilities    Objects) is zero-padded to align to a 4-octet boundary.

NEW

    The IOAM Capabilities Response Container has a container header that    is used to identify the type and optionally length of the container    payload. The container header MUST be defined such that it falls on a four-octet   boundary.


> ### Section 3.2, object format, padding
>  
> ```
>    Similar to the container, each object has an object header that is
>    used to identify the type and length of the object payload, and the
>    object payload is zero-padded to align to a 4-octet boundary.
> ```
>  
> Similar to the above, in some cases there will be a need to know how to
> separate payload from padding. In all the objects you defined in Sections 3.2.x
> this is unnecessary (*if* you assume the unspecified header is 4-octet aligned
> itself) since you've carefully specified them so that they don't require
> padding.
>  
> It might be more straightforward to just mandate that future object
> specifications have a length that is a multiple of four octets, as all of your
> current ones do. That defers the question of what to do about variable payloads
> to the specification of the -- notional? -- object that has such a payload.
>  
> [XM]>>> Will remove the final clause you quoted above (about zero-padding). Do you see a need for some new text?
 
It comes back to the question above — how problematic is it, if something ends up not being word-aligned in the future? I suppose you wouldn’t have mandated word-alignment if you didn’t think it was important, so that implies you should say something. For example,
 
OLD:
   Similar to the container, each object has an object header that is
   used to identify the type and length of the object payload, and the
   object payload is zero-padded to align to a 4-octet boundary.
 
NEW:
   Similar to the container, each object has an object header that is
   used to identify the type and length of the object payload. The  
   object payload MUST be defined such that it falls on a four-octet
   boundary.

[XM]>>> The new text you provided looks good to me and I borrowed your text as above.


[…snip…]
> ### Section 6, integrity protection
>  
> You talk about integrity protection in passing. Let's assume a deployment
> hasn't enabled any kind of integrity protection. Have you done any analysis of
> what kind of mischief an attacker could cause by inserting incorrect
> capabilities in a forged response?
>  
> [XM]>>> Before I read your question, no :-) I think one possible mischief is that the IOAM encapsulated data packet could be dropped due to its size exceeds the path MTU, another one is that the added IOAM header could not be processed by the nodes along the path.
 
Those don’t sound too serious. Up to you whether to include that in the section, but I don’t think it would hurt.

[XM]>>> I prefer to remain the text as is. Thank you for raising that question pushing me take the possible mischiefs into account.


Thanks,
 
—John