Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Allow provisional registrations for all registries #3170

Merged
merged 7 commits into from
Dec 9, 2019
Merged

Conversation

martinthomson
Copy link
Member

@martinthomson martinthomson commented Oct 30, 2019

This overhauls the system for IANA registries to use a unified scheme that allows provisional registration. This seems pretty complicated in terms of nailing down all the corner cases, but it is fairly simple in practice:

  • Provisional registration is easy, it only requires that the requester provide contact information and (ideally) the codepoint they want. They could provide more, but at their discretion.

  • Permanent registration requires that you fill out the fields.

Experts are required for both, but only really to prevent spam. We have a few more requirements for permanent registrations of frame types, but that is more for the purposes of advice, because sending an new frame leads to protocol errors if you haven't agreed to that in the past.

I've sketched out a strawman for a codepoint reclamation process. That advises that experts try to find some use of the codepoint. There is a date on registrations that can guide the selection of codepoints to reclaim, but these can be updated any time by anyone who wants to keep the registration "live".

I wanted to sketch this out for transport first, but I intend to update this PR with changes to the HTTP draft if these policies are agreeable.

Closes #3109.
Closes #3020.
Closes #3102.

This overhauls the system for IANA registries to use a unified scheme
that allows provisional registration.  This seems pretty complicated in
terms of nailing down all the corner cases, but it is fairly simple in
practice:

* Provisional registration is easy, it only requires that the requester
provide contact information and (ideally) the codepoint they want.
They could provide more, but at their discretion.

* Permanent registration requires that you fill out the fields.

Experts are required for both, but only really to prevent spam.  We have
a few more requirements for permanent registrations of frame types, but
that is more for the purposes of advice, because sending an new frame
leads to protocol errors if you haven't agreed to that in the past.

I've sketched out a strawman for a codepoint reclamation process.  That
advises that experts try to find some use of the codepoint.  There is a
date on registrations that can guide the selection of codepoints to
reclaim, but these can be updated any time by anyone who wants to keep
the registration "live".

Closes #3109. Closes #3020.
@martinthomson martinthomson added design An issue that affects the design of the protocol; resolution requires consensus. -transport labels Oct 30, 2019
@mikkelfj
Copy link
Contributor

Could contact information be replaced with a domain name. There is much abuse of contact information and domain names can have private contact information? Also, maintaining an email address is harder over time. I realize the field contact field doesn't say email, but that is sort of implied.

@hardie
Copy link

hardie commented Oct 30, 2019 via email


The creation of a registries MAY identify a range of codepoints where
registrations are governed by a different registration policy. For instance,
the registries for 62-bit codepoints in this document have stricted policies for
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

typo: stricter


Any stricter requirements for permanent registrations do not prevent provisional
registrations for affected codepoints. For instance, a provisional registration
for a frame type {{iana-frames}} of 61 could be requested.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this example contradicts these two statements from this PR?

The "QUIC Frame Types" registry [...] values between 0x00 and 0x3f are assigned using Standards Action or IESG Approval.

Provisional registrations require Expert Review.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You clipped the key piece of the first quote:

Permanent registrations in this registry are assigned using [...] except for values between 0x00 and 0x3f [...] which are assigned using Standards Action or IESG Approval [...]

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah, thanks for clarifying.

If we decide to allow provisional in [0, 63], then we should add text explaining how the Expert Reviewer should handle those requests, because (unless I missed another sentence) it sounds like they're currently instructed to grant all values except for the first unassigned value. I worry that [0, 63] will fill up pretty quickly if we allow provisional use.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I share that worry, but I'm trying to let those go. The main pressure here is that if things start filling up, then we start ejecting registrations sooner.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I fear that ejecting won't always be possible if the provisional code point is widely used. I think disallowing provisional for [0, 63] might be best.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We're talking about abuse now. Those same people could just deploy in this space without creating a registration.

Copy link
Contributor

@MikeBishop MikeBishop left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Minor nits; otherwise looks good.

draft-ietf-quic-transport.md Outdated Show resolved Hide resolved
draft-ietf-quic-transport.md Outdated Show resolved Hide resolved
draft-ietf-quic-transport.md Outdated Show resolved Hide resolved
draft-ietf-quic-transport.md Outdated Show resolved Hide resolved
Copy link
Contributor

@MikeBishop MikeBishop left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In lots of places, you reference {{iana-policy}} for things that aren't actually described there -- it just contains a pointer to the QUIC spec for the policy. It might be better to point directly to the QUIC spec in those places. (Though given that the section number in QUIC could potentially change, it's also a reasonable argument that we want to have one place to update.) Just want to make sure that's intentional, rather than a copy-paste of the policy from the QUIC registries.

@martinthomson
Copy link
Member Author

I did that intentionally, mostly just to avoid the wordy reference. I'm happy to defer to you on that. (Julian can say "told you so" again if he likes :)

@martinthomson martinthomson dismissed MikeBishop’s stale review December 9, 2019 01:20

An editorial suggestion that Mike can sort out later

@martinthomson martinthomson merged commit f93eca7 into master Dec 9, 2019
@martinthomson martinthomson deleted the provisional branch December 9, 2019 01:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
-transport design An issue that affects the design of the protocol; resolution requires consensus.
Projects
None yet
5 participants