Re: [Suit] SUIT Architecture -- Operating modes
Emmanuel Baccelli <Emmanuel.Baccelli@inria.fr> Wed, 06 June 2018 09:58 UTC
Return-Path: <emmanuel.baccelli@gmail.com>
X-Original-To: suit@ietfa.amsl.com
Delivered-To: suit@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 77B3D130EDB for <suit@ietfa.amsl.com>; Wed, 6 Jun 2018 02:58:31 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.402
X-Spam-Level:
X-Spam-Status: No, score=-1.402 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FREEMAIL_FORGED_FROMDOMAIN=0.248, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.249, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001] autolearn=no 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 JVnMcHzOhebo for <suit@ietfa.amsl.com>; Wed, 6 Jun 2018 02:58:28 -0700 (PDT)
Received: from mail-ua0-f169.google.com (mail-ua0-f169.google.com [209.85.217.169]) (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 6CAAE130ED0 for <suit@ietf.org>; Wed, 6 Jun 2018 02:58:28 -0700 (PDT)
Received: by mail-ua0-f169.google.com with SMTP id m21-v6so3690529uan.0 for <suit@ietf.org>; Wed, 06 Jun 2018 02:58:28 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to; bh=N+7OXH7GPkgOKNitNa8Vqc8wH9PCxDP4knVKOUzPFmg=; b=d6+b2bI8/QG7pL4KpGL31ZPFRA5lAbeHMU7po3Hn7QYMXMMOn2uJ78wUZoL9XCOFNq gNMPgNO1SXvhjkBCthOyq9h3d0di6reEqWNEz+YRazDmtOJLyHRrLzuR7wKMsS5MJFuU YxQ9X7A1adDbnwfT2+fZTenqZdSSFtBtwoFHVVjykS9rNOSoa/cOpK9+ROMO/vKuBK64 FZ9DKOZJRYUrkWsbfOqYQ3Soi4cVpOg08UtlTMA7nSQsArocViSrd08bpSPDJ23yyBPr kvkeahyqoEZ1Dce2/5SxTv2vqjQ/57Rn5xk3P0nvm7njuCqc6xGpVT494Olfw5FJ6Ihq d+Yw==
X-Gm-Message-State: APt69E3WFU6ddGqkMM8I/06yLIifXm2wqqFFi6S211IM4BBEGLNJawzt bVwFT6Mv43pXLsU4rXAZezDq8A4zubkfnB1FCnc=
X-Google-Smtp-Source: ADUXVKKSAZp/tu5UHldFzGEvM6wqqHFl1XjhA+cU8syLhUthIW/gzml2cLtKp2roeKFy7tD0nE+G07+6R2iM23OW3j0=
X-Received: by 2002:ab0:1723:: with SMTP id j35-v6mr1501274uaf.154.1528279107117; Wed, 06 Jun 2018 02:58:27 -0700 (PDT)
MIME-Version: 1.0
References: <VI1PR0801MB211259B72731F37766C0227CFA650@VI1PR0801MB2112.eurprd08.prod.outlook.com> <CY4PR21MB07746C16253D71D61702C90DA3650@CY4PR21MB0774.namprd21.prod.outlook.com>
In-Reply-To: <CY4PR21MB07746C16253D71D61702C90DA3650@CY4PR21MB0774.namprd21.prod.outlook.com>
From: Emmanuel Baccelli <Emmanuel.Baccelli@inria.fr>
Date: Wed, 06 Jun 2018 11:58:13 +0200
Message-ID: <CANK0pbZgLnYRJ3Hhu8tgEpL2K4192GeXH0ivPsc+7dykR7_FCQ@mail.gmail.com>
To: suit@ietf.org
Content-Type: multipart/alternative; boundary="0000000000004c2555056df6351e"
Archived-At: <https://mailarchive.ietf.org/arch/msg/suit/urD0llerd-XbJKrtKViCy0UI2ZA>
Subject: Re: [Suit] SUIT Architecture -- Operating modes
X-BeenThere: suit@ietf.org
X-Mailman-Version: 2.1.26
Precedence: list
List-Id: Software Updates for Internet of Things <suit.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/suit>, <mailto:suit-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/suit/>
List-Post: <mailto:suit@ietf.org>
List-Help: <mailto:suit-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/suit>, <mailto:suit-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 06 Jun 2018 09:58:32 -0000
Hi Dave On Wed, Jun 6, 2018 at 11:37 AM Dave Thaler <dthaler= 40microsoft.com@dmarc.ietf.org> wrote: > > The notification of an update can be device initiated (pull) or remotely > initiated (push). > The transfer of the actual image can also be device initiated (pull) or > remotely initiated (push). > The three cases are (I think the other combination doesn't make sense): > 1) Push notification, push image > 2) Push notification, pull image > 3) Pull notification, pull image > > In my opinion, this is also potentially clearer. One comment though: does case 1 really make sense? If the image is pushed anyways, there is arguably no need for prior notification. Or are we implicitly mixing "notification" with "pre-authorization" aspects? Emmanuel > > -----Original Message----- > From: Suit <suit-bounces@ietf.org> On Behalf Of Hannes Tschofenig > Sent: Wednesday, June 6, 2018 5:27 PM > To: suit@ietf.org > Subject: [Suit] SUIT Architecture -- Operating modes > > Hi all, > > at the virtual interim meeting earlier this year Dave suggested > terminology, which was based on ITU-T work for firmware updates: > > - Device Core: stores/uses software/firmware, i.e., the IoT device itself > > - Communicator: checks software/firmware status of device and initiates > update as needed May or may not be on the device itself > > - Status Tracker: tracks update status of devices under its administration > > - Firmware Server: distributes > software/firmware packages to devices > May or may not be combined with Status Tracker > > At IETF#101 we talked about the following three categories for firmware > update interactions: > > - Client-initiated: IoT device polls for updates and downloads image when > it wants > - Server-initiated: Server pushes update to a device > - Hybrid: Server pushes notification of availability of an update to a > device, and the client then > downloads the image when it wants. > > In > https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Ftools.ietf.org%2Fhtml%2Fdraft-ietf-suit-architecture-00&data=02%7C01%7Cdthaler%40microsoft.com%7Cfdbcbf2e3be442dc544208d5cb8fc354%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C1%7C636638740682287207&sdata=Z8JJlDZINiolbZmqINLWCMEaWT1%2BcUkAGQpBqfhjvCw%3D&reserved=0 > Brendan and I made a proposal for a new terminology. Here is the relevant > text: > > ----- > > 3.10. Operating modes > > There are three broad classifications of update operating modes. > > * Self initiated > * Third-party initiated > * Hybrid > > Self initiated updates take the form of a proactive IoT device that > checks for updates. Third-party initiated updates are triggered by > an actor other than the IoT device, be it a server, a peer, or a > user. Hybrid updates are those that require agreement from both the > target IoT device and another actor. > > Third-party initiated updates are important to consider because > timing of updates may need to be tightly controlled in some high- > reliability environments. > > An IoT device goes through several steps in the course of an update, > each of which can be self-initiated or third-party initiated, or > hybrid. An IoT device may go through the following steps, though > this is not a comprehensive list. > > * Notification > * Pre-authorisation > * Dependency resolution > * Download > * Installation > > The notification step consists informing an IoT device that an update > is available. This can be accomplished via polling (self-initiated), > push notifications (third-party initiated), or more complex > mechanisms. > > The pre-authorisation step involves verifying the update authority > and making a determination that the device is prepared to initiate > the fetching and processing of updates. If the device has all > information that is necessary to make this determination, then the > pre-authorisation may be self-initiated. However, the device can > wait for instruction to begin (third-party initiated). Hybrid > approaches are possible as well. > > A dependency resolution phase is needed when more than one component > can be updated or when a differential update is used. The necessary > dependencies must be available prior to installation. > > The download step is the process of acquiring a local copy of the > payload. When the download is self-initiated, this means that the > IoT device chooses when a download occurs and initiates the download > process. When a download is third-party initiated, this means that > either the remote service tells the IoT device when to download or > that it initiates the transfer directly to the IoT device. For > example, a download from an HTTP server is initiated locally. A > transfer to a LwM2M Firmware Update resource [LwM2M] is initiated > remotely. > > Installation is the act of processing the payload into a format that > the IoT device can recognise. > > Each of these steps may require different permissions expressed in > claims and may be implemented in a variety of ways. > > ---- > > Offline feedback from Dave indicates that it did not help improve clarify. > Hence, I am going it a new try. Let me know what you think. > > > ----- > > 3.10. Operating modes > > There are three broad classifications of update operating modes. > > * Client-initiated Update > * Server-initiated Update > * Hybrid Update > > Client-initiated updates take the form of a Communicator on a Device Core > proactively checking for new firmware imagines provided by Firmware > Servers. > > Server-initiated updates are important to consider because > timing of updates may need to be tightly controlled in some high- > reliability environments. In this case the Communicator, potentially in > coordination with the Status Tracker, determines what IoT devices need > qualify for a firmware update. Once those devices have been selected the > Firmware Server distributes updates to those Device Cores. > > Note: This assumes that the Firmware Server is able to reach the Device > Cores, > which may require Device Cores to keep reachability information at the > Communicator > and / or at the Firmware Server up-to-date. This may also require > keeping state at > NATs and stateful packet filtering firewalls alive. > > Hybrid updates are those that require an interaction between the Device > Core > and the Firmware Server / Communicator. The Communicator pushes > notifications > of availability of an update to the Device Core, and the Device Core then > downloads the image from the Firmware Server when it wants. > > An alternative approach is to consider the steps an IoT device has to > go through > in the course of an update: > > * Notification > * Pre-authorisation > * Dependency resolution > * Download > * Installation > > The notification step consists of the Communicator informing the Device > Core > that an update is available. This can be accomplished via polling > (client-initiated), > push notifications (server-initiated), or more complex > mechanisms. > > The pre-authorisation step involves verifying whether the entity signing > the manifest is indeed authorized to perform an update. The Device Core > must also determine whether it should fetching and processing of the > firmware image (unless it has been attached already to the manifest > itself). > > A dependency resolution phase is needed when more than one component > can be updated or when a differential update is used. The necessary > dependencies must be available prior to installation. > > The download step is the process of acquiring a local copy of the > firmware image. When the download is client-initiated, this means that > the > IoT device chooses when a download occurs and initiates the download > process. When a download is server-party initiated, this means that > either the Communicator / Firmware Server tells the IoT device when > to download or that it initiates the transfer directly to the IoT > device. > For example, a download from an HTTP-based Firmware Server is > client-initiated. > A transfer to a LwM2M Firmware Update resource [LwM2M] is > server-initiated. > > If the Device Core has downloaded a new firmware image and is ready to > install it it may need to wait for a trigger from a Communicator to > install the firmware update, may trigger the update automatically, or > may go through a more complex decision making process to determine > the appropriate timing for an update (such as delaying the update > process to a later time when end users are less impacted by the update > process). > > Installation is the act of processing the payload into a format that > the IoT device can recognise and the bootloader is responsible for then > booting from the newly installed firmware image. > > Each of these steps may require different permissions. > > ---- > > Is this any better? > > Writing the text above I noticed that the Communicator and the Status > Tracker have some overlapping functionality. Both entities need to know > about the status of the device. Also it would be good to know what > "initiates update" for the communicator actually needs. > > Finally, the term "Device Core" sounds a bit strange. Would it be better > to call it 'update service' or just refer to IoT device? > > Ciao > Hannes > > > IMPORTANT NOTICE: The contents of this email and any attachments are > confidential and may also be privileged. If you are not the intended > recipient, please notify the sender immediately and do not disclose the > contents to any other person, use it for any purpose, or store or copy the > information in any medium. Thank you. > > _______________________________________________ > Suit mailing list > Suit@ietf.org > > https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.ietf.org%2Fmailman%2Flistinfo%2Fsuit&data=02%7C01%7Cdthaler%40microsoft.com%7Cfdbcbf2e3be442dc544208d5cb8fc354%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C1%7C636638740682287207&sdata=W0Ak6fX0oHbALgg5XxU0YiN9z%2Ber18j7sUJbjfbqow8%3D&reserved=0 > > _______________________________________________ > Suit mailing list > Suit@ietf.org > https://www.ietf.org/mailman/listinfo/suit >
- [Suit] SUIT Architecture -- Operating modes Hannes Tschofenig
- Re: [Suit] SUIT Architecture -- Operating modes Dave Thaler
- Re: [Suit] SUIT Architecture -- Operating modes Emmanuel Baccelli
- Re: [Suit] SUIT Architecture -- Operating modes Michael Richardson
- Re: [Suit] SUIT Architecture -- Operating modes Hannes Tschofenig
- Re: [Suit] SUIT Architecture -- Operating modes Dave Thaler
- Re: [Suit] SUIT Architecture -- Operating modes Matthias Waehlisch