From patchwork Fri Jun 2 13:20:21 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Storm, Christian" X-Patchwork-Id: 1789622 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=googlegroups.com (client-ip=2a00:1450:4864:20::237; helo=mail-lj1-x237.google.com; envelope-from=swupdate+bncbdd6bwv65qpbbb6z46rqmgqeztu6jsy@googlegroups.com; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=googlegroups.com header.i=@googlegroups.com header.a=rsa-sha256 header.s=20221208 header.b=e3m9/GiH; dkim-atps=neutral Received: from mail-lj1-x237.google.com (mail-lj1-x237.google.com [IPv6:2a00:1450:4864:20::237]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-384) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4QXkBg3KKPz20Py for ; Fri, 2 Jun 2023 23:20:11 +1000 (AEST) Received: by mail-lj1-x237.google.com with SMTP id 38308e7fff4ca-2af31539394sf18464211fa.3 for ; Fri, 02 Jun 2023 06:20:11 -0700 (PDT) ARC-Seal: i=3; a=rsa-sha256; t=1685712008; cv=pass; d=google.com; s=arc-20160816; b=GWtx7KQlzridPHBmqDUyFkCNFnrbB7M+ouwbPglrWX8R6D9gjXJIvTGan6ZHlNxNpX NZyxZMKdkaBCfbbUY2BrO9abXiBNPSJz1tE1kt+gumrFe/v+r4rLE9DcGoK67Lo5nhPy uv3Khw5oTDBTUDBanjkMy5WAvUTVWGh1hxS8+4JLxN8BNCtldub/ZwWNW/8hNKA7N4O8 7evQxHoxh2SrymwXkkoPg8wlj7sfJaM9mydOJYz5Ep17Sx8rAPtTRjEJroauw+wI+6Wr bvICJXMG6fESquG0r86kt6X4dTphPeNKhy6E95WDROxQuWf/17Pgqlia2VIrgNVQ+/YW 9eng== ARC-Message-Signature: i=3; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:reply-to:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from:dkim-signature; bh=rTn8jzUY9gLQ+Sb+AG7vtt5EFxlXzofQvXL2B7oJ5CY=; b=Jt193juUsAhxNX3hfdMpv6lMwCj69wm424gOb9OqfU0woGxh8EWsxEa0p/p1E/Ofd5 l4zVynlxQWc4+bWGXRx55y89Y0HAggy94bjuMPziFP+SvwgTkCJeSGovr3+XjppR7C6Y +JfMoRP5juYZ44vB8gcWhzCab/n0xsFZ2IoALhjk1o+dJW3WS0RxFk6PUYkV9L5rmBKs FZUqrunHePEbqXsFkftX2uAVLYuplig1k2A1cnzmfPVSXWF7EqbpiP3PN8LmAlalD30/ t0zExbwtRLEqskjJTbLFeDheWJJD9jHaJNjp3+j5tx2o+knfjMu6cneLnZdAi/qHlMMP cAtQ== ARC-Authentication-Results: i=3; gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=selector2 header.b=Q4pxw0GT; arc=pass (i=1 spf=pass spfdomain=siemens.com dkim=pass dkdomain=siemens.com dmarc=pass fromdomain=siemens.com); spf=pass (google.com: domain of christian.storm@siemens.com designates 2a01:111:f400:fe1a::61f as permitted sender) smtp.mailfrom=christian.storm@siemens.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=siemens.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlegroups.com; s=20221208; t=1685712008; x=1688304008; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:reply-to :x-original-authentication-results:x-original-sender:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from:from:to :cc:subject:date:message-id:reply-to; bh=rTn8jzUY9gLQ+Sb+AG7vtt5EFxlXzofQvXL2B7oJ5CY=; b=e3m9/GiHB52eFfBFBhvVC9WgNbY32IjBWLWYzKw9N9FfZHrcYiegewC4GuoHEx6xhC 1HZtAi81IPdVe3KFHBVeFFYDNRgrKBRCmVuOYFgcm0NIxx4KhOiK9A4kjjL8oV6s3NdN PEt1nnObiy9DUs3yStIrJ+510rFXj4OOjLP7yfV8doVVBb0Ib1I0EBPYfkL5pD7+juzR PM7elbaJr1xbCg6XyZ74HHySUQgQ/1AezOkF/EDRfpNF2zEFcOTOMBCLe/2jJMmfuw9p eYAW8Qu5gN7FxsgsCehbTti/GK8h82eKU3KVyrkQobjtgsVJBH1+AG8G6Js+R6bGKPvP n16w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1685712008; x=1688304008; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :x-spam-checked-in-group:list-id:mailing-list:precedence:reply-to :x-original-authentication-results:x-original-sender:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :x-beenthere:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=rTn8jzUY9gLQ+Sb+AG7vtt5EFxlXzofQvXL2B7oJ5CY=; b=StLUoA+Hg5Tfv9D11jCDWaqfEc0/WlrRSVljOWyPhbZkq+6w2xstFMmC4Q5LyQXWMo Imbe4bz7c1ZJPWak0oc7FFL3LjaWmEUCppLqcWiBvsCQYkZtguK40JkhID1KeTaioXqG ODTkq4luaKSCt7q9SOAiErdx5C6FyVGaluRWTJdcAaeV4qfbESYJPp2OKOc/cBaQJD/C dAjwi5Royf/xDkAk2VIv9GCuftIVkmaAMRUMPlEO/HmLK+wHyGW75gSxsIBgXOSBA9PN PIocSxLTAujPqX0r+PTdoEEFnbYnchJSaEwctkalzPEvyFpqOMh/ZfTiGFWCYhjfQCmn WemA== X-Gm-Message-State: AC+VfDw01socBzPatgtE+OvgrMUgTUXzI3QR3Ai2BUGxJLA9I+Odd1Ph quJbYflhWl8ORppmiw8fYCU= X-Google-Smtp-Source: ACHHUZ6tfstUHWlhISPl5K9BXP1UZ6o6ag89Pd5lPqKUvqfJKSzrR/u4n0/1s1aySMqSqoJFyL55IQ== X-Received: by 2002:a2e:a1c8:0:b0:2b1:a4b0:bd91 with SMTP id c8-20020a2ea1c8000000b002b1a4b0bd91mr1630554ljm.41.1685712007725; Fri, 02 Jun 2023 06:20:07 -0700 (PDT) X-BeenThere: swupdate@googlegroups.com Received: by 2002:a2e:b634:0:b0:2ac:8284:e51 with SMTP id s20-20020a2eb634000000b002ac82840e51ls376403ljn.1.-pod-prod-07-eu; Fri, 02 Jun 2023 06:20:06 -0700 (PDT) X-Received: by 2002:ac2:46cd:0:b0:4ee:d4bd:3475 with SMTP id p13-20020ac246cd000000b004eed4bd3475mr1469005lfo.32.1685712006285; Fri, 02 Jun 2023 06:20:06 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1685712006; cv=pass; d=google.com; s=arc-20160816; b=BhSvVAyBK+T62ylLasEk++eH9WSzdhevqBjMsTGJl4xuob5wYZdeCYWDZRZ6hrSINw zavjdGE4yRtlgxO9/KlcmT9hTpnBhcleY0Gj82hEWLa2XT6bOdwVHRJX4pervUA4HzGm wG927Rq/B86EmH3PtdffI9WQdwagW5PzXFUleO5Rd6K1RBBI8CiklI6x4Bw5aTGdEJ/h LDxgnhNieav9q8Z+TtoN4EwvESyCUcQ7aXu1G/0WbMiuq7CVA1xBQXl71GUr/K4Y3S47 LxfPXsDZdOanitT5jKiWfuIqcSLQGYK3Yj+XETmOMxMthbWCy6SAILJbgpnu+jGj1HPD Mdjg== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=mime-version:content-transfer-encoding:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature; bh=pnENxrYDVXgzd4n6ctz/RUW+Fd/hb9USGKTAiLvtvsc=; b=aBkITq6Wv63J1W95q3UXUiwy2ywDNREGzqMrNo2nluPB7csuALe4pzl7IE+AdFMX7O DM1Lo35Kv2grnn7juDbutHGNgESqs6wDPGmpZpiVwKQ2Rs8I31Km7eQmxSqtIPwsW1tU z92RBlZsgZeWnSNWEh5kKh2vhe9QpVic+9yZpA0zzijz2PUxKJXHAlbE+4doiBawH6fo ehuXDNVd1tPmyUftQfvceO7/wEPy/NMWhGBYOCliVkkx/oRWqDuBGzceyx4mXPLy6EFg ElV9Iy1Ix7ggxjmwXh8X6gvAiQ3Fq3Dn1xGkNGejPsR3IAo5wT2BY5H4ZhWKV2yAL8dD yX2Q== ARC-Authentication-Results: i=2; gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=selector2 header.b=Q4pxw0GT; arc=pass (i=1 spf=pass spfdomain=siemens.com dkim=pass dkdomain=siemens.com dmarc=pass fromdomain=siemens.com); spf=pass (google.com: domain of christian.storm@siemens.com designates 2a01:111:f400:fe1a::61f as permitted sender) smtp.mailfrom=christian.storm@siemens.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=siemens.com Received: from EUR03-DBA-obe.outbound.protection.outlook.com (mail-dbaeur03on2061f.outbound.protection.outlook.com. [2a01:111:f400:fe1a::61f]) by gmr-mx.google.com with ESMTPS id g32-20020a0565123ba000b004f3792ca9b8si93363lfv.6.2023.06.02.06.20.05 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Fri, 02 Jun 2023 06:20:06 -0700 (PDT) Received-SPF: pass (google.com: domain of christian.storm@siemens.com designates 2a01:111:f400:fe1a::61f as permitted sender) client-ip=2a01:111:f400:fe1a::61f; ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=JAS6Qh+2S8xIz8hrfJ9CyOURboZ0SdbLidhLdH2E4jy1XyLID+TwcFdh3zvATZo358biP9+S+NNuPsKwGR9EOHh0/hGXLUEpfymfiEwKXj4Y9uXptRYM8yGbophaUvYwFYx+FGFuMn2L5ofGcmJ/IjzcjH0vf/ZiXedPenvWpqrDzLCUvbbuGYJkWvG8l8oPj45ugPF5R+SO2zvJpHuUtImguOcOKgDE/NvYm/G+YcWrWMYpWHbD2mAhuuI2lWudk8R1f0D7sjb2rzBoUR4Aoa3bTqzIFqWyMLkTtrckwNGFPuFT4sqRHbyZZr4eqNbS2vdIGXUvxX5bweNxaPEM7g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=pnENxrYDVXgzd4n6ctz/RUW+Fd/hb9USGKTAiLvtvsc=; b=Eg8c0f1FVxQE5Wc/6OWYy+sH4m9OrnpiZ9129TK1qhve/ynzPmeEU4q8KDMF/czPS016dnCxBMx3FB9RA3mON/v/c46C2jX7QhJCzQ23chmOaSx6y9cnUqI/nL1RJLT9K9PshlbI5ETXWgTnWp6143DeLXFIc12p0W1XIaXfUxivnDJV3at/xCh7sDrt/kjYmdzyHi4D4Q6YJOpgG1DOfbjgUG9ytZnaBZh6R+qekvMiKFpkbhPVJIyEku/Q1JH75Q7kQ/Jewj/EWdfzqZfoGBxXKfDON8Y3jCALYcp0v0biIs3siJofsHMPcWBe8ezAXadwCgd/gdvvOfWhCHARiQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=siemens.com; dmarc=pass action=none header.from=siemens.com; dkim=pass header.d=siemens.com; arc=none Received: from DB9PR10MB5404.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:10:333::17) by GVXPR10MB5887.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:150:6::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6455.23; Fri, 2 Jun 2023 13:20:04 +0000 Received: from DB9PR10MB5404.EURPRD10.PROD.OUTLOOK.COM ([fe80::6bed:3b93:4756:c9f3]) by DB9PR10MB5404.EURPRD10.PROD.OUTLOOK.COM ([fe80::6bed:3b93:4756:c9f3%6]) with mapi id 15.20.6433.025; Fri, 2 Jun 2023 13:20:04 +0000 X-Patchwork-Original-From: "'Christian Storm' via swupdate" From: "Storm, Christian" To: swupdate@googlegroups.com Cc: Christian Storm Subject: [swupdate] [PATCH 4/5] suricatta/wfx: Documentation Date: Fri, 2 Jun 2023 15:20:21 +0200 Message-Id: <20230602132022.70931-4-christian.storm@siemens.com> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20230602132022.70931-1-christian.storm@siemens.com> References: <20230602132022.70931-1-christian.storm@siemens.com> X-ClientProxiedBy: FR0P281CA0266.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:b5::11) To DB9PR10MB5404.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:10:333::17) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DB9PR10MB5404:EE_|GVXPR10MB5887:EE_ X-MS-Office365-Filtering-Correlation-Id: a3423357-d3c9-47f5-cb11-08db636c1396 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 5ySzkRup2SFMpreqGw3FniPSBHEFVk//ZlWhpvQ2SzjUcO1owm1Rvm8bF+Jf6f3mvw3ZvjeQk/lyynrtb0KHgcqjEjCoKbIXu+02G8VAfDzj0f4oDtUO72gyrd8OXhYIILQ+Ns1O17K/PyWOqBWLLOIVSiHW3y0/JOasyBHP4nliEHklqZtn5n0IWNesmAFG8OeHlkyxkapCYeXCgoOx0nmGwsDoEcvr/mbVWDbjVV+MluQsDKsYLrMn5QRE54WEJwRFymXjiTF7ym2c0MwwDYYM37LLY3sn6FlnUhz8SpzHiCiqAfLmCbp5ZFy5rfoa1z0dFK8z5YFWr/nGyombz8nAmPsOsCFoboTbQpjX2m1EV9sCD0Q6dsyJTuiGCXgh4KFUJNM4/qduq1Tp3OqjkYxDmTBhSHFX8n25g4WRZxbqFgKON/shuAL8lvNn7I4ZNBokWeSSrbKK6i9sqkSfD/G6PEdWvtvZsUmjkxLLeZMK4cg0/nwlzlPsNuV0p4Wh/r+6IPBi/bdm/YbH3arXkL8uWMrdJYK1VP7u/NplN9JsDwjTZuewArV+BulndPUWWryyrGd6xH4vm4ehhLYYjg== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB9PR10MB5404.EURPRD10.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230028)(4636009)(39860400002)(376002)(136003)(346002)(366004)(396003)(451199021)(966005)(6486002)(478600001)(6666004)(83380400001)(186003)(36756003)(6512007)(2616005)(38100700002)(6506007)(86362001)(82960400001)(107886003)(1076003)(316002)(4326008)(41300700001)(66476007)(6916009)(66556008)(66946007)(44832011)(5660300002)(8676002)(8936002)(2906002)(66899021);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: oEuJpwJ2cUZbt5r25JXhy8LjIVIwipMtUdIGM6SQ8pe8VMC8b0c3Q0zXIuCAviL/ErPmwOCTS23jY1D3b3apsOPHUcq+jPICfO3SoH/0tpT2JPGhAkFDZ6Uz4WwqZ0aJTLDKJU87FoQquBiQtuAjhHg12iMJGpP15zHrsR6xrP9Aq7jbUc3ftyjEM0ggZXVnYao0gFPUcY9JUjbPIW6JfIr1YkLCavooIWS36Z1j5NdQodc0ZYXwCOxB6iF9zBVidgJKJaDJxN82V+ZVI1US8cpjhhL3soyi3DC4pCYcmrkODDVQHAHQUHnOd/parrneCr7CMOHh3hwv8UUipCB9XviG+7jveFbxjYJuPptQZDH4GH2MoodkzQW2K2oIXRWpWsvLSvKFN/iNGY0j8658p9Q5iI0HCDxC5d8N6PuqHkqUq9j5wxWKrWqPQBHUqK61vkxY9aZUfdBzE200PihdKw+tmv7IKaWn7ZtKvpyAi/MUz7cACCmLvaDUkm4D+3b4svOF2ooHXKn1Gwqdj4iUUuYJLNnLitwCN2RMcwJ35r8qY9edW363z3cZxPIDKQgRGUqJJNhKqZxQ0WNsNnRoapg33yxUGtP6jHjc2RaVlO9e1J3Q8fVI4SSn56UFrd+8APvKZpdB5xeFJbbj8CF8XQZUvYZEhmbH0IkvPU1qVkLjMpzU+OB8SN0fS9gWBay0EnOqYu804uzVPdmG3ifCbiDCO0/YXNhQLj+d9m3KjdFVRp9+uLCTTQBukcREVRj5XiUr7sPrTW4b9AY38UCWqfB+wM7eb/xnZyc3pZga2kgAFbtngDP1n9GYDM/ewxQoXqyCEdCfLSBof2mC4xRMfgySeneGPWmPN/j/qWhvXwWXydlo9R75RkWc7cD9To8h2hhBxp5dXBW6JKnMox/h+3Rhk+Ec0ZKelvWcaVYH/6gzfTrymU5nZ2alDHwZCaKQupQXSe5snySJHVGPUnv3eUQBhHAJKu3TGGQkK8q9dygagVQUGGRxsHzY4ymYRu26nay7RnrR0D+XCUD/Eb1F5noNk0zTuSQewFzyitF3MJLe3A8HY1uZyCSgRGFOVDitTunb8Wrse1GPVXyCY4N4NE4CtlFPow+exYe807EQZcazfA2zeejTOI5pbdBC8o68oqKbS0C7ruKVdj1oghRivgz/g8NKnRW0y9jU+uCNGZybFDRAsjiedcjrglVX/XfhpCQYpDe7hGijajK/w2nF5n4sojz9FXy7f94w1LXO4S9XYZhamyqkoF9QaX0fupvPTyXdPLwKSmeu0tVfUGorDz9PLCvgOGeOrD1qg+bysBai80ET8e0DWgdGgxPgT/i7fjAt0DN/lwG6jJZduOed3ixBi3KhaCO4PGB2cSSRJKmh+0NxV8j+GCGbKkMFC9h8+pdKdy0JENQ9qpyKUe+81m1icnXYPigrUzraiaUg/AyCtvdZhLKsTmCkYfzqpR+Q1qhAJs/2OIfHZXsAAUMUtdjKuRE6ybVlzG8eTEO5EXDriqGIB3BlD7o9mMniToI30Bzm/nJDHWW6b1Xld/jKzJctRUcYMU/3y/TGUGzzkdHQVBlK8pFsNq3DlEbUN6z2Emd103mgaL+pWF1okKkRX2PgrEvcl0C8RfXGlTm+q1MgRM8VLpccvwA8vT4MPA7W9Yd4KNovlPiKOBZfFpqCkg== X-OriginatorOrg: siemens.com X-MS-Exchange-CrossTenant-Network-Message-Id: a3423357-d3c9-47f5-cb11-08db636c1396 X-MS-Exchange-CrossTenant-AuthSource: DB9PR10MB5404.EURPRD10.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Jun 2023 13:20:04.0990 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 38ae3bcd-9579-4fd4-adda-b42e1495d55a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: u65L+fFTEr9XNp3zswSquD3V1QE0/30X16UVQ8tk3Jx86ImFWF3MvC8g7cBPgEYiI1sgudxIr9KK8meQvAtLaNejC5TUPhI2OaU0MEG4SAI= X-MS-Exchange-Transport-CrossTenantHeadersStamped: GVXPR10MB5887 X-Original-Sender: christian.storm@siemens.com X-Original-Authentication-Results: gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=selector2 header.b=Q4pxw0GT; arc=pass (i=1 spf=pass spfdomain=siemens.com dkim=pass dkdomain=siemens.com dmarc=pass fromdomain=siemens.com); spf=pass (google.com: domain of christian.storm@siemens.com designates 2a01:111:f400:fe1a::61f as permitted sender) smtp.mailfrom=christian.storm@siemens.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=siemens.com X-Original-From: Christian Storm Reply-To: Christian Storm Precedence: list Mailing-list: list swupdate@googlegroups.com; contact swupdate+owners@googlegroups.com List-ID: X-Spam-Checked-In-Group: swupdate@googlegroups.com X-Google-Group-Id: 605343134186 List-Post: , List-Help: , List-Archive: , List-Unsubscribe: , Document support for wfx server (https://www.github.com/siemens/wfx) Signed-off-by: Christian Storm --- doc/source/suricatta.rst | 178 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 178 insertions(+) diff --git a/doc/source/suricatta.rst b/doc/source/suricatta.rst index 9782e591..0264f52d 100644 --- a/doc/source/suricatta.rst +++ b/doc/source/suricatta.rst @@ -167,6 +167,184 @@ if ``SURICATTA_HAWKBIT`` was selected while configuring SWUpdate. endif +Support for wfx +--------------- + +The `wfx`_ server is supported by the Lua Suricatta module +``suricatta/server_wfx.lua`` (cf. Section `Support for Suricatta Modules in Lua`_). +Specifically, it implements a binding to the `Device Artifact Update`_ (DAU) workflow +family. + +If enabled via ``CONFIG_SURICATTA_WFX``, the wfx Lua Suricatta module is embedded +into the SWUpdate binary so that no extra deployment steps are required. Note that +this is purely a convenience shortcut for the installation of a Lua Suricatta module +as described in `Support for Suricatta Modules in Lua`_. + +.. _wfx: https://github.com/siemens/wfx +.. _Device Artifact Update: https://github.com/siemens/wfx/workflow/dau/ + + +Job Definition +.............. + +As being a general purpose workflow executor, wfx doesn't impose a particular job +definition nor schema, except that it's in JSON format. Instead, the job definition +is a contract between the operator creating jobs, each possibly following a different +workflow, and the client(s) executing those jobs in lock-step with the wfx. + +The wfx Lua Suricatta module understands job definitions as in the following +example (see ``job.definition.json_schema`` in ``suricatta/server_wfx.lua``): + +.. code:: json + + { + "version": "1.0", + "type": ["firmware", "dummy"], + "artifacts": [ + { + "name": "Example Device Firmware Artifact", + "version": "1.1", + "uri": "http://localhost:8080/download/example_artifact.swu", + } + ] + } + +The ``type`` list field allows to label update jobs. Labels are sent ``:``-concatenated +to the progress interface on `Update Activation`_. The only predefined label ``firmware`` +instructs the wfx Lua Suricatta module to record an installed update to the bootloader +environment (see :doc:`bootloader_interface`). +Within the artifacts list, only the ``uri`` field is strictly required for each artifact +while the fields ``name`` and ``version`` are used for informational purposes, if provided. +Further fields, including top-level fields, are ignored on purpose and may be freely used, +e.g., to enrich the job definition with metadata for update management. + +Since wfx is not concerned with the job definition except for conveying it to the +client (i.e. SWUpdate), it can be adapted to specific needs by feeding a different +job definition into the wfx on job creation and adapting the verification and job +handling methods in the wfx Lua Suricatta module's ``job.definition = {...}`` Table. + + +Workflows +......... + +The two Device Artifact Update (DAU) workflows `wfx.workflow.dau.direct`_ and +`wfx.workflow.dau.phased`_ are supported by the wfx Lua Suricatta module. +Hint: Use wfx's ``wfx-viewer`` command line tool to visualize the YAML +workflows in SVG or PlantUML format. + + +For each transition in a workflow for which the ``eligible`` field contains +``CLIENT``, e.g., + +.. code:: yaml + + transitions: + - from: + to: + eligible: CLIENT + +there has to be a matching transition execution function defined in the wfx Lua +Suricatta module. It executes the client actions to go from state ```` +to state ```` and finally sends the new job status to the wfx, updating it: + +.. code:: lua + + job.workflow.dispatch:set( + "", + "", + --- @param self job.workflow.transition + --- @param job job + --- @return transition.result + function(self, job) + if not job.status + :set({ + state = self.to.name, -- resolves to `` + message = ("[%s] reached"):format(self.to.name), + progress = 100, + }) + :send() then + -- Do not try to execute further transitions, yield to wfx. + return transition.result.FAIL_YIELD + end + return transition.result.COMPLETED + end + ) + +See ``suricatta/server_wfx.lua`` for examples of such transition execution functions. + + +New or adapted workflows are supported by appropriately defining/modifying the +transition execution functions in ``suricatta/server_wfx.lua`` -- or taking it as +inspiration and creating a new wfx Lua Suricatta module as described in `Support +for Suricatta Modules in Lua`_. + +.. _wfx.workflow.dau.phased: https://github.com/siemens/wfx/workflow/dau/wfx.workflow.dau.phased.yml +.. _wfx.workflow.dau.direct: https://github.com/siemens/wfx/workflow/dau/wfx.workflow.dau.direct.yml + + +Update Activation +................. + +The Device Artifact Update (DAU) workflows offer a dedicated activation step in +the update steps sequence to decouple artifact installation and activation times +so to not, e.g., upon a power-cut, prematurely test-boot into the new firmware +after installation until the activation is actually due. + +When the activation step is executed, the wfx Lua Suricatta module sends a progress +message (see :doc:`progress`) upon which a progress client executes or schedules +activation measures. For example, the following JSON is sent as the progress +message's ``.info`` field on activation of the `Job Definition`_ example given above: + +.. code:: json + + { + "state": "ACTIVATING", + "progress": 100, + "message": "firmware:dummy" + } + +The progress message's ``.status`` is ``PROGRESS``, see ``tools/swupdate-progress.c`` +for details on how a progress client can be implemented. + +**Note:** The activation message may be sent multiple times if the update activation +is pending, namely on each wfx poll operation and if a new update job is enqueued +while the current one is not activated. + +Because of the (predefined) ``firmware`` label present, the progress client should +initiate or schedule a reboot of the device in order to test-boot the new firmware. +Also because of the ``firmware`` label present, the wfx Lua Suricatta module records +the installed update to the bootloader environment. If this label was missing, no such +recording would've been made which is suitable for, e.g., configuration or +application updates. + +In order for the this mechanism to work, SWUpdate must not record the update to the +bootloader environment after it has installed it or, in case of configuration or +application updates, must not touch the bootloader environment at all (see the +Sections `Update Transaction and Status Marker` and `bootloader` in +:doc:`sw-description`). + +Hence, for firmware updates requiring a test-boot into the new firmware, the +following properties should be set in the ``.swu`` file's ``sw-description``: + +.. code:: + + software = + { + bootloader_transaction_marker = true; + bootloader_state_marker = false; + ... + +For configuration or application updates, the following properties apply: + +.. code:: + + software = + { + bootloader_transaction_marker = false; + bootloader_state_marker = false; + ... + + Support for general purpose HTTP server ---------------------------------------