From patchwork Mon Aug 29 16:08:26 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Thompson, Corey" X-Patchwork-Id: 12055 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id A0E0FECAAD5 for ; Mon, 29 Aug 2022 16:08:38 +0000 (UTC) Received: from mx0a-00103a01.pphosted.com (mx0a-00103a01.pphosted.com [67.231.144.234]) by mx.groups.io with SMTP id smtpd.web12.39.1661789309449836582 for ; Mon, 29 Aug 2022 09:08:29 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@ciena.com header.s=06252019 header.b=BxjA5jOm; spf=pass (domain: ciena.com, ip: 67.231.144.234, mailfrom: prvs=424047fc7f=cthompso@ciena.com) Received: from pps.filterd (m0174892.ppops.net [127.0.0.1]) by mx0a-00103a01.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 27TD42tQ003525 for ; Mon, 29 Aug 2022 12:08:28 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ciena.com; h=from : to : subject : date : message-id : content-type : mime-version; s=06252019; bh=qCO7Hs7hFz5RxLb0jM9ptquijBQTFIratCsZBvRIaiI=; b=BxjA5jOmL49HWXRtx+ArBKOH1zj22Bu9ce+ugzhLZNCcVGyjgbGAiaWX0n1OZk5sIQ7R kCT7TxyS/Q8Ur5IyHmxvBw6sA/nve0LT8/rTFveuBFDBIcOxtO53F5avNQElNKH/mLf+ PK/vsqC/XTaMoLxrZIX6I6ee7E/TNvvmFH7PWdEPjYp3/6n1HE2DP35nRFET5Arq4sD8 Df4b15lxK/j3TaWNUtBK8EtbE58YibhZEMs+S/7M1e+1Il7Frbx8oGZSzAbKK7vFXo4G RhSem7jlDwwF44rf3U6FdrhKHxz/HsbwqKZnNAkm98Pxdeejqd7CyDN5vCB+aV3LJna9 ww== Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2046.outbound.protection.outlook.com [104.47.66.46]) by mx0a-00103a01.pphosted.com (PPS) with ESMTPS id 3j8x0xrh45-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Mon, 29 Aug 2022 12:08:28 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=AzRxfbZlhcd492OGodzkn5kOAjeAeFy7ZFgeQpRpiLRaj76TVICJDG3bCAio2wfHJhVF3vjjNji05QhJiNJfHBUTju3xelqZfibaXiaSIb09CwHL+9y/jeYG3sl8OhKFxcnirSuiaRkOv8ewJxbzJazyzJkB8iK2GbNB+Nx+IgkgSmgph6yGdlrX+BdAKUACNBYn/n+V/DA7SP/H41V1HNxXyJ+mRDxtQd9ibsMZV5kRreqm+XtK/65DQcQf/va8oFzvLf+rvzlXlupJoh5d6YQuv4fV4uCoRB0RjqCRpZuTZiiDlvI32tNytiuw9GN2WwBLLj929TR/6oy7JNnERw== 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=qCO7Hs7hFz5RxLb0jM9ptquijBQTFIratCsZBvRIaiI=; b=fEjIWOj4f7rmyCv6upGiIi72a7obFboryNEjqznimGN49fjIr5eNaXgYazGW3e+1nBwYZGePRhd1tCt5US9dJdQ+tycIM7Z4D6AG/tdgm5p1V3GCkPTdxN0PK2suPmXmQpmhMUSoRtRLxNI6grtFU6z3opsUZntvcxOkTIcRdY2Qq4t+LGDHD4LLyvuYhSsHx2sVQQBViZgnFaXxeIEg+56cy9nf6xYv0YxJimxV9VMtEAmr6xfj4SBOyrRtUC+kBIutZ2meaDWgzizF2LP3wLoC0CFzSXHfHdMzIO0cpnxwu6WpZWT+UG78Vn3OhrtqtWkCAC0SnW+RF8q1QInS8Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=ciena.com; dmarc=pass action=none header.from=ciena.com; dkim=pass header.d=ciena.com; arc=none Received: from BN8PR04MB5777.namprd04.prod.outlook.com (2603:10b6:408:77::23) by SA2PR04MB7562.namprd04.prod.outlook.com (2603:10b6:806:140::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5566.15; Mon, 29 Aug 2022 16:08:27 +0000 Received: from BN8PR04MB5777.namprd04.prod.outlook.com ([fe80::e46b:e339:929f:ef95]) by BN8PR04MB5777.namprd04.prod.outlook.com ([fe80::e46b:e339:929f:ef95%7]) with mapi id 15.20.5566.021; Mon, 29 Aug 2022 16:08:26 +0000 From: "Thompson, Corey" To: "openembedded-core@lists.openembedded.org" Subject: [kirkstone][PATCH] runqemu: Use qb_network_device in setup_net_bridge() Thread-Topic: [kirkstone][PATCH] runqemu: Use qb_network_device in setup_net_bridge() Thread-Index: AQHYu8GSWVD27SGyIk68l6EwIC317w== Date: Mon, 29 Aug 2022 16:08:26 +0000 Message-ID: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 73deac04-4a65-42e3-b2fd-08da89d8b503 x-ms-traffictypediagnostic: SA2PR04MB7562:EE_ x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 9WNNatq73kwvsuXkNgOrm+HMD7QVkNNbgEM5np+zBU2bucT07hmFenYTVpiozevnK1k8MS279io3jzGZV/vEuyoDdTF2cQ5X+9xt3kLZXDyK+CqsCLjV02OE8kzCArM4yN5KxH4oQBXOTC01WHTyjB9ng7JrXJ5KoTSlKYFWiWUxOC8L2ANcYKosXfbKkmUg5sj5Kga60hoH7QJ4VTr6IJzkgYqxUBxvOtOPIkepDpwfOBSvmEhimzPmZ4kiaY3CHsSFzc8+rUIeVzIbD7kf2xcu3CxLBjluWaW3InOkf7oS6KGgUWgJQR1tcfTgKjl1zfvP1p7edzVFkPm8gMFGQdS7vSH8uAL+kJetCouk9d+MeEYpptxjkRkdM/eZ3sMJqKhpeAm5UB4d8Fcv0lJD1yh4801GtuefsRemWby6549Qc2ZqgQon1O8UFWC/HG4aPdRt/vgLrTweEvaRTDK6+EtVbPlPDwSyRBWHCJ97O/coHsowoHmIPeLWE8vqvVxRXaiN0kc8UoL4yV9O7lUdfL2RB3qvlAG2JLvcESKVjGa3fehUmPMTFKGLppG5irhvDoQryXYbucrNjKCjIgOQtj0Yula62URar2YpOZstGXTjXoDMKZAmCqAkUQrXQKeX3l19xFwhL9Txu0Di9SyLasZyTtF3g/ajFuRBX8BxS3HDRGMuWcw4XQBqFjFWqu8ssFo9UiojiH4zWtuMacvqk4fJxozkHkfniXEFey0r+DBcCK1nI3Ef0sIK10TfQ2awPPTCCBDmKfuAdmi/xM6/zQ== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BN8PR04MB5777.namprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230016)(4636009)(136003)(396003)(346002)(376002)(366004)(39860400002)(122000001)(99936003)(316002)(38100700002)(6916009)(71200400001)(478600001)(66556008)(76116006)(6486002)(66446008)(66946007)(8676002)(64756008)(38070700005)(66476007)(41300700001)(5660300002)(4744005)(8936002)(6506007)(6512007)(26005)(186003)(2906002)(55236004)(86362001);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: 5NUIexDIsZ92ExLu//nXJdDEJjIwjQBtD3S6Eo1IFlCAKH+cc9dfH/DHkyb7r5LLKtmP4ZJNCgRwwDjH0eiW+8SKctiGP2kvShhOhgybyefBrTPgWwPrwjXfHP0YYPLChgpD23Wd3Exjgo1X/fKTlD2RyV6vE6DkW+zV+tQu6YE1A6OFaKPvV4guVclIE80Gv5vnmfoz6eyrYmWqUakM3UJPBgql6AXIUXfH9bvRAv3eHw6KuR+QWTD77iS7+w9JZ6ALmFz+8ilcfobr4gyjOTitJwoPLjqwsf42InN1KdzGJV4smrsuZqG5Ww9tQ+E6yn3rZEsZHt67LzOabcsLH2dJnFkxVPCo98MMgNgmaQ8JnyUUGCXLJR8HyuAq8JA+qgB0A0Td+ejeMhzsX0Oxiy5gFlu+ynbxA1Uw0efb25QZb8mZk+sm8rNahoYFbme2NqwhqYC2ksGfESNaezJ9Qo+kFuYQD2caCzgUKNW3Xd01XXrIMYbsuotIzHEDB8MBqB+CoVaNd+rdY2DdhPODaprFXCjck3+3a2+pOxoipN7dr+mCutN9gEvr1DoCVx6v+PTEsmepSqj598/BmjmAomP5RXxt0QV83uruGDFfXkv0r2Ti35iywUXDRPpQcbJU5HcOwSBxWp8qGqVaImCpjGjmgg4E4qnlq9mEQg03nHg9C5PwtgdH1aNUKsJWJObZSCX42TOGcJuZdRmKtNx9PKJ5C/KEUlpaMDf3JZG2KjaeEFkkmI/eAWATdIFx31UmwgpDTldZ7gX0qCmrMjsUTmcutFD5M8rUIKL5sfb+iJHwEsD7cl8Z53swMJEebZ6B+MqeBXzfigoeYYoj11D4ZrYF2/QWO2k+Uam7o4RFP+1sdoBN9LMcvjMK/jewxMDxjsmCQveI2e0HD6L0pKW6Z9+uD9222DipHs2FPOpdLI+X3HcUrHvtaz2LmRrn4s649eoAAp55FOpAgt7SDo72ChU44evdcDBKc/XZ9gwkKuPfJAaaPD61xDF7y7e0quezeNv1ZNin7gsXWwnZSiYORaL381Vu28wRq46BNYyYAomqaYou5lNi2dN1TDxaC5rSp+EL29sC0c/JBAGS4Oo4sAhX+dxAYVuMoEmq6yMkyU2bAK6i40u0jgDKgkpvM5sUDiV/+tpVHSPQvJKlGe1QjqcKCtTLo0nRyRbZMB4vnPUHfOPj0SRMFpjm3aMng8jDIKMHW3ISbRHE1PHuynecPLf5wt43e+L90xh4Q1hU1HL4NyEpsr9In5V+25BS8hBPgEup37iKRyMo/dBXTESUq861jiJWJqXnHnE/+SAfKrzyH8tEWLZouEfspmZ9BG4UmBNJalpZSprGGQn7/F72651st/b+9FicCuOGNUvO8Il8xL99J+Tra8jyxUxtF8W+5E3oT4uzuOUhk5bzHC9r2WEDxD1bk7lMapdMkyglLA5KfoXI3gnHFhCArzAEaw5bAod2QIhQ1H8NlNMlKTI3l9jOExtN3W4oU8kYzOGdibugXwfQ67P2gDebQ+S+UGDexhUu8JyXsnH+NhkYpkXUOu9F11k9HfK7bsGoFPK4zIiOFvK5+CWCMOjSN7WcRcDOYamcazxIAf1srlxGB7VmZA== MIME-Version: 1.0 X-OriginatorOrg: ciena.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BN8PR04MB5777.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 73deac04-4a65-42e3-b2fd-08da89d8b503 X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Aug 2022 16:08:26.9050 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 457a2b01-0019-42ba-a449-45f99e96b60a X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 5WLrpSt6+iRkhjZB2sBIw64Q4j8yWgmvj4AlHXwS8kxzzCtxBuenQR97WKtpwpVAwLQa3SPkTlpXzkjUdfQ8Rg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA2PR04MB7562 X-Proofpoint-GUID: SECwjtd_2DdRh5L6sVEcFV9Hde1hofTr X-Proofpoint-ORIG-GUID: SECwjtd_2DdRh5L6sVEcFV9Hde1hofTr X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.895,Hydra:6.0.517,FMLib:17.11.122.1 definitions=2022-08-29_07,2022-08-25_01,2022-06-22_01 List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Mon, 29 Aug 2022 16:08:38 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/170016 Hello. I would like to be able to use runqemu in bridge networking mode, but the hard-coded device type causes issues with some machine configs using Xilinx BSP layers. This is an attempt to resolve that, and also to support multiple simultaneous VMs by substituting the @MAC@ pattern similar to the other networking backend modes. The problem is that in bridged mode I had difficulty thinking of a good source for deterministic unique MAC generation, so a suffix syntax is introduced to the runqemu bridge= argument. This is not as automatic as the MAC handling in the other networking modes. I welcome any discussion or suggestions to improve the patch. Thanks, Corey From aec797bc000afe315abc2faf85ac3b68702d5c7c Mon Sep 17 00:00:00 2001 From: Corey Thompson Date: Fri, 26 Aug 2022 15:58:44 -0400 Subject: [PATCH] runqemu: Use qb_network_device in setup_net_bridge() Remove a hard-coded network device and use the qemuboot.conf-supplied qb_network_device setting, complete with @MAC@ substitution. Because there is no deterministic hint that can be used for unique MAC address generation in this mode, an optional ":" suffix may be provided to the "bridge=" parameter so that the user may bring up multiple VMs each with a different and predictable MAC. --- scripts/runqemu | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) -- 2.35.1 diff --git a/scripts/runqemu b/scripts/runqemu index 66e035c9af..ec6889e6e5 100755 --- a/scripts/runqemu +++ b/scripts/runqemu @@ -208,6 +208,7 @@ class BaseConfig(object): # slirp qemus are running. self.mac_tap = "52:54:00:12:34:" self.mac_slirp = "52:54:00:12:35:" + self.mac_bridge = "52:54:00:12:36:" # pid of the actual qemu process self.qemupid = None # avoid cleanup twice @@ -1046,8 +1047,27 @@ class BaseConfig(object): self.nfs_running = True def setup_net_bridge(self): - self.set('NETWORK_CMD', '-netdev bridge,br=%s,id=net0,helper=%s -device virtio-net-pci,netdev=net0 ' % ( - self.net_bridge, os.path.join(self.bindir_native, 'qemu-oe-bridge-helper'))) + """Setup bridged tap networking""" + + # In this case there is no good source for deterministic unique mac + # generation. Allocation of the tap interface is delegated to qemu, so + # we cannot use the tap number as a hint as in setup_tap(), nor are + # there port forward options as in setup_slirp(). Instead, the user + # must provide a unique suffix to the "bridge=" option delimited with a + # colon to start multiple qemus, e.g., + # runqemu bridge=virbr0 # no suffix; default to mac+0 + # runqemu bridge=virbr0:1 # mac+1 + # runqemu bridge=virbr0:2 # mac+2 + # ... and so on ... + try: + net_bridge, mac = self.net_bridge.split(":") + mac = int(mac) + except ValueError: + net_bridge, mac = self.net_bridge, 0 + mac = '%s%02x' % (self.mac_bridge, mac) + self.set('NETWORK_CMD', '%s -netdev bridge,br=%s,id=net0,helper=%s' % ( + self.network_device.replace("@MAC@", mac), net_bridge, + os.path.join(self.bindir_native, 'qemu-oe-bridge-helper'))) def setup_slirp(self): """Setup user networking"""