Re: [dnssd] Second WGLC for draft-ietf-dnssd-srp

Esko Dijk <esko.dijk@iotconsultancy.nl> Tue, 23 August 2022 10:24 UTC

Return-Path: <esko.dijk@iotconsultancy.nl>
X-Original-To: dnssd@ietfa.amsl.com
Delivered-To: dnssd@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id C42ACC14CF1D for <dnssd@ietfa.amsl.com>; Tue, 23 Aug 2022 03:24:32 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.107
X-Spam-Level:
X-Spam-Status: No, score=-2.107 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, URIBL_BLOCKED=0.001, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=iotconsultancy.nl
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 LkBucXQnSwu4 for <dnssd@ietfa.amsl.com>; Tue, 23 Aug 2022 03:24:27 -0700 (PDT)
Received: from EUR01-DB5-obe.outbound.protection.outlook.com (mail-eopbgr150120.outbound.protection.outlook.com [40.107.15.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 0B12EC1522AC for <dnssd@ietf.org>; Tue, 23 Aug 2022 03:24:25 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=bjb7EcYCMz3Mf7nlOvTrawEK3AVG/4J+hel6BzDZe20WM65PG4LI8ErosJ/5z4QjHbmA5J4NTlh41UYAUP6xCg0TK58W5MuF+rOB/YV2MbV5s5rtBPi+6JdyVmat1kdC4aJIm4Weg1XXpY1l8bUy9frSw1Z7u7eZwowYYUt10aDgMnUtuOU6FCXOaPk4qREs1ZY7N6hJVJEG9dA1YWmlxFfNv0IFckM8hQTfH2Zj8pF+pweP6Xw8zOPm9kT94OtCzffVnw81npm+3V/AiE3WGcGsMyUP48i3k2/iEr3OUigLQVz8Jw/DvScO4H22L7MSDlyzpCJhOldL/IcvW4l5+A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=BcZNfb9dgW3l+Q1DE+hNqw63QPz+OIyMLODt8M7f2p0=; b=Ysd7uQB23CqkKPn/Z5pIrsjj2yC0WiFgnhc8N9UbF/mG/aedpjhqWFbVZ/pBJwg/ojcVMrtzGHkQCOntWbq0k36fBCfc1O3uTqPZGU+2ZK7N+TzN8Dd0rw8m4W+P+BrLQBhYXvFKmbNelFwDi9eUeUv4pWuYCeZTv0F84AsiZbvL+mAhsNaKz7fddlt65PHZj4Oi+J/Vs/9BsgvsZRt5/WcxFmmgQp4Zb9fn/A3XGL0t17U1qOWdw7r0EU1chlku+PHMJZJpgDEMDUjUQJZeLRQFQ2IPxqAhiImOO3hKynfjiM4Uavvggop2UnKZYyYQGElYXZuNeTpK5hRatI4p3g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=iotconsultancy.nl; dmarc=pass action=none header.from=iotconsultancy.nl; dkim=pass header.d=iotconsultancy.nl; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=iotconsultancy.nl; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=BcZNfb9dgW3l+Q1DE+hNqw63QPz+OIyMLODt8M7f2p0=; b=T35q5tuaSrTNF5Eqosfx3nXKJgxCYn1Tm7iRCdq9ZIyiGBVJPSi7lLMGDnQ9X8/M6sDB1CB/Y0XH3oJQfDILFTJUPIft8erQcdkXoF636sONABHo9Cmcatq5oEdHEZHy2muWZveP13ADX+K94fOC5N5OwxmKUFbhWv555Y/cjSE=
Received: from DU0P190MB1978.EURP190.PROD.OUTLOOK.COM (2603:10a6:10:3b9::20) by DB9P190MB1354.EURP190.PROD.OUTLOOK.COM (2603:10a6:10:1fd::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5546.16; Tue, 23 Aug 2022 10:24:21 +0000
Received: from DU0P190MB1978.EURP190.PROD.OUTLOOK.COM ([fe80::241f:347b:f324:f7a5]) by DU0P190MB1978.EURP190.PROD.OUTLOOK.COM ([fe80::241f:347b:f324:f7a5%4]) with mapi id 15.20.5546.022; Tue, 23 Aug 2022 10:24:21 +0000
From: Esko Dijk <esko.dijk@iotconsultancy.nl>
To: Ted Lemon <mellon@fugue.com>
CC: David Schinazi <dschinazi.ietf@gmail.com>, DNSSD <dnssd@ietf.org>
Thread-Topic: [dnssd] Second WGLC for draft-ietf-dnssd-srp
Thread-Index: AQHYq3iHBOHa7lfXS0OTILqo0ulgHq20dI2wgAeLZgCAAEzpcA==
Date: Tue, 23 Aug 2022 10:24:21 +0000
Message-ID: <DU0P190MB197862BA6EC41603ABB0338DFD709@DU0P190MB1978.EURP190.PROD.OUTLOOK.COM>
References: <DU0P190MB1978CCD1A80CE9EEB98CF180FD6D9@DU0P190MB1978.EURP190.PROD.OUTLOOK.COM> <E4C8D48A-0E40-48FE-8EE1-D8F86C107A63@fugue.com>
In-Reply-To: <E4C8D48A-0E40-48FE-8EE1-D8F86C107A63@fugue.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=iotconsultancy.nl;
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 9a143e59-f630-444f-d278-08da84f1a4b3
x-ms-traffictypediagnostic: DB9P190MB1354:EE_
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: Ss/o3P7Oi2hPDU64s/cwQ/ISkb3hXoDAEC2Y43Ypi+2xtpEUoLpUGognTzm/XN5a5tSuHRUyU+DhXFWAjol1KgcOqXf6bntbeaTW7NmLO+1JyozLyKSzri13RC51teGfSTeJq9lhMuVi6uvjgqsUnWb09l0Nk0s+w1gdgA2l0tSZNurrKynhwkfWreKjvzHIEyIdYy6cHRN9LiqYYjbpjXY0nOVoARyYpe2E1KACQtc/vqohtdX7kYYAiDLhiFtHR2dtJ4cdaBR9AqRdwQlORu/Ijv8p2jsFgiLwSt3XhVLp7Ml4AjvxZtTTprbJ2Msc0DLU4/N3XDx15Qm8UoUtnUeueYyZADnffS7lp9LQMXbxKUtqYmrwXnj25Xz9Hn9MJ+xZ36hCZUNDu9dN/wjzhxCLtR7caEziZocLtdgXgi+aGTPrkCAhnFf/X5AjGJuKwOw2Ol2VkRd2s/NdF+dZcxy5kC377bBkIB8jIDcHGWwnw5IpvSx2SbeJ3b7M0VX3qyEUQBeghpPtq6t4ekQ4yCCBVBlV6DT1iUiw36jeeCTBU4xYbJRHUOIvf1Md40mOsilRkhrQ7efnZOLDMHoWUeOf3PRByGKsfjWNlGmKeAzN3fEDdY8tzQqPeMz6v7OvGhTgDnbr4w1hzk4VoaQGGJW6ymDtbb0HhawUSQObDGh9FDxA9WfnEclTZtOwroudgVqlMDQeNP89mQED4l2SWUxMwjoJ4poUhuxGC9fQFJ6/VlDL90cq1saPbJ813UXYEGq8ulfabcc7tgX8T4hAJ20fmzOXyqmo0z8AZW8Fjz4=
x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DU0P190MB1978.EURP190.PROD.OUTLOOK.COM; PTR:; CAT:NONE; SFS:(13230016)(376002)(346002)(39830400003)(136003)(366004)(396003)(38070700005)(33656002)(8676002)(64756008)(4326008)(66556008)(66574015)(186003)(966005)(66446008)(66476007)(76116006)(44832011)(66946007)(41300700001)(30864003)(2906002)(53546011)(6506007)(7696005)(9686003)(26005)(86362001)(52536014)(478600001)(5660300002)(8936002)(54906003)(166002)(6916009)(55016003)(122000001)(316002)(38100700002)(71200400001)(83380400001)(559001)(579004); DIR:OUT; SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: Es+WRRPbcU4cjLAlo+2oTNahgv40okFHIWhyHVqLkb0x5lxsEmEhYdBvLvI9QHiyEzA4OV9jbJVQx/H4AiLIc6uzpPx4k6NrpMqGiPRmdqprCCI+m3uaQB3EBIF1hZpDRN4205p0sUMLRfk92eDYc/weVuetRKBXDRcygGJIQVKKo2HWhJiE6/RxyG1s0EAIoX4Ht4ob3LpZQ30OG894b3KUjd0rTq17dvl+l3UxHNW0yQTiXKvEGhXxkvMmS4p6v14JnkE7bQcoZiVH98MWfRNtU9ML7qBcEWsoyXUyWokcRBzzFqtd+ehjhpPcWDfIWROGy+bNlIjjEjGCeQlNcUcIpnKEOuKrkMcCi6JFBbGZnEJF358QTTNME9t8tPW5vAw6X/JHYpGy/Db5M3ZH4EkZhm0Os0LVKxc1XAkSBWroC8fRHZx5NEddikZqgxnfnCQl0Giotnjfm8P2QtGfj8B1No0DBp2zRtJ08DKZYFgsse/QlV0t4iTHWuZvE5vrU1jXjng4FSH1wqvuia8UkHGpDi6YKxOZm1IuyHnwOptPM8TWk+ei+l30Zm5DYBf1AloAin5ck77VJSjR9mL4fV2Ctk682TzMq/JXqtiZf+Rq/M1BzzxtUkpQaHu16JI1gP8rs4O2Lw4iITs0X+mSNgl0w501mgYVoiWiSMrEuIRfps1C3tpbdldPzGzaWBfnAT3K/dpYROLqxqcFdENTvc/fT1qOmtArjzWlmZgO5AjXvNcNq8M0SbNVAbFMx85pdMWRkcZA5ZiV5UDTJX2x/II6Iz/+N+xtW5CSE4LrpLAEt5lvrFLZ5P0mnyCNt+/85+nIftplf4FWXXGHo1wDni90vkTiSwF7jZdNtbmCWDlbB6GzBrd/xC5TKIxVwIgA6or1zzscBp8z9VtKH/bwa7JJVF9CTb8ohx38QhPqKaHOZGqgs3zwM99zSepp+DxcooVrGBEYLuqLvPLxhkZI/OHT5UQ7km5mx5d3UqDNmZGS/LyGbw3mmltkb2vBYRP0Ep0G+hOtxXvKHo1t+gFXq0Fq1XVVc87X14FJFam9eS+rlGUNWzV42V0C0jCKhRtxmpt2tuLzjGxe13FlLaklNy5kexOSZj1Ahnt+fuUmMdj3/k6CAj71BcHLDeIP35T3dl3lyp2fMOGSkx9B629MCQTzzS9klV/OWvjL/2RWz1PlNDwZFpoNkKsbfTpV6P6ahdJrJ5E9HUD1cw7pxzLoKXcBXpBJJD5lk3qaMBbW+SljkiomdLTBqQ69PXpsyae0PziZDuUU1Mf3OWDkGex31ZNwdChVad+PYAkJ7/StCuYg1bR5bY2em0jqBTkz4TkKL5rMQbbwRbkXpCLI4VWWSanQw58eGfPCNrFefy4nTGNksjQgZ9Qgkb4vmYs3ale2Rjh4skGmbd/zpmgW30jblSkZc6zKJ6wacVTD9TlStnsEYqRpErm6VTreGdeRZLwAmcmyQI5dD2sp5OLlqYH5bxGuEl8wUCZPpFIF+YIq8rVpnHBYl0a/SG1EHYcLrsJd4ZE4YCfCPKLNkSNTvsF7NjrA915DvNgiuuC0fB9b0lCZw9tUkam0CC2TPO9WtYpuBitPsclezJx3wdsaTT+apA==
Content-Type: multipart/alternative; boundary="_000_DU0P190MB197862BA6EC41603ABB0338DFD709DU0P190MB1978EURP_"
MIME-Version: 1.0
X-OriginatorOrg: iotconsultancy.nl
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DU0P190MB1978.EURP190.PROD.OUTLOOK.COM
X-MS-Exchange-CrossTenant-Network-Message-Id: 9a143e59-f630-444f-d278-08da84f1a4b3
X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Aug 2022 10:24:21.1423 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 58bbf628-15d2-46bc-820b-863b6774d44b
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: Wd95wlCJxzWD6iuDTQiDhSIbOhSBTH+TX1rc9DrVH+hK/tE9dvb87wCGUkbucEfxN9PzF3QxEkPceMn3/Bxz/wLWoiZCc76xWT47jPYBcPY=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9P190MB1354
Archived-At: <https://mailarchive.ietf.org/arch/msg/dnssd/mLw80H4FQ0syLY97PHzIAeo6Xc4>
Subject: Re: [dnssd] Second WGLC for draft-ietf-dnssd-srp
X-BeenThere: dnssd@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: "Discussion of extensions to DNS-based service discovery for routed networks." <dnssd.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/dnssd>, <mailto:dnssd-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/dnssd/>
List-Post: <mailto:dnssd@ietf.org>
List-Help: <mailto:dnssd-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/dnssd>, <mailto:dnssd-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 23 Aug 2022 10:24:32 -0000

Thanks,

I reviewed the new (Github) text.  Most comments are well addressed, here a few remaining points:


  *   New section “Subdomains of 'service.arpa.'” -> this section reads as if it should be placed within the “IANA Considerations” section as a sub-section, or at least be referenced from the IANA section?  Now it is outside it and not referenced.


  *   “increase the power required” -> “increase the energy required”

>> -> “present in the Host Description Instruction to which the Service Description Instruction refers”
> why
Oops, maybe my text proposal was actually not good! We can leave it as is.  One Instruction also doesn’t reference another Instruction, but references data.
One trigger was that the terms “Host Description” and “Service Description” are used and gradually introduced in the document, but there’s not a formal/specific definition. The draft overall suggests that a “Host Description” can mean the data in the Host Description Instruction, or that it can be data in the SRP Registrar’s local database (which resides there as a result of processing previous Host Description Instruction(s)). Similar for “Service Description” – may be the data of a Service Description Instruction, or data about a service already present in the database.


> However, you’re right that this is a problem, because if it does a pattern match, EXPLETIVE-4387 is going to fail just as badly as EXPLETIVE did. So maybe it should return REFUSED in this case.
Yes, I agree with “Refused” in case the adding of new numbers at the end by the SRP Requestor (e.g. EXPLETIVE-3, -4, -4387 etc) would not make any difference for the name filter.  Seeing “Refused”, a Requestor knows that it could retry with a completely different name, in this case. (Contrasting to YXDomain:  that signals the requestor to try with changing/adding some number at the end of the name i.e. retry with a similar name.)

I do think that if the server has a very specific name filter (e.g. on “EXPLETIVE-1*” only) it could just configure for that the YXDomain answer, triggering the Requestor to try again with another name (e.g. “EXPLETIVE-2”) and that would likely succeed.   So that would be allowed, but seems a corner case that we don’t need to spend any text on in the draft; something an implementer could just use if required.


> That title doesn’t make sense. We aren’t cleaning up the lease time. I this this is fine as is.
Right, it can easily be read in a way that makes no sense. (I was intending the other way.)  So let’s keep as is.


> Send text?
I don’t think we need additional text for 6LoWPAN Border Routers (6LBRs) here, the phrasing is generic currently for “routers” so IP routers, which includes such 6LBRs.


Regards
Esko

From: Ted Lemon <mellon@fugue.com>
Sent: Tuesday, August 23, 2022 06:47
To: Esko Dijk <esko.dijk@iotconsultancy.nl>
Cc: David Schinazi <dschinazi.ietf@gmail.com>; DNSSD <dnssd@ietf.org>
Subject: Re: [dnssd] Second WGLC for draft-ietf-dnssd-srp

On Aug 18, 2022, at 9:16 AM, Esko Dijk <esko.dijk@iotconsultancy.nl<mailto:esko.dijk@iotconsultancy.nl>> wrote:

Thanks, Esko! Comments below, pull request is here:

https://github.com/dnssd-wg/draft-ietf-dnssd-srp/pull/10


*** Open issues

2.2.1
“The Service Instance Name MUST be referenced by one or more
      Service Discovery PTR records, unless it is a placeholder service
      registration for an intentionally non-discoverable service name.”
-> This bit is a fairly detailed requirement, with a hard-to-grasp exception case also. Why not include such requirements only in 2.3.x which anyway has all the formal rules? I thought 2.2.1 was more like an intro sketching at high level what it looks like, and 2.3.x has details. The MUST requirement is already present in 2.3.2.
The exception case seems not listed there – is that a bug?

Yikes. Actually this whole section says way too much, and some of it is wrong, including this text that you’ve called out.



“The SRP requestor SHOULD follow the advice given in Section 5.5.2 of [RFC8766]” -> this automatically makes RFC 8766 a normative reference, per the IETF rules for that. (Even if it was a MAY this would be the case. The point is that an implementer OPTIONALLY will use the rules and if so, 8766 becomes normative on how to do these rules. ) So, ok to make RFC 8766 normative?

I think given that we have applications where this advice is not what’s specified (e.g. Thread), we shouldn’t make the 8766 behavior normative. I’ve updated this text to refer to it as an example rather than normatively.


2.2.3
“so there is no need for the server sending the SRP Update” -> “no need for the SRP requestor” ? “server” seems wrong here. Sorry this is almost a nit but I don’t think we should rely here on reader’s internal autocorrect…

This escaped my review of the server->requestor changes. I think it should say “SRP requestor” rather than “server sending the SRP update.”


2.2.5.2
“So for instance, it might try
   host.service.arpa, then host-1.service.arpa, then host-
   2.service.arpa, then host-31773.service.arpa.”
-> here the domain should be “default.service.arpa”? If so, it must be fixed to avoid interpretation errors (does the implementation also need to be fixed for this?). If not, then there’s a bunch of clarification missing why “default” can be omitted here. (But I assume that doesn’t apply here.)

Oops, nice catch. Not really a serious problem, but you’re right to ask for consistency here.


2.2.5.4
“Although [RFC2782] requires that the target name in the SRV record
   not be compressed, an SRP requestor SHOULD compress the target in the
   SRV record.”
-> This means RFC 2782 is formally Updated. The draft should indicate this in the usual IETF way at the top as “Updates: 2782”.

It actually doesn’t mean that. It means that SRP requestors and registrars have to support compressing of SRV record targets. No other DNS requestor or responder is so constrained. I think this has come up before, actually. I think that the RFC should be updated, but it’s not really our bailiwick.


2.2.5.5.1.
The Method 2 of only removing the Host record is still a bit unclear – as explained in my previous email about “Host instructions with no address”.
Text says “Therefore, it is sufficient for the requestor to send the Host Description Instruction” but the latter requires a “Service Description Instruction” to be present which contradicts the stated.

This has been addressed in an earlier pull request.


2.3.1.3
Last bullet - See previous email on “Host instructions with no address” ; it would seem we do have a case where the Service Description Instruction can be absent in the SRP Update – if lease-time=0.  All the host’s services would then get auto-removed.

Also I think addressed in the earlier pull request, but let me know if you disagree.


2.3.5
“and can be either SUCCESS or SERVFAIL” ->
In the IANA registry it’s listed as NoError instead of SUCCESS. RFC 1035 calls it “No error condition”. So we could adopt ‘NoError’ ? (Since the original spec doesn’t use CAPS for the name)

Ouch, there were actually a lot of those. I think I got them all. Thanks for pointing this out.


4.1
See section 11 ref update.

“SRP registrars SHOULD also track a lease time per service instance”
-> this seems problematic to have as a ‘SHOULD’ because you can’t count on the SRP Registrar doing it properly.
E.g. if this is not done, you could get the following situation:


  *   At time t=0, requestor registers service X with lease = 10 mins
  *   At time t=5 min, requestor registers service Y with lease = 8 hours

     *   At this time the Registrar extends the life of the host and all its services to 8 hours (since it doesn’t track lease time per service instance)

  *   (Requestor expects at time t=10, that service X will time out)
  *   At times t=10 min – t=8 hours, service X remains in the Registry unintentionally.

So better is to either do it (MUST) or don’t do it at all. In the first case, partial updates like in the example above and below are possible. When not doing it, partial updates should typically be discouraged since it gets tricky to get it right.

Argh. You’re right. This MUST be a MUST.



Another example of ‘partial update’ enabled – this situation works even when the SRP Registrar doesn’t track lease time per service :


  *   requestor registers service X at time t=0 for a lease time of 8 hours ;
  *   at t=1 hour it registers service Y for a lease time of 1 hour.
  *   at times t=1 to 2 hours, both services X/Y are active. And at  t=2 hours, both services X/Y and the host will time out at the same time if the requestor doesn’t renew before that.

So in this case the first lease time 8 hours applies to the host and to service X, and the second 1-hour lease time applies to the host and to service Y, not directly to service X (which still has 7 hours to go) but due to the host removal service X is also removed at time T=2 hours.

What is perhaps missing/unclear in the spec if the SRP requestor is even allowed to do such fractional updates where the SRP Update doesn’t contain all the registered services.  I don’t think this is mentioned anywhere.

Matter is assuming that this is allowed, and I think the text you quoted admits that it is allowed, so I think we’re okay here. If you think we need to say more, can you suggest text?


“The times may be
   shorter or longer than those specified in the SRP Update; the SRP
   requestor must honor them in either case.”
-> Is it an idea to also require (“SHOULD”) a configuration mechanism here just like for the TTL to set a Min and Max ?  For example, in a network with sleepy devices a longer allowed lease time Max could be configured on the SRP Registrar.
And if a network is getting busy with registration traffic, the Registrar could be reconfigured to have a longer Min lease time.

This all seems clearly to be within bounds based on the text you’re quoting. I’ve added “by the registrar” after “shortened or lengthened” to make this clear. I don’t think this document should specify behavior, but I’m open to arguments to the contrary.


8.1
Should we say anything about the subdomains under “service.arpa”? In this document we use “default.service.arpa”, but what about in the future when someone wants to use “myname.service.arpa” etc ? Is there a registry, or is an RFC needed to define these names?
Maybe this is more of a question than an open issue for the document.  But if we know how this is handled we could just mention it briefly.  I had a case in the past in IETF where a registry was forgotten where it would have been handy.

Ick. Yeah.


11.
Ref update https://datatracker.ietf.org/doc/html/draft-sekar-dns-ul-03  by https://datatracker.ietf.org/doc/html/draft-ietf-dnssd-update-lease-02

Yup.


12.
RFC 8310 is informative, however it defines a profile that updates 7858 normatively. So shouldn’t it be in ‘normative’ section 11? If not, does that mean that nothing of the profile of 8310 is used in any implementation?
(Maybe it doesn’t matter much, since 7858 is normative and that one is being automatically updated by 8310 whether we like it or not.)

This is a bit touchy. We don’t actually require (nor can we) any of the profiles in 8310, since our SRP registrar may not even be able to use ACME to get a validatable CERT. I’ve taken our the reference to 8310.


RFC 1035 needs to be normative – impossible to implement SRP without using e.g. the record formats defined there.
Same for 2782 (need SRV records to implement), and 2181.
(Again I may be wrong here – maybe 2181 is automatically normative if we make 1035 normative and it doesn’t matter where it’s placed.)

No, you’re right.


*** Improvements/nits/editorial
Entire doc
“SRP Update” / “SRP update” used interchangeably without apparent reason(?)

True, but I’m going to leave for the RFC editor, so that this pull request isn’t full of chaff.

1.
First occurrence of “registrar” does not define the term. There’s also no terminology section to look it up. This term should be defined in Section 1 ideally. Section 2.0 doesn’t really define it either, it only mentions it in terms of “most likely”.

I added a parenthetical. I think adding a terminology section at this point is too big a change unless we have a serious problem.



2.
“SRP requests” -> better to use SRP Updates here, since “SRP requests” is only used once so is probably not the intended term. Or, “SRP Update requests”.

Yeah, that’s just a mistake.

2.1.1
Mention “default registration domain” first and then calls it “default registration zone”. Is this correct? 6763 calls it only “domain”.

Good point. Should be domain.


Nit: “using SOA queries [RFC8765]” -> it would be good to refer to a specific section here, e.g. 6.1

Yup.


2.1.3
“The reason for these different assumptions” -> “The reason for these different variants”
Nit: The standalone words “power” can all be changed to “energy” to be more correct.
“By requiring the use of TCP,” -> clarify that this applies to full-featured hosts only. Is that intended, or do constrained devices also require TCP?
I’ve rephrased that. The reason to require TCP is to prevent spoofing when the SRP update is traveling across multiple hops.


2.2
“We will discuss … and how to maintain the information … “ -> part of the “maintain” part is in section 4, so it’s a bit strange to announce it here as part of 2.2.x. Maybe add a forward pointer to 4 here also.

Ooh, good point.



2.2.3.1.
Last bullet -> add “.” at end

check


2.2.4
“TSIG protocol” -> add informative reference to [rfc8945]

Good point!


2.2.4.1
“using DNS-SD Registration protocol” -> “using the DNS-SD Service Registration Protocol”
“First-Come First-Serve” -> “First-Come First-Serve (FCFS)” – there’s a need to introduce the acronym here

Yup.


2.2.5
Title “Service Behavior”  -> shouldn’t this be “SRP Requestor Behavior” ? Since we just before talked about “registration service” the term “service” here is unclear.

Sure.


2.2.5.1
“"factory reset."" -> “"factory reset".”

The former is correct.


2.2.5.2
“Service Description Records” -> set ‘R’ to lowercase

OK


2.2.5.3
“ The lifetime of the DNS-SD PTR, SRV, A, AAAA and TXT records [RFC6763] uses the LEASE field”
-> we could clarify that it also holds for other record types. E.g. for everything that’s not KEY, the LEASE field is used.
Since 2.2.1 specifies that other record types may be used for Service Description and 4.1 specifies this too. Maybe it’s enough we say here “DNS-SD PTR, SRV, A, AAAA, TXT and other non-KEY records” or give a pointer to 4.1.

We don’t actually support this, so not needed.


2.2.5.5.2
“these will be seen as a single Service Description Instruction” -> could clarify what “these” refers to here. I didn’t immediately parse it. I assume it refers to both mentioned *-RRset updates. So “these updates will be seen … “

How about:

The difference is that because the target for the PTR record in the Service Discovery Instruction is the same for both the Delete An RR From An RRset update and the Add To An RRSet update, there is no way to tell whether they were intended to be one or two Instructions.

2.3.1.3
“hostname being updated by this update” -> more correct seems “hostname being updated by this instruction”.

That text got deleted by a previous PR.

2.3.2
“Every Service Description
   Instruction must have that Host Description Instruction as the target”
-> MUST

Also deleted


“The target of the SRV record in every
   Service Description Instruction MUST be the single Host Description
   Instruction”
-> “ … MUST be the hostname used in the single Host Description Instruction”  (more correct)

Also deleted.



“RCODE=REFUSED”
-> for style consistency, call it “REFUSED RCODE”.


OK


2.3.3
“present in the Host Description to which the Service Description refers”
-> “present in the Host Description Instruction to which the Service Description Instruction refers”

why


2.3.6
“In order for the registrar
   to add a reverse mapping update, it must be authoritative for the
   zone or have credentials to do the update.”
-> “the zone” here is a bit unclear. We could say “the associated zone” to indicate the zone that’s to be used for the reverse mapping update? Without going into unnecessary details.
Otherwise it could mean “the zone of the SRP Update” which isn’t intended I think.

In order for the registrar to do a reverse mapping update, it must be authoritative for the zone that would need to be updated, or have credentials to do the update.


“The registrar may also have a dictionary of names”
-> MAY
Making it normative is better here to force a requestor implementation to consider this case of (unexpectedly?) getting RCODE YXDOMAIN for a valid SRP Update.

MAY is not normative. The response is the same you’d get for a duplicate name, so the requestor is already required to handle it. However, you’re right that this is a problem, because if it does a pattern match, EXPLETIVE-4387 is going to fail just as badly as EXPLETIVE did. So maybe it should return REFUSED in this case.


4.1
Section title should also mention the “lease time” concept – it is such an important part of this section.
E.g. “Lease Time and Stale Data Cleanup” or “Cleaning Up Stale Data and Lease Time”

That title doesn’t make sense. We aren’t cleaning up the lease time. I this this is fine as is.

5.1
“validation must be enforced by every router on the path from the
   Constrained-Device Network to the unconstrained portion of the
   Network”
-> it’s strange this this only considers constrained-network scenarios. Needs some rewording e.g.
“validation must be enforced by every router on the path from any potential SRP requestor to the SRP registrar.
   In case of a router that is a constrained device, this validation is recommended but not required.”

I deleted that sentence and added a paragraph referencing RFC7084.

Perhaps 6lowpan Routers generally won’t validate all this; while 6lowpan Border Routers could do more extensive validation.

Send text?


8.2
Second paragraph -> still a grammar error in there

8.3
Second paragraph -> same grammar error. There’s also an extra dot ‘.’ After <domain> here and not in 8.2, why’s that?

These sections were just wrong. See pull request for fix.