This patchset takes the original patch from Maxim, https://www.mail-archive.com/qemu-devel@nongnu.org/msg569573.html and updates it.
Option hostfwd is extended to support ipv6 addresses. Commands hostfwd_add, hostfwd_remove are extended as well. The libslirp part of the patch has been committed upstream, and is now in qemu. See patch 1/5. Changes from v4: 1/5 slirp: Advance libslirp submodule to add ipv6 host-forward support NOTE TO REVIEWERS: I need some hand-holding to know what The Right way to submit this particular patch is. - no change 2/5 util/qemu-sockets.c: Split host:port parsing out of inet_parse - move recognition of "[]:port" to separate patch - allow passing NULL for ip_v6 - fix some formatting issues 3/5 inet_parse_host_and_addr: Recognize []:port (empty ipv6 address) - new in this patchset revision 4/5 net/slirp.c: Refactor address parsing - was 3/4 in v4 - fix some formatting issues 5/5 net: Extend host forwarding to support IPv6 - was 4/4 in v4 - fix some formatting issues Changes from v3: 1/4 slirp: Advance libslirp submodule to add ipv6 host-forward support - pick up latest libslirp patch to reject ipv6 addr-any for guest address - libslirp currently only provides a stateless DHCPv6 server, which means it can't know in advance what the guest's IP address is, and thus cannot do the "addr-any -> guest ip address" translation that is done for ipv4 2/4 util/qemu-sockets.c: Split host:port parsing out of inet_parse - this patch is new in v4 - provides new utility: inet_parse_host_and_port, updates inet_parse to use it 3/4 net/slirp.c: Refactor address parsing - this patch renamed from 2/3 to 3/4 - call inet_parse_host_and_port from util/qemu-sockets.c - added tests/acceptance/hostfwd.py 4/4 net: Extend host forwarding to support IPv6 - this patch renamed from 3/3 to 4/4 - ipv6 support added to existing hostfwd option, commands - instead of creating new ipv6 option, commands - added tests to tests/acceptance/hostfwd.py Changes from v2: - split out libslirp commit - clarify spelling of ipv6 addresses in docs - tighten parsing of ipv6 addresses Change from v1: - libslirp part is now upstream - net/slirp.c changes split into two pieces (refactor, add ipv6) - added docs Doug Evans (5): slirp: Advance libslirp submodule to add ipv6 host-forward support util/qemu-sockets.c: Split host:port parsing out of inet_parse inet_parse_host_and_addr: Recognize []:port (empty ipv6 address) net/slirp.c: Refactor address parsing net: Extend host forwarding to support IPv6 hmp-commands.hx | 15 +++ include/qemu/sockets.h | 3 + net/slirp.c | 196 ++++++++++++++++++++++++------------ slirp | 2 +- tests/acceptance/hostfwd.py | 174 ++++++++++++++++++++++++++++++++ util/qemu-sockets.c | 84 ++++++++++++---- 6 files changed, 390 insertions(+), 84 deletions(-) create mode 100644 tests/acceptance/hostfwd.py -- 2.30.0.617.g56c4b15f3c-goog