On Tue, Oct 01, 2019 at 02:41:20PM +0000, Roger D Carney wrote:
> Good Morning,
> 
> 
> 
> Thanks for your comments Benjamin, please see my responses below, a new 
> revision will be published shortly to address issues brought up in this 
> latest round of comments.
> 
> 
> 
> 
> 
> Thanks
> 
> Roger
> 
> 
> 
> 
> 
> -----Original Message-----
> From: Benjamin Kaduk via Datatracker 
> <nore...@ietf.org<mailto:nore...@ietf.org>>
> Sent: Monday, September 16, 2019 11:26 AM
> To: The IESG <i...@ietf.org<mailto:i...@ietf.org>>
> Cc: 
> draft-ietf-regext-epp-f...@ietf.org<mailto:draft-ietf-regext-epp-f...@ietf.org>;
>  James Gould <jgo...@verisign.com<mailto:jgo...@verisign.com>>; 
> regext-cha...@ietf.org<mailto:regext-cha...@ietf.org>; 
> jgo...@verisign.com<mailto:jgo...@verisign.com>; 
> regext@ietf.org<mailto:regext@ietf.org>
> Subject: Benjamin Kaduk's Discuss on draft-ietf-regext-epp-fees-18: (with 
> DISCUSS and COMMENT)
> 
> 
> 
> Notice: This email is from an external sender.
> 
> 
> 
> 
> 
> 
> 
> Benjamin Kaduk has entered the following ballot position for
> 
> draft-ietf-regext-epp-fees-18: Discuss
> 
> 
> 
> When responding, please keep the subject line intact and reply to all email 
> addresses included in the To and CC lines. (Feel free to cut this 
> introductory paragraph, however.)
> 
> 
> 
> 
> 
> Please refer to https://www.ietf.org/iesg/statement/discuss-criteria.html
> 
> for more information about IESG DISCUSS and COMMENT positions.
> 
> 
> 
> 
> 
> The document, along with other ballot positions, can be found here:
> 
> https://datatracker.ietf.org/doc/draft-ietf-regext-epp-fees/
> 
> 
> 
> 
> 
> 
> 
> ----------------------------------------------------------------------
> 
> DISCUSS:
> 
> ----------------------------------------------------------------------
> 
> 
> 
> I think (at least with the present formulation) we need greater clarity on 
> when the "it's up to server policy whether to include, but that policy must 
> be the same for all transactions" elements (<fee:balance> and 
> <fee:creditLimit>) are returned, as at present there seems to be an internal 
> inconsistency in the text.  Section 3.5 and 3.6 just talk about including 
> them "in responses to all 'transform' or billable commands", but then we have 
> more qualified text such as (but not limited to) in Section 5.2.5 that only 
> has <fee:updData> (and its children) included when the <update> has been 
> processed successfully.  So, are <fee:balance> and <fee:creditLimit> supposed 
> to be included in error responses or not?
> 
> 
> 
> [RDC] I am not sure I see the real issue as I don’t read a conflict here 
> (technically 5.2.5 [and others] don’t say “<fee:updData> (and its children)” 
> can only be included in successful responses, the sections just don’t discuss 
> if “<fee:updData> (and its children)” should/shouldn’t be included in errors. 
> I would assume a server would most likely not return these data on errors, 
> but I also don’t see harm if they do and the extension allows for both.

I'm still at a point where I don't even know what the expected behavior is,
so I can't comment on which text is correct or confusing.  It is sounding
like you think it's okay to not have <fee:balance> returned in error
responses, though, in which case Sections 3.5/3.6 would benefit from
another couple words (e.g., "MUST be included in non-error responses") to
make that clear.

> 
> 
> 
> 
> ----------------------------------------------------------------------
> 
> COMMENT:
> 
> ----------------------------------------------------------------------
> 
> 
> 
> It might be helpful to note somewhere that <fee:cd> stands for "check data", 
> as per stock EPP, since we use the term a few times before we get to the 
> <fee:chkData> context and its definition.
> 
> 
> 
> [RDC] “(check data)” will be added to section 5.1.1 where <fee:cd> is defined.
> 
> 
> 
> Section 1
> 
> 
> 
>    Given the expansion of the DNS namespace, and the proliferation of
> 
>    novel business models, it is desirable to provide a method for EPP
> 
> 
> 
> It's not clear to me whether all readers (whether now or in ten years) will 
> have the context to appreciate what is meant by these background clauses.
> 
> 
> 
> [RDC] I think that is true that not all clients will have the context to 
> appreciate it, but the proliferation of novel business models did lead to the 
> creation of the extension, so it seems like the context is relevant and 
> needed.

I'm not saying you shouldn't give the extra background information; if
anythin I'm saying to give more of it, to record some of what is currently
common knowledge but will probably not be common knowledge in 10 or 20
years.

> 
> 
> Section 3.3
> 
> 
> 
> 
> 
>    When querying for fee information using the <check> command, the
> 
>    <fee:period> element is used to indicate the units to be added to the
> 
>    registration period of objects by the <create>, <renew> and
> 
>    <transfer> commands.  This element is derived from the
> 
>    <domain:period> element described in [RFC5731].
> 
> 
> 
> The word "units" here is really confusing me.  Even after reading the rest of 
> the document (and 5731's definition of periodType) it still feels like 
> there's some words missing here.
> 
> 
> 
> [RDC] Section 3.3 will be updated for clarity: “When querying for fee 
> information using the <check> command, the <fee:period> element is used to 
> indicate the period measured in years or months, with the appropriate units 
> specified using the “unit” attribute, to be added to the registration period 
> of objects by the <create>, <renew> and <transfer> commands.”

Thanks!

> 
> Section 3.4
> 
> 
> 
>    A server MAY respond with multiple <fee:fee> and <fee:credit>
> 
>    elements in the same response.  In such cases, the net fee or credit
> 
>    applicable to the transaction is the arithmetic sum of the values of
> 
>    each of the <fee:fee> and/or <fee:credit> elements.  This amount
> 
>    applies to the total additional validity period applied to the object
> 
>    (where applicable) rather than to any incremental unit.
> 
> 
> 
> "unit" here is also confusing to me, though less so.  I think what's going on 
> here is just the common-sense "the sum of all fees/credits applies for the 
> conceptual 'sum' of all the indicated registry operations taken together", in 
> which case I might suggest to s/incremental unit/individual component of the 
> transaction/.
> 
> 
> 
> [RDC] Section 3.4 will be updated for clarity: “A server MAY respond with 
> multiple <fee:fee> and <fee:credit> elements in the same response.  In such 
> cases, the net fee or credit applicable to the transaction is the arithmetic 
> sum of the values of each of the <fee:fee> and/or <fee:credit> elements.  
> This amount applies to the total additional validity period applied to the 
> object (where applicable).”

That matches what I thought the meaning was and doesn't make me confused;
thanks!

> 
> 
>    description: an OPTIONAL attribute which provides a human-readable
> 
>    description of the fee.  Servers should provide documentation on the
> 
>    possible values of this attribute, and their meanings.  An OPTIONAL
> 
>    "lang" attribute MAY be present to identify the language of the
> 
>    returned text and has a default value of "en" (English).
> 
> 
> 
> I assume we're reusing the "lang" semantics from 5730 (which in turn relies 
> on 4646), but it's probably worth being explicit about it.
> 
> 
> 
> [RDC] “Language identifiers MUST be structured as documented in [RFC4646].” 
> Will be added to the end of the paragraph.
> 
> 
> 
> Section 3.4.3
> 
> 
> 
>    If a <fee:fee> element has a "grace-period" attribute then it MUST
> 
>    also be refundable and the "refundable" attribute MUST be true.  If
> 
>    the "refundable" attribute of a <fee:fee> element is false then it
> 
>    MUST NOT have a "grace-period" attribute.
> 
> 
> 
> If a client receives a response that contravenes these requirements, what 
> should it do?
> 
> 
> 
> [RDC] I think as with any non-conformance the client should notify the server 
> of RFC non-compliance and have the server fix the issue.
> 
> 
> 
> Section 3.5, 3.6
> 
> 
> 
> For these elements that the server MUST include in all responses if it 
> chooses to include them in (any) responses, do we expect that to be global 
> server policy, or potentially tailored to individual clients?
> 
> (Also, I'm vaguely curious how much it could increase the response footprint, 
> not that XML is a terribly concise representation to start
> 
> with.)
> 
> 
> 
> [RDC] Inclusion of these elements is up to server policy.  A server may 
> define a client-specific setting for inclusion or exclusion of this 
> information, but that is unlikely and out-of-scope for the extension.  The 
> EPP packets in general are relatively small (<1k).  The increase in size is 
> not impactful.
> 
> 
> 
> Section 3.7
> 
> 
> 
>    If a server makes use of this element, it should provide clients with
> 
>    a list of all the values that the element may take via an out-of-band
> 
>    channel.  Servers MUST NOT use values which do not appear on this
> 
>    list.
> 
> 
> 
> I think we generally dislike to rely on out-of-band channels to quite this 
> extent, though it's not clearly wrong for this case.  I'm somewhat curious 
> (not necessarily to include in the document) what existing out-of-band 
> channels for this look like, though.
> 
> 
> 
> [RDC] There are several “channels”: contract, report, spreadsheet, reference 
> manuals, etc.
> 
> 
> 
> Section 4
> 
> 
> 
>    The server MUST return avail="0" in its response to a <check> command
> 
>    for any object in the <check> command that does not include the
> 
>    <fee:check> extension for which the server would likewise fail a
> 
>    domain <create> command when no <fee> extension is provided for that
> 
>    same object.
> 
> 
> 
> nit: this wording makes it sound like avail="0" is scoped to the object, as 
> opposed to the check data.  So maybe s/for any object/if any object/?
> 
> 
> 
> [RDC] The <check> command in RFC 5731 supports checking the availability of 
> multiple objects, where RFC 5730 does not specify whether the <check> command 
> is associated with one or more objects.  The language in section 4 addresses 
> both one object or many objects by using “for any object”.  Changing “for any 
> object” to “if any object” will not cover the many object case.
> 
> 
> 
>    If a server receives a <check> command from a client, which results
> 
>    in no possible fee combination but where a fee is required, the
> 
>    server MUST set the "avail" attribute of the <fee:cd> element to
> 
>    false and provide a <fee:reason>.
> 
> 
> 
> nit: I'm not sure how to interpret "where a fee is required" just given 
> what's in this document.
> 
> 
> 
> [RDC] Section 4 will be updated to remove “but where a fee is required” as it 
> is not needed.
> 
> 
> 
>    If the currency or total fee provided by the client is less than the
> 
>    server's own calculation of the fee for that command, then the server
> 
>    MUST reject the command with a 2004 "Parameter value range" error.
> 
> 
> 
> How can a currency be "less than the server's own calculation"?  (I assume 
> this is supposed to be "currency is different".)
> 
> 
> 
> [RDC] Two separate ideas: “currency” or “total fee provided by the client is 
> less than the…”

Clearly.  But that's not what the quoted text says, so I assume there is a
text change queued up.

> 
> 
> Section 5.1.1
> 
> 
> 
>    When the server receives a <check> command that includes the
> 
>    extension elements described above, its response MUST contain an
> 
>    <extension> element, which MUST contain a child <fee:chkData>
> 
>    element.  The <fee:chkData> element MUST contain a <fee:currency>
> 
>    element and a <fee:cd> for each element referenced in the client
> 
>    <check> command.
> 
> 
> 
> Can we be more precise about "for each element referenced in the client 
> <check> command"?  ("No" is a valid answer.)  Specifically, does this apply 
> to the <domain:check> child elements in the <check>, or to the <fee:check> 
> extension elements, or something else?  (My guess from the examples is the 
> former.)
> 
> 
> 
> [RDC] Correct it applies to the <check> child elements. The last sentence 
> will be updated: “The <fee:chkData> element MUST contain a <fee:currency> 
> element and a <fee:cd> element for each object referenced in the client 
> <check> command”.
> 
> 
> 
>    o  A <fee:command> element matching each <fee:command> (unless the
> 
>       "avail" attribute of the <fee:cd> if false) that appeared in the
> 
>       corresponding <fee:check> of the client command.  This element MAY
> 
>       have the OPTIONAL "standard" attribute, with a default value of
> 
>       "0" (or "false"), which indicates whether the fee matches the fee
> 
>       of the "standard" classification (see section 3.7).  This element
> 
>       MAY have the OPTIONAL "phase" and "subphase" attributes, which
> 
>       SHOULD match the same attributes in the corresponding
> 
>       <fee:command> element of the client command if sent by the client.
> 
> 
> 
> I don't think I see how the SHOULD could be applicable -- doesn't Section 3.8 
> place tight requirements on server behavior and errors regarding 
> phase/subphase in requests?  That is, I think the descriptive "will match" 
> would be appropriate here.
> 
> 
> 
> [RDC] Agreed, section will be updated.
> 
> 
> 
>    The <fee:command> element(s) MAY have the following child elements:
> 
> 
> 
>    o  An OPTIONAL <fee:period> element (as described in Section 3.3),
> 
>       which contains the same unit that appeared in the <fee:period>
> 
>       element of the command.  If the value of the preceding
> 
>       <fee:command> element is "restore", this element MUST NOT be
> 
>       included, otherwise it MUST be included.  If no <fee:period>
> 
>       appeared in the client command (and the command is not "restore")
> 
>       then the server MUST return its default period value.
> 
> 
> 
> I think we need some caveat language ("if present"?) for "the same unit that 
> appeared in the <fee:period> element of the command", since that element is 
> OPTIONAL in the command in question.
> 
> 
> 
> [RDC] Agreed, this section will be updated, changing the first sentence of 
> this bullet to: “An OPTIONAL <fee:period> element (as described in Section 
> 3.3), which contains the same unit, if present, that appeared in the 
> <fee:period> element of the command.”
> 
> 
> 
> nit: is this the "preceding <fee:command> element" or "parent <fee:command> 
> element"?  Also, the rhetorical value of the "OPTIONAL" is unclear, as 
> there's no server choice in the matter -- its presence/absence is fully 
> determined by the <fee:command> value.
> 
> 
> 
> [RDC] Section will be updated, changing to “parent <fee:command> element”.  
> The “OPTIONAL” indicator reflects what’s defined in the XML schema, where the 
> client will not fail processing the response if the <fee:period> element is 
> not returned.
> 
> 
> 
>    If the "avail" attribute of the <fee:cd> element is true and if no
> 
>    <fee:fee> elements are present in a <fee:command> element, this
> 
>    indicates that no fee will be assessed by the server for this
> 
>    command.
> 
> 
> 
>    If the "avail" attribute is true, then the <fee:command> element MUST
> 
>    NOT contain a <fee:reason> element.
> 
> 
> 
> In this second quoted paragraph, is this the "avail" attribute only of 
> <fee:command> or does it apply to <fee:cd> as well?
> 
> 
> 
> [RDC] For clarity this will be updated as: “If the "avail" attribute of the 
> <fee:cd> element is true, then the <fee:command> element MUST NOT contain a 
> <fee:reason> element.”
> 
> 
> 
> Section 5.2.1
> 
> 
> 
>    The server MUST fail the <create> command if the <fee:fee> provided
> 
>    by the client is less than the server fee.
> 
> 
> 
> I think we are more specific about this ("Parameter value range" error) in 
> Section 4, which is also a MUST-level requirement.
> 
> 
> 
> [RDC] Sentence will be removed, already covered by section 4.
> 
> 
> 
> It's perhaps a bit anachronous to have a domain-creation example from
> 
> 1999 when the -00 of this document's precedessor wasn't until 2013.
> 
> 
> 
> Section 5.2.3
> 
> 
> 
> [The examples here are only from 2005; progress!]
> 
> 
> 
> [RDC] Dates will be updated accordingly.
> 
> 
> 
> Section 7
> 
> 
> 
> Thank you for addressing the points discussed in the secdir review.
> 
> That said, the text of this section still feels a bit sparse, with it mostly 
> being bare statements without much discussion of the motivation for or 
> consequences of many of the requirements at hand.  For example, we could say 
> something about why it's important to provide confidentiality/integrity 
> protection for financial data, say more about what the "needed level of [...] 
> protection" is, and reiterate that the transport protocol has to do so 
> because there are no in-band EPP mechanisms to do so.  It would also be fine 
> to reiterate any key considerations from 5730/5731, if there are any that 
> seem particularly relevant (but it's also fine to not do so).
> 
> 
> 
> Also, I think that it's important to add "peer authentication" to the list of 
> protections provided by the transport -- it's important to know who you're 
> talking to when sending financial information!  (Though, the client is just 
> sending its estimate of the server's fee schedule, which is a lot less 
> sensitive than sending its current balance.)
> 
> 
> 
> [RDC] I don’t think there is a need for this extension to duplicate or 
> attempt to redefine the security defined in RFC 5730.

This wass a non-blocking comment, so you're free to ignore it, but I will
note that I proposed several changes that in my opinion are doing neither
of those things.

Thanks for all the updates,

Ben

_______________________________________________
regext mailing list
regext@ietf.org
https://www.ietf.org/mailman/listinfo/regext

Reply via email to