qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
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 2/7] net/vmnet: add new netdevs to qapi/net
Date: Fri, 6 Aug 2021 16:19:27 -0500	[thread overview]
Message-ID: <20210806211927.dvsn7xvy2ghmonip@redhat.com> (raw)
In-Reply-To: <20210617143246.55336-3-yaroshchuk2000@gmail.com>

On Thu, Jun 17, 2021 at 05:32:41PM +0300, Vladislav Yaroshchuk wrote:
> Created 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)
> 
> Three new netdevs are added:
> - vmnet-host
> - vmnet-shared
> - vmnet-bridged
> 
> Signed-off-by: Vladislav Yaroshchuk <yaroshchuk2000@gmail.com>
> ---

> +++ 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.
> +#
> +# @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.1,
> +##

Same comments about 6.1 vs. 6.2 as before (I'll quit pointing it out).
Spurious trailing comma.

> +{ 'struct': 'NetdevVmnetHostOptions',
> +  'data': {
> +    '*dhcpstart':   'str',
> +    '*dhcpend':     'str',
> +    '*subnetmask':  'str'

Hmm. You listed all three as optional, but document that they must all
be specified together.  Why not just make them all required, and
simplify the documentation?

> +  },
> +  'if': 'defined(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.

Spurious double 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.1,
> +##
> +{ 'struct': 'NetdevVmnetSharedOptions',
> +  'data': {
> +    '*dhcpstart':    'str',
> +    '*dhcpend':      'str',
> +    '*subnetmask':   'str'
> +  },
> +  'if': 'defined(CONFIG_VMNET)' }
> +
> +##
> +# @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.1
> +##
> +{ 'struct': 'NetdevVmnetBridgedOptions',
> +  'data': { 'ifname': 'str' },
> +  'if': 'defined(CONFIG_VMNET)' }
> +
>  ##
>  # @NetClientDriver:
>  #
> @@ -460,11 +543,16 @@
>  # Since: 2.7
>  #
>  #        @vhost-vdpa since 5.1
> -#        @vmnet since 6.1

Why are you dropping vmnet?  Especially since you just added it in the
previous patch?  That feels like needless churn.

> +#        @vmnet-host since 6.1
> +#        @vmnet-shared since 6.1
> +#        @vmnet-bridged since 6.1
>  ##
>  { 'enum': 'NetClientDriver',
>    'data': [ 'none', 'nic', 'user', 'tap', 'l2tpv3', 'socket', 'vde',
> -            'bridge', 'hubport', 'netmap', 'vhost-user', 'vhost-vdpa', 'vmnet' ] }
> +            'bridge', 'hubport', 'netmap', 'vhost-user', 'vhost-vdpa',
> +            { 'name': 'vmnet-host', 'if': 'defined(CONFIG_VMNET)' },
> +            { 'name': 'vmnet-shared', 'if': 'defined(CONFIG_VMNET)' },
> +            { 'name': 'vmnet-bridged', 'if': 'defined(CONFIG_VMNET)' }] }

-- 
Eric Blake, Principal Software Engineer
Red Hat, Inc.           +1-919-301-3266
Virtualization:  qemu.org | libvirt.org



  reply	other threads:[~2021-08-06 21:20 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-06-17 14:32 [PATCH 0/7] Add vmnet.framework based network backend Vladislav Yaroshchuk
2021-06-17 14:32 ` [PATCH 1/7] net/vmnet: dependencies setup, initial preparations Vladislav Yaroshchuk
2021-08-06 21:13   ` Eric Blake
2021-06-17 14:32 ` [PATCH 2/7] net/vmnet: add new netdevs to qapi/net Vladislav Yaroshchuk
2021-08-06 21:19   ` Eric Blake [this message]
2021-08-17  9:28     ` Vladislav Yaroshchuk
2021-06-17 14:32 ` [PATCH 3/7] net/vmnet: create common netdev state structure Vladislav Yaroshchuk
2021-06-17 14:32 ` [PATCH 4/7] net/vmnet: implement shared mode (vmnet-shared) Vladislav Yaroshchuk
2021-06-17 14:32 ` [PATCH 5/7] net/vmnet: implement host mode (vmnet-host) Vladislav Yaroshchuk
2021-06-17 14:32 ` [PATCH 6/7] net/vmnet: implement bridged mode (vmnet-bridged) Vladislav Yaroshchuk
2021-06-17 14:32 ` [PATCH 7/7] net/vmnet: update qemu-options.hx Vladislav Yaroshchuk
2021-08-06 19:03 ` [PATCH 0/7] Add vmnet.framework based network backend Vladislav Yaroshchuk
2021-08-09  3:23   ` Jason Wang
2021-08-12  6:00 ` Roman Bolshakov
2021-08-17  9:10   ` 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=20210806211927.dvsn7xvy2ghmonip@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).