qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH 0/7] Add vmnet.framework based network backend


From: Jason Wang
Subject: Re: [PATCH 0/7] Add vmnet.framework based network backend
Date: Mon, 9 Aug 2021 11:23:31 +0800
User-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:78.0) Gecko/20100101 Thunderbird/78.12.0


在 2021/8/7 上午3:03, Vladislav Yaroshchuk 写道:
ping
https://patchew.org/QEMU/20210617143246.55336-1-yaroshchuk2000@gmail.com/ <https://patchew.org/QEMU/20210617143246.55336-1-yaroshchuk2000@gmail.com/>


Will review this week.

Thanks



чт, 17 июн. 2021 г. в 17:33, Vladislav Yaroshchuk <yaroshchuk2000@gmail.com <mailto:yaroshchuk2000@gmail.com>>:

    macOS provides networking API for VMs called vmnet.framework.
    I tried to add it as a network backend. All three modes are supported:

    -shared:
      allows the guest to comminicate with other guests in shared mode and
      also with external network (Internet) via NAT

    -host:
      allows the guest to communicate with other guests in host mode

    -bridged:
      bridges the guest with a physical network interface

    Separate netdev for each vmnet mode was created because they use quite
    different settings, especially since macOS 11.0 when vmnet.framework
    gets a lot of updates.

    Not sure that I use qemu_mutex_lock_iothread() and
    qemu_mutex_unlock_iothread() in correct way while sending packet
    from vmnet interface to QEMU. I'll be happy to receive
    recomendations how to make this thing better if I done sth wrong.

    Also vmnet.framework requires com.apple.vm.networking entitlement to
    run without root priveledges. Ad-hoc signing does not fit there,
    so I didn't touch anything related to signing. As a result we should
    run qemu-system by a priviledged user:
    `$ sudo qemu-system-x86_64 -nic vmnet-shared`
    otherwise vmnet fails with 'general failure'.

    But in any way it seems working now,
    I tested it within qemu-system-x86-64 on macOS 10.15.7 host, with nic
    models:
    - e1000-82545em
    - virtio-net-pci

    and having such guests:
    - macOS 10.15.7
    - Ubuntu Bionic (server cloudimg)

    Vladislav Yaroshchuk (7):
      net/vmnet: dependencies setup, initial preparations
      net/vmnet: add new netdevs to qapi/net
      net/vmnet: create common netdev state structure
      net/vmnet: implement shared mode (vmnet-shared)
      net/vmnet: implement host mode (vmnet-host)
      net/vmnet: implement bridged mode (vmnet-bridged)
      net/vmnet: update qemu-options.hx

     configure           |  31 +++++
     meson.build         |   5 +
     net/clients.h       |  11 ++
     net/meson.build     |   7 ++
     net/net.c           |  10 ++
     net/vmnet-bridged.m | 123 ++++++++++++++++++
     net/vmnet-common.m  | 294
    ++++++++++++++++++++++++++++++++++++++++++++
     net/vmnet-host.c    |  93 ++++++++++++++
     net/vmnet-shared.c  |  94 ++++++++++++++
     net/vmnet_int.h     |  48 ++++++++
     qapi/net.json       |  99 ++++++++++++++-
     qemu-options.hx     |  17 +++
     12 files changed, 830 insertions(+), 2 deletions(-)
     create mode 100644 net/vmnet-bridged.m
     create mode 100644 net/vmnet-common.m
     create mode 100644 net/vmnet-host.c
     create mode 100644 net/vmnet-shared.c
     create mode 100644 net/vmnet_int.h

-- 2.23.0





reply via email to

[Prev in Thread] Current Thread [Next in Thread]