From: Eric Blake <eblake@redhat.com>
To: Vladislav Yaroshchuk <yaroshchuk2000@gmail.com>
Cc: jasowang@redhat.com, r.bolshakov@yadro.com, qemu-devel@nongnu.org
Subject: Re: [PATCH v2 1/6] net/vmnet: dependencies setup, initial preparations
Date: Mon, 11 Oct 2021 13:44:56 -0500 [thread overview]
Message-ID: <20211011184456.rohhk5b3umslmmdz@redhat.com> (raw)
In-Reply-To: <20210831192720.33406-2-yaroshchuk2000@gmail.com>
On Tue, Aug 31, 2021 at 10:27:15PM +0300, Vladislav Yaroshchuk wrote:
> Add 'vmnet' customizable option and 'vmnet.framework' probe into
> configure;
>
> Create separate netdev per each vmnet operating mode
> because they use quite different settings. Especially since
> macOS 11.0 (vmnet.framework API gets lots of updates)
> Create source files for network client driver, update meson.build;
>
> Three new netdevs are added:
> - vmnet-host
> - vmnet-shared
> - vmnet-bridged
>
> Signed-off-by: Vladislav Yaroshchuk <yaroshchuk2000@gmail.com>
> ---
While I'm not the best for reviewing the overall series, I can at
least comment on the proposed QAPI changes:
> +++ b/qapi/net.json
> @@ -452,6 +452,89 @@
> '*vhostdev': 'str',
> '*queues': 'int' } }
>
> +##
> +# @NetdevVmnetHostOptions:
> +#
> +# vmnet (host mode) network backend.
> +#
> +# Allows the vmnet interface to communicate with
> +# other vmnet interfaces that are in host mode and also with the native host.
> +#
> +# @dhcpstart: The starting IPv4 address to use for the interface. Must be in the
> +# private IP range (RFC 1918). Must be specified along
> +# with @dhcpend and @subnetmask.
> +# This address is used as the gateway address. The subsequent address
> +# up to and including dhcpend are placed in the DHCP pool.
Long lines. Most of the qapi docs wrap around 70 or so columns rather
than pushing right up to the 80 column limit.
> +#
> +# @dhcpend: The DHCP IPv4 range end address to use for the interface. Must be in
> +# the private IP range (RFC 1918). Must be specified along
> +# with @dhcpstart and @subnetmask.
> +#
> +# @subnetmask: The IPv4 subnet mask to use on the interface. Must be specified
> +# along with @dhcpstart and @subnetmask.
> +#
> +#
> +# Since: 6.2,
Drop the trailing comma
> +##
> +{ 'struct': 'NetdevVmnetHostOptions',
> + 'data': {
> + '*dhcpstart': 'str',
> + '*dhcpend': 'str',
> + '*subnetmask': 'str'
> + },
> + 'if': 'CONFIG_VMNET' }
> +
> +##
> +# @NetdevVmnetSharedOptions:
> +#
> +# vmnet (shared mode) network backend.
> +#
> +# Allows traffic originating from the vmnet interface to reach the
> +# Internet through a network address translator (NAT). The vmnet interface
> +# can also communicate with the native host. By default, the vmnet interface
> +# is able to communicate with other shared mode interfaces. If a subnet range
> +# is specified, the vmnet interface can communicate with other shared mode
> +# interfaces on the same subnet.
> +#
> +# @dhcpstart: The starting IPv4 address to use for the interface. Must be in the
> +# private IP range (RFC 1918). Must be specified along
> +# with @dhcpend and @subnetmask.
> +# This address is used as the gateway address. The subsequent address
> +# up to and including dhcpend are placed in the DHCP pool.
extra space
> +#
> +# @dhcpend: The DHCP IPv4 range end address to use for the interface. Must be in
> +# the private IP range (RFC 1918). Must be specified along
> +# with @dhcpstart and @subnetmask.
> +#
> +# @subnetmask: The IPv4 subnet mask to use on the interface. Must be specified
> +# along with @dhcpstart and @subnetmask.
> +#
> +#
> +# Since: 6.2,
Another odd comma
> +##
> +{ 'struct': 'NetdevVmnetSharedOptions',
> + 'data': {
> + '*dhcpstart': 'str',
> + '*dhcpend': 'str',
> + '*subnetmask': 'str'
> + },
> + 'if': 'CONFIG_VMNET' }
The NetdevVmnetHostOptions and NetdevVmnetSharedOptions types are
identical; why do you need two types?
> +
> +##
> +# @NetdevVmnetBridgedOptions:
> +#
> +# vmnet (bridged mode) network backend.
> +#
> +# Bridges the vmnet interface with a physical network interface.
> +#
> +# @ifname: The name of the physical interface to be bridged.
> +#
> +# Since: 6.2
> +##
> +{ 'struct': 'NetdevVmnetBridgedOptions',
> + 'data': { 'ifname': 'str' },
> + 'if': 'CONFIG_VMNET' }
> +
> ##
> # @NetClientDriver:
> #
> @@ -460,10 +543,16 @@
> # Since: 2.7
> #
> # @vhost-vdpa since 5.1
> +# @vmnet-host since 6.2
> +# @vmnet-shared since 6.2
> +# @vmnet-bridged since 6.2
> ##
> { 'enum': 'NetClientDriver',
> 'data': [ 'none', 'nic', 'user', 'tap', 'l2tpv3', 'socket', 'vde',
> - 'bridge', 'hubport', 'netmap', 'vhost-user', 'vhost-vdpa' ] }
> + 'bridge', 'hubport', 'netmap', 'vhost-user', 'vhost-vdpa',
> + { 'name': 'vmnet-host', 'if': 'CONFIG_VMNET' },
> + { 'name': 'vmnet-shared', 'if': 'CONFIG_VMNET' },
> + { 'name': 'vmnet-bridged', 'if': 'CONFIG_VMNET' }] }
>
> ##
> # @Netdev:
> @@ -477,6 +566,9 @@
> # Since: 1.2
> #
> # 'l2tpv3' - since 2.1
> +# 'vmnet-host' - since 6.2
> +# 'vmnet-shared' - since 6.2
> +# 'vmnet-bridged' - since 6.2
> ##
> { 'union': 'Netdev',
> 'base': { 'id': 'str', 'type': 'NetClientDriver' },
> @@ -492,7 +584,10 @@
> 'hubport': 'NetdevHubPortOptions',
> 'netmap': 'NetdevNetmapOptions',
> 'vhost-user': 'NetdevVhostUserOptions',
> - 'vhost-vdpa': 'NetdevVhostVDPAOptions' } }
> + 'vhost-vdpa': 'NetdevVhostVDPAOptions',
> + 'vmnet-host': 'NetdevVmnetHostOptions',
> + 'vmnet-shared': 'NetdevVmnetSharedOptions',
If you only declare one type instead of two above, then both these
branches can use that same type.
> + 'vmnet-bridged': 'NetdevVmnetBridgedOptions' } }
>
> ##
> # @RxState:
> --
> 2.23.0
>
>
--
Eric Blake, Principal Software Engineer
Red Hat, Inc. +1-919-301-3266
Virtualization: qemu.org | libvirt.org
next prev parent reply other threads:[~2021-10-11 18:46 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-08-31 19:27 [PATCH v2 0/6] Add vmnet.framework based network backend Vladislav Yaroshchuk
2021-08-31 19:27 ` [PATCH v2 1/6] net/vmnet: dependencies setup, initial preparations Vladislav Yaroshchuk
2021-10-11 18:44 ` Eric Blake [this message]
2021-10-12 10:14 ` Vladislav Yaroshchuk
2021-08-31 19:27 ` [PATCH v2 2/6] net/vmnet: create common netdev state structure Vladislav Yaroshchuk
2021-08-31 19:27 ` [PATCH v2 3/6] net/vmnet: implement shared mode (vmnet-shared) Vladislav Yaroshchuk
2021-08-31 19:27 ` [PATCH v2 4/6] net/vmnet: implement host mode (vmnet-host) Vladislav Yaroshchuk
2021-08-31 19:27 ` [PATCH v2 5/6] net/vmnet: implement bridged mode (vmnet-bridged) Vladislav Yaroshchuk
2021-08-31 19:27 ` [PATCH v2 6/6] net/vmnet: update qemu-options.hx Vladislav Yaroshchuk
2021-09-28 10:31 ` [PATCH v2 0/6] Add vmnet.framework based network backend Vladislav Yaroshchuk
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=20211011184456.rohhk5b3umslmmdz@redhat.com \
--to=eblake@redhat.com \
--cc=jasowang@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=r.bolshakov@yadro.com \
--cc=yaroshchuk2000@gmail.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).