[core] draft-ietf-core-observe-16 / reregister observation after client restart

"Kraus Achim (INST/ESY4)" <Achim.Kraus@bosch-si.com> Mon, 27 July 2015 08:46 UTC

Return-Path: <Achim.Kraus@bosch-si.com>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 03A261AD190 for <core@ietfa.amsl.com>; Mon, 27 Jul 2015 01:46:48 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 2.391
X-Spam-Level: **
X-Spam-Status: No, score=2.391 tagged_above=-999 required=5 tests=[BAYES_50=0.8, HTML_MESSAGE=0.001, MANGLED_SIDE=2.3, RCVD_IN_DNSWL_LOW=-0.7, T_RP_MATCHES_RCVD=-0.01] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id pssWXBqy4Fvp for <core@ietfa.amsl.com>; Mon, 27 Jul 2015 01:46:44 -0700 (PDT)
Received: from mx.bosch-si.com (mx.bosch-si.com [217.24.201.142]) (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 4218F1AD160 for <core@ietf.org>; Mon, 27 Jul 2015 01:46:44 -0700 (PDT)
X-ASG-Debug-ID: 1437986802-040b7f25f34f7570001-aa7cYp
Received: from immpwimx01.innoimm.local ([10.55.67.25]) by mx.bosch-si.com with ESMTP id 6SIwofTQ6naRSfav (version=TLSv1 cipher=AES128-SHA bits=128 verify=NO) for <core@ietf.org>; Mon, 27 Jul 2015 10:46:42 +0200 (CEST)
X-Barracuda-Envelope-From: Achim.Kraus@bosch-si.com
X-Barracuda-RBL-Trusted-Forwarder: 10.55.67.25
X-ASG-Whitelist: Client
Received: from IMBVW2EXC00.bosch-si.com ([10.55.66.140]) by immpwimx01.innoimm.local over TLS secured channel with Microsoft SMTPSVC(7.5.7601.17514); Mon, 27 Jul 2015 10:46:42 +0200
Received: from IMBPW2EXD01.bosch-si.com ([fe80::d052:f355:928e:e5ba]) by IMBVW2EXC00 ([10.55.1.51]) with mapi id 14.03.0224.002; Mon, 27 Jul 2015 10:46:40 +0200
X-Barracuda-RBL-IP: 10.55.66.140
From: "Kraus Achim (INST/ESY4)" <Achim.Kraus@bosch-si.com>
To: "core@ietf.org" <core@ietf.org>
Thread-Topic: draft-ietf-core-observe-16 / reregister observation after client restart
X-ASG-Orig-Subj: draft-ietf-core-observe-16 / reregister observation after client restart
Thread-Index: AdDISMGZ1docgoV2TjWzot8YyECxdg==
Date: Mon, 27 Jul 2015 08:46:40 +0000
Message-ID: <BC36447FF5C62E46BEF3F124D3C1E8921F30DE85@imbpw2exd01.bosch-si.com>
Accept-Language: de-DE, en-US
Content-Language: de-DE
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [10.55.144.92]
Content-Type: multipart/alternative; boundary="_000_BC36447FF5C62E46BEF3F124D3C1E8921F30DE85imbpw2exd01bosc_"
MIME-Version: 1.0
X-OriginalArrivalTime: 27 Jul 2015 08:46:42.0117 (UTC) FILETIME=[C2901F50:01D0C848]
X-Barracuda-Connect: UNKNOWN[10.55.67.25]
X-Barracuda-Start-Time: 1437986802
X-Barracuda-Encrypted: AES128-SHA
X-Barracuda-URL: https://217.24.201.142:443/cgi-mod/mark.cgi
X-Virus-Scanned: by bsmtpd at bosch-si.com
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/YeM1WUZTZvh9WHN010Eg_NOGAm4>
Subject: [core] draft-ietf-core-observe-16 / reregister observation after client restart
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 27 Jul 2015 08:46:48 -0000

Hello,

analyzing the message flow of some restart/robustness scenarios I found some problems with section 3.1.

"A client MUST aggregate such requests and MUST NOT register more than once for the same target resource. The target resource is identified by all
options in the request that are part of the cache-key."

For a restarting client this is hard to fulfill. It's seems to be common in that case to use the same target resource (including the same "cache-key" options) but with a different random token. So, if such a request would be denied (caused by violating 3.1) , a client would not be able to reregister without storing the original token "restart save".

Searching the mail archive I found, some discussion on that topic (23.9.2014, Adrian Farrel and Klaus Hartke).

"> > Section 3.1
> >
> >    A client ... MUST NOT register more than once for the same target
> >    resource.
> >
> > So, suppose a client does register a second time for the same resource.
> > The server still has to handle it, notwithstanding the "MUST NOT".
> > It can handle it by saying:
> > - I see it is a duplicate, I'll ignore it
> > or
> > - I see it is a duplicate, I'll treat it as a protocol violation and
> >   reject it.
> >
> > But in Section 4.1
> >
> >    If an entry
> >    with a matching endpoint/token pair is already present in the list
> >    (which, for example, happens when the client wishes to reinforce its
> >    interest in a resource), the server MUST NOT add a new entry but MUST
> >    replace or update the existing one.
> >
> > So, you have written text to describe how a server handles this case and
> > you have even described why a client might send a second registration.
> >
> > Can you clarify?
>
> The client can send two things: a request with a token already in use,
> or a request with a new token. In the first case, the server sees it
> is a duplicate and proceeds as described in section 4.1. In the latter
> case, it's not a duplicate, because the token is different. It's also
> not a protocol violation, because we allow the client to observe the
> same resource if the cache-key is different. If the cache-key is not
> different, though, this just wastes the server's resource. That's what
> this MUST prevents.

That's nicely explained. Add it to the draft?"

But I still don't see, how the client restart and reregister should be handled (without storing the used token).

So any hints will be very welcome.

Mit freundlichen Grüßen / Best regards

Achim Kraus

Bosch Software Innovations GmbH
Communications (INST/ESY4)
Stuttgarter Straße 130
71332 Waiblingen
GERMANY
www.bosch-si.de
www.blog.bosch-si.com<http://www.blog.bosch-si.com>

achim.kraus@bosch-si.com<mailto:achim.kraus@bosch-si.com>

Registered office: Berlin, Register court: Amtsgericht Charlottenburg, HRB 148411 B
Executives: Dr.-Ing. Rainer Kallenbach; Michael Hahn