[Suit] SUIT Architecture -- Operating modes
Hannes Tschofenig <Hannes.Tschofenig@arm.com> Wed, 06 June 2018 09:27 UTC
Return-Path: <Hannes.Tschofenig@arm.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 EA85D130EDB
for <suit@ietfa.amsl.com>; Wed, 6 Jun 2018 02:27:37 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.911
X-Spam-Level:
X-Spam-Status: No, score=-1.911 tagged_above=-999 required=5
tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1,
RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001, T_DKIMWL_WL_MED=-0.01]
autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key)
header.d=armh.onmicrosoft.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 6yE-3FN_6u0z for <suit@ietfa.amsl.com>;
Wed, 6 Jun 2018 02:27:31 -0700 (PDT)
Received: from EUR01-HE1-obe.outbound.protection.outlook.com
(mail-he1eur01on0079.outbound.protection.outlook.com [104.47.0.79])
(using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits))
(No client certificate requested)
by ietfa.amsl.com (Postfix) with ESMTPS id 3A172130ED7
for <suit@ietf.org>; Wed, 6 Jun 2018 02:27:31 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;
s=selector1-arm-com;
h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
bh=WUKLpm5tmTdhbjG9dz6wnoWAdN2YAQDrqIWw/AdZKnA=;
b=YKNjLh1lDAuEkhnV7LY51ZDC+y/X1mYHF73zVwh8rKoF0BukqjO5VX5nzmhMaN1sB/FsokI19NwW3NTcQWvIPWaIQcMmM1RCevkXf2RNvKMT3RC91MxuYbWyYvz7gju/ZCL9rBWyHN3gX9sWi6NLoGuXx8yv0cuDWu/0+1vm5SQ=
Received: from VI1PR0801MB2112.eurprd08.prod.outlook.com (10.173.75.16) by
VI1PR0801MB1744.eurprd08.prod.outlook.com (10.168.67.22) with Microsoft SMTP
Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
15.20.820.14; Wed, 6 Jun 2018 09:27:28 +0000
Received: from VI1PR0801MB2112.eurprd08.prod.outlook.com
([fe80::d1df:1498:96ec:6b35]) by VI1PR0801MB2112.eurprd08.prod.outlook.com
([fe80::d1df:1498:96ec:6b35%4]) with mapi id 15.20.0820.015; Wed, 6 Jun 2018
09:27:28 +0000
From: Hannes Tschofenig <Hannes.Tschofenig@arm.com>
To: "suit@ietf.org" <suit@ietf.org>
Thread-Topic: SUIT Architecture -- Operating modes
Thread-Index: AdP9eHteSzrUiKgdQTO0D4Kr/wumzQ==
Date: Wed, 6 Jun 2018 09:27:28 +0000
Message-ID: <VI1PR0801MB211259B72731F37766C0227CFA650@VI1PR0801MB2112.eurprd08.prod.outlook.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: spf=none (sender IP is )
smtp.mailfrom=Hannes.Tschofenig@arm.com;
x-originating-ip: [195.37.142.77]
x-ms-publictraffictype: Email
x-microsoft-exchange-diagnostics: 1; VI1PR0801MB1744;
7:5vnPcw0XnFv6WHlDEenxL6w7NkByKS3vonjdbtY9p9J/qXbeqtienmApBHRqDb3+37sbDGpJXbLa09qEEN2YAZqIgDgWa8uSOk9DVAaCtDzLLVZmwBVnnz4sJ4pvdsbbj37MUu6b8P0pwJqhQN2hyy+fmqVF5NL/YF3SwjSSAdD35RA1gGGBsjAsMcCE2QL0b9YdmdjOS6SnKfKi8oR/xAFxaaQsuQjjgM2UY8voP4Biby6q44ozC7bILfuNn+KI
x-ms-exchange-antispam-srfa-diagnostics: SOS;
x-ms-office365-filtering-ht: Tenant
x-microsoft-antispam: UriScan:; BCL:0; PCL:0;
RULEID:(7020095)(4652020)(48565401081)(5600026)(4534165)(4627221)(201703031133081)(201702281549075)(2017052603328)(7153060)(7193020);
SRVR:VI1PR0801MB1744;
x-ms-traffictypediagnostic: VI1PR0801MB1744:
x-microsoft-antispam-prvs: <VI1PR0801MB174451A8D7A340BEDCBDEF75FA650@VI1PR0801MB1744.eurprd08.prod.outlook.com>
x-exchange-antispam-report-test: UriScan:(158342451672863);
x-ms-exchange-senderadcheck: 1
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0;
RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(10201501046)(93006095)(93001095)(3002001)(3231254)(944501410)(52105095)(6055026)(149027)(150027)(6041310)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123560045)(20161123562045)(20161123558120)(20161123564045)(6072148)(201708071742011)(7699016);
SRVR:VI1PR0801MB1744; BCL:0; PCL:0; RULEID:; SRVR:VI1PR0801MB1744;
x-forefront-prvs: 06952FC175
x-forefront-antispam-report: SFV:NSPM;
SFS:(10009020)(366004)(396003)(346002)(39380400002)(376002)(39860400002)(53754006)(189003)(199004)(40434004)(3846002)(53936002)(26005)(99286004)(25786009)(6506007)(2900100001)(486006)(7696005)(5250100002)(6916009)(476003)(105586002)(86362001)(5660300001)(5890100001)(102836004)(186003)(106356001)(59450400001)(2501003)(6306002)(14454004)(9686003)(8936002)(33656002)(55016002)(72206003)(561944003)(6436002)(5640700003)(2906002)(74316002)(2351001)(966005)(7736002)(3280700002)(8676002)(68736007)(66066001)(305945005)(3660700001)(97736004)(478600001)(6116002)(1730700003)(81156014)(81166006)(316002);
DIR:OUT; SFP:1101; SCL:1; SRVR:VI1PR0801MB1744;
H:VI1PR0801MB2112.eurprd08.prod.outlook.com; FPR:; SPF:None; LANG:en;
PTR:InfoNoRecords; MX:1; A:1;
received-spf: None (protection.outlook.com: arm.com does not designate
permitted sender hosts)
x-microsoft-antispam-message-info: NsiIPoYTyuFaEDy19yw9kFycB5klil56iNapHwoauUsQZwaiU4rjeOaZAVr/Hm9pKvBcXv5K+wg2l0H0wYB9IbqNeQ99N1v6iEkRIuKjrlmYD4ZwhsdRpwjTGd8bxN5cWfV3pPr1MzGjAhZc9ZjHYUKkMs+im2DsYV206T/A2E9y6Xuc/hw9Wjl1kszxkksf
spamdiagnosticoutput: 1:99
spamdiagnosticmetadata: NSPM
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-MS-Office365-Filtering-Correlation-Id: 696f433b-59f1-4bee-60ff-08d5cb8fb8c1
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 696f433b-59f1-4bee-60ff-08d5cb8fb8c1
X-MS-Exchange-CrossTenant-originalarrivaltime: 06 Jun 2018 09:27:28.2142 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0801MB1744
Archived-At: <https://mailarchive.ietf.org/arch/msg/suit/3-xs5ccSHRt3R2TU4topofkdXR0>
Subject: [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:27:38 -0000
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://tools.ietf.org/html/draft-ietf-suit-architecture-00 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.
- Re: [Suit] SUIT Architecture -- Operating modes Matthias Waehlisch
- Re: [Suit] SUIT Architecture -- Operating modes Hannes Tschofenig
- Re: [Suit] SUIT Architecture -- Operating modes Emmanuel Baccelli
- Re: [Suit] SUIT Architecture -- Operating modes Dave Thaler
- [Suit] SUIT Architecture -- Operating modes Hannes Tschofenig
- Re: [Suit] SUIT Architecture -- Operating modes Dave Thaler
- Re: [Suit] SUIT Architecture -- Operating modes Michael Richardson