Hi Laine, The <source dev/> setting will be ignored after "virsh define" or when you save after "virsh edit". Do you think it is a bug?
Details: SC1: define # cat rhel.xml | grep /interface -B6 <interface type='vhostuser'> <mac address='52:54:00:e2:ba:2c'/> <model type='virtio'/> <backend type='passt'/> <source dev='eno8303'/> <address type='pci' domain='0x0000' bus='0x01' slot='0x00' function='0x0'/> </interface> # virsh define rhel.xml Domain 'rhel' defined from rhel.xml # virsh dumpxml rhel --xpath //interface <interface type="vhostuser"> <mac address="52:54:00:e2:ba:2c"/> <model type="virtio"/> <backend type="passt"/> <address type="pci" domain="0x0000" bus="0x01" slot="0x00" function="0x0"/> </interface> SC2: virsh edit # virsh edit rhel <interface type='vhostuser'> <mac address='52:54:00:e2:ba:2c'/> <model type='virtio'/> <backend type='passt'/> <source dev='eno8303'/> <portForward proto='tcp' address='10.73.211.16' dev='eno8303'> <range start='2000'/> <range start='3000' to='3001'/> </portForward> <address type='pci' domain='0x0000' bus='0x01' slot='0x00' function='0x0'/> </interface> after save, check the xml: # virsh dumpxml rhel --xpath //interface <interface type="vhostuser"> <mac address="52:54:00:e2:ba:2c"/> <portForward proto="tcp" address="10.73.211.16" dev="eno8303"> <range start="2000"/> <range start="3000" to="3001"/> </portForward> <model type="virtio"/> <backend type="passt"/> <alias name="net0"/> <address type="pci" domain="0x0000" bus="0x01" slot="0x00" function="0x0"/> </interface> start the vm, check the process: qemu 28692 0.0 0.0 205640 25788 ? Ss 21:07 0:00 passt --vhost-user --one-off --socket /run/libvirt/qemu/passt/1-rhel-net0.socket --pid /run/libvirt/qemu/passt/1-rhel-net0-passt.pid --tcp-ports 10.73.211.16%eno8303/2000,3000:3001 BR, Yalan On Thu, Mar 6, 2025 at 5:50 AM Laine Stump <la...@laine.org> wrote: > Just now took my daily look at the list and saw this patch... > > On 3/5/25 11:42 AM, Ján Tomko wrote: > > On a Wednesday in 2025, Yalan Zhang wrote: > >> Fix a typo and update the setting in the example. The documentation > >> explains that "when passt is the backend,...the ``<source>`` > >> path/type/mode are all implied to be "matching the passt process" > >> so **must not** be specified." Additionally, this source dev setting is > >> ignored in practice. Therefore, let's remove it from the example to > >> avoid any > >> confusion. > >> > >> Signed-off-by: Yalan Zhang <yalzh...@redhat.com> > >> --- > >> docs/formatdomain.rst | 3 +-- > >> 1 file changed, 1 insertion(+), 2 deletions(-) > >> > >> diff --git a/docs/formatdomain.rst b/docs/formatdomain.rst > >> index cbe378e61d..e84e0a0e8e 100644 > >> --- a/docs/formatdomain.rst > >> +++ b/docs/formatdomain.rst > >> @@ -5154,7 +5154,7 @@ destined for the host toward the guest instead), > >> and a socket between > >> passt and QEMU forwards that traffic on to the guest (and back out, > >> of course). > >> > > > > Oops, I have not looked at how this renders when reviewing the original > > patch - that the extra characters prevent the :since: tag from working. > > > >> -*(:since:`Since 11.1.0 (QEMU and KVM only)` you may prefer to use the > >> +:since:`Since 11.1.0 (QEMU and KVM only)` you may prefer to use the > >> passt backend with the more efficient and performant type='vhostuser' > >> rather than type='user'. All the options related to passt in the > >> paragraphs below here also apply when using the passt backend with > > > > Additional context: > > type='vhostuser'; any other details specific to vhostuser are > > described* `here > > <formatdomain.html#vhost-user-connection-with-passt-backend>`__.) > > > > So the asterisk ending the italics and the ending parenthesis should be > > removed too. > > Yeah, sorry I didn't notice that the italicization not only didn't work, > but also prevented the :since: tag from working. That's unfortunate - I > would have preferred for that paragraph to be italicized :-/ > > > > > I can squash that change in before pushing, unless someone objects > > to removing the italics and parenthesis. > > > >> @@ -6378,7 +6378,6 @@ setting guest-side IP addresses with ``<ip>`` > >> and port forwarding with > >> <interface type='vhostuser'> > >> <backend type='passt'/> > >> <mac address='52:54:00:3b:83:1a'/> > >> - <source dev='enp1s0'/> > > > It is correct the path/type/mode in <source> are not used or allowed for > type='vhostuser', but that's not what is being set in this example - it > is setting source dev, which *is* valid to set - for both flavors of > passt connection the source dev is the name of the host network device > passt uses when figuring out what default route to provide to the guest > in its DHCP responses (and also what IP address and netmask to provide > by default in the DHCP response when specific IP/netmask aren't set). > > So this line should remain in the example. Please don't remove it. > > > > >> <ip address='10.30.0.5 prefix='24'/> > >> </interface> > >> </devices> > >> -- > > > > Reviewed-by: Ján Tomko <jto...@redhat.com> > > > > > Jano > >