Re: [core] draft-ietf-core-multipart-ct

Michael Koster <michaeljohnkoster@gmail.com> Sat, 02 March 2019 22:05 UTC

Return-Path: <michaeljohnkoster@gmail.com>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 373A8128B33; Sat, 2 Mar 2019 14:05:43 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.998
X-Spam-Level:
X-Spam-Status: No, score=-1.998 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
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 am9r_lic-MH8; Sat, 2 Mar 2019 14:05:40 -0800 (PST)
Received: from mail-pg1-x52a.google.com (mail-pg1-x52a.google.com [IPv6:2607:f8b0:4864:20::52a]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 3568B130DFA; Sat, 2 Mar 2019 14:05:40 -0800 (PST)
Received: by mail-pg1-x52a.google.com with SMTP id u9so683098pgo.7; Sat, 02 Mar 2019 14:05:40 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:message-id:mime-version:subject:date:in-reply-to:cc:to :references; bh=tnICRt0xnn+k/hyQUoWWF840r7Y39K8pMZMjT0pHI6g=; b=W877yNZBlhsyvKyksxUQJlP/aByvU3H5jw5PGRDD/esCVWEmVyOiuLCAnsSLrWkJ37 Z8/VIdbSRlVAgOdOcHTZXvU8SqpnzXEjCTifTEY/f63WwW2GX7SmL5+nWyQms8Xvj0n+ 8u0QfofnCK05L6367HgYZ+5Vtr326ftbYi2qVDvcgVoC7yrz7wWtjcYDdvuBN1BohYj5 RyyaNlku9BgeyAgsEjpcxNPCOPli+bXCTp9tsOQ5ZrQG/d65TA6M1q+3QN9rxGXJLgjC Qc8lhsk7T2riARwp5nRqC0NoJOz8hsvHPSEenw0nPAaKoCahGo7XGPPtbo2vwQMK/Dxc 5AGg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:message-id:mime-version:subject:date :in-reply-to:cc:to:references; bh=tnICRt0xnn+k/hyQUoWWF840r7Y39K8pMZMjT0pHI6g=; b=ALMI//jf11Eu+bTXwOVb2iv75coXGIkLfzUSI0+cG/g584vU2zJ4s5lypALSieDUX2 yEBZY6RYVMtPUMcw9/WDVGaokTrk13UTe1s5NkiV1K5UKnoR27zSWZKv2D4ErkpLiN0t ahreBRzTKJ4byOiN44SwBgfAtUFBGzH5RUl3SagQ9dAa8Yafvnrbbi2ZZxyOkt9sMvse IX09yw6Uzqp946HM1SHLzMAgIkT/Rc8dFJxA7owS5HyQrkqnfJRpVdlsdiqXClP/JY4l NMWKdCho0gAj6eHdtS6u95XzKUYRL1hc79Mq9ZhYGbi+7Vf+uoUbJ65PtO+MteJZjqJf psYQ==
X-Gm-Message-State: AHQUAubVNONQOF6r3Xud5B/uLrOhwd9iymWYz8uLWqzvsS8CUZQ2XhKv mB4KUzRrAI1s5aHB+t122e0=
X-Google-Smtp-Source: AHgI3IaGBxFoU1K/yd1+fX/bKCc2IJUZaqQfwzaQficwtptgvsYknAqM6lur0ob1T/HxrUK5ButLwA==
X-Received: by 2002:a62:b508:: with SMTP id y8mr12655172pfe.140.1551564339196; Sat, 02 Mar 2019 14:05:39 -0800 (PST)
Received: from [172.16.0.3] (c-71-202-145-92.hsd1.ca.comcast.net. [71.202.145.92]) by smtp.gmail.com with ESMTPSA id u28sm3017677pgn.32.2019.03.02.14.05.37 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 02 Mar 2019 14:05:38 -0800 (PST)
From: Michael Koster <michaeljohnkoster@gmail.com>
Message-Id: <1D9AA506-85CB-452E-B0DC-4BC099E04F58@gmail.com>
Content-Type: multipart/alternative; boundary="Apple-Mail=_E62B8033-2E77-4119-9149-BA967D2CD9C9"
Mime-Version: 1.0 (Mac OS X Mail 10.3 \(3273\))
Date: Sat, 02 Mar 2019 14:05:35 -0800
In-Reply-To: <026901d4c8df$e2251410$a66f3c30$@augustcellars.com>
Cc: Thomas Fossati <tho.ietf@gmail.com>, draft-ietf-core-multipart-ct@ietf.org, "core@ietf.org WG" <core@ietf.org>, Klaus Hartke <hartke@projectcool.de>, Jaime Jiménez <jaimejim@gmail.com>, Ari Keränen <ari.keranen@ericsson.com>
To: Jim Schaad <ietf@augustcellars.com>
References: <000901d4c2f8$4b69a640$e23cf2c0$@augustcellars.com> <CAAzbHvYMp7w=mHB8tAifEwEpY26C96SZRjZX8Q9M5w+J_C3+qA@mail.gmail.com> <00f901d4c624$f313cb30$d93b6190$@augustcellars.com> <CAObGJnMRbT__h0YbjaQMkgvRLLA7CFEVSor_Kiu9JF8F6xX+8Q@mail.gmail.com> <026901d4c8df$e2251410$a66f3c30$@augustcellars.com>
X-Mailer: Apple Mail (2.3273)
Archived-At: <https://mailarchive.ietf.org/arch/msg/core/LeooQWvxkXkG8W4vaQ4Mix-cGWI>
Subject: Re: [core] draft-ietf-core-multipart-ct
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.29
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: Sat, 02 Mar 2019 22:05:43 -0000

Hi,

I am integrating multipart into pub/sub as a way to signal empty payloads that might result from a subscribe operation where their aren't any stored data (stale or non-retaining topic) or a retrieve in the same case.

We have decided initially not to support multiple content formats on a topic in pub/sub,where the proker would have to convert, but now it might be a little easier with multipart, if we build in a subtyping system as per Jim's email. 

IMO the subtype target attribute at least will be necessary for the kind of discovery we want to support in pub/sub. I guess subtype accept header option is going to be needed also, so a pub/sub client can indicate it accepts emty payload format and e.g. senml.

In general I think this can work for the pub/sub use case and will write it in if it makes sense.

Best regards,

Michael


> On Feb 19, 2019, at 9:48 PM, Jim Schaad <ietf@augustcellars.com> wrote:
> 
> I did think about some of this when I put up the proposal.
>  
> For case (A), unless it is going to have options while doing a rigidly structured response, there is no need to have a value different than Accept 62.  In fact if there is really only one structured response, then there is not a need to have any accept option in the request at all.
>  
> For case (B), I thought about the recursive case and that is why I put the SHOULD and talked about options between multiple things while building the response.  I don’t think that there are going to be enough cases of a tree structure being returned that anything needs to be said about it one way or the other.  If that type of detail is really needed then I would expect that a GET would be replaced by a POST with the details of the response needed in the content of the POST.
>  
> In the semantics, I wanted to provide a minimal amount of information.  Thus the language about using it to provide guidance for specific pairs of content types that can go into a specific location.  The other place that I was thinking it might be useful would be in the case of a PUB-SUB server returning multiple content types where the set of equivalents might be restricted to the requested values rather than returning all possibilities.
>  
> Jim
>  
>  
> From: Thomas Fossati <tho.ietf@gmail.com> 
> Sent: Tuesday, February 19, 2019 1:58 AM
> To: Jim Schaad <ietf@augustcellars.com>
> Cc: Klaus Hartke <hartke@projectcool.de>; draft-ietf-core-multipart-ct@ietf.org; core@ietf.org
> Subject: Re: [core] draft-ietf-core-multipart-ct
>  
> It has surfaced in the mailing list as well as in private exchanges that there are two ways of looking at multipart-ct:
> (A) as a mechanism to wrap multiple related things in a rigidly structured way;
> (B) as a mechanism to aggregate related thingsin flexible ways (e.g., the EST-coaps credentials).
> 
> One approach to content negotiation for multiparts of kind (A) is to assign the aggregate a separate type altogether (overriding C-F 62 with something allocated on purpose from the FCFS portion of the codepoint space).  This fits Accept’s semantics well.
> 
> Content negotiation with multiparts of kind (B) needs something like Jim’s proposal.  The slight complication that potentially breaks Jim’s approach is recursion.
> 
> To support this, I think the draft could say:
> - multiparts of kind (A) SHOULD override the multipart C-F with their own; and
> - multiparts of kind (B) MUST not include other multiparts of the same “kind”.
> 
> The above would make a recursive multipart (i.e., a 62 embedded in another 62) illegal and give Jim’s new content negotiation a well-defined semantics.
> 
> Cheers
> 
> On Sat, Feb 16, 2019 at 6:25 PM Jim Schaad <ietf@augustcellars.com <mailto:ietf@augustcellars.com>> wrote:
> >
> > Looking at this, it does seem to be a strange way to deal with things.  Of course the problem is made even more of a pain if you think about the possibility of having nested multipart contents.
> >
> > While the following does may not be the greatest solution, I think that it might be a better answer:
> >
> > 1.  Define a new target attribute:  "mt-subtypes" which contains the list of any content type which can be returned in a multipart content.  This could be at the top level or anyplace in a tree.
> >
> > 2.  Define a new option: "mt-accept" which contains the list of sub-content types that the client can deal with.  This option would be defined as advisory on the part of the server, that is it can return content types which are not in the list, but where options exist in the possible returned content tree the requested types, in order, SHOULD be the ones chosen by the server.   I would propose the option be "Non-Critical, Safe, CacheKey, Repeatable".
> >
> > I am not sure if I believe that the new option is part of the cache key or not.  I can see arguments on both sides, but I think I come down to yes.
> >
> > Carsten,   I think that this issue (but maybe not this solution) needs to be put onto the agenda for the interim meeting next Wed.
> >
> > Jim
> >
> >
> > > -----Original Message-----
> > > From: Klaus Hartke <hartke@projectcool.de <mailto:hartke@projectcool.de>>
> > > Sent: Tuesday, February 12, 2019 9:50 AM
> > > To: Jim Schaad <ietf@augustcellars.com <mailto:ietf@augustcellars.com>>
> > > Cc: draft-ietf-core-multipart-ct@ietf.org <mailto:draft-ietf-core-multipart-ct@ietf.org>; core@ietf.org <mailto:core@ietf.org> WG <core@ietf.org <mailto:core@ietf.org>>
> > > Subject: Re: [core] draft-ietf-core-multipart-ct
> > >
> > > For context: [1] [2]
> > >
> > > Jim Schaad wrote:
> > > > If you say ACCEPT 62, do you accept any combination of nested content
> > > types?
> > >
> > > Yes. A CoAP request can include at most one Accept option and any response
> > > must exactly that value as Content-Format or be an error response. CoAP
> > > doesn't have a mechanism for negotiating the content formats of
> > > representations embedded in other representations. I stumbled upon the
> > > same problem with CoRAL.
> > >
> > > > Should something about this be placed into the draft?
> > >
> > > Yes. Proposed text: "CoAP doesn't have a mechanism for negotiating the
> > > content formats of representations embedded in application/multipart-core
> > > representations."
> > >
> > > > Also I note that this draft is currently expired and needs to be reposted.
> > >
> > > Yes. Soon™.
> > >
> > > Klaus
> > >
> > > [1]
> > > https://mailarchive.ietf.org/arch/msg/ace/L1QPw1zHAj15nsKMe8AFDu6dcm <https://mailarchive.ietf.org/arch/msg/ace/L1QPw1zHAj15nsKMe8AFDu6dcm>
> > > I
> > > [2] https://mailarchive.ietf.org/arch/msg/ace/vj5CYF8eRrra5yph2Z9ui3Gkllk <https://mailarchive.ietf.org/arch/msg/ace/vj5CYF8eRrra5yph2Z9ui3Gkllk>
> >
> > _______________________________________________
> > core mailing list
> > core@ietf.org <mailto:core@ietf.org>
> > https://www.ietf.org/mailman/listinfo/core <https://www.ietf.org/mailman/listinfo/core>
> 
> -- 
> Thomas
> _______________________________________________
> core mailing list
> core@ietf.org
> https://www.ietf.org/mailman/listinfo/core