Re: [regext] draft-ietf-regext-epp-fees-02.txt: currency error handling, command wildcard

"Gould, James" <jgould@verisign.com> Tue, 28 March 2017 13:09 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 6ECA412965A for <regext@ietfa.amsl.com>; Tue, 28 Mar 2017 06:09:22 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.002
X-Spam-Level:
X-Spam-Status: No, score=-2.002 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RP_MATCHES_RCVD=-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=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 Ubk9pQqnbwO4 for <regext@ietfa.amsl.com>; Tue, 28 Mar 2017 06:09:19 -0700 (PDT)
Received: from mail1.verisign.com (mail1.verisign.com [72.13.63.30]) (using TLSv1.2 with cipher RC4-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 0476E12940D for <regext@ietf.org>; Tue, 28 Mar 2017 06:09:13 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=verisign.com; l=8278; q=dns/txt; s=VRSN; t=1490706554; h=from:to:subject:date:message-id:content-id: content-transfer-encoding:mime-version; bh=1Cfc3FDd2oDQ9sGz9KyGDXrDU5CFxGZnYy6qtP3o8rA=; b=XVHXI9BSuX/KtQ1Um+XR+ELzjwwYFdqpL/z1Kg9FZYc3yPuxI5KUVWw6 m4qPGOSKCif3ADiQsBboRJzA/JpoBWQKj0DVl3BukGCItYsw/fZVAYzUS MQEyZkWeXUjsdBaO/URoQCx06WLPQjvTPn5hJgY1qhPuf+oHJ0sn5F/NI coPQNaY+3Q1183el2fzR6+ErrFdoQKPXbbNmWXVT1XqmQ5DAj8j1WGbXq +wRXm4Wyo8mPhCLz9zpI5vGSqWkLs1hgFjgGamyr3YvZm/Tod9238JTOr pyad0Y7QIJS9+VMDCc+fVZXcpYSHuZUpeiPzQbbqCr8qzB4bs4cv9peto w==;
X-IronPort-AV: E=Sophos;i="5.36,236,1486425600"; d="scan'208";a="2340182"
IronPort-PHdr: 9a23:Vws/kxMZ7zAhvbI0cVsl6mtUPXoX/o7sNwtQ0KIMzox0K/z9ocbcNUDSrc9gkEXOFd2CrakV16yO6+jJYi8p2d65qncMcZhBBVcuqP49uEgeOvODElDxN/XwbiY3T4xoXV5h+GynYwAOQJ6tL1LdrWev4jEMBx7xKRR6JvjvGo7Vks+7y/2+94fdbghMizexe69+IAmrpgjNq8cahpdvJLwswRXTuHtIfOpWxWJsJV2Nmhv3+9m98p1+/SlOovwt78FPX7n0cKQ+VrxYES8pM3sp683xtBnMVhWA630BWWgLiBVIAgzF7BbnXpfttybxq+Rw1DWGMcDwULs5Qiqp4bt1RxD0iScHLz85/3/Risxsl6JQvRatqwViz4LIfI2ZMfxzdb7fc9wHX2pMRsZfWTJcDIOgYYUBDOQOPedEoIfyqFQDtge+ChKpBO/z1jNFnH370Ksn2OohCwHG2wkgEsoAvHrVq9X1KaMSXv2twKLVyTvMdfZW1inm6ITGbxsspvOMXb13ccrMzUkgChjIjkuOpoz/PjOVzeUNs2ed7+Z6Se2vjGsnphh3rzOyyMksjYzJiZgUylDC7Sh53pg6Jce5SE5gYN6kH51QtyCcN4RqWM8tX2ZouCMixr0Hp5G7YCYKxI4gxx7FZPyKdZWD7BH7VOuJPDt0mGhpdK+9ihu860Ss1+3xW8eu3FpUoSdIncHAum0R2xDJ98SKSPVw8l281TuPyQzf8O5JLEYpnqTBMZEh2KQ/lp8LvETGGS/5hVv5gbeNdkUh5uio8+PnYqj6ppOEN497lAX+MqM2l8OkG+Q4NBUCX2yU+OS5zrLj/En5QLJXjv0qjqXVrYrWJdoFqa6jAg9VyYcj6xm5Dzu8zNsYmnwHIEpEeBKBkYfpJ0nDLO3kAfulnlihkjlmy+rbMrDhDJjBNGbPnbjucLpl7k5T0gszzdRR55JODbEBJer+Wk3+tNzfEx85NxG7zv35CNpjzIMeWHmPAq6WMKPUq1OH+uUvI+yUaI8PpDn9M+Ql5+LpjXIhg18SY6ap0oUYaXCkBflmIluWYWbigtsbFmcKpAU+RvTwiFKeST5Te2qyX6Uk6zEhFo2mFZ3PSZ2qgLydxiu7GJpWZnhdB1CDFHfnbYSEW/MWZC2OJc9hlyQOVaK9RI85yRGuqAj6xqJ5IOrU/S0YsIjs1MNv6+DNkhEy7yB0ANqG3mGOSWF0n3sIRycs0K9iv0MugmuEhJR4hPlRDpR44OlVX09uCZ7byuVhTfv1QB7MVtSPSU6+BNmrV3V5ZN8rxd8HeUo1Idi/khbOxW+EAqQel7GRTMgu/7qa03/tYcB6017J0aAgix8tRc4ZcSW8i6Fy5xSbU5TEnEiJi46reLgSminX+zHQ43CJuRQSfwltVamBFVIWY0bN55yt5EzFUruiIaoqKApayMGEbKBNb4u63h19WP7/NYGGMCqKkGCqCEPNn+vUYQ==
X-IPAS-Result: A2GbAQCSX9pY//SZrQpaAxwBAQQBAQoBARcBAQQBAQoBAYQKgQsHg1uKD5ExlWuBS0MaEIUuShyDRhgBAQEBAQEBAQEBAQKBEIIzIgEMLBohCwEBAQEBASYBAQEBAQEBAQEBAQEdAgg2EgEaBiMRE0QBCA0NAiYCBDAVEgQBEooVrDqCJoM+hxABAQEBBgEBAQEBAQEhgQuFRIIECIJihDcBAQUWFwomgj8ugjEFj2GMeQYBhnuOI45jk2ofgT1ZFUERAYRGHRmBSnUBhz6BIYENAQEB
Received: from brn1wnexcas01.vcorp.ad.vrsn.com (brn1wnexcas01 [10.173.152.205]) by brn1lxmailout01.verisign.com (8.13.8/8.13.8) with ESMTP id v2SD9B7n028357 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=FAIL); Tue, 28 Mar 2017 09:09:12 -0400
Received: from BRN1WNEXMBX01.vcorp.ad.vrsn.com ([::1]) by brn1wnexcas01.vcorp.ad.vrsn.com ([::1]) with mapi id 14.03.0301.000; Tue, 28 Mar 2017 09:09:10 -0400
From: "Gould, James" <jgould@verisign.com>
To: Thomas Corte <Thomas.Corte@knipp.de>, Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>, regext <regext@ietf.org>
Thread-Topic: Re: [regext] draft-ietf-regext-epp-fees-02.txt: currency error handling, command wildcard
Thread-Index: AQHSp8R8dgOav7nA3UuL9tYyJOOBJQ==
Date: Tue, 28 Mar 2017 13:09:09 +0000
Message-ID: <216C099C-41E6-48EA-8925-E239AA3F2015@verisign.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
user-agent: Microsoft-MacOutlook/f.1f.0.170216
x-originating-ip: [10.173.152.4]
Content-Type: text/plain; charset="utf-8"
Content-ID: <B08D7E1D2E49DB498F992C7983826586@verisign.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
Archived-At: <https://mailarchive.ietf.org/arch/msg/regext/d5rEHwBhtEyxF6uBYbyclGXudIo>
Subject: Re: [regext] draft-ietf-regext-epp-fees-02.txt: currency error handling, command wildcard
X-BeenThere: regext@ietf.org
X-Mailman-Version: 2.1.22
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: Tue, 28 Mar 2017 13:09:23 -0000

I agree that the entire check command should not fail due to passing of an incorrect domain name, currency, command, period, or phase, but instead the extension should return the fee as unable for the specific domain name with a reason.  This is similar to how the availability check works, where if an invalid domain name is passed in the list of domain names, the availability check returns successfully but with the avail=”false” for the invalid domain name.  The check command should return a success with the appropriate availability (object or fee) indicated in the response for each object.    

I had an action item from the working session yesterday to describe the proposal for the extension to the check response that matches Option C discussed at IETF-95.  The “more complex option” outlined in the list message https://www.ietf.org/mail-archive/web/eppext/current/msg00883.html provides an example of the extension to the check command and response for what was called Option C.  Option C included a single currency and a list of commands that is applied to all the domains in the availability check.  In the case of an invalid currency, the <fee:cd avail=”false”> with a <fee:reason>Invalid currency</fee:reason> could be returned for each of the domain names in the check instead of returning a failure to the availability check.  In this case Option C truly is an extension of the check with a single set of requested fee information.  

C: <?xml version="1.0" encoding="utf-8" standalone="no"?>
C: <epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
C:   <command>
C:     <check>
C:       <domain:check
C:         xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
C:         <domain:name>domain.example</domain:name>
C:         <domain:name>reserved.example</domain:name>
C:       </domain:check>
C:     </check>
C:     <extension>
C:       <fee:check
C:         xmlns:fee="urn:ietf:params:xml:ns:fee-0.9">
C:         <fee:currency>USD</fee:currency>
C:         <fee:command name="create"/>
C:         <fee:command phase="open" name="renew">
C:           <fee:period unit="y">1</fee:period>
C:         </fee:command>
C:         <fee:command phase="open" name="create"/>
C:         <fee:command phase="claims" subphase="landrush" name="create"/>
C:         </fee:command>
C:       </fee:check>
C:     </extension>
C:     <clTRID>ABC-12345</clTRID>
C:   </command>
C: </epp>


S: <?xml version="1.0" encoding="utf-8" standalone="no"?>
S: <epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
S:   <response>
S:     <result code="1000">
S:       <msg>Command completed successfully</msg>
S:     </result>
S:     <resData>
S:       <domain:chkData
S:         xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
S:         <domain:cd>
S:           <domain:name avail="1">domain.example</domain:name>
S:         </domain:cd>
S:         <domain:cd>
S:           <domain:name avail="0">reserved.example</domain:name>
S:           <domain:reason>Reserved domain</domain:reason>
S:         </domain:cd>
S:       </domain:chkData>
S:     </resData>
S:     <extension>
S:       <fee:chkData
S:         xmlns:fee="urn:ietf:params:xml:ns:fee-0.9">
S:         <fee:currency>USD</fee:currency>
S:         <fee:cd avail="1">
S:           <fee:objID>domain.example</fee:objID>
S:           <fee:command phase="sunrise" name="create">
S:             <fee:period unit="y">1</fee:period>
S:             <fee:fee description="Application Fee"
S:               refundable="0">5.00</fee:fee>
S:             <fee:fee description="Registration Fee"
S:               refundable="1"
S:               grace-period="P5D">5.00</fee:fee>
S:           </fee:command>
S:           <fee:command phase="open" name="renew">
S:             <fee:period unit="y">1</fee:period>
S:             <fee:fee description="Renewal Fee"
S:               refundable="1"
S:               grace-period="P5D">5.00</fee:fee>
S:           </fee:command>
S:           <fee:command phase="open" name="create">
S:             <fee:period unit="y">1</fee:period>
S:             <fee:fee description="Registration Fee"
S:               refundable="1"
S:               grace-period="P5D">5.00</fee:fee>
S:           </fee:command>
S:           <fee:command phase="claims" subphase="landrush" name="create">
S:             <fee:period unit="y">1</fee:period>
S:             <fee:fee description="Registration Fee"
S:               refundable="1"
S:               grace-period="P5D">10.00</fee:fee>
S:           </fee:command>
S:         </fee:cd>
S:         <fee:cd avail="0">
S:           <fee:objID>reserved.example</fee:objID>
S:           <fee:reason>Reserved domain</fee:currency>
S:         </fee:cd>
S:       </fee:chkData>
S:     </extension>
S:     <trID>
S:       <clTRID>ABC-12345</clTRID>
S:       <svTRID>54322-XYZ</svTRID>
S:     </trID>
S:   </response>
S: </epp>


  
—
 
JG



James Gould
Distinguished Engineer
jgould@Verisign.com

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

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

On 3/28/17, 5:55 AM, "regext on behalf of Thomas Corte" <regext-bounces@ietf.org on behalf of Thomas.Corte@knipp.de> wrote:

    However, for wrong currencies detected within some <fee:object> elements
    of a <fee:check> extension, I'm not sure whether letting the entire
    check command fail with a 2306 error is the best approach.
    
    Instead, the server could still return useful results for other
    <fee:object> elements in the command (which may have contained a correct
    currency), or even return additional information in the <reason>
    elements returned within the <fee:command avail="false"> elements
    returned for all nested <fee:command> affected by the wrong currency.
    I think the draft should be clarified regarding when to create an EPP
    error result as opposed to <fee:command avail="false"> results in the
    response to a <domain:check> command with fee extension.