Subject: Alexey Melnikov's No Objection on draft-ietf-6man-ra-pref64-08: (with COMMENT)

From: Alexey Melnikov via Datatracker <[email-masked]>
Date: Mon, 16 Dec 2019 05:25:18 -0800

Alexey Melnikov has entered the following ballot position for
draft-ietf-6man-ra-pref64-08: No Objection

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-6man-ra-pref64/

----------------------------------------------------------------------
COMMENT:
----------------------------------------------------------------------

I found this document to be well written, but I have one small comment:

In Section 5:

   Lifetime seconds over which this NAT64 prefix MAY be used. The value
            of the Scaled Lifetime field SHOULD by default be set to the
            lesser of 3 x MaxRtrAdvInterval divided by 8, or 8191. The
            receiver MUST multiply the Scaled Lifetime value by 8 (for
            example, by logical left shift) to calculate the maximum
            time in seconds the prefix MAY be used. Lifetime of 0
            indicates that the prefix SHOULD NOT be used anymore. Router
            vendors SHOULD allow administrators to specify non-zero
            lifetime values which are not divisible by 8. In such cases
            the router SHOULD round the provided value up to the lesser
            of nearest integer divisible by 8, or 65528 and divide the
            result by 8 (or just perform a logical right-shift by 3) and
            set the Scaled Lifetime field to the resulting value. If
            such a non-zero lifetime value to be divided by 8 (to be
            subjected to a logical right-shift by 3) is less than 8 then
            the Scaled Lifetime field SHOULD by default be set to 1.

I found this description to be unclear. You are first saying to round the value
up, but then your last sentence looks like a special case, where it is not
supposed to be according to my understanding of the meaning of "round up". I
suggest this text needs more work.

---

From: Jen Linkova <[email-masked]>
Date: Tue, 17 Dec 2019 14:18:17 +1100

Hi Alexey,

> suggest this text needs more work.

Would it be more clear if the one more sentence is added to that paragraph:

"If  such a non-zero lifetime value to be divided by 8 (to be
  subjected to a logical right-shift by 3) is less than 8 then
 the Scaled Lifetime field SHOULD be set to 1.
This is done to ensure that non-zero lifetime is always encoded as
non-zero Scaled Lifetime."

-- 
SY, Jen Linkova aka Furry

---

From: "Alexey Melnikov" <[email-masked]>
Date: Wed, 18 Dec 2019 14:00:13 +0000

Hi Jen,

>  the Scaled Lifetime field SHOULD be set to 1.

I would change this to read:

  "For example, if  such a non-zero lifetime value to be divided by 8 (to be
  subjected to a logical right-shift by 3) is less than 8 then
  the Scaled Lifetime field is set to 1.

I.e. values <8 are a special case of "rounding up".

> non-zero Scaled Lifetime."

This is a helpful addition.

Best Regards,
Alexey