Re: [6lo] adoption of draft-ayers-low-power-interop-00, and industrial specifications

Philip Levis <pal@cs.stanford.edu> Fri, 03 August 2018 23:04 UTC

Return-Path: <pal@cs.stanford.edu>
X-Original-To: 6lo@ietfa.amsl.com
Delivered-To: 6lo@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 53E581271FF for <6lo@ietfa.amsl.com>; Fri, 3 Aug 2018 16:04:41 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.476
X-Spam-Level:
X-Spam-Status: No, score=-3.476 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, MIME_HTML_ONLY=0.723, RCVD_IN_DNSWL_MED=-2.3, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=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 Xl9OlZGtXAAX for <6lo@ietfa.amsl.com>; Fri, 3 Aug 2018 16:04:39 -0700 (PDT)
Received: from smtp2.cs.Stanford.EDU (smtp2.cs.stanford.edu [171.64.64.26]) (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 C633C130DDD for <6lo@ietf.org>; Fri, 3 Aug 2018 16:04:39 -0700 (PDT)
Received: from airbears2-136-152-143-39.airbears2.berkeley.edu ([136.152.143.39]:12527 helo=airbears2-10-142-39-48.airbears2.1918.berkeley.edu) by smtp2.cs.Stanford.EDU with esmtpsa (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.90_1) (envelope-from <pal@cs.stanford.edu>) id 1flj7d-0003gr-O5; Fri, 03 Aug 2018 16:04:38 -0700
Mime-Version: 1.0 (Mac OS X Mail 11.5 \(3445.9.1\))
Content-Type: text/html; charset="utf-8"
X-Apple-Auto-Saved: 1
X-Apple-Mail-Remote-Attachments: YES
From: Philip Levis <pal@cs.stanford.edu>
X-Apple-Base-Url: x-msg://68/
In-Reply-To: <8AC74B30-7B4B-4DFA-BB90-43E46A6C5D8F@tzi.org>
X-Apple-Windows-Friendly: 1
Date: Fri, 03 Aug 2018 14:52:54 -0700
Cc: Michael Richardson <mcr+ietf@sandelman.ca>, 6lo@ietf.org
X-Apple-Mail-Signature: SKIP_SIGNATURE
Content-Transfer-Encoding: quoted-printable
Message-Id: <36AA238B-2716-42BC-B2EF-F440952856B2@cs.stanford.edu>
References: <7437.1533163099@localhost> <8AC74B30-7B4B-4DFA-BB90-43E46A6C5D8F@tzi.org>
X-Uniform-Type-Identifier: com.apple.mail-draft
To: Carsten Bormann <cabo@tzi.org>
X-Mailer: Apple Mail (2.3445.9.1)
X-Scan-Signature: 2ecb59bd28923317bd193fe54b7794cd
Archived-At: <https://mailarchive.ietf.org/arch/msg/6lo/GFH-X4rWCcjBhiCyzvTi0xLBzU8>
Subject: Re: [6lo] adoption of draft-ayers-low-power-interop-00, and industrial specifications
X-BeenThere: 6lo@ietf.org
X-Mailman-Version: 2.1.27
Precedence: list
List-Id: "Mailing list for the 6lo WG for Internet Area issues in IPv6 over constrained node networks." <6lo.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/6lo>, <mailto:6lo-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/6lo/>
List-Post: <mailto:6lo@ietf.org>
List-Help: <mailto:6lo-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/6lo>, <mailto:6lo-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 03 Aug 2018 23:04:41 -0000



On Aug 1, 2018, at 11:01 PM, Carsten Bormann <cabo@tzi.org> wrote:

On Aug 2, 2018, at 00:38, Michael Richardson <mcr+ietf@sandelman.ca> wrote:

As for the document.  I want to suggest that the WG adopt it.

Hmm.  While the document has some interesting observations, I don’t think we should adopt any one of its conclusions.  The interop problems we are seeing in the research implementations are mostly coming from the fact that interop simply was not an objective in many of the research activities that led to those implementations.  Adding more variants of 6LoWPAN to the mix is NOT going to help with that.

Carsten,

I’m trying to understand your expectation for the convergence point of 6lowpan implementations, or why an ICMP error would not be helpful. I can imagine three possible end points — does one of these hit the mark, or is it something else?

Completion: Every 6lowpan implementation will support every feature of 6lowpan, and they will fully interoperate.

Silos: Some 6lowpan implementations in vertical application/network silos controlled by a single vendor will pick and choose the features they want, because they do not have to operate with other implementations. “Open” 6lowpan implementations will support every feature of 6lowpan.

Quilt (what we have today): Different implementations and builds of those implementations will pick and choose different sub-parts of the specification, and will deterministically fail to exchange certain packets. This is OK.

To me, none of these three endpoints is desirable.

*Completion* ignores the reality of implementations and the cost-benefit tradeoffs of embedded platforms. We can see, experimentally, that many years after the relevant RFCs, neither industrial nor research platforms implement the entire specification. These not-overlapping subsets cause devices to not interoperate in some cases. Code space is at a premium. One could argue that 6lowpan is only intended for bigger microcontrollers, because eventually all of them will have enough code memory, but I think this simultaneously excludes huge applications areas from being connected to the Internet and ignores what the price/resources tradeoffs are like in embedded systems.

*Silos* ignores the points above for open implementations that don’t belong in a silo. While it’s clear that we want 6lowpan to be able to support these silos (and allow their vendors/specification bodies to only use subsets of the features), making it harder for open systems to interoperate for the benefit of closed ones seems against some of the core tenets of the IETF. Furthermore, this puts open implementations in a weird and uncompetitive spot: they have to do more than siloed ones. Take, for example, the case of UDP checksum elision, which Pascal brought up at 102. His argument was that a vendor said that they would not use 6lowpan if they could not elide the checksum. I can explain why this fundamentally breaks the end-to-end argument (the original Saltzer and Reed, not RFC1958), but that doesn’t matter[1]. The issue is that, in 6lowpan, this feature is not an option or a MAY, it’s a MUST.

*Quilt* is problematic in that it eschews responsibility for encouraging and promoting interoperability. If the IETF doesn’t help define what it means to have “working code”, then other groups will. In the case of silos, this makes sense. But in the case of an open, interoperability Internet of Things, I’d expect the IETF wants to be the organization that guides and leads the effort.

Instead, it seems like the correct endpoint is one in which implementations (as they all do so today) can implement a subset of 6lowpan, but also detect when they use a feature that another device does not support. A device transmitting an unsupported packet does not have to do something in response (it could just not interoperate), but it can do something and try to interoperate.

Furthermore,  having an ICMP error doesn’t create a new implementation that will make existing devices not interoperate. It’s something which devices that do want to interoperate can use to do so more easily.

Phil

[1] Suppose there is a bug in your networking stack such that, when routing a packet, sometimes the UDP port is incorrectly stored in host order rather than network order. A link layer frame is received and passes link-layer integrity. The 6lowpan and UDP headers are inspected, and the packet is scheduled to be forwarded. At this point the UDP port is corrupted. This corrupted packet is then passed to the link layer, at which point the MAC covers the corrupted port.