Re: [regext] Opsdir last call review of draft-ietf-regext-unhandled-namespaces-07

"Gould, James" <jgould@verisign.com> Mon, 08 February 2021 14:42 UTC

Return-Path: <jgould@verisign.com>
X-Original-To: regext@ietfa.amsl.com
Delivered-To: regext@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 37CD63A17F5; Mon, 8 Feb 2021 06:42:29 -0800 (PST)
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, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=verisign.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 rwiWqxRXPdOm; Mon, 8 Feb 2021 06:42:27 -0800 (PST)
Received: from mail1.verisign.com (mail1.verisign.com [72.13.63.30]) (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 E371C3A16EC; Mon, 8 Feb 2021 06:42:26 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=verisign.com; l=8852; q=dns/txt; s=VRSN; t=1612795349; h=from:to:cc:subject:date:message-id:content-id: content-transfer-encoding:mime-version; bh=MaFL6cVE8lnkUokXpWHTBj1nd4eMN2/xcvX0YUc6mwc=; b=acqjmP2DSgqXUOPZUY3Zv4e31RbyqdHZ6jxXERQheypZkmhko3ONbGAh ZoSyrJ4Ouv3Rt/XoFHkKF6kFswD6Nxukg1jo3QonhrCFEZyTGuvjGRECE uio6/5tKtgMyfMeEJmO5BGGdd9n2oV6S2BhlX055KLTXkza/hIvBA95CB 6xb69cKPpIlu46SyTTamzqC7VLAdmAsbmddx7lazaXfqNs+YRg3Npq2Q9 IbgNgpBlDnOW5p644vPnHpmFa3rHIH/AQ508wuKovM527M7h1r8Mwxvy/ RcyDOufTMayOIbKBvsVKGkI7o73gmHW9BZeP+1xVblhw2FGF4zU8/iaVw Q==;
IronPort-SDR: 5XHnSKFjsbxupRywKP21nXo4z09097own3oxvoukzWzXIkKmqQytjJNNxQzOGUEMoXAC7bXfAX +XV6m0sd0pEabR7VqOnmTIWyV/S8ifzyLwTpWidhmUl3JulSeHyvJIHiZdawmm1ywW3AaJFbm8 Ek0ZaC051775SOG6rn8W6XENx0SpivyNKOK9gI5sx1tjiiZ5l+DhNY1X0V+/PlMGKv+zHYLZGr FIEg9lhZdRr8E7CqFUaf6xRvRGb8zvKKmhhtXvNQVfn3fcygox7aBNoEdMoDy4kaHWGCEHgg+U y/A=
X-IronPort-AV: E=Sophos;i="5.81,162,1610409600"; d="scan'208";a="5600217"
Received: from BRN1WNEX01.vcorp.ad.vrsn.com (10.173.153.48) by BRN1WNEX01.vcorp.ad.vrsn.com (10.173.153.48) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2106.2; Mon, 8 Feb 2021 09:42:25 -0500
Received: from BRN1WNEX01.vcorp.ad.vrsn.com ([fe80::a89b:32d6:b967:337d]) by BRN1WNEX01.vcorp.ad.vrsn.com ([fe80::a89b:32d6:b967:337d%4]) with mapi id 15.01.2106.006; Mon, 8 Feb 2021 09:42:25 -0500
From: "Gould, James" <jgould@verisign.com>
To: "bill.wu@huawei.com" <bill.wu@huawei.com>, "ops-dir@ietf.org" <ops-dir@ietf.org>
CC: "draft-ietf-regext-unhandled-namespaces.all@ietf.org" <draft-ietf-regext-unhandled-namespaces.all@ietf.org>, "last-call@ietf.org" <last-call@ietf.org>, "regext@ietf.org" <regext@ietf.org>
Thread-Topic: Opsdir last call review of draft-ietf-regext-unhandled-namespaces-07
Thread-Index: AQHW/iidqFGYmUKX9UuB1vTXuXxJ2Q==
Date: Mon, 08 Feb 2021 14:42:25 +0000
Message-ID: <A4EB5AE5-F37C-44D0-B7A2-F7332423A072@verisign.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
user-agent: Microsoft-MacOutlook/16.41.20091302
x-originating-ip: [10.170.148.18]
Content-Type: text/plain; charset="utf-8"
Content-ID: <10A352DE261F264281D0702C63B096DD@verisign.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
Archived-At: <https://mailarchive.ietf.org/arch/msg/regext/uhWxpQl9cAKoGRw2EWUFkbvploc>
Subject: Re: [regext] Opsdir last call review of draft-ietf-regext-unhandled-namespaces-07
X-BeenThere: regext@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Registration Protocols Extensions <regext.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/regext>, <mailto:regext-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/regext/>
List-Post: <mailto:regext@ietf.org>
List-Help: <mailto:regext-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/regext>, <mailto:regext-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 08 Feb 2021 14:42:29 -0000

Qin,

Thank you for your review and feedback.  I provide responses to your feedback below.  Let me know if you have any additional questions or feedback.

Thanks,

-- 
 
JG



James Gould
Fellow Engineer
jgould@Verisign.com <applewebdata://13890C55-AAE8-4BF3-A6CE-B4BA42740803/jgould@Verisign.com>

703-948-3271
12061 Bluemont Way
Reston, VA 20190

Verisign.com <http://verisigninc.com/>

On 2/6/21, 6:58 AM, "Qin Wu via Datatracker" <noreply@ietf.org> wrote:

    Reviewer: Qin Wu
    Review result: Has Issues

    I have reviewed this document as part of the Operational directorate's ongoing
    effort to review all IETF documents being processed by the IESG.  These
    comments were written with the intent of improving the operational aspects of
    the IETF drafts. Comments that are not addressed in last call may be included
    in AD reviews during the IESG review.  Document editors and WG chairs should
    treat these comments just like any other last call comments.

    This document defines Extensible Provison Protocol (EPP) extension for
    unhandled namespace information conveyed to the client. It allow the server
    return unhandled namespace information that the client can process later. I
    think this document is well documented, however I do have a few questions for
    clarification. Major issue: Not found Minor issues: 1.Section 1: I am not sure
    how unhandled namespace information exchanging between the client and the
    service is compliant with the negotiated services defined in [RFC5730]. Why
    error response is not best choice to return this unhandled namespace
    information for later handling.

JG - Very good question. The first part of your question is associated with how the unhandled namespace information is returned back, which make it compliant with the negotiated services defined in RFC 5730.  The unhandled namespace information is returned in element (e.g., <extValue> <value> element) that is not processed by the XML parser so it won't cause a client-side XML parser error and is not located in a portion of the response (e.g., under <resData> for an object-level extension or under <extension> for a command-response extension) that would be a compliance issue with the RFC 5730 negotiated services.  For the second part of your question, why not return an error response, we need to look at the use case that raised this issue in the first place.  EPP includes a poll queue in RFC 5730 that enables the server to insert notifications (poll messages) for asynchronous consumption by the client using an ordered queue.  The poll queue is dequeued by the client one message at a time by receiving the message and acknowledging the receipt of the message with the server.  While working on the Change Poll Extension (https://tools.ietf.org/html/rfc8590), the question came up what occurs if the new poll message is in the queue, but the client does not support it?  If the lack of client support resulted in an error, the change poll message would represent a poison message that would halt the consumption of the poll queue messages.  Returning the message without consideration of the client services is a compliance issue and returning an error would result in a poison message, which was the driver to come up with a solution.  The EPP protocol already provided a mechanism to return XML information that is not processed by the XML parser, which enabled returning the poll message with the XML information and a signal that a service is not supported by the client that solved the compliance and the poison message issue.  This approach could also be used to optionally return the information and the unsupported service signal in general EPP responses.  The working group did discuss other options, such as changing the order of the messages in the queue, but the unhandled namespace approach was the simplest and most effective approach discussed to solve the problem.


    2. Section 3.1/Section 3.2
    For Unhandled Object-Level Extension in section 3.1 and Unhandled
    Command-Response Extension in section 3.2, I see Template unhandled namespace
    response example for an unsupported command-response extension is same as
    Template unhandled namespace response example for an unsupported object-level
    extension, which make me confused, I am wondering how do we distinguish
    Unhandled Object-Level Extension from Unhandled Command-Response Extension in
    the XML snippet example. Can you clarify this?

JG - The most important signal is that the client lacks support for a particular service defined by the namespace URI, whether it be for a unsupported object-level extension or an unsupported command-response extension.  A client can leverage the referenced NAMESPACE-URI to map up to the type of service defined in the EPP Greeting of the server.  All of the object-level extension namespace URIs are identified using an <objURI> element in the EPP Greeting and all of the command-response extension namespace URIs are identified using a <extURI> element in the EPP Greeting.  

    3. When we say converting from an object response to a general EPP response by
    the server, does it mean the [NAMESPACE-XML] variable should be replaced by the
    object-level extension XML. Where these [NAMESPACE-XML] variable are stored in
    the server? Do we need to maintain the mapping between [NAMESPACE-XML] variable
    and object-level extension XML? Can you clarify this?

JG - What's meant by that is an object-level EPP response includes a <resData> element containing the object-level extension XML referenced by [NAMESPACE-XML].  The object-level extension XML referenced by [NAMESPACE-XML] is moved under a <extValue> <value> element, which is not processed by the XML parser, and the <resData> element is removed from the response.  From the client perspective the response will not look like an object-level extension response, but simply as a general EPP response.  Take a look at how the transfer query response is formatted in RFC 5731 (https://tools.ietf.org/html/rfc5731#section-3.1.3 ) and how it's converted in the example of section 3.1 (https://tools.ietf.org/html/draft-ietf-regext-unhandled-namespaces-07#section-3.1).  The <domain:trnData> element is moved from under the <resData> element to under a <extValue> <value> element and the <resData> element is removed.