Re: Small size of core QUIC library to replace TCP for embedded system

Lars Eggert <lars@eggert.org> Tue, 21 July 2020 08:26 UTC

Return-Path: <lars@eggert.org>
X-Original-To: quic@ietfa.amsl.com
Delivered-To: quic@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 5CCDB3A15D0 for <quic@ietfa.amsl.com>; Tue, 21 Jul 2020 01:26:41 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.099
X-Spam-Level:
X-Spam-Status: No, score=-2.099 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=eggert.org
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 qg9l2_Mf5j1O for <quic@ietfa.amsl.com>; Tue, 21 Jul 2020 01:26:39 -0700 (PDT)
Received: from mail.eggert.org (mail.eggert.org [IPv6:2a00:ac00:0:35:211:32ff:fe22:186f]) (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 822273A15CF for <quic@ietf.org>; Tue, 21 Jul 2020 01:26:39 -0700 (PDT)
Received: from [IPv6:2a00:ac00:0:35:e9f7:316e:5e24:9364] (unknown [IPv6:2a00:ac00:0:35:e9f7:316e:5e24:9364]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.eggert.org (Postfix) with ESMTPSA id 5B3F5643F60; Tue, 21 Jul 2020 11:26:29 +0300 (EEST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=eggert.org; s=dkim; t=1595319989; bh=t57jqrPq1HvqEDPdOv23BBZKecl/LmGkzXgdmQv16Fk=; h=From:Subject:Date:In-Reply-To:Cc:To:References; b=0AVs1noKZ01NETOwbYjEJWEHRFiLHitv/FH9XXDix5wUMDMjUk+xB2/9PzIuSQixu 4D/MNrpFFstbK8wpBmbYM14QTTymQl5GemmIZNrNMD3dNmxtMiLAxnyuwK+O0rkgs0 qdJU86JhNN0vMxIeAuOV1gTtHtQ5jOqq6oTw2hL8=
From: Lars Eggert <lars@eggert.org>
Message-Id: <F384B33C-70F8-45EF-AB5C-30D0A145659A@eggert.org>
Content-Type: multipart/signed; boundary="Apple-Mail=_FDAD78C0-6493-47F2-B2FD-475BED90032B"; protocol="application/pgp-signature"; micalg="pgp-sha512"
Mime-Version: 1.0 (Mac OS X Mail 13.4 \(3608.120.23.2.1\))
Subject: Re: Small size of core QUIC library to replace TCP for embedded system
Date: Tue, 21 Jul 2020 11:26:29 +0300
In-Reply-To: <CAA=hcWTP7mVo1yyr8wQrgNuA40Tr5=XcrqJiebtVa7Km=2sLzw@mail.gmail.com>
Cc: quic <quic@ietf.org>
To: Jupiter <jupiter.hce@gmail.com>
References: <CAA=hcWS0V8ipsoAEFK3ejdA++Vzi+czth37=ntP4mnt8d=mtRg@mail.gmail.com> <1C514B96-9AAA-40B3-93EC-3DCDFAF72A93@eggert.org> <CAA=hcWTP7mVo1yyr8wQrgNuA40Tr5=XcrqJiebtVa7Km=2sLzw@mail.gmail.com>
X-MailScanner-ID: 5B3F5643F60.A4669
X-MailScanner: Found to be clean
X-MailScanner-From: lars@eggert.org
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/rqK3sm_a2zPUsslz7HeBdLQfvVo>
X-BeenThere: quic@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Main mailing list of the IETF QUIC working group <quic.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/quic>, <mailto:quic-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/quic/>
List-Post: <mailto:quic@ietf.org>
List-Help: <mailto:quic-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/quic>, <mailto:quic-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 21 Jul 2020 08:26:41 -0000

Hi,

On 2020-7-21, at 11:17, Jupiter <jupiter.hce@gmail.com> wrote:
> I am running Linux on iMX6ULZ using
> all sorts of open source libraries in C and C++.

if your hardware can run Linux, most of the current open source stacks (see https://github.com/quicwg/base-drafts/wiki/Implementations) should be small enough to work. But I wouldn't call it an embedded system then...

> Thanks for the links, I have to admit, my QUIC knowledge is limited, I
> thought QUIC should be a user space program, anything talking to low
> layers through Linux kernel API,

That is how most implementations work, correct.

But constrained-resource embedded devices at the low end often can't run Linux or another full-fledged OS. Many hence link together an application with only the required bits of a library OS (RIOT, Zephyr, FreeRTOS & derivatives) and run that statically on bare metal.

> seems you have to alter Ethernet RX /
> TX for QUIC, does that mean you have to alter WiFi or other media
> communications as well? My WiFi is currently supported by Linux open
> source mwifiex.

You do not need to do this for QUIC, only when you want to run on embedded boards that don't have a capable-enough Socket API interface.

>> It should be reasonably straightforward to add a packet I/O backend for
>> other IoT platforms to warpcore, (https://github.com/NTAP/warpcore) which is
>> quant's packet I/O library. I had been considering Zephyr support, but ran
>> out of time.
> 
> Looks very good, I suppose I should be able to run it on an Ubuntu 18
> laptop, right?

It will run on Linux without changes (my public test server runs Ubuntu).

Lars