Re: [ippm] Benjamin Kaduk's Discuss on draft-ietf-ippm-stamp-option-tlv-07: (with DISCUSS and COMMENT) addressing COMMENTS

Greg Mirsky <gregimirsky@gmail.com> Wed, 22 July 2020 19:41 UTC

Return-Path: <gregimirsky@gmail.com>
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 C42C93A082B; Wed, 22 Jul 2020 12:41:32 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.099
X-Spam-Level:
X-Spam-Status: No, score=-2.099 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, FREEMAIL_FROM=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
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 jFkV59SHLyLl; Wed, 22 Jul 2020 12:41:31 -0700 (PDT)
Received: from mail-lf1-x12c.google.com (mail-lf1-x12c.google.com [IPv6:2a00:1450:4864:20::12c]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 689473A0824; Wed, 22 Jul 2020 12:41:30 -0700 (PDT)
Received: by mail-lf1-x12c.google.com with SMTP id b30so1964606lfj.12; Wed, 22 Jul 2020 12:41:30 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=LhB7p3Ry8NrJ40Hn0mQu3E5cLBhat9slFFivKpeOKKI=; b=B1TeTLFQVe2ymW7b/TBKtV9FA65a2+y+0v8qODoetNLAbjgM6RWA/1qNI8gI4A/yAr URHwWH1S4HqVC+lC7pHXdu+n/lIroX7z9DXWd5Xcm04hsAZbQrFdc9RbjU+b+aZwMcm4 UkwvFUkUAh2I7rxU7s+ss2K55lP+B3U5QwJBUfeJSZFY3iSM721SSQmuwOekthkixjSO YPckfh/gPHFfAlFBi3lpCbuhSiH7qZJHof4ToWZoMX4mLlXZ49ivi5T6nmx7A6NsqwFX oQ/sO5Zg2bc93fCfuBHS9Z3lomhqKE9Am4MPFlg8+izyFspTRaIMPafKJsTJxyqRurjB PifQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=LhB7p3Ry8NrJ40Hn0mQu3E5cLBhat9slFFivKpeOKKI=; b=OqrEGxwhrWo7MZq62c0FHC3KI6AStBgYXfkVc6X3+1Po4R5HGufxHt4Wz9jFEKEj4/ ms1XSuq92tqj3ZvRL+57nlSyHyYYlMkVBH62rO2h2kaCMVT0tlp66/i7MfOQe1VyciYD /3PN0yOELx8ja1vLQNiJswEXvTthVYdwVXFHUHQOkEIalxwOls72R1W74CCqXem1hi13 RGOq3KUGobBwV8Rrs6sMKtwkYJMeYdSHlWQ4PyLp3C4E+EJ9X8weT9Xty1IfRZtrtvmj ywXyKRLzGcQgJdADzdSlPrRffMIza1tqRE6JAPoFz5rGSINxJDwvXblX04K/SIWEAE+0 Y3YA==
X-Gm-Message-State: AOAM530CPWOHBj8U4cz3YAsKXGQ1GTZSoAnYvMbfpsIMYG2GbH26TJBh jso1QzPeyTSLVcuKD9S8565TmYFBZbtQ+89xEOHgnalr
X-Google-Smtp-Source: ABdhPJwo2znSfp2mdPCO8KlbawOUlxaksM28sNC1tVVGFM7jbyk8QAv+0FjpoJC+rpNXn+rEImZiJT2oUEK/IVvUDP4=
X-Received: by 2002:a05:6512:314a:: with SMTP id s10mr411572lfi.123.1595446888233; Wed, 22 Jul 2020 12:41:28 -0700 (PDT)
MIME-Version: 1.0
References: <159478020257.22868.5345083656365195833@ietfa.amsl.com> <CA+RyBmXmTdHQWS_nhzXmj7=J_t1uaC4OPObUvZthZgYm-DzM6A@mail.gmail.com> <20200720232054.GZ41010@kduck.mit.edu> <CA+RyBmXJg6S6N0KdreSx3CvAnLnTwt94vPSGHgju9A92rCjn-g@mail.gmail.com> <20200722041303.GG41010@kduck.mit.edu>
In-Reply-To: <20200722041303.GG41010@kduck.mit.edu>
From: Greg Mirsky <gregimirsky@gmail.com>
Date: Wed, 22 Jul 2020 12:41:17 -0700
Message-ID: <CA+RyBmWeP2=tJS_9xX_iH3s0Z-QkYXCbTCiRizMZesWHKkV8pQ@mail.gmail.com>
To: Benjamin Kaduk <kaduk@mit.edu>
Cc: IPPM Chairs <ippm-chairs@ietf.org>, draft-ietf-ippm-stamp-option-tlv@ietf.org, The IESG <iesg@ietf.org>, Yali Wang <wangyali11@huawei.com>, IETF IPPM WG <ippm@ietf.org>
Content-Type: text/plain; charset="UTF-8"
Archived-At: <https://mailarchive.ietf.org/arch/msg/ippm/2vkmANowSLF8DLfQtlHoZlvD3eA>
Subject: Re: [ippm] Benjamin Kaduk's Discuss on draft-ietf-ippm-stamp-option-tlv-07: (with DISCUSS and COMMENT) addressing COMMENTS
X-BeenThere: ippm@ietf.org
X-Mailman-Version: 2.1.29
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: Wed, 22 Jul 2020 19:41:33 -0000

Hi Ben,
thank you for your expedient response and comments. Please find my
answers and notes below tagged GIM2>>.
I hope the proposed new Location TLV section addresses your concern
related to the NAT64 scenario.

Regards,
Greg

On Tue, Jul 21, 2020 at 9:13 PM Benjamin Kaduk <kaduk@mit.edu> wrote:
>
> Hi Greg,
>
> On Tue, Jul 21, 2020 at 03:05:29PM -0700, Greg Mirsky wrote:
> > Hi Ben,
> > thank you for the detailed response to the proposed updates addressing
> > COMMENTS. I'll work on on the outstanding issues.
> > We've discussed the NAT64 case and below the proposed text for the
> > section on Location TLV. Also, a new IANA request for the sub-registry
> > of sub-TLV types.
> >
> > 4.2.  Location TLV
> >
> >    STAMP Session-Senders MAY include the variable-size Location TLV to
> >    query location information from the Session-Reflector.  The Session-
> >    Sender MUST NOT fill any information fields except for STAMP TLV
> >    Flags, Type, and Length.  The Session-Reflector MUST validate the
> >    Length value against the address family of the transport
> >    encapsulating the STAMP test packet.  If the Length field's value is
>
> It seems like validating this length might cause unnecessary failures when
> a NAT64 is present, if I understand correctly.
GIM2>> Thank you for catching this! This is a leftover from the
fixed-size Location TLV. The updated text follows:
NEW TEXT:
   STAMP Session-Senders MAY include the variable-size Location TLV to
   query location information from the Session-Reflector.  The Session-
   Sender MUST NOT fill any information fields except for STAMP TLV
   Flags, Type, and Length.  The Session-Reflector MUST verify that the
   TLV is well-formed.  If it is not, the Session-Reflector follows the
   procedure defined in Section 4 for a malformed TLV.

>
> >    invalid, the Session-Reflector follows the procedure defined in
> >    Section 4 for a malformed TLV.
> >
> >        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
> >       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
> >       |STAMP TLV Flags| Location Type |           Length              |
> >       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
> >       |        Destination Port       |          Source Port          |
> >       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
> >       ~                         Sub-TLVs                              ~
> >       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
> >
> >                           Figure 8: Location TLV
> >
> >    where fields are defined as the following:
> >
> >    o  STAMP TLV Flags - is an eight-bit-long field.  Its format is
> >       presented in Figure 6.
> >
> >    o  Location Type - is a one-octet-long field, value TBA2 allocated by
> >       IANA Section 5.1.
> >
> >    o  Length - two-octet-long field equal to the length of the Value
> >       field in octets.
> >
> >    o  Destination Port - two-octet-long UDP destination port number of
> >       the received STAMP packet.
> >
> >    o  Source Port - two-octet-long UDP source port number of the
> >       received STAMP packet.
> >
> >    o  Sub-TLVs - a sequence of sub-TLVs, as defined further in this
> >       section.
>
> The "theory of operation" in 4.2.2 helps clarify things a great deal, but
> it might be worth a sentence here about "the sub-TLVs are used by the
> Session-Sender to request location information with generic TLV types, and the
> Session-Reflector responds with the corresponding more-specific sub-TLVs
> for the type of address (e.g., IPv4 or IPv6) used at the Session-Reflector".
GIM>> Thank you for the suggested text. Accepted.
NEW TEXT:
   o  Sub-TLVs - a sequence of sub-TLVs, as defined further in this
      section.  The sub-TLVs are used by the Session-Sender to request
      location information with generic sub-TLV types, and the Session-
      Reflector responds with the corresponding more-specific sub-TLVs
      for the type of address (e.g., IPv4 or IPv6) used at the Session-
      Reflector.
>
> > 4.2.1.  Location Sub-TLVs
> >
> >    A sub-TLV in the Location TLV uses the format displayed in Figure 5.
> >    Handling of the U and M flags in the sub-TLV is as defined in
> >    Section 4.  The I flag MUST be set by a Session-Sender and Session-
> >    Reflector to 0 before transmission and its value ignored on receipt.
> >    The following types of sub-TLV for the Location TLV are defined in
> >    this specification (type values are assigned according to Table 5):
> >
> >    o  Source MAC Address sub-TLV - is a 12-octet-long sub-TLV.  The Type
> >       value is TBA9.  The value of the Length field MUST equal to 8.
> >       The Value field is a 12-octet-long MBZ field that MUST be zeroed
> >       on transmission and ignored on receipt.
> >
> >    o  Source EUI-48 Address sub-TLV - is a 12-octet-long sub-TLV that
> >       includes the EUI-48 source MAC address.  The Type value is TBA10.
> >       The value of the Length field MUST equal to 8.
> >
> >        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
> >       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
> >       |                        EUI-48  Address                        |
> >       +                               +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
> >       |                               |            MBZ                |
> >       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
> >
> >       Figure 9: The Value Field of the Source EUI-48 Address sub-TLV
> >
> >       The Value field consists of the following fields (Figure 9):
> >
> >       *  The EUI-48 is a six-octet-long field.
> >
> >       *  Two-octet-ling MBZ field MUST be zeroed on transmission and
> >          ignored on receipt.
> >
> >    o  Source EUI-64 Address sub-TLV - is a 12-octet-long sub-TLV that
> >       includes the EUI-64 source MAC address.  The Type value is TBA11.
> >       The value of the Length field MUST equal to 12.  The Value field
> >       consists of an eight-octet-long EUI-64 field.
> >
> >    o  Destination IP Address sub-TLV - is a 20-octet-long sub-TLV.  The
> >       Type value is TBA12.  The value of the Length field MUST equal to
> >       16.  The Value field consists of a 16-octet-long MBZ field that
> >       MUST be zeroed on transmit and ignored on receipt
> >
> >    o  Destination IPv4 Address sub-TLV - is a 20-octet-long sub-TLV that
> >       includes IPv4 destination address.  The Type value is TBA13.  The
> >       value of the Length field MUST equal to 16.
> >
> >        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
> >       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
> >       |                         IPv4 Address                          |
> >       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
> >       ~                        MBZ (12 octets)                        ~
> >       |                                                               |
> >       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
> >
> >             Figure 10: IPv4 Address in a Sub-TLV's Value Field
> >
> >       The Value field consists of the following fields (Figure 10):
> >
> >       *  The IPv4 Address is a four-octet-long field.
> >
> >       *  12-octet-long MBZ field MUST be zeroed on transmit and ignored
> >          on receipt.
> >
> >    o  Destination IPv6 Address sub-TLV - is a 20-octet-long sub-TLV that
> >       includes IPv6 destination address.  The Type value is TBA14.  The
> >       value of the Length field MUST equal to 16.  The Value field is a
> >       16-octet-long IP v6 Address field.
> >
> >    o  Source IP Address sub-TLV - is a 20-octet-long sub-TLV.  The Type
> >       value is TBA15.  The value of the Length field MUST equal to 16.
> >       The Value field is a 16-octet-long MBZ field that MUST be zeroed
> >       on transmit and ignored on receipt
> >
> >    o  Source IPv4 Address sub-TLV - is a 20-octet-long sub-TLV that
> >       includes IPv4 source address.  The Type value is TBA16.  The value
> >       of the Length field MUST equal to 16.  The Value field consists of
> >       the following fields (Figure 10):
> >
> >       *  The IPv4 Address is a four-octet-long field.
> >
> >       *  12-octet-long MBZ field that MUST be zeroed on transmit and
> >          ignored on receipt.
> >
> >    o  Source IPv6 Address sub-TLV - is a 20-octet-long sub-TLV that
> >       includes IPv6 source address.  The Type value is TBA17.  The value
> >       of the Length field MUST equal to 16.  The Value field is a 16-
> >       octet-long IPv6 Address field.
> >
> > 4.2.2.  Theory of Operation of Location TLV
> >
> >    The Session-Reflector that received an extended STAMP packet with the
> >    Location TLV MUST include the Location TLV of the size equal to the
> >    size of Location TLV in the received packet in the reflected packet.
> >    Based on the local policy, the Session-Reflector MAY leave some
> >    fields unreported by filling them with zeroes.  An implementation of
> >    the stateful Session-Reflector MUST provide control for managing such
> >    policies.
> >
> >    A Session-Sender MAY include the Source MAC Address sub-TLV is the
> >    Location TLV.  If the Session-Reflector receives the Location TLV
> >    that includes the Source MAC Address sub-TLV, it MUST include the
> >    Source EUI-48 Address sub-TLV if the source MAC address of the
> >    received extended test packet is in EUI-48 format.  And the Session-
> >    Reflector MUST copy the value of the source MAC address in the EUI-48
> >    field.  Otherwise, the Session-Reflector MUST use the Source EUI-64
> >    Address sub-TLV and MUST copy the value of the Source MAC address
> >    from the received packet into the EUI-64 field.  If the received
> >    extended STAMP test packet does not have the Source MAC address, the
> >    Session-Reflector MUST zero the EUI-64 field before transmitting the
> >    reflected packet.
> >
> >    A Session-Sender MAY include the Destination IP Address sub-TLV is
> >    the Location TLV.  If the Session-Reflector receives the Location TLV
> >    that includes the Destination IP Address sub-TLV, it MUST include the
> >    Destination IPv4 Address sub-TLV if the source IP address of the
> >    received extended test packet is of IPv4 address family.  And the
> >    Session-Reflector MUST copy the value of the destination IP address
> >    in the IPv4 Address field.  Otherwise, the Session-Reflector MUST use
> >    the Destination IPv6 Address sub-TLV and MUST copy the value of the
> >    destination IP address from the received packet into the IPv6 Address
> >    field.
> >
> >    A Session-Sender MAY include the Source IP Address sub-TLV is the
> >    Location TLV.  If the Session-Reflector receives the Location TLV
> >    that includes the Source IP Address sub-TLV, it MUST include the
> >    Source IPv4 Address sub-TLV if the source IP address of the received
> >    extended test packet is of IPv4 address family.  And the Session-
> >    Reflector MUST copy the value of the source IP address in the IPv4
> >    Address field.  Otherwise, the Session-Reflector MUST use the Source
> >    IPv6 Address sub-TLV and MUST copy the value of the source IP address
> >    from the received packet into the IPv6 Address field.
> >
> >    The Location TLV MAY be used to determine the last-hop IP addresses,
> >    ports, and last-hop MAC address for  STAMP packets.  The MAC address
> >    can indicate a path switch on the last hop.  The IP addresses and UDP
> >    ports will indicate if there is a NAT router on the path.  It allows
> >    the Session-Sender to identify the IP address of the Session-
> >    Reflector behind the NAT, and detect changes in the NAT mapping that
> >    could cause sending the STAMP packets to the wrong Session-Reflector.
> >
> > 5.3.  Sub-TLV Type Sub-registry
> >
> >    IANA is requested to create the sub-TLV Type sub-registry as part of
> >    the STAMP TLV Type registry.  All code points in the range 1 through
>
> Ah, interesting.  My assumption from the way that the -07 talked about
> sub-TLVs was that the TLV type codes for top-level TLVs and sub-TLVs would
> be assigned from the same registry.  I'm okay with being wrong (separate
> registries feels more natural to me), so it's good to see this clarified.
> It may be worth a note about whether the same sub-TLV types are to be used
> in all TLVs that have sub-TLVs, or whether the sub-TLV types are further
> scoped by the type of the containing TLV.  If that makes sense (too many
> "TLV"s makes for tough reading).
GIM2>> First, we've made the new sub-registry TLV-specific - Location
TLV sub-TLV types. But it is possible that some sub-TLVs might be used
in different TLVs, like in LSP ping.
Separate registries for TLV and sub-TLV types seems to make it
cleaner. A single sub-registry for sub-TLV might cause us some pain in
the future (again, as we've learned from LSP ping experience).

>
> Thanks,
>
> Ben
>
> >    175 in this registry shall be allocated according to the "IETF
> >    Review" procedure as specified in [RFC8126].  Code points in the
> >    range 176 through 239 in this registry shall be allocated according
> >    to the "First Come First Served" procedure as specified in [RFC8126].
> >    The remaining code points are allocated according to Table 4:
> >