RE: Comments on <draft-fz-6man-ipv6-alt-mark-05>

Giuseppe Fioccola <giuseppe.fioccola@huawei.com> Tue, 18 February 2020 19:56 UTC

Return-Path: <giuseppe.fioccola@huawei.com>
X-Original-To: ipv6@ietfa.amsl.com
Delivered-To: ipv6@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id DA62E120813 for <ipv6@ietfa.amsl.com>; Tue, 18 Feb 2020 11:56:38 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.2
X-Spam-Level:
X-Spam-Status: No, score=-4.2 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, SPF_PASS=-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 pQFEzW-UxoUB for <ipv6@ietfa.amsl.com>; Tue, 18 Feb 2020 11:56:34 -0800 (PST)
Received: from huawei.com (lhrrgout.huawei.com [185.176.76.210]) (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 7517B120145 for <ipv6@ietf.org>; Tue, 18 Feb 2020 11:56:34 -0800 (PST)
Received: from lhreml702-cah.china.huawei.com (unknown [172.18.7.108]) by Forcepoint Email with ESMTP id E33A359D79F96EE5D5C2; Tue, 18 Feb 2020 19:56:30 +0000 (GMT)
Received: from fraeml708-chm.china.huawei.com (10.206.15.36) by lhreml702-cah.china.huawei.com (10.201.108.43) with Microsoft SMTP Server (TLS) id 14.3.408.0; Tue, 18 Feb 2020 19:56:30 +0000
Received: from fraeml714-chm.china.huawei.com (10.206.15.33) by fraeml708-chm.china.huawei.com (10.206.15.36) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Tue, 18 Feb 2020 20:56:30 +0100
Received: from fraeml714-chm.china.huawei.com ([10.206.15.33]) by fraeml714-chm.china.huawei.com ([10.206.15.33]) with mapi id 15.01.1713.004; Tue, 18 Feb 2020 20:56:29 +0100
From: Giuseppe Fioccola <giuseppe.fioccola@huawei.com>
To: Tom Herbert <tom@herbertland.com>
CC: Bob Hinden <bob.hinden@gmail.com>, IPv6 List <ipv6@ietf.org>
Subject: RE: Comments on <draft-fz-6man-ipv6-alt-mark-05>
Thread-Topic: Comments on <draft-fz-6man-ipv6-alt-mark-05>
Thread-Index: AQHV5d9sj2QFFZZwDUeZxxsOK1m8a6gg0EPQgAAs74CAACoIQP//+WCAgAAuW3A=
Date: Tue, 18 Feb 2020 19:56:29 +0000
Message-ID: <0cf207976ece4855bd44ed2c9e22198e@huawei.com>
References: <85AA1B7C-098D-4001-BB3E-5EBB71198174@gmail.com> <44cc05de64414561b9a2f82e98356e67@huawei.com> <CALx6S34BekBhaBkDTFmbo6ms73QBRn6Q4E7PBSoPKAm5bj1gLQ@mail.gmail.com> <097d0c8da0fc445fb5f345e2ce56efc8@huawei.com> <CALx6S37f-CQPjssRbixDUnh=3OScWhrqBKH0bKkrwfZsA83SVw@mail.gmail.com>
In-Reply-To: <CALx6S37f-CQPjssRbixDUnh=3OScWhrqBKH0bKkrwfZsA83SVw@mail.gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [10.210.167.243]
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-CFilter-Loop: Reflected
Archived-At: <https://mailarchive.ietf.org/arch/msg/ipv6/KgVFd43X869PeOFAjwRCdBIjj5I>
X-BeenThere: ipv6@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "IPv6 Maintenance Working Group \(6man\)" <ipv6.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/ipv6>, <mailto:ipv6-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/ipv6/>
List-Post: <mailto:ipv6@ietf.org>
List-Help: <mailto:ipv6-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ipv6>, <mailto:ipv6-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 18 Feb 2020 19:56:39 -0000

Hi Tom,
my answers inline tagged as [GF].
Thanks,

Giuseppe

-----Original Message-----
From: Tom Herbert [mailto:tom@herbertland.com] 
Sent: Tuesday, February 18, 2020 6:12 PM
To: Giuseppe Fioccola <giuseppe.fioccola@huawei.com>
Cc: Bob Hinden <bob.hinden@gmail.com>; IPv6 List <ipv6@ietf.org>
Subject: Re: Comments on <draft-fz-6man-ipv6-alt-mark-05>

On Tue, Feb 18, 2020 at 8:44 AM Giuseppe Fioccola <giuseppe.fioccola@huawei.com> wrote:
>
> Hi Tom,
> Please find my answers inline tagged as [GF].
>
> Regards,
>
> Giuseppe
>
> -----Original Message-----
> From: Tom Herbert [mailto:tom@herbertland.com]
> Sent: Tuesday, February 18, 2020 4:05 PM
> To: Giuseppe Fioccola <giuseppe.fioccola@huawei.com>
> Cc: Bob Hinden <bob.hinden@gmail.com>; IPv6 List <ipv6@ietf.org>
> Subject: Re: Comments on <draft-fz-6man-ipv6-alt-mark-05>
>
> On Tue, Feb 18, 2020 at 4:42 AM Giuseppe Fioccola <giuseppe.fioccola@huawei.com> wrote:
> >
> > Hi Bob,
> > Thanks a lot for your detailed comments.
> > Please find my answers inline tagged as [GF].
> >
> > Please let me know if you agree with my replies, so I will work on a new version of the draft.
> >
> > Regards,
> >
> > Giuseppe
> >
> > -----Original Message-----
> > From: ipv6 [mailto:ipv6-bounces@ietf.org] On Behalf Of Bob Hinden
> > Sent: Monday, February 17, 2020 11:12 PM
> > To: IPv6 List <ipv6@ietf.org>
> > Cc: Bob Hinden <bob.hinden@gmail.com>
> > Subject: Comments on <draft-fz-6man-ipv6-alt-mark-05>
> >
> > I have some comments on <draft-fz-6man-ipv6-alt-mark-05>.
> >
> > This draft defines an alt mark option for hop-by-hop options and destination options, as well as a TLV for SRH.  To my thinking, the TLV is not intended a general vehicle for carrying IPv6 options.  It is intended to carry SRH meta data.   The relevant text from Section 2.1 SRH TLVs of draft-ietf-6man-segment-routing-header-26:
> >
> >    A TLV provides meta-data for segment processing.  The only TLVs
> >    defined in this document are the HMAC (Section 2.1.2) and PAD
> >    (Section 2.1.1) TLVs.
> >
> > I don’t see how the alt-mark information can be considered meta-data for segment processing.   I think this draft should focus on an option for hop-by-hop and destionation option headers.  The SRH TLV should be removed.
> >
> > [GF]: The alt-mark TLV is considered "meta-data for segment processing" as the relevant text of draft-ietf-6man-segment-routing-header-26. Indeed, the packet is originated at the source, the SRH is added in order to steer the packet across a given path that we want to monitor. Therefore this is perfectly in line with the SRH draft to insert a TLV that is going to be processed by the segment endpoint for monitoring purposes. In this case, the process means to read the marking field and update, locally on the node, both the counters and the timestamps for the measurement.
>
> It seems like the TLV in SRH is then mostly redundant to HBH. Both of them would do the same processing on the TLV, the only difference I see is that the nodes that process the option in the segment in the SRH case would be a subset of the nodes processing the HBH. Is there any advantage to limiting the nodes that handle the option? It seems to me that having more nodes in the path look at the options would be better or at least the same quality of measurement.
>
> The general concern is that we may be setting a precedent here.
> Options in SRH TLVs really need to be directly related to segment routing processing, lest everytime someone come up with a new option we need to have both a HBH option and as SRH option because everyone else does it.
>
> Tom
>
> [GF]: I think we should focus on the best way to implement the SRv6 performance measurement. In this case we do not want all nodes in the path to process the alt-mark bits, so this is exactly the reason for using SRH TLV. The Use Case is to monitor the segment endpoint connectivity and not each individual hop. Therefore, in this specific case, the HBH is clearly not the right tool and the SRH TLV fits the role.
>
Can you elaborate on why this TLV is required in SRH? As I understand it, the point of alt-mark is to measure the characteristics of the network path. In segment routing there may be other nodes in a network path that are not in the segment list. If all the nodes in the path are expressed in the segment list, then the same measurements should result with either technique. If there are nodes in the path not in the SRH route list, then those nodes would be able to participate in the measurement and hence provide better results. Again, it seems like the goal is to measure performance through the network path, not just some subset of nodes.

I'd also point out that if one really wants to only measure at nodes in the route list, putting the alt-mark in destination options before the routing header would be serve that purpose. And, note that would work for all types of routing headers, not just the narrow use case of SRH which is what we get in using an SRH TLV.

Tom

[GF]: Consider that our scope is to define the Alt-Mark data field for IPv6 in general indeed it can be encoded as HBH Option, Destination Option or SRH TLV. The alternatives you mentioned are possible and are already described within the draft. However we have to consider that the HBH Option header is examined by the nodes along the path only if its processing is explicitly configured (RFC8200) and both RFC7045 and RFC8200 do not recommend the introduction of new HBH Options headers because nodes may ignore, drop or assign to a slow processing path. For this reason we cannot rely only on HBH Options. In addition the use of Destination Option before the Routing Header for HBH action would cause worse performance, so it would be better to select the way that fits better the use case to monitor. Anyway the draft aims to explore all the alternatives.

> >
> > The Security Considerations section of the draft is empty.   Like most new things proposed, there may be security issues.   With this text, it hard to evaluate the security issues.
> >
> > [GF]: Sure I will add some text here. I can be inspired from RFC8321 that includes a detailed Security Considerations section.
> >
> > As I noted in an earlier draft, this draft appears to depend on other work, such as:
> >
> > draft-fioccola-v6ops-ipv6-alt-mark-01
> > draft-ietf-6man-segment-routing-header-26
> > draft-ietf-ippm-multipoint-alt-mark-04
> > draft-song-opsawg-ifit-framework-10
> > RFC8321
> >
> > However, there are no normative references to these documents.  As I also noted earlier, RFC8231 is Experimental.  Why wasn’t this addressed in this draft?
> >
> > [GF]: Yes, you are right. I can move RFC8200, draft-ietf-6man-segment-routing-header and RFC8321 as normative references. RFC 8321 is Experimental because in IPPM we decided to describe the very general performance measurement methodology that can be applied for all the protocols. So the focus of RFC8321 is only on the methodology and not on its application (the only example mentioned in RFC8321 was in a lab environment with the reuse of DSCP fields or the unused bit of IPv4 header). To be Standard we need to use some "dedicated" bits and that is the purpose of this draft: the application of this straightforward method to IPv6.
> >
> > Other comments inline below.
> >
> > Bob
> >
> >
> > > 1.  Introduction
> > >
> > >    [RFC8321] and [I-D.ietf-ippm-multipoint-alt-mark] describe a passive
> > >    performance measurement method, which can be used to measure packet
> > >    loss, latency and jitter on live traffic.  Since this method is based
> > >    on marking consecutive batches of packets, the method is often
> > >    referred as Alternate Marking Method.
> > >
> > >    [I-D.song-opsawg-ifit-framework] introduces the telemetry
> > >    architecture that can be considered as reference.
> > >
> > >    This document defines how the Alternate Marking Method ([RFC8321])
> > >    can be used to measure packet loss and delay metrics in IPv6.
> > >
> > >    The format of the IPv6 addresses is defined in [RFC4291] while
> > >    [RFC8200] defines the IPv6 Header, including a 20-bit Flow 
> > > Label and
> > >
> > >    the IPv6 Extension Headers.  The Segment Routing Header (SRH) is
> > >    defined in [I-D.ietf-6man-segment-routing-header].
> > >
> > >    [I-D.fioccola-v6ops-ipv6-alt-mark] reported a summary on the possible
> > >    implementation options for the application of the Alternate Marking
> > >    Method in an IPv6 domain.  This document, starting from the outcome
> > >    of [I-D.fioccola-v6ops-ipv6-alt-mark], introduces a new TLV that can
> > >    be encoded in the Option Headers (both Hop-by-hop or Destination) and
> > >    in the SRH ([I-D.ietf-6man-segment-routing-header] for the purpose of
> > >    the Alternate Marking Method application in an IPv6 domain).
> >
> > As noted above, I don’t think this should be used in SRH.
> >
> > [GF]: see my reply regarding SRH TLV above
> >
> > >
> > > 2.  IPv6 application of the Alternate Marking
> > >
> > >    The Alternate Marking Method requires a marking field.  As mentioned,
> > >    several alternatives have been analysed in
> > >    [I-D.fioccola-v6ops-ipv6-alt-mark] such as IPv6 Extension Headers,
> > >    IPv6 Address and Flow Label.
> > >
> > >    The preferred choice would be the use of a new TLV to be encoded in
> > >    the Option (Hop-by-hop or Destination) header and in the SRH.
> >
> > Remove SRH.
> >
> > [GF]: ...
> >
> > >
> > >    This approach is compliant with [RFC8200] that recommends the use of
> > >    existing EH rather than defining new ones especially with hop by hop
> > >    behaviour.
> >
> > RFC8200 is very clear that new EHs with hop by hop behavior must not be defined.  The text says:
> >
> >    Note: New extension headers that require hop-by-hop behavior must not
> >    be defined because, as specified in Section 4 of this document, the
> >    only extension header that has hop-by-hop behavior is the Hop-by-Hop
> >    Options header.
> >
> > It is more than a recommendation.
> >
> > [GF]: Sure, I will updated the text here
> >
> >
> > >
> > >    In order to optimize implementation and scaling of the Alternate
> > >    Marking Method, a way to identify flows is required.  The Flow
> > >    Monitoring Identification field (FlowMonID), as introduced in the
> > >    next section, goes in this direction and it is used to identify a
> > >    monitored flow.
> > >
> > >    The Flow Monitoring Identification (FlowMonID) is required for some
> > >    general reasons:
> > >
> > >       First, it helps to reduce the per node configuration.  Otherwise,
> > >       each node needs to configure an access-control list (ACL) for each
> > >       of the monitored flows.  Moreover, using a flow identifier allows
> > >       a flexible granularity for the flow definition.
> > >
> > >       Second, it simplifies the counters handling.  Hardware processing
> > >       of flow tuples (and ACL matching) is challenging and often incurs
> > >       into performance issues, especially in tunnel interfaces.
> > >
> > >       Third, it eases the data export encapsulation and correlation for
> > >       the collectors.
> > >
> > >    Note that the FlowMonID is different from the Flow Label field of the
> > >    IPv6 Header ([RFC8200]).  Flow Label is used for application 
> > > service,
> > >
> > >    like load-balancing/equal cost multi-path (LB/ECMP) and QoS.
> > >    Instead, FlowMonID is only used to identify the monitored flow.  The
> > >    reuse of flow label field for identifying monitored flows is not
> > >    considered since it may change the application intent and forwarding
> > >    behaviour.  Furthermore the flow label may be changed en route and
> > >    this may also violate the measurement task.  Those reasons make the
> > >    definition of the FlowMonID necessary for IPv6.  Flow Label and
> > >    FlowMonID within the same packet have different scope, identify
> > >    different flows, and associate different uses.
> > >
> > > 3.  Definition of the AltMark TLV
> > >
> > >    The desired choice is to define a new TLV for the Option and SRH
> > >    extension headers, carrying the data fields dedicated to the
> > >    alternate marking method.
> >
> > Remove SRH
> >
> > [GF]: see my reply regarding SRH TLV above
> >
> > >
> > > 3.1.  Data Fields Format
> > >
> > >    The following figure shows the data fields format for enhanced
> > >    alternate marking TLV.  This AltMark data is expected to be
> > >    encapsulated in the IPv6 Option (hop-by-hop or destination) and SRH
> > >    extension headers.
> >
> > ditto
> >
> > [GF]: ...
> >
> > >
> > >     0                   1                   2                   3
> > >     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
> > >                                    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
> > >                                    |     Type      |    Length     |
> > >    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
> > >    |              FlowMonID                |L|D|     Reserved      |
> > >    
> > > +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
> > >
> > >    where:
> > >
> > >    o  Type/Option Type: 8 bit identifier of the type of Option/TLV that
> > >       needs to be allocated.  Unrecognised Types MUST be ignored on
> > >       receipt.
> >
> > Ditto
> >
> > [GF]: ...
> >
> > >
> > >    o  Length/Opt Data Len: The length of the length Data Fields of this
> > >       Option/TLV in bytes.
> > >
> > >    o  FlowMonID: 20 bits unsigned integer.  The FlowMon identifier field
> > >       is to uniquely identify a monitored flow within the measurement
> > >       domain.  The field is set at the ingress node.  The FlowMonID can
> > >       be uniformly assigned by the central controller or algorithmically
> > >       generated by the ingress node.  The latter approach cannot
> > >       guarantee the uniqueness of FlowMonID but it may be preferred for
> > >       local or private network, where the conflict probability is small
> > >       due to the large FlowMonID space.
> > >
> > >    o  L: Loss flag as defined in [RFC8321];
> > >
> > >    o  D: Delay flag as defined in [RFC8321];
> > >
> > >    o  Reserved: is reserved for further use.  These bits MUST be set to
> > >       zero on transmission and ignored on receipt.
> >
> > s/further/future/
> >
> > Correct?
> >
> > [GF]: yes, I will modify
> >
> > >
> > > 4.  AltMark: EH Option or SRH TLV
> > >
> > >    Using a new EH Option assumes that all routers in the domain support
> > >    this type of headers even if an unrecognized EH Option may be just
> > >    ignored without impacting the traffic.  So, the new AltMark Option
> > >    Layout seems the best way to implement the Alternate Marking method.
> > >
> > >    It is important to highlight that the Option Layout can be used both
> > >    as Destination Option and as Hop-By-Hop Option depending on the Use
> > >    Cases.  In general, it is needed to perform both end-to-end and hop-
> > >    by-hop measurements, and the alternate marking methodology in
> > >    [RFC8321] allows, by definition, both performance measurements.
> > >
> > >    So, Hop-By-Hop Options Header or Destination Options Header can be
> > >    used based on the chosen type of performance measurement.
> >
> > Remove “So, “
> >
> > [GF]: Ok
> >
> >
> > >    SRv6 leverages the Segment Routing header which consists of a new
> > >    type of routing header.  Like any other use case of IPv6, HBH and
> > >    Destination options are useable when SRv6 header is present.  Because
> > >    SRv6 is a routing header, destination options before the routing
> > >    header are processed by each destination in the route list.
> >
> > Why is this necessary?
> >
> > [GF]: It is just to have an example of how a destination/hbh option is processed if SRH is present. I will review the text here.
> >
> > >
> > >    SRH TLV can also be used to encode the AltMark Data Fields for SRv6.
> > >    Furthermore, the intermediated nodes that are not in the SID list may
> > >    consider the SRH as a green field, therefore they cannot support and
> > >    bypass or support and dig into the SRH TLV.
> > >
> > >    In summary, it is possible to list the alternative options:
> > >
> > >       Destination Option => measurement only by node in Destination
> > >       Address.
> > >
> > >       Hop-By-Hop Option => every router on the path with feature
> > >       enabled.
> > >
> > >       SRH TLV => every node along the SR path.
> >
> > I think this is only nodes that are identities in the SR path, not ever node along the SR path.
> >
> > [GF]: Sure, I will change this definition here
> >
> >
> > >
> > >       Destination Option + SRH => every node along the SR path.
> > >
> > >    Note that the SRH TLV and Destination Option + SRH can be considered
> > >    equivalent so in this case it may be preferred to use the SRH.
> > >
> > >    Both [RFC7045] and [RFC8200] do not recommend the introduction of new
> > >    Hop-by-Hop Options headers because nodes may be configured to ignore,
> > >    drop or assign to a slow processing path.  But, in case of the
> > >    AltMark data fields described in this document, the new hop-by-hop
> > >    option is needed for OAM and an intermediate node can read it or not
> > >    but, this does not affect the packet behavior.  The source node is
> > >    the only one that writes the hop-by-hop option to mark alternately
> > >    the flow, so, the performance measurement can be done for those nodes
> > >    configured to read this option, while the others are simply not
> > >    considered for the metrics.  Moreover, in case of SRv6, the use of
> > >    SRH TLV for every node along the SR path is a good choice to
> > >    implement hop-by-hop measurements.
> > >
> > >    In addition to the previous alternatives, for legacy network it is
> > >    possible to mention a non-conventional application of the SRH TLV and
> > >    Destination Option for the hop-by-hop usage.  [RFC8200] defines that
> > >    the nodes along a path examine and process the Hop-by-Hop Options
> > >    header only if HBH processing is explicitly configured.  On the other
> > >    hand, using the SRH TLV or Destination Option for hop-by-hop action
> > >    would cause worse performance than Hop-By-Hop.  The only motivation
> > >    for hiding the hop-by-hop options inside of destination options can
> > >    be for compatibility reasons but in general it is not recommended.
> >
> > “hiding” ?   I don’t follow, they aren’t hidden, destination options are processed at the destination.  Please rewrite.
> >
> > [GF]: Yes, I will do. I mean the use of destination option as hbh, but it is not crucial, I can also omit.
> >
> >
> > >
> > > 5.  Alternate Marking Method Operation
> > >
> > >    [RFC8321] and [I-D.ietf-ippm-multipoint-alt-mark] describe in detail
> > >    the methodology.
> > >
> > > 6.  Security Considerations
> > >
> > >    tbc
> >
> > This needs to be looked at.
> >
> > [GF]: Yes, as said above, I will borrow some text from RFC8321.
> >
> > >
> > > 7.  IANA Considerations
> > >
> > >    The option type should be assigned in IANA's "Destination Options and
> > >    Hop-by-Hop Options" registry.  Also, the TLV type should be assigned
> > >    from Segment Routing Header TLVs Registry.
> >
> > Remove the request TLV type.
> >
> > [GF]: see my reply regarding SRH TLV above
> >
> > >
> > --------------------------------------------------------------------
> > IETF IPv6 working group mailing list ipv6@ietf.org Administrative 
> > Requests: https://www.ietf.org/mailman/listinfo/ipv6
> > --------------------------------------------------------------------