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

Giuseppe Fioccola <> Tue, 18 February 2020 12:42 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 60EED12080D for <>; Tue, 18 Feb 2020 04:42:19 -0800 (PST)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -4.2
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 ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id JMqwDAvtmQxy for <>; Tue, 18 Feb 2020 04:42:16 -0800 (PST)
Received: from ( []) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPS id C02D01207FE for <>; Tue, 18 Feb 2020 04:42:15 -0800 (PST)
Received: from (unknown []) by Forcepoint Email with ESMTP id BD93AC2C97AF5C1CA238; Tue, 18 Feb 2020 12:42:13 +0000 (GMT)
Received: from ( by ( with Microsoft SMTP Server (TLS) id 14.3.408.0; Tue, 18 Feb 2020 12:42:13 +0000
Received: from ( by ( 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 13:42:13 +0100
Received: from ([]) by ([]) with mapi id 15.01.1713.004; Tue, 18 Feb 2020 13:42:12 +0100
From: Giuseppe Fioccola <>
To: Bob Hinden <>, IPv6 List <>
Subject: RE: Comments on <draft-fz-6man-ipv6-alt-mark-05>
Thread-Topic: Comments on <draft-fz-6man-ipv6-alt-mark-05>
Thread-Index: AQHV5d9sj2QFFZZwDUeZxxsOK1m8a6gg0EPQ
Date: Tue, 18 Feb 2020 12:42:12 +0000
Message-ID: <>
References: <>
In-Reply-To: <>
Accept-Language: en-US
Content-Language: en-US
x-originating-ip: []
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-CFilter-Loop: Reflected
Archived-At: <>
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "IPv6 Maintenance Working Group \(6man\)" <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Tue, 18 Feb 2020 12:42:20 -0000

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.



-----Original Message-----
From: ipv6 [] On Behalf Of Bob Hinden
Sent: Monday, February 17, 2020 11:12 PM
To: IPv6 List <>
Cc: Bob Hinden <>
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. 

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:


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.


> 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.
>    [] 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.


[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.


[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.



[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