From: Samuel Thibault <samuel.thibault@gnu.org>
To: Gavin Li <gavin.li@samsara.com>
Cc: qemu-devel@nongnu.org, "Paolo Bonzini" <pbonzini@redhat.com>,
"Marc-André Lureau" <marcandre.lureau@redhat.com>,
"Daniel P. Berrangé" <berrange@redhat.com>,
"Pierrick Bouvier" <pierrick.bouvier@oss.qualcomm.com>,
"Jason Wang" <jasowangio@gmail.com>
Subject: Re: [PATCH v1] net: add per-connection guestfwd unix support
Date: Sat, 7 Nov 2026 23:07:01 +0100 [thread overview]
Message-ID: <au-hBYP1bA3qxYht@end> (raw)
In-Reply-To: <20261107044225.2786-1-gavin.li@samsara.com>
Gavin Li, le ven. 06 nov. 2026 23:42:25 -0500, a ecrit:
> For -netdev user,guestfwd=..., add support for unix-per-connection: in
> addition to the currently supported tcp: and cmd:. With
> unix-per-connection:, a new connection is opened to the given unix
> socket. This is an improvement over the current unix: support, which
> does not support 1:1 guest:host connections.
>
> Also update the minimum libslirp version to 4.2.0 (released in 2020) as
> it adds support for the slirp_add_unix() function.
>
> Signed-off-by: Gavin Li <gavin.li@samsara.com>
Acked-by: Samuel Thibault <samuel.thibault@ens-lyon.org>
Samuel
> ---
> meson.build | 2 +-
> net/slirp.c | 6 ++++++
> qemu-options.hx | 9 +++++++++
> 3 files changed, 16 insertions(+), 1 deletion(-)
>
> diff --git a/meson.build b/meson.build
> index d7bcb581c1..6567ede5d9 100644
> --- a/meson.build
> +++ b/meson.build
> @@ -1289,7 +1289,7 @@ endif
> slirp = not_found
> if not get_option('slirp').auto() or have_system
> slirp = dependency('slirp', required: get_option('slirp'),
> - method: 'pkg-config')
> + method: 'pkg-config', version: '>=4.2.0')
> # slirp < 4.7 is incompatible with CFI support in QEMU. This is because
> # it passes function pointers within libslirp as callbacks for timers.
> # When using a system-wide shared libslirp, the type information for the
> diff --git a/net/slirp.c b/net/slirp.c
> index 451c0fd1ba..b0b03b2bf5 100644
> --- a/net/slirp.c
> +++ b/net/slirp.c
> @@ -1159,6 +1159,12 @@ static int slirp_guestfwd(SlirpState *s, const char *config_str, Error **errp)
> "forwarding rule '%s'", config_str);
> return -1;
> }
> + } else if (g_str_has_prefix(p, "unix-per-connection:")) {
> + if (slirp_add_unix(s->slirp, &p[20], &server, port) < 0) {
> + error_setg(errp, "Conflicting/invalid host:port in guest "
> + "forwarding rule '%s'", config_str);
> + return -1;
> + }
> } else {
> Error *err = NULL;
> /*
> diff --git a/qemu-options.hx b/qemu-options.hx
> index 5fe9d73eaa..062cd39aa3 100644
> --- a/qemu-options.hx
> +++ b/qemu-options.hx
> @@ -3553,6 +3553,15 @@ SRST
> # and connect the TCP stream to its stdin/stdout
> |qemu_system| -nic 'user,id=n1,guestfwd=tcp:10.0.2.100:1234-cmd:netcat 10.10.1.1 4321'
>
> + ``guestfwd=[tcp]:server:port-unix-per-connection:path``
> + With ``unix-per-connection:``, a new connection is opened to the
> + given unix socket per TCP connection made by the guest. The unix socket
> + need not exist at startup time.
> +
> + .. parsed-literal::
> +
> + |qemu_system| -nic user,guestfwd=tcp:10.0.2.100:1234-unix-per-connection:/tmp/socket
> +
> ``-netdev tap,id=id[,fd=h][,ifname=name][,script=file][,downscript=dfile][,br=bridge][,helper=helper]``
> Configure a host TAP network backend with ID id.
>
>
> base-commit: 71f25c75417d31c214ba2cd26b273c114fc99987
> --
> 2.55.0
>
--
Samuel
PS> Salut ! J'ai un sujet de philo à vous soumettre : "Suffit-il
PS> d'observer pour connaître" Idées + plan Merçi
Oui, ya qu'a t'observer pour connaître le fait que tu es une feignasse.
-+- FF in: Guide du Neuneu d'Usenet - Neuneu fait de la philo -+-
next prev parent reply other threads:[~2026-11-07 22:07 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-11-07 4:42 [PATCH v1] net: add per-connection guestfwd unix support Gavin Li
2026-11-07 22:07 ` Samuel Thibault [this message]
2026-11-12 15:21 ` Daniel P. Berrangé
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=au-hBYP1bA3qxYht@end \
--to=samuel.thibault@gnu.org \
--cc=berrange@redhat.com \
--cc=gavin.li@samsara.com \
--cc=jasowangio@gmail.com \
--cc=marcandre.lureau@redhat.com \
--cc=pbonzini@redhat.com \
--cc=pierrick.bouvier@oss.qualcomm.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.