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: > >
- [ippm] Benjamin Kaduk's Discuss on draft-ietf-ipp… Benjamin Kaduk via Datatracker
- Re: [ippm] Benjamin Kaduk's Discuss on draft-ietf… Greg Mirsky
- Re: [ippm] Benjamin Kaduk's Discuss on draft-ietf… Benjamin Kaduk
- Re: [ippm] Benjamin Kaduk's Discuss on draft-ietf… Greg Mirsky
- Re: [ippm] Benjamin Kaduk's Discuss on draft-ietf… Benjamin Kaduk
- Re: [ippm] Benjamin Kaduk's Discuss on draft-ietf… Greg Mirsky
- Re: [ippm] Benjamin Kaduk's Discuss on draft-ietf… Benjamin Kaduk
- Re: [ippm] Benjamin Kaduk's Discuss on draft-ietf… Greg Mirsky
- Re: [ippm] Benjamin Kaduk's Discuss on draft-ietf… Greg Mirsky
- Re: [ippm] Benjamin Kaduk's Discuss on draft-ietf… Greg Mirsky
- Re: [ippm] Benjamin Kaduk's Discuss on draft-ietf… Greg Mirsky
- Re: [ippm] Benjamin Kaduk's Discuss on draft-ietf… Benjamin Kaduk