[RFC 0/4] Implement automatic attachment of the vhostuser port

yong.huang@smartx.com posted 4 patches 5 months, 1 week ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/libvirt tags/patchew/cover.1751640926.git.yong.huang@smartx.com
docs/formatdomain.rst                         | 37 ++++++++-
src/conf/domain_conf.c                        | 75 +++++++++++++++++--
src/conf/domain_conf.h                        | 13 +++-
src/conf/domain_postparse.c                   | 46 ++++++++++++
src/conf/domain_validate.c                    | 24 ++++++
src/conf/schemas/domaincommon.rng             | 20 +++++
src/lxc/lxc_process.c                         |  3 +-
src/qemu/qemu_command.c                       |  3 +
src/qemu/qemu_hotplug.c                       |  4 +
src/qemu/qemu_interface.c                     | 46 ++++++++++++
src/qemu/qemu_interface.h                     |  3 +
src/qemu/qemu_passt.c                         |  4 +-
src/qemu/qemu_process.c                       |  4 +
src/util/virnetdevopenvswitch.c               | 36 ++++++++-
src/util/virnetdevopenvswitch.h               | 10 ++-
src/util/virnetdevtap.c                       |  3 +-
.../net-vhostuser.x86_64-latest.xml           | 10 +++
tests/qemuxmlconfdata/net-vhostuser.xml       | 10 +++
18 files changed, 336 insertions(+), 15 deletions(-)
[RFC 0/4] Implement automatic attachment of the vhostuser port
Posted by yong.huang@smartx.com 5 months, 1 week ago
From: Hyman Huang <yong.huang@smartx.com>

This series offer an automated method to configure a vhostuser interface
in server mode, simplifying integration with DPDK-enabled Open vSwitch
bridges.

To ensure simplicity and forward compatibility, we introduce openvswitch
backend support for vhostuser interfaces in XML configuration, with an
optional 'autoiface' attribute.

Here is an example of the config for a vhostuser interface that attached
to bridge automatically:

    <interface type='vhostuser'>
      <mac address='52:54:00:3b:83:1b'/>
      <source type='unix' path='/tmp/vhost2.sock' mode='server'/>
      <virtualport type='openvswitch'>
        <parameters interfaceid='9317d6b7-5fae-4464-a7e9-87d90eff2204'/>
      </virtualport>
      <backend type='openvswitch' autoiface='yes'>
        <parameters bridge='ovsbr-ddpbxnhaq'/>
      </backend>
      <model type='virtio'/>
      <driver queues='5'/>
    </interface>

The backend element specifies the backend implementation of the vhostuser
interface type. The type attribute is required and currently supports
supports openvswitch and passt.

If type is openvswitch, the autoiface attribute may be specified (yes
or no), if autoiface is yes, the parameters element bridge attribute
is mandatory. Libvirt will derive the interface name by extracting the
substring after the '/' character in the vhostuser server path, and
attach it to the bridge specified by the bridge attribute.

Please review. Thanks.

Yong

Hyman Huang (4):
  qemu_passt: Make logFile backend-specific
  conf: Introduce autoiface attribute for vhostuser interface
  util: Add iface argument to virNetDevOpenvswitchAddPort
  qemu: Implement automatic attachment of the vhostuser port

 docs/formatdomain.rst                         | 37 ++++++++-
 src/conf/domain_conf.c                        | 75 +++++++++++++++++--
 src/conf/domain_conf.h                        | 13 +++-
 src/conf/domain_postparse.c                   | 46 ++++++++++++
 src/conf/domain_validate.c                    | 24 ++++++
 src/conf/schemas/domaincommon.rng             | 20 +++++
 src/lxc/lxc_process.c                         |  3 +-
 src/qemu/qemu_command.c                       |  3 +
 src/qemu/qemu_hotplug.c                       |  4 +
 src/qemu/qemu_interface.c                     | 46 ++++++++++++
 src/qemu/qemu_interface.h                     |  3 +
 src/qemu/qemu_passt.c                         |  4 +-
 src/qemu/qemu_process.c                       |  4 +
 src/util/virnetdevopenvswitch.c               | 36 ++++++++-
 src/util/virnetdevopenvswitch.h               | 10 ++-
 src/util/virnetdevtap.c                       |  3 +-
 .../net-vhostuser.x86_64-latest.xml           | 10 +++
 tests/qemuxmlconfdata/net-vhostuser.xml       | 10 +++
 18 files changed, 336 insertions(+), 15 deletions(-)

-- 
2.27.0
Re: [RFC 0/4] Implement automatic attachment of the vhostuser port
Posted by Yong Huang 4 months, 2 weeks ago
Ping

On Fri, Jul 4, 2025 at 11:20 PM <yong.huang@smartx.com> wrote:

> From: Hyman Huang <yong.huang@smartx.com>
>
> This series offer an automated method to configure a vhostuser interface
> in server mode, simplifying integration with DPDK-enabled Open vSwitch
> bridges.
>
> To ensure simplicity and forward compatibility, we introduce openvswitch
> backend support for vhostuser interfaces in XML configuration, with an
> optional 'autoiface' attribute.
>
> Here is an example of the config for a vhostuser interface that attached
> to bridge automatically:
>
>     <interface type='vhostuser'>
>       <mac address='52:54:00:3b:83:1b'/>
>       <source type='unix' path='/tmp/vhost2.sock' mode='server'/>
>       <virtualport type='openvswitch'>
>         <parameters interfaceid='9317d6b7-5fae-4464-a7e9-87d90eff2204'/>
>       </virtualport>
>       <backend type='openvswitch' autoiface='yes'>
>         <parameters bridge='ovsbr-ddpbxnhaq'/>
>       </backend>
>       <model type='virtio'/>
>       <driver queues='5'/>
>     </interface>
>
> The backend element specifies the backend implementation of the vhostuser
> interface type. The type attribute is required and currently supports
> supports openvswitch and passt.
>
> If type is openvswitch, the autoiface attribute may be specified (yes
> or no), if autoiface is yes, the parameters element bridge attribute
> is mandatory. Libvirt will derive the interface name by extracting the
> substring after the '/' character in the vhostuser server path, and
> attach it to the bridge specified by the bridge attribute.
>
> Please review. Thanks.
>
> Yong
>
> Hyman Huang (4):
>   qemu_passt: Make logFile backend-specific
>   conf: Introduce autoiface attribute for vhostuser interface
>   util: Add iface argument to virNetDevOpenvswitchAddPort
>   qemu: Implement automatic attachment of the vhostuser port
>
>  docs/formatdomain.rst                         | 37 ++++++++-
>  src/conf/domain_conf.c                        | 75 +++++++++++++++++--
>  src/conf/domain_conf.h                        | 13 +++-
>  src/conf/domain_postparse.c                   | 46 ++++++++++++
>  src/conf/domain_validate.c                    | 24 ++++++
>  src/conf/schemas/domaincommon.rng             | 20 +++++
>  src/lxc/lxc_process.c                         |  3 +-
>  src/qemu/qemu_command.c                       |  3 +
>  src/qemu/qemu_hotplug.c                       |  4 +
>  src/qemu/qemu_interface.c                     | 46 ++++++++++++
>  src/qemu/qemu_interface.h                     |  3 +
>  src/qemu/qemu_passt.c                         |  4 +-
>  src/qemu/qemu_process.c                       |  4 +
>  src/util/virnetdevopenvswitch.c               | 36 ++++++++-
>  src/util/virnetdevopenvswitch.h               | 10 ++-
>  src/util/virnetdevtap.c                       |  3 +-
>  .../net-vhostuser.x86_64-latest.xml           | 10 +++
>  tests/qemuxmlconfdata/net-vhostuser.xml       | 10 +++
>  18 files changed, 336 insertions(+), 15 deletions(-)
>
> --
> 2.27.0
>
>

-- 
Best regards
Re: [RFC 0/4] Implement automatic attachment of the vhostuser port
Posted by Yong Huang 5 months ago
Ping

On Fri, Jul 4, 2025 at 11:20 PM <yong.huang@smartx.com> wrote:

> From: Hyman Huang <yong.huang@smartx.com>
>
> This series offer an automated method to configure a vhostuser interface
> in server mode, simplifying integration with DPDK-enabled Open vSwitch
> bridges.
>
> To ensure simplicity and forward compatibility, we introduce openvswitch
> backend support for vhostuser interfaces in XML configuration, with an
> optional 'autoiface' attribute.
>
> Here is an example of the config for a vhostuser interface that attached
> to bridge automatically:
>
>     <interface type='vhostuser'>
>       <mac address='52:54:00:3b:83:1b'/>
>       <source type='unix' path='/tmp/vhost2.sock' mode='server'/>
>       <virtualport type='openvswitch'>
>         <parameters interfaceid='9317d6b7-5fae-4464-a7e9-87d90eff2204'/>
>       </virtualport>
>       <backend type='openvswitch' autoiface='yes'>
>         <parameters bridge='ovsbr-ddpbxnhaq'/>
>       </backend>
>       <model type='virtio'/>
>       <driver queues='5'/>
>     </interface>
>
> The backend element specifies the backend implementation of the vhostuser
> interface type. The type attribute is required and currently supports
> supports openvswitch and passt.
>
> If type is openvswitch, the autoiface attribute may be specified (yes
> or no), if autoiface is yes, the parameters element bridge attribute
> is mandatory. Libvirt will derive the interface name by extracting the
> substring after the '/' character in the vhostuser server path, and
> attach it to the bridge specified by the bridge attribute.
>
> Please review. Thanks.
>
> Yong
>
> Hyman Huang (4):
>   qemu_passt: Make logFile backend-specific
>   conf: Introduce autoiface attribute for vhostuser interface
>   util: Add iface argument to virNetDevOpenvswitchAddPort
>   qemu: Implement automatic attachment of the vhostuser port
>
>  docs/formatdomain.rst                         | 37 ++++++++-
>  src/conf/domain_conf.c                        | 75 +++++++++++++++++--
>  src/conf/domain_conf.h                        | 13 +++-
>  src/conf/domain_postparse.c                   | 46 ++++++++++++
>  src/conf/domain_validate.c                    | 24 ++++++
>  src/conf/schemas/domaincommon.rng             | 20 +++++
>  src/lxc/lxc_process.c                         |  3 +-
>  src/qemu/qemu_command.c                       |  3 +
>  src/qemu/qemu_hotplug.c                       |  4 +
>  src/qemu/qemu_interface.c                     | 46 ++++++++++++
>  src/qemu/qemu_interface.h                     |  3 +
>  src/qemu/qemu_passt.c                         |  4 +-
>  src/qemu/qemu_process.c                       |  4 +
>  src/util/virnetdevopenvswitch.c               | 36 ++++++++-
>  src/util/virnetdevopenvswitch.h               | 10 ++-
>  src/util/virnetdevtap.c                       |  3 +-
>  .../net-vhostuser.x86_64-latest.xml           | 10 +++
>  tests/qemuxmlconfdata/net-vhostuser.xml       | 10 +++
>  18 files changed, 336 insertions(+), 15 deletions(-)
>
> --
> 2.27.0
>
>

-- 
Best regards