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
>