From nobody Fri Dec 12 12:56:46 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) client-ip=8.43.85.245; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1765481064; cv=none; d=zohomail.com; s=zohoarc; b=ZV547W0zV59B88ACLTKrYt+B8fReDqsVt4kjsEBK6jUuQPanj56GdQ65trhdKtz2uKTaxMBqUVaLA63WkbLXDYasehy3R4HALkVxTfopbWtDQ5FTh0tfpnYMKGRskbzVO+POoOXnKVcxEf6zLJacBI52IRika97HL49T++6yX2Y= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1765481064; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Owner:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Subject:Subject:To:To:Message-Id:Reply-To; bh=gSxbGuEhiV+nSsqjkyGPVwg60uinxeCtth/pb8iR+6Q=; b=P+QSt0H3KXDmN8HMRxH0RkVvQ2wubevmwQHCK9d9Tb/7NrfF0581QbGCLYBmQ6NvfavwEbyeWZqRzuS0EriavzNmH0cwJRqP6zJGsaWHEP76g+CsIG1EdY0dSoM6ouqv8ZThDTue0qu2pI/mniCT/xwlTMs4zsdrUmb8Umx/2/w= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [8.43.85.245]) by mx.zohomail.com with SMTPS id 1765481064477999.3189965150635; Thu, 11 Dec 2025 11:24:24 -0800 (PST) Received: by lists.libvirt.org (Postfix, from userid 993) id 45A2D41983; Thu, 11 Dec 2025 14:24:17 -0500 (EST) Received: from [172.19.199.80] (lists.libvirt.org [8.43.85.245]) by lists.libvirt.org (Postfix) with ESMTP id 391E2418F8; Thu, 11 Dec 2025 14:21:51 -0500 (EST) Received: by lists.libvirt.org (Postfix, from userid 993) id 29B4E4186E; Thu, 11 Dec 2025 14:21:20 -0500 (EST) Received: from mail-ej1-f49.google.com (mail-ej1-f49.google.com [209.85.218.49]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (3072 bits) server-digest SHA256) (No client certificate requested) by lists.libvirt.org (Postfix) with ESMTPS id B0C264186B for ; Thu, 11 Dec 2025 14:21:18 -0500 (EST) Received: by mail-ej1-f49.google.com with SMTP id a640c23a62f3a-b7cee045187so95193566b.0 for ; Thu, 11 Dec 2025 11:21:18 -0800 (PST) Received: from tulp.my.domain (84-25-144-101.cable.dynamic.v4.ziggo.nl. [84.25.144.101]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b7cfa2e6edesm352364966b.18.2025.12.11.11.21.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Dec 2025 11:21:15 -0800 (PST) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-5.3 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED,RCVD_IN_VALIDITY_RPBL_BLOCKED, RCVD_IN_VALIDITY_SAFE_BLOCKED,SPF_PASS autolearn=unavailable autolearn_force=no version=4.0.1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1765480877; x=1766085677; darn=lists.libvirt.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=gSxbGuEhiV+nSsqjkyGPVwg60uinxeCtth/pb8iR+6Q=; b=HBJrOLcyVgPP/UVa2nZC4+L3qZ+vlHvblkGrsd4gMez2eH6m2t2ZZvAV3srFWFXSve /zc2FpvtM5QLf1DmNLTNzC5YTdZnc8Y+gDU2gictMCZhIj+zLxTHzxvH+CEuEFtTJdwb V1kJ423M8898S84ikOZlDATEHKO1PWArwYehlwgQujH/dkhDQ1P1St8queHJYHmw79Od 7xX6Jl0v5BVH3s5ZxP/FlwiG9PsLJah+8cjP87ivCTYrar5ROR0R5OUS/866/91+xVZk 6E2pktzQgCy0/Jet99Ti8EuISA9zoDSw1PkhhlIC8zu7+x+z5LxvI+BP/H8wahrUBZSY vToQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765480877; x=1766085677; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=gSxbGuEhiV+nSsqjkyGPVwg60uinxeCtth/pb8iR+6Q=; b=F+XyZHSK2qFXRa1//zES2r8nnXw7cbWTuFFX4mvjv3jYnti36LlJ/eq6yUWD5YtUhh fH4YSGCmIZx98KZlNNE4djePwRByk3/TBlWG/BL+8ejnCBBAhq1hXRgl+PiSaBXxCw3D lUJKaHVo/gB8dPS+NCwI/T9mh+ixrFBmj+jQy+RpftkyidU5Xg+DgweXkFzJawkKTk78 j5dZMtqZgRQgtgHyxNH52d4QUUUeFxvuS02f7QVdWy7tYQXULhkqMr9TiyjzqQbZCwoN 5q6PndWcVR0q7E4bnptcS8gcyjbEMCYmt6VC8ixypDBAf5hK6dpXs6QbXTEDs6uL/xXu rbqg== X-Gm-Message-State: AOJu0YzZ6yJ3bv1e8eY2H7d8paYaje3DarcND4w4HVVUOMNDE3l4LmD8 xcjqE6FC/RPXE8gkGoGtpCLr7qdlwZ5znkb/TOHjgV0U7RfEOlrnAtSown4Y3Rix X-Gm-Gg: AY/fxX5oV7S/8RmglfVX401YxNtGklpOb/E/fhPxoP1qH9jz7ef6LbOfOOYKPpyi6Xx 3DpiL+Jo2S+utIgRdn69guvc7f5WLy8XH37vvZ6pTMKbC3HnSVKwKfCsHMQt84IrIDhzOOvCDcz ptM1f7++szWNKFz2rFbokWSmrKW0H9eqayNWs1hGLr1oqvyZBT8s+4RtGkw/HD3+ggI3mRSvfUX Tt8eTIbBT/TnYvXoPXs0MdhF7Mx9evVz7tSRoBGhcmjG8+3BdeRGAfviBhiHxvMe1ZECSJ4iDqH wooL7QjFBAybKqvfIDkpsqPRv7qHheyz4Z9lX/cB4PcGrE36B1vZ1KysMpwIgLSG/hwPErZGBW9 ObPE2s5EK+dAlP54jYchCdoyRW5i6bo8V4M2bEDAJvmyGrEHzSntuABNGpWBS1Qz2Wwyg0bXcBe HKy1FfLsjOl8iSvWmGEfC1oLj3Kx3kSSXi1VsaPjmJXNaWjEUQc5UoctwtRlmz X-Google-Smtp-Source: AGHT+IGfLCrY9DMpWh4exLCGdPlew6me/SR/laKbQLGiItRc2y4f6n4mD99vrGMVaT5wEQNVLv8BfA== X-Received: by 2002:a17:907:dab:b0:b7c:f120:5a21 with SMTP id a640c23a62f3a-b7d024697c5mr339349066b.19.1765480876672; Thu, 11 Dec 2025 11:21:16 -0800 (PST) From: Roman Bogorodskiy To: devel@lists.libvirt.org Subject: [PATCH v2 1/2] bhyve: implement SLIRP networking Date: Thu, 11 Dec 2025 20:18:41 +0100 Message-ID: <20251211191842.42561-2-bogorodskiy@gmail.com> X-Mailer: git-send-email 2.51.2 In-Reply-To: <20251211191842.42561-1-bogorodskiy@gmail.com> References: <20251211191842.42561-1-bogorodskiy@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Message-ID-Hash: IWVHVZDX37DBTKBTSJGPLV7LDXK2JNIE X-Message-ID-Hash: IWVHVZDX37DBTKBTSJGPLV7LDXK2JNIE X-MailFrom: bogorodskiy@gmail.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; header-match-devel.lists.libvirt.org-0; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header CC: Roman Bogorodskiy , Michal Privoznik X-Mailman-Version: 3.3.10 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1765481066390158500 Content-Type: text/plain; charset="utf-8" Bhyve supports SLIRP networking using the following syntax: -s 12:0,e1000,slirp,open Where "e1000" is a NIC model, "slirp" is the SLIRP backend and "open" specifies open mode where external network is available to the guest. The "open" mode is a recent addition in FreeBSD -CURRENT. Unfortunately, bhyve does not provide a way to probe whether the open mode is supported, so users will have to make sure it's supported on their own. For the reference, without the "open" mode, the guest will have no outside network connectivity. To make this mode useful, it is possible to configure forwarding from the host to the guest, but it is not covered by this patch. Signed-off-by: Roman Bogorodskiy Reviewed-by: Michal Privoznik --- src/bhyve/bhyve_command.c | 10 ++++-- src/bhyve/bhyve_domain.c | 12 ++++++- .../bhyvexml2argv-slirp-ip.xml | 22 +++++++++++++ .../bhyvexml2argv-slirp-mac-addr.args | 10 ++++++ .../bhyvexml2argv-slirp-mac-addr.ldargs | 4 +++ .../bhyvexml2argv-slirp-mac-addr.xml | 22 +++++++++++++ .../bhyvexml2argv-slirp.args | 10 ++++++ .../bhyvexml2argv-slirp.ldargs | 4 +++ .../bhyvexml2argvdata/bhyvexml2argv-slirp.xml | 21 ++++++++++++ tests/bhyvexml2argvtest.c | 3 ++ .../bhyvexml2xmlout-slirp.xml | 32 +++++++++++++++++++ tests/bhyvexml2xmltest.c | 1 + 12 files changed, 148 insertions(+), 3 deletions(-) create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-slirp-ip.xml create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-slirp-mac-addr.ar= gs create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-slirp-mac-addr.ld= args create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-slirp-mac-addr.xml create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-slirp.args create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-slirp.ldargs create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-slirp.xml create mode 100644 tests/bhyvexml2xmloutdata/bhyvexml2xmlout-slirp.xml diff --git a/src/bhyve/bhyve_command.c b/src/bhyve/bhyve_command.c index e42e7b1ecc..4100bf1c05 100644 --- a/src/bhyve/bhyve_command.c +++ b/src/bhyve/bhyve_command.c @@ -83,6 +83,8 @@ bhyveBuildNetArgStr(const virDomainDef *def, if (virDomainActualNetDefValidate(net) < 0) return -1; =20 + virMacAddrFormat(&net->mac, macaddr); + switch (actualType) { case VIR_DOMAIN_NET_TYPE_NETWORK: case VIR_DOMAIN_NET_TYPE_BRIDGE: @@ -93,9 +95,13 @@ bhyveBuildNetArgStr(const virDomainDef *def, goto cleanup; } break; + case VIR_DOMAIN_NET_TYPE_USER: + virCommandAddArg(cmd, "-s"); + virCommandAddArgFormat(cmd, "%d:0,%s,mac=3D%s,slirp,open", + net->info.addr.pci.slot, nic_model, macaddr= ); + return 0; case VIR_DOMAIN_NET_TYPE_ETHERNET: case VIR_DOMAIN_NET_TYPE_DIRECT: - case VIR_DOMAIN_NET_TYPE_USER: case VIR_DOMAIN_NET_TYPE_VHOSTUSER: case VIR_DOMAIN_NET_TYPE_SERVER: case VIR_DOMAIN_NET_TYPE_CLIENT: @@ -144,7 +150,7 @@ bhyveBuildNetArgStr(const virDomainDef *def, virCommandAddArg(cmd, "-s"); virCommandAddArgFormat(cmd, "%d:0,%s,%s,mac=3D%s", net->info.addr.pci.slot, nic_model, - realifname, virMacAddrFormat(&net->mac, macaddr= )); + realifname, macaddr); =20 ret =3D 0; cleanup: diff --git a/src/bhyve/bhyve_domain.c b/src/bhyve/bhyve_domain.c index 4c9ed29333..b9f9761b43 100644 --- a/src/bhyve/bhyve_domain.c +++ b/src/bhyve/bhyve_domain.c @@ -325,6 +325,17 @@ bhyveDomainDeviceDefValidate(const virDomainDeviceDef = *dev, =20 break; } + case VIR_DOMAIN_DEVICE_NET: { + virDomainNetDef *net =3D dev->data.net; + + if (net->type =3D=3D VIR_DOMAIN_NET_TYPE_USER) { + if (net->guestIP.nips) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("setting IP addresses for SLIRP networkin= g is not supported")); + return -1; + } + } + } case VIR_DOMAIN_DEVICE_AUDIO: case VIR_DOMAIN_DEVICE_CRYPTO: case VIR_DOMAIN_DEVICE_FS: @@ -337,7 +348,6 @@ bhyveDomainDeviceDefValidate(const virDomainDeviceDef *= dev, case VIR_DOMAIN_DEVICE_LEASE: case VIR_DOMAIN_DEVICE_MEMBALLOON: case VIR_DOMAIN_DEVICE_MEMORY: - case VIR_DOMAIN_DEVICE_NET: case VIR_DOMAIN_DEVICE_NONE: case VIR_DOMAIN_DEVICE_NVRAM: case VIR_DOMAIN_DEVICE_PANIC: diff --git a/tests/bhyvexml2argvdata/bhyvexml2argv-slirp-ip.xml b/tests/bhy= vexml2argvdata/bhyvexml2argv-slirp-ip.xml new file mode 100644 index 0000000000..0152066b4f --- /dev/null +++ b/tests/bhyvexml2argvdata/bhyvexml2argv-slirp-ip.xml @@ -0,0 +1,22 @@ + + bhyve + df3be7e7-a104-11e3-aeb0-50e5492bd3dc + 219136 + 1 + + hvm + + + + + + +
+ + + + +
+ + + diff --git a/tests/bhyvexml2argvdata/bhyvexml2argv-slirp-mac-addr.args b/te= sts/bhyvexml2argvdata/bhyvexml2argv-slirp-mac-addr.args new file mode 100644 index 0000000000..0c766d157b --- /dev/null +++ b/tests/bhyvexml2argvdata/bhyvexml2argv-slirp-mac-addr.args @@ -0,0 +1,10 @@ +bhyve \ +-c 1 \ +-m 214 \ +-u \ +-H \ +-P \ +-s 0:0,hostbridge \ +-s 2:0,ahci,hd:/tmp/freebsd.img \ +-s 3:0,e1000,mac=3D00:11:22:33:44:56,slirp,open \ +bhyve diff --git a/tests/bhyvexml2argvdata/bhyvexml2argv-slirp-mac-addr.ldargs b/= tests/bhyvexml2argvdata/bhyvexml2argv-slirp-mac-addr.ldargs new file mode 100644 index 0000000000..5905f4b3e6 --- /dev/null +++ b/tests/bhyvexml2argvdata/bhyvexml2argv-slirp-mac-addr.ldargs @@ -0,0 +1,4 @@ +bhyveload \ +-m 214 \ +-d /tmp/freebsd.img \ +bhyve diff --git a/tests/bhyvexml2argvdata/bhyvexml2argv-slirp-mac-addr.xml b/tes= ts/bhyvexml2argvdata/bhyvexml2argv-slirp-mac-addr.xml new file mode 100644 index 0000000000..b573d725d4 --- /dev/null +++ b/tests/bhyvexml2argvdata/bhyvexml2argv-slirp-mac-addr.xml @@ -0,0 +1,22 @@ + + bhyve + df3be7e7-a104-11e3-aeb0-50e5492bd3dc + 219136 + 1 + + hvm + + + + + + +
+ + + + +
+ + + diff --git a/tests/bhyvexml2argvdata/bhyvexml2argv-slirp.args b/tests/bhyve= xml2argvdata/bhyvexml2argv-slirp.args new file mode 100644 index 0000000000..98666255e1 --- /dev/null +++ b/tests/bhyvexml2argvdata/bhyvexml2argv-slirp.args @@ -0,0 +1,10 @@ +bhyve \ +-c 1 \ +-m 214 \ +-u \ +-H \ +-P \ +-s 0:0,hostbridge \ +-s 2:0,ahci,hd:/tmp/freebsd.img \ +-s 3:0,e1000,mac=3D52:54:00:00:00:00,slirp,open \ +bhyve diff --git a/tests/bhyvexml2argvdata/bhyvexml2argv-slirp.ldargs b/tests/bhy= vexml2argvdata/bhyvexml2argv-slirp.ldargs new file mode 100644 index 0000000000..5905f4b3e6 --- /dev/null +++ b/tests/bhyvexml2argvdata/bhyvexml2argv-slirp.ldargs @@ -0,0 +1,4 @@ +bhyveload \ +-m 214 \ +-d /tmp/freebsd.img \ +bhyve diff --git a/tests/bhyvexml2argvdata/bhyvexml2argv-slirp.xml b/tests/bhyvex= ml2argvdata/bhyvexml2argv-slirp.xml new file mode 100644 index 0000000000..5cf13d2a20 --- /dev/null +++ b/tests/bhyvexml2argvdata/bhyvexml2argv-slirp.xml @@ -0,0 +1,21 @@ + + bhyve + df3be7e7-a104-11e3-aeb0-50e5492bd3dc + 219136 + 1 + + hvm + + + + + + +
+ + + +
+ + + diff --git a/tests/bhyvexml2argvtest.c b/tests/bhyvexml2argvtest.c index 650313c2da..b83051d3cd 100644 --- a/tests/bhyvexml2argvtest.c +++ b/tests/bhyvexml2argvtest.c @@ -270,6 +270,9 @@ mymain(void) DO_TEST("sata-rotation-rate"); DO_TEST_FAILURE("disk-virtio-rotation-rate"); DO_TEST_FAILURE("disk-virtio-queue-opts"); + DO_TEST("slirp"); + DO_TEST("slirp-mac-addr"); + DO_TEST_FAILURE("slirp-ip"); =20 /* Address allocation tests */ DO_TEST("addr-single-sata-disk"); diff --git a/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-slirp.xml b/tests/bh= yvexml2xmloutdata/bhyvexml2xmlout-slirp.xml new file mode 100644 index 0000000000..44d2616f6c --- /dev/null +++ b/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-slirp.xml @@ -0,0 +1,32 @@ + + bhyve + df3be7e7-a104-11e3-aeb0-50e5492bd3dc + 219136 + 219136 + 1 + + hvm + + + + destroy + restart + destroy + + + + + +
+ + + +
+ + + + +
+ + + diff --git a/tests/bhyvexml2xmltest.c b/tests/bhyvexml2xmltest.c index c2458b9fc4..0abc50b0de 100644 --- a/tests/bhyvexml2xmltest.c +++ b/tests/bhyvexml2xmltest.c @@ -122,6 +122,7 @@ mymain(void) DO_TEST_DIFFERENT("nvme"); DO_TEST_DIFFERENT("2-nvme-2-controllers"); DO_TEST_DIFFERENT("passthru-multiple-devs"); + DO_TEST_DIFFERENT("slirp"); =20 /* Address allocation tests */ DO_TEST_DIFFERENT("addr-single-sata-disk"); --=20 2.51.2 From nobody Fri Dec 12 12:56:46 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) client-ip=8.43.85.245; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1765481150; cv=none; d=zohomail.com; s=zohoarc; b=kbz42GXH0FWFKmB4OrIQD7hz7EdS89HDxuLr3fEbi61suurO+EAALmR1TgShwTXLBFLdPrx1DOh/Jj+FFDi+Z9xvXTfHIe5zBNUngbvn1uzIqi1ON5WzsstQr1l4ByQhQmPH91vuwH5Ej4vk1fmYJOt3XdFgyIgHU3jTJA2KvKI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1765481150; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Owner:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Subject:Subject:To:To:Message-Id:Reply-To; bh=DKLiF/dK9Q2lcsdAwOgR9+ELS4JqTlvAPkESXlkN224=; b=NC7aicmCum4ZLaWHCfyh0GpCVa9hOrWB3KEWUOLkGvST2/n6/sUts34pcN8/IzxugvJGRO+xsk5bFcZIED9XKN96UdMVcMKah8ujP8Hz/EIXroTZNY1v1+ceoNJ7jEiR6NxYPJV9DGnshSqJ7ncxk7A8l8TqdLkrTY++p18KasI= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [8.43.85.245]) by mx.zohomail.com with SMTPS id 176548115005468.68302885885976; Thu, 11 Dec 2025 11:25:50 -0800 (PST) Received: by lists.libvirt.org (Postfix, from userid 993) id 0EB4941852; Thu, 11 Dec 2025 14:25:33 -0500 (EST) Received: from [172.19.199.80] (lists.libvirt.org [8.43.85.245]) by lists.libvirt.org (Postfix) with ESMTP id 9F74641A12; Thu, 11 Dec 2025 14:22:04 -0500 (EST) Received: by lists.libvirt.org (Postfix, from userid 993) id 99B8841863; Thu, 11 Dec 2025 14:21:20 -0500 (EST) Received: from mail-ej1-f54.google.com (mail-ej1-f54.google.com [209.85.218.54]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (3072 bits) server-digest SHA256) (No client certificate requested) by lists.libvirt.org (Postfix) with ESMTPS id 7BB2641865 for ; Thu, 11 Dec 2025 14:21:19 -0500 (EST) Received: by mail-ej1-f54.google.com with SMTP id a640c23a62f3a-b7277324054so100148466b.0 for ; Thu, 11 Dec 2025 11:21:19 -0800 (PST) Received: from tulp.my.domain (84-25-144-101.cable.dynamic.v4.ziggo.nl. [84.25.144.101]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b7cfa2e6edesm352364966b.18.2025.12.11.11.21.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Dec 2025 11:21:16 -0800 (PST) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-5.3 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED,RCVD_IN_VALIDITY_RPBL_BLOCKED, RCVD_IN_VALIDITY_SAFE_BLOCKED,SPF_PASS autolearn=unavailable autolearn_force=no version=4.0.1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1765480878; x=1766085678; darn=lists.libvirt.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=DKLiF/dK9Q2lcsdAwOgR9+ELS4JqTlvAPkESXlkN224=; b=krkTMFTVrP8Xyfe8jE6QCiSqVMEKIEJbWljkR2cl0D8hcw4Gy06pkvrlkX1RB7UY7m wJre1CEXCMp+jg2YFVKnaJiVROjkWmuT4w9stwbt1R5HpzMtDqZ/TBiMC0WM69Fi44YU mrEv1Ue81WM4/EV3dXIhUCCS/eQ6/f3RrVr8zvDhea2efd2/upkETGjgILFinSWN0vgm Pex9z0lPuOzMAFnrMirfQ+25VSUmja5SZNYB3OXTLyxKF12jSFnLZVyMpWT58fwbLEp9 qf5+lBYDnz3c5o1kJtIryd/noXLP2fiLBWyPCOAeSvQooqwAeuU/xIJZEXeOpyOZWDgc fSEQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765480878; x=1766085678; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=DKLiF/dK9Q2lcsdAwOgR9+ELS4JqTlvAPkESXlkN224=; b=lA1ewUwxFdZcg03oAIQ9JpbGpVtt1yTLWQcU00gJcREaEYX3HJUm6Julq+H2VtNAqZ 6YFDbOnZPd2rZFR3HF3VMcRosulT9R7ljSVbSOMMdCa3yvcTbIhIIvw7fOvqn1j4qM+v xFDoAViykrdA0a3X8808yZonWJFFeeipzJrPobZfU/6/W1tMNDhgdROFSi8ywS7qIHjj t/dtYb7bwkfwXhtlnXURLu/zysGdzMt64jeAvihjdCKhbOQnu+ILmAdedetfGO05HWIg MFb84yj04p/KM3FSgoRQUdIXRTCnnmG5jDHpdLQc/8pDHZn3NK4ELLvj3vYUNCpgSxjF o7bA== X-Gm-Message-State: AOJu0YyKevXMWbZAhYU4rKOP6HVpCxlBI7ttNMPNqhIa22Nt+0z+KBKv S0W1yikJdJVnDGSGyfhddqjkWFnwc+Psdvi4/cSUJwTSgL71pyZWxnmp7ottFhM+ X-Gm-Gg: AY/fxX7OGDD1AjqYMLw905WkAhbEV9MHKKs1Oxl2fmkjHfa7d83obqk+H7950MMdoPb Dd5v7gnXPuG+eWpBmzCqC/f0zYdZ3CbXy47yvHTHSHIC2GlZzdJQp4pSSzRPUVrt24wIpILBWAx 8fHigKLAeOLItWdOhDUJSOza+Ym0v9ZgGZ13gMnNj5C6CJtfLyu5fvKeQfIW8WTDX3eDEzDcA6Q YMsYiEEh1LuYwSHvHyYXBsjbMI8Rb+MP74vTNVJvyPWmAuKBpCSX2es4FMLV6jIOxrlTYU6mEqn BtHTlhLXpmuW9Et70lzcz4iSrMOFa8c9MJY0RRg93VoeQuSPvzU7zpGnUyjRMLbtUjZg0p2XPV6 D25OjIXbtLVzOV14FDKEU0j+e48GE2y5A5B90M9Tns6BpBSUhGqC+qf4gxt48z+A9vc7HoxmFW3 KtHWlPteTOXDC3aWJ2vfySA22Q45XyqGT/5rgDf46vhXYJ4DUQZA== X-Google-Smtp-Source: AGHT+IFWM8HmI6n6DYOyykBX6Y+HyAWwJmc0ynFoq59BLhHrjNh9G/EqnRy676IGb6cKuL/hRWZnlw== X-Received: by 2002:a17:907:3d43:b0:b7a:1be1:984 with SMTP id a640c23a62f3a-b7ce8469fafmr701210266b.64.1765480877581; Thu, 11 Dec 2025 11:21:17 -0800 (PST) From: Roman Bogorodskiy To: devel@lists.libvirt.org Subject: [PATCH v2 2/2] docs: drvbhyve: document SLIRP networking Date: Thu, 11 Dec 2025 20:18:42 +0100 Message-ID: <20251211191842.42561-3-bogorodskiy@gmail.com> X-Mailer: git-send-email 2.51.2 In-Reply-To: <20251211191842.42561-1-bogorodskiy@gmail.com> References: <20251211191842.42561-1-bogorodskiy@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Message-ID-Hash: 6ZXPSD6IKPJAVYS52NNJCR3BWTGK3M3E X-Message-ID-Hash: 6ZXPSD6IKPJAVYS52NNJCR3BWTGK3M3E X-MailFrom: bogorodskiy@gmail.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; header-match-devel.lists.libvirt.org-0; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header CC: Roman Bogorodskiy , Michal Privoznik X-Mailman-Version: 3.3.10 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1765481150563158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Roman Bogorodskiy Reviewed-by: Michal Privoznik --- docs/drvbhyve.rst | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/docs/drvbhyve.rst b/docs/drvbhyve.rst index c0f4cd8a1f..7cf5fc9efb 100644 --- a/docs/drvbhyve.rst +++ b/docs/drvbhyve.rst @@ -694,6 +694,30 @@ Users must configure the device for passthrough manual= ly either by using ``devctl(8)`` or by setting ``pptdevs`` in ``loader.conf(5)``. Please refer to the ``vmm(4)`` manual page for more details. =20 +SLIRP networking +~~~~~~~~~~~~~~~~ +:since:`Since 11.11.0`, it is possible to use SLIRP networking. + +Example: + +:: + + ... + + + + ... + +Then the guest will have external network connectivity without +any configuration on the host. + +.. note:: + This configuration requires SLIRP open mode support by ``bhyve``. + It was introduced in FreeBSD -CURRENT in this commit: + https://cgit.FreeBSD.org/src/commit/?id=3D0e62ebd20172f67283bac9526c2aa= eaffeb41b45. + Unfortunately, there is no (easy) way to probe its support in libvirt, + so please consult the ``bhyve(8)`` manual page to make sure it is avail= able. + Guest-specific considerations ----------------------------- =20 --=20 2.51.2