Hi Tom,

Thanks for addressing my comments.

I'm marking the document revised I-D needed, and awaiting your updates.

Regards,

OS, ART AD

On Wed, Jan 29, 2025 at 5:09 PM Tom Harrison <t...@apnic.net> wrote:

> Hi Orie,
>
> Thanks for your review, much appreciated.
>
> On Tue, Jan 28, 2025 at 05:15:49PM -0600, Orie wrote:
> > # Orie Steele, ART AD, comments for draft-ietf-regext-rdap-rir-search-13
> > CC @OR13
> >
> > * line numbers:
> >   -
> https://author-tools.ietf.org/api/idnits?url=https://www.ietf.org/archive/id/draft-ietf-regext-rdap-rir-search-13.txt&submitcheck=True
> >
> > * comment syntax:
> >   - https://github.com/mnot/ietf-comments/blob/main/format.md
> >
> > ## Discuss
> >
> > ### 200 or 404
> >
> > ```
> > 715   If the search can be processed by the server, but there are no
> > 716   results for the search, then the server returns an HTTP 200 (OK)
> > 717   [RFC9110] response code, with the body of the response containing
> an
> > 718   empty results array.
> > ```
> >
> > https://www.rfc-editor.org/rfc/rfc7480.html#section-5.3 implies that a
> 404
> > MUST be returned.
>
> Thanks, we will update this part of the document to note that a 404
> should be returned in this case.
>
> > ### Bare identifiers
> >
> > The shepherd writeup comments on the use of "bare identifiers", and I
> > recall some discussion regarding possible collisions.
> >
> > I didn't see anything about this in security considerations, are there
> some
> > "valid but harmful" examples that we can share to warn implementers, or
> has
> > this issue been resolved?
>
> There was some discussion about the risk of collision when bare
> identifiers are used as path segments under existing path segments, as
> is the case here with '/domains/rirSearch1/<relation>/<domain name>'
> (the '/domains' path is defined in RFC 9082,
> https://www.rfc-editor.org/rfc/rfc9082.html#section-3.2.1).  See
> https://mailarchive.ietf.org/arch/msg/regext/YtvMiv3xoNnxqBomm5lyTqrEgqo/
> from Scott Hollenbeck:
>
>     Please note that the domain relation search function described in
>     the draft is apparently extending the core "domains" search
>     described in RFC 9082. Both currently use "domains" in the path
>     segment. That isn't optimal. There is no collision with the "ip"
>     and "autnum" path segments from 9082 because those values are
>     singular. This draft uses the plural forms "ips" and "autnums".
>
>     If there's some reason that the above is invalid, please explain
>     why.  The "rirSearch1" identifier appears in path segments and the
>     rdapConformance data structure, but I don't see how it actually
>     identifies an extension element unless it's intended to
>     disambiguate the "domains" search collision I noted above. If
>     that's the case, use of the extension prefix to create
>     "rs_domains" would avoid the collision entirely.
>
> and
> https://mailarchive.ietf.org/arch/msg/regext/nHfJg1hA0h5RcEDzn0M3WQ63on4/
> (also from Scott), where it was noted that there is no collision
> problem in this instance, because '/domains' queries per RFC 9082 can
> be unambiguously distinguished from '/domains/rirSearch1' queries per
> this draft.  Additionally, from
> https://mailarchive.ietf.org/arch/msg/regext/X5vlp8Il8WVg8S0bouV8mKz_UXk/
> (also from Scott):
>
>     Mario, my concern about a possible collision arose because
>     “domains” (from RFC 9082) === “domains” (from the draft). I’m not
>     sure if the draft is specifying a new “domains” path segment (in
>     which case the names do collide), or if the draft is extending the
>     9082 path segment by adding additional elements to the path. My
>     confusion exists because the draft isn’t using prefixed extension
>     identifiers. The situation would be unambiguous if the draft used
>     something like “rs_domains”, or “domains/rs_rirSearch1”. The
>     prefix is a clear indicator of what’s being extended. In my
>     exchange with Jasdip I did note that there’s no operational issue
>     here even if there is a collision because a properly formed query
>     will contain other information that enables a server to correctly
>     process both 9082 queries and RIR search queries, though I’d
>     prefer that the information included an extension identifier
>     prefix.
>
> To summarise, there isn't a collision problem in this document itself,
> so we don't think that any text about that is needed here, though it
> may be a good idea to add something about that to the extensions
> document
> (https://datatracker.ietf.org/doc/draft-ietf-regext-rdap-extensions/).
>
> On the related topic of bare identifiers,
> https://www.rfc-editor.org/rfc/rfc9082.html#section-5 has:
>
>     Custom path segments can be created by prefixing the segment with
>     a unique identifier followed by an underscore character (0x5F).
>     For example, a custom entity path segment could be created by
>     prefixing "entity" with "custom_", producing "custom_entity".
>
> and https://www.rfc-editor.org/rfc/rfc9083.html#section-2.1 has:
>
>     Servers that insert such unspecified members into JSON responses
>     SHOULD have member names prefixed with a short identifier followed
>     by an underscore followed by a meaningful name.
>
> both of which run counter to the concept of bare identifiers.
> https://mailarchive.ietf.org/arch/msg/regext/9ZJ8P51rEIJs0jw0OnPIH0cnPGI/
> sets out the authors' reasons for using bare identifiers
> notwithstanding the text in RFC 9082 and RFC 9083 on this topic.
>
> > ## Comments
> >
> > ### Better Search Example Syntax?
> >
> > Instead of:
> >
> > ```
> > 157   ips?handle=XXXX
> > ```
> >
> > Consider syntax like:
> >
> > ```
> > Client request:
> >
> > GET .well-known/api-catalog HTTP/1.1
> > Host: example.com
> > Accept: application/linkset+json
> >
> >
> > Server response:
> >
> >   HTTP/1.1 200 OK
> >   Date: Mon, 01 Jun 2023 00:00:01 GMT
> >   Server: Apache-Coyote/1.1
> >   Content-Type: application/linkset+json;
> >       profile="THIS-RFC-URL"
> >
> > {
> >   "linkset": [
> >   {
> > ....
> > ```
> >
> > (borrowed from -
> > https://datatracker.ietf.org/doc/draft-ietf-httpapi-api-catalog/08/)
>
> We would prefer to use the existing syntax, for consistency with the
> searches defined in RFC 9082.
>
> > ### Top/Bottom
> >
> > Is there a reason that `192.0.2.128/25` <http://192.0.2.128/25> is
> missing from:
> >
> > ```
> > 391     +==================+===========================================+
> > 392     | INR object value | Bottom objects                            |
> > 393     +==================+===========================================+
> > 394     | 192.0.2.0/24     | 192.0.2.0/25, 192.0.2.0/28, 192.0.2.0/32, |
> > 395     |                  | 192.0.2.128/26, 192.0.2.192/26            |
> > 396     +------------------+-------------------------------------------+
> > 397     | 192.0.2.0/25     | 192.0.2.0/25, 192.0.2.0/28, 192.0.2.0/32  |
> > 398     +------------------+-------------------------------------------+
> > 399     | 192.0.2.128/25   | 192.0.2.128/26, 192.0.2.192/26            |
> > 400     +------------------+-------------------------------------------+
> > ```
> >
> > I expected to see text explaining why `192.0.2.0/25`
> <http://192.0.2.0/25> is present but `
> > 192.0.2.128/25` <http://192.0.2.128/25> is not.
>
> The set of bottom objects comprises the most-specific objects that
> entirely cover the specified object value.  '192.0.2.0/25' is present
> as a bottom object for '192.0.2.0/24' because it is the most-specific
> object in the hierarchy for the addresses in '192.0.2.0/25', save for
> those addresses that fall within '192.0.2.0/28' and '192.0.2.0/32'
> (i.e. it's fine for the set of bottom objects to overlap, if that's
> what's required to cover the specified object value).
> '192.0.2.128/25' is not present as a bottom object for '192.0.2.0/24'
> because it is itself completely covered by more specific objects,
> being '192.0.2.128/26' and '192.0.2.192/26'.
>
> > I also wonder why `192.0.2.0/25` <http://192.0.2.0/25> is repeated in
> its bottom objects,
> > whereas `192.0.2.128/25` <http://192.0.2.128/25> is not.
>
> The answer here is similar to the previous one.  '192.0.2.0/25' is not
> completely covered by more-specific objects, so it is included in its
> set of bottom objects.  Whereas '192.0.2.128/25' is completely covered
> by more-specific objects, so it is omitted from its set of bottom
> objects.
>
> > ### SHOULD return 501?
> >
> > ```
> > 505   By default, any valid status value may be used for status
> filtering.
> > 506   Server operators MAY opt not to support "status" filtering for the
> > 507   "down" and "bottom" link relations, in which case the server should
> > 508   respond with an HTTP 501 (Not Implemented) [RFC9110] response code
> if
> > 509   it receives such a request.  Server operators MAY also opt not to
> > ```
>
> Thanks, we will update this to SHOULD.
>
> -Tom
>
> _______________________________________________
> regext mailing list -- regext@ietf.org
> To unsubscribe send an email to regext-le...@ietf.org
>
_______________________________________________
regext mailing list -- regext@ietf.org
To unsubscribe send an email to regext-le...@ietf.org

Reply via email to