From minios-devel-bounces@lists.xenproject.org Fri Jul 09 14:44:33 2021
Return-path: <minios-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 09 Jul 2021 14:44:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.153714.283965 (Exim 4.92)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1m1rjy-0004Br-9a; Fri, 09 Jul 2021 14:44:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 153714.283965; Fri, 09 Jul 2021 14:44:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <minios-devel-bounces@lists.xenproject.org>)
	id 1m1rjy-0004Bk-6Z; Fri, 09 Jul 2021 14:44:30 +0000
Received: by outflank-mailman (input) for mailman id 153714;
 Fri, 09 Jul 2021 14:44:28 +0000
Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]
 helo=us1-amaz-eas2.inumbo.com)
 by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from
 <SRS0=/6oL=MB=neclab.eu=simon.kuenzer@srs-us1.protection.inumbo.net>)
 id 1m1rjw-0004Bc-Gf
 for minios-devel@lists.xen.org; Fri, 09 Jul 2021 14:44:28 +0000
Received: from mailer2.neclab.eu (unknown [195.37.70.41])
 by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS
 id 283d1854-e0c4-11eb-85f5-12813bfff9fa;
 Fri, 09 Jul 2021 14:44:26 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by mailer2.neclab.eu (Postfix) with ESMTP id 73C61F2002;
 Fri,  9 Jul 2021 16:44:25 +0200 (CEST)
Received: from mailer2.neclab.eu ([127.0.0.1])
 by localhost (atlas-b.office.hd [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id SPDMukTMwnm5; Fri,  9 Jul 2021 16:44:25 +0200 (CEST)
Received: from puck.office.hd (puck.office.hd [192.168.24.91])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (No client certificate requested)
 by mailer2.neclab.eu (Postfix) with ESMTPS id 1DB14F2001
 for <minios-devel@lists.xen.org>; Fri,  9 Jul 2021 16:44:23 +0200 (CEST)
Received: from [10.7.2.32] (192.168.24.96) by puck.office.hd (192.168.24.91)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.10; Fri, 9 Jul
 2021 16:44:22 +0200
X-BeenThere: minios-devel@lists.xenproject.org
List-Id: Mini-os development list <minios-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:minios-devel@lists.xenproject.org>
List-Help: <mailto:minios-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/minios-devel>, 
 <mailto:minios-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: minios-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Minios-devel" <minios-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 283d1854-e0c4-11eb-85f5-12813bfff9fa
X-Virus-Scanned: Amavisd on Debian GNU/Linux (atlas-b.office.hd)
X-ENC: Last-Hop-TLS-encrypted
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=neclab.eu;
	s=mailer2-20210408; t=1625841865;
	bh=IHMNR/eUXGcoyS2FwtjjL6aBNljh0/nP0fKL+kLDXm8=;
	h=Subject:To:References:From:Date:In-Reply-To:From;
	b=pGQe60mLKpO4QcvQTODXKp4ZKA43wdFn8g9xWvtncJi75qDuoykC0SbELek34JkVB
	 NYFQ1b+EGJzT1fZ9HJ5m+opb6DXAvq76L2W9Jsquxnapxe/vDn5PBohK0dx5qV1pOV
	 X6y2EQFU3Ad/ck9dLijnc19jfsEJ4SEltRejXLRX6RuWT6mubQmOSCHDDvOf+HHrtG
	 fgSJrecbEgR2TlZzeJXPRCMRI8pAKtkjAkS2JFH9+9xIl6NrGrTvGtXohZdM9fo2DU
	 aZw/p8kW9/VQywS2mgS0qaRrIPguJQ5FoXm5diG2eW63F2+sL6EN5JfobEq8pIIZ1X
	 9IYGh5Up3S3KQ==
X-ENC: Last-Hop-TLS-encrypted
Subject: Re: [UNIKRAFT PATCH v3 00/16] Introduce a tap driver for Unikraft
To: Sharan Santhanam <sharan.santhanam@neclab.eu>,
	<minios-devel@lists.xen.org>
References: <20200722101512.16281-1-sharan.santhanam@neclab.eu>
From: Simon Kuenzer <simon.kuenzer@neclab.eu>
Message-ID: <23bcb2f8-ce20-c6c6-96d2-6866e31d47db@neclab.eu>
Date: Fri, 9 Jul 2021 16:43:18 +0200
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:78.0)
 Gecko/20100101 Thunderbird/78.11.0
MIME-Version: 1.0
In-Reply-To: <20200722101512.16281-1-sharan.santhanam@neclab.eu>
Content-Type: text/plain; charset="utf-8"; format=flowed
Content-Language: en-US
Content-Transfer-Encoding: 7bit
X-Originating-IP: [192.168.24.96]
X-ClientProxiedBy: titania.office.hd (192.168.24.89) To puck.office.hd
 (192.168.24.91)

Dear Sharan,

I migrated this patch series to GitHub for further review and integration:
https://github.com/unikraft/unikraft/pull/251

Thanks,

Simon

On 22.07.20 12:14, Sharan Santhanam wrote:
> The patch series introduces a tap driver for the linuxu platform. The series is
> structured as follows:
> - Introduce the uk_netdev interface implemented by the tap driver
> - Introduce pseudo tap bus to initialize the driver and probe a tap device.
> - The tap device discovered are registered with the uk_netdev.
> - Configure the netdevice by creating tap network interface.
> - Configure the hw address on the tap device.
> - Attach the tap device to a bridge interface.
> - Fetch and configure the MTU.
> - Check if the promiscuous mode is set
> - Fetch the txq/rxq information.
> - Configure the tx queue.
> - Configure the rx queue.
> - Start the tap interface.
> - Implement packet receive on the tap interface
> - Implement packet send on the tap interface
> - Fix the error code difference between Unikraft and linux.
> 
> Changes since v2:
> - Fix the tap_write implementation
> - Change the mac generate implementation
> - Minor fixes
> - Make feature independent from the poll patch
> 
> Changes since v1:
> - Complete the sys_open implementation with support for flags
> - Fix bug in calloc usage.
> - Move definitions into the required patches
> - Add some comments for the library parameters
> - Add descriptions to the struct definitions
> - Fix some typos.
> 
> Sharan Santhanam (16):
>    plat/linuxu/tap: Introduce tap driver
>    plat/tap: Bus interface for the tap device
>    plat/driver: Add tap device to the uk_netdev
>    plat/driver: Create a tap dev during configuration
>    plat/driver: Set features supported on tap device
>    plat/tap: Get/Set hw_addr
>    plat/tap: Add tap to the bridge
>    plat/tap: Get/Set MTU
>    plat/tap: Get promiscuous mode
>    plat/tap: Fetch txq and rxq info
>    plat/tap: Setup txq
>    plat/tap: Setup rxq
>    plat/tap: Start a tap device
>    plat/tap: Support tap_netdev_recv
>    plat/tap: Support tap_netdev_xmit
>    plat/linuxu: Convert linux errno to unikraft errno
> 
>   plat/drivers/include/tap/tap.h              |  51 ++
>   plat/drivers/tap/tap.c                      | 868 ++++++++++++++++++++
>   plat/linuxu/Config.uk                       |  18 +
>   plat/linuxu/Makefile.uk                     |  15 +
>   plat/linuxu/include/linuxu/syscall-arm_32.h |   6 +
>   plat/linuxu/include/linuxu/syscall-x86_64.h |   7 +
>   plat/linuxu/include/linuxu/syscall.h        |  86 ++
>   plat/linuxu/include/linuxu/tap.h            | 152 ++++
>   plat/linuxu/tap_io.c                        | 160 ++++
>   9 files changed, 1363 insertions(+)
>   create mode 100644 plat/drivers/include/tap/tap.h
>   create mode 100644 plat/drivers/tap/tap.c
>   create mode 100644 plat/linuxu/include/linuxu/tap.h
>   create mode 100644 plat/linuxu/tap_io.c
> 


