[dnssd] Second Resource Directory plug test: Report, part II

Christian Amsüss <christian@amsuess.com> Wed, 17 October 2018 07:47 UTC

Return-Path: <christian@amsuess.com>
X-Original-To: dnssd@ietfa.amsl.com
Delivered-To: dnssd@ietfa.amsl.com
Received: from localhost (localhost []) by ietfa.amsl.com (Postfix) with ESMTP id 6B761130E80; Wed, 17 Oct 2018 00:47:29 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.899
X-Spam-Status: No, score=-1.899 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([]) by localhost (ietfa.amsl.com []) (amavisd-new, port 10024) with ESMTP id GRQPmJpmtIyo; Wed, 17 Oct 2018 00:47:26 -0700 (PDT)
Received: from prometheus.amsuess.com (alt.prometheus.amsuess.com [IPv6:2a01:4f8:190:3064::3]) (using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 9202212D4E9; Wed, 17 Oct 2018 00:47:25 -0700 (PDT)
Received: from poseidon-mailhub.amsuess.com (unknown [IPv6:2a02:b18:c13b:8010:a800:ff:fede:b1bd]) by prometheus.amsuess.com (Postfix) with ESMTPS id 44F1441B67; Wed, 17 Oct 2018 09:47:22 +0200 (CEST)
Received: from poseidon-mailbox.amsuess.com (hermes.amsuess.com []) by poseidon-mailhub.amsuess.com (Postfix) with ESMTP id F3AAC2A; Wed, 17 Oct 2018 09:47:20 +0200 (CEST)
Received: from hephaistos.amsuess.com (hephaistos.amsuess.com [IPv6:2a02:b18:c13b:8010::71b]) by poseidon-mailbox.amsuess.com (Postfix) with ESMTPSA id 8747343; Wed, 17 Oct 2018 09:47:20 +0200 (CEST)
Received: (nullmailer pid 3562 invoked by uid 1000); Wed, 17 Oct 2018 07:47:19 -0000
Date: Wed, 17 Oct 2018 09:47:19 +0200
From: Christian =?iso-8859-1?Q?Ams=FCss?= <christian@amsuess.com>
To: core@ietf.org, dnssd@ietf.org
Message-ID: <20181017074719.GA1873@hephaistos.amsuess.com>
References: <20180926161903.GA30204@hephaistos.amsuess.com> <20181003093716.GA9366@hephaistos.amsuess.com> <20181010112030.GC31858@hephaistos.amsuess.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="FCuugMFkClbJLl1L"
Content-Disposition: inline
In-Reply-To: <20181010112030.GC31858@hephaistos.amsuess.com>
User-Agent: Mutt/1.10.1 (2018-07-13)
Archived-At: <https://mailarchive.ietf.org/arch/msg/dnssd/u2BUTTzJwioXC4BRrqIQsdeFVj4>
Subject: [dnssd] Second Resource Directory plug test: Report, part II
X-BeenThere: dnssd@ietf.org
X-Mailman-Version: 2.1.29
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: Wed, 17 Oct 2018 07:47:29 -0000

Hello observers of the Resource Directory plug tests,

we have concluded part II of the second installment of the RD plug tests.

(DNS-SD: Report part I only went to CoRE as it was time critical
to an interim. The summary covers both, details on [1].)


  Three implementations were tested, and all eventually passed the
  implemented subsets of RD. (Jim's covered everything, Christian's
  everything but groups, Hauke's embedded one acted as an endpoint).
  Four details that need claraification in the specification were
  discovered (handling of link-local addresses, and the below), but
  nothing major. Two implementations could not interoperate due to IPv6
  not having been universally deployed.

  No implementations of extensions to RD (like RD-DNS-SD) were known so
  none were tested. We hope for participation of implementing parties in
  future events.

Questions raised:

  * When matching against endpoint registrations, can an href filter
    query be matched as a relative reference (eg. /lkp/ep?href=/reg/1)?
  * Can a registration be "taken over" by a Commissioning Tool?
  * Is displaying the base of a registration mandated in EP lookup?

They're being taken up in the document's issue tracker for discussion
among the authors, and expected to be clarified in the next version of
the draft.

Details below.

Best regards

[1]: https://mailarchive.ietf.org/arch/msg/core/enMOFPTiK9qcS-lxpQ-VVyyKbuc


Implementations under test were:

* Jim Schaad's resource directory, implemented in C# and running on an
  unconstrained system.

* aiocoap's resource directory (see [1]; Christian)

* RIOT's registrant endpoint (see [1]; Hauke)

Test execution:

* Christian's server with Jim's registrant and lookup client

  Tests were executed in sequence and passed unless noted otherwise,
  with the following alterations and notes:

  * Test 1, 2: Unicast address used as devices were not in multicast
  * Tests 6-7, 9 and 14 (anything group related) were not supported by
    the server
  * Test 11 was not implemented on the server.
  * Bugs in the implementations were found in tests 1 (when modified by
    the client to include ct lookup; actually a bug in the server's
    implementation of RFC6690), 13 (client sent content-format
    indication payload while it shouldn't, due to a limitation of the
    underlying library).

* Jim's server with Hauke's client

  * Test could not be executed because the test sites did not share a
    common IP version.
  * Registration through a relay (see rd-relay description in [1]) was
    attempted but failed for reasons discovered later.

  The paring will be tried again in the next plug test, either with
  IPv6 everywhere or some sort of tunneling in place, possibly
  facilitated by F-Interop.

* Jim's server with Christian's client

  Tests were executed out of sequence because several tests are grouped
  together in a single client application run. All tests except where
  noted did pass, with several alterations and notes:

  * Test 1, 2: Unicast address used as devices were not in multicast
  * Tests 6-7, 9 and 14 (anything group related) were not supported by
    the client.
  * The .well-known/core resource was advertised in all registrations in
    addition to the prescribed resources, and consequently shown in the
  * In test 13, the wrong registration was updated. This was noticed in
    test 15; the lookup results were consequently in conflict with the
    test description, but consistent with the course of the experiment.

  * Bugs were found in tests 2 (the * in lookup was matched to "one or
    more characters", actually a bug in the server's implementation of
    RFC6690) and 4 (a slash was expected to trail the base value), and
    fixed before continuing.
  * The participants spent some time debugging the spurious absence of
    GET requests triggered by simple registration, which was actually an
    artifact of all network scanners having been configured to port 5683
    exclusively, and the registrant using a different port to avoid
    collision with an already active non-simple endpoint.

There's always a bigger fish.
  -- Qui-Gon Jinn