Re: [Uuidrev] Publication has been requested for draft-ietf-uuidrev-rfc4122bis-07

Brad Peabody <brad@peabody.io> Mon, 10 July 2023 14:56 UTC

Return-Path: <brad@peabody.io>
X-Original-To: uuidrev@ietfa.amsl.com
Delivered-To: uuidrev@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 78F43C157B45 for <uuidrev@ietfa.amsl.com>; Mon, 10 Jul 2023 07:56:28 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.895
X-Spam-Level:
X-Spam-Status: No, score=-6.895 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-5, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001] autolearn=unavailable autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=peabody-io.20221208.gappssmtp.com
Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id AfobTuYXo0uw for <uuidrev@ietfa.amsl.com>; Mon, 10 Jul 2023 07:56:24 -0700 (PDT)
Received: from mail-pf1-x42a.google.com (mail-pf1-x42a.google.com [IPv6:2607:f8b0:4864:20::42a]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id A3A2CC153CA8 for <uuidrev@ietf.org>; Mon, 10 Jul 2023 07:56:24 -0700 (PDT)
Received: by mail-pf1-x42a.google.com with SMTP id d2e1a72fcca58-666edfc50deso2912309b3a.0 for <uuidrev@ietf.org>; Mon, 10 Jul 2023 07:56:24 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=peabody-io.20221208.gappssmtp.com; s=20221208; t=1689000984; x=1691592984; h=references:to:cc:in-reply-to:date:subject:mime-version:message-id :from:from:to:cc:subject:date:message-id:reply-to; bh=gnGLA/2NrpdCNDKyoa5CxrZuauO9V8ItWzs/6m+QZlA=; b=fRnpI+M8lN/bILDVt6TPncn5Qjss5UXCpGngoNeIrljfR6Bk7EYV9vgzQ2T6LxkcBr MDMt1f6PLX3wxJux1/880hs4gkKevnqYI//UTk5jFBpkSjl3fS3E+EL2U6r2IdEPIoRn KDdBsChtYyeC1PcT5VJr+zVTbHFpQeA49Xg6vewDoCcqeAKYrhkWdi/nA+PYfSTym+PN tARsjw3bZdMQkyvBMej1UIbWyz9s9FkUwvK98MYBRjTJb5ZbOm4rEdvfOLK8H92zvWG5 FCnFe8I6QYFQTDtcVUMRTNvpEpVOvZcRYRsRhLBFZhnZwZgTiIQsbjnKCmbw2wKdTU1K 0i3A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1689000984; x=1691592984; h=references:to:cc:in-reply-to:date:subject:mime-version:message-id :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=gnGLA/2NrpdCNDKyoa5CxrZuauO9V8ItWzs/6m+QZlA=; b=SIu3w1JX01MqG4fvSAy64smRlpoBDHhoUsyMM/aP8kHvN+7UF22mPB4w3GEdZzjvdi 3mFIfYBBsq93eYGZuyw68KM8evVzUpF6D6HWDYen3IyeCK7aJNqH5cdolvJAvDHrboXQ lDIBV3HiKfP22Vig7Elepl04mn/yBBAWeLI6NGTiRLmETll/skLiM1mqAOFyckfHnG+i VSSaWW2pHEkhGO1dN7+cmZ0AEBW/iCcwXsNtWl+vuum3KltnAmrslIpf2tphazVBZRap 4RE70dYu+l1DI51WaXKy8fj2rOG/uN9Z98Ys7kMjETKL61K2NPZ1C6YOHD0AANDlSvIQ BWrA==
X-Gm-Message-State: ABy/qLYEHj7raoow9Mw4nCZ69aRBu9l9mTneG3poRfKSTq1FT5B+8DF4 ndr+sNMmd6onjnCcVdhvRqrf
X-Google-Smtp-Source: APBJJlF6lNO1KFQvYtRsaqcxSsu5wTM1HJ50nKxppxk/Brn16a5mxf6N6h+FzG3rAxkSITeeqZsNFA==
X-Received: by 2002:a05:6a00:3a04:b0:681:4274:eef0 with SMTP id fj4-20020a056a003a0400b006814274eef0mr16758904pfb.1.1689000983984; Mon, 10 Jul 2023 07:56:23 -0700 (PDT)
Received: from smtpclient.apple (2603-8001-7b00-2998-b194-6ae0-c752-0ef8.res6.spectrum.com. [2603:8001:7b00:2998:b194:6ae0:c752:ef8]) by smtp.gmail.com with ESMTPSA id ey16-20020a056a0038d000b0065da94fe917sm7295270pfb.36.2023.07.10.07.56.22 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Mon, 10 Jul 2023 07:56:23 -0700 (PDT)
From: Brad Peabody <brad@peabody.io>
Message-Id: <46863A89-B283-438A-9DA3-B9044024394A@peabody.io>
Content-Type: multipart/alternative; boundary="Apple-Mail=_A53B912E-06B5-4296-B3F2-44594E2363C6"
Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3696.120.41.1.1\))
Date: Mon, 10 Jul 2023 07:56:21 -0700
In-Reply-To: <PH0PR11MB502934AEF4FE1093B28E1513BB30A@PH0PR11MB5029.namprd11.prod.outlook.com>
Cc: "mcr+ietf@sandelman.ca" <mcr+ietf@sandelman.ca>, "uuidrev-chairs@ietf.org" <uuidrev-chairs@ietf.org>, "uuidrev@ietf.org" <uuidrev@ietf.org>
To: "Kyzer Davis (kydavis)" <kydavis=40cisco.com@dmarc.ietf.org>, "Murray S. Kucherawy" <superuser@gmail.com>
References: <168640474038.62291.15105281985713025169@ietfa.amsl.com> <CAL0qLwaj50A5nvnqbxaKZq1erAU_YBos3VQXd4wp0wL7x9Ntzw@mail.gmail.com> <PH0PR11MB502934AEF4FE1093B28E1513BB30A@PH0PR11MB5029.namprd11.prod.outlook.com>
X-Mailer: Apple Mail (2.3696.120.41.1.1)
Archived-At: <https://mailarchive.ietf.org/arch/msg/uuidrev/0pvYni75xdSivEMGfP1Abq57uO8>
Subject: Re: [Uuidrev] Publication has been requested for draft-ietf-uuidrev-rfc4122bis-07
X-BeenThere: uuidrev@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: Revise Universally Unique Identifier Definitions <uuidrev.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/uuidrev>, <mailto:uuidrev-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/uuidrev/>
List-Post: <mailto:uuidrev@ietf.org>
List-Help: <mailto:uuidrev-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/uuidrev>, <mailto:uuidrev-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 10 Jul 2023 14:56:28 -0000

Thanks for this, Kyzer, the suggested edits GitHub are super helpful.  I’ll see if I can provide any more detailed feedback as needed.

Murray, just to answer a bit more on your question:
> For instance, the first one leaves the possibility of an implementation that doesn't use an increasing clock.  Why isn't this a MUST?  The various "Care SHOULD be taken ..." ones are also curious; why would we allow for this to be a choice? 

My feedback on this is that it’s important that we don’t over-specify things that do not affect interoperability.  From my perspective, what’s happened is that in RFC 4122 there is a whole bunch of detail about how to handle various edge cases, and these then become law and impose complexity on the target environment/implementation, whether it matters or not.  In the example above, most clocks just count forward most of the time, but edge cases exist such as adjustments from NTP or manual clock adjustments.  Some applications will require careful handling of this situation, but I suspect many will not care.  If we impose an exact solution that MUST be implemented for this edge case, the result will be every implementation will have to include the complexity for that edge case in order to be a “compliant” implementation, even though it literally may not matter at all for most implementations, and certainly doesn’t matter in terms of producing an output that is acceptable to another system that needs to receive a UUID.  Same thing on counters and like - I think we want to provide implementation suggestions, but not impose too many “you absolutely must do it this way or your implementation is broken” for things that do not affect interoperability. This line of thinking is also what drives suggestions about opacity and introspection. Implementations generally interoperate much better if they don’t unnecessarily inspect UUIDs, so we suggest people don’t, and instead to just use UUIDs just as opaque identifiers.  However, it’s unreasonable to assume that no implementation will ever parse a UUID and extract a timestamp or something else, and it's not like forbidding this behavior is even helpful because people would do it anyway since it’s technically possible.  That’s why there’s a lot of suggestions about how to generate UUIDs, but fewer strict requirements, because I believe that better models how implementations are done in the real world and what aides interoperability the most.

That’s my take on it, hopefully it at least provides context.

Best, Brad



> On Jul 10, 2023, at 7:34 AM, Kyzer Davis (kydavis) <kydavis=40cisco.com@dmarc.ietf.org> wrote:
> 
> Hello Murray, replies inline, thanks for the AD review!
> 
> Section 3.2 defines "MSB" but that term doesn't appear anywhere in the document.  Same goes for "SHA-224".
> We use MSB as a header item in tables 1 and 2. Should I change them to MSB 0, MSB 1, MSB 3, etc?
>  
> Why the "SHOULD" in Section 4?
> There are a number of other ways to encode 128 bits, “hex-and-dash” is one such way. Binary is another, URN is a third. 
> I guess it doesn’t require any SHOULD/MAY/MUST verbiage? Is that the point?
>  
> GIven the opening text of Section 5.6, should UUID v1 include a forward reference to here?  My thinking is that someone implementing UUID v1 might not read all the way to this section and thus miss the hints that this version is preferred for new applications.
> Makes sense, I can add a reference back to the UUIDv1 section.
> Added as todo under https://github.com/ietf-wg-uuidrev/rfc4122bis/issues/116 <https://github.com/ietf-wg-uuidrev/rfc4122bis/issues/116>
>  
> Same question about 5.7 and UUID versions 1 and 6.
> Agreed, better to be consistent. Also under #116
>  
> Several of the "SHOULD"s in Section 6.1 seem questionable to me.  For instance, the first one leaves the possibility of an implementation that doesn't use an increasing clock.  Why isn't this a MUST?  The various "Care SHOULD be taken ..." ones are also curious; why would we allow for this to be a choice?  Generally below that, the "SHOULD" instances left me wondering why we leave all of these as implementation choices.  Then, in "every UUID generation SHOULD be a random integer of any desired length larger than zero", this allows a length of zero; is that okay?  And lastly, I don't know what "Implementations SHOULD weigh the consequences" or "Care SHOULD be taken" mean from an interoperability perspective.
> Focusing on the SHOULDs as they are always the one where I see problems… Let me address them all.
> Note, I was typing this reply in email. I moved it to a github issue as I know how these MUST/SHOULD/MAY discussions go
> As Such see: https://github.com/ietf-wg-uuidrev/rfc4122bis/issues/114 <https://github.com/ietf-wg-uuidrev/rfc4122bis/issues/114>
>  
> Thanks,
>  
> From: Uuidrev <uuidrev-bounces@ietf.org> On Behalf Of Murray S. Kucherawy
> Sent: Sunday, July 9, 2023 10:56 PM
> To: mcr+ietf@sandelman.ca
> Cc: uuidrev-chairs@ietf.org; uuidrev@ietf.org
> Subject: Re: [Uuidrev] Publication has been requested for draft-ietf-uuidrev-rfc4122bis-07
>  
> On Sat, Jun 10, 2023 at 9:45 AM Michael Richardson via Datatracker <noreply@ietf.org <mailto:noreply@ietf.org>> wrote:
> Michael Richardson has requested publication of draft-ietf-uuidrev-rfc4122bis-07 as Proposed Standard on behalf of the UUIDREV working group.
> 
> Please verify the document's state at https://datatracker.ietf.org/doc/draft-ietf-uuidrev-rfc4122bis/ <https://datatracker.ietf.org/doc/draft-ietf-uuidrev-rfc4122bis/>
>  
> A few things as my AD Review for this document.  It looks generally good, with just some issues with the use of BCP 14 stuff.
> 
> Section 3.2 defines "MSB" but that term doesn't appear anywhere in the document.  Same goes for "SHA-224".
>  
> Why the "SHOULD" in Section 4?
>  
> GIven the opening text of Section 5.6, should UUID v1 include a forward reference to here?  My thinking is that someone implementing UUID v1 might not read all the way to this section and thus miss the hints that this version is preferred for new applications.
>  
> Same question about 5.7 and UUID versions 1 and 6.
>  
> Several of the "SHOULD"s in Section 6.1 seem questionable to me.  For instance, the first one leaves the possibility of an implementation that doesn't use an increasing clock.  Why isn't this a MUST?  The various "Care SHOULD be taken ..." ones are also curious; why would we allow for this to be a choice?  Generally below that, the "SHOULD" instances left me wondering why we leave all of these as implementation choices.  Then, in "every UUID generation SHOULD be a random integer of any desired length larger than zero", this allows a length of zero; is that okay?  And lastly, I don't know what "Implementations SHOULD weigh the consequences" or "Care SHOULD be taken" mean from an interoperability perspective.
>  
> -MSK
> -- 
> Uuidrev mailing list
> Uuidrev@ietf.org
> https://www.ietf.org/mailman/listinfo/uuidrev