On 07/11/2018 12:33 AM, Yegappan Lakshmanan wrote:
Hi all,
How do you add a VLAN tag to a libvirt SR-IOV VF network using
the "virsh net-update" command? I couldn't find the section to pass
to the "virsh net-update" command to add the VLAN tag.
I have the following libvirt network defined for a SR-IOV VF:
<network>
<name>GE0-0-SRIOV-1</name>
<uuid>7bc67166-c78e-4bcf-89ee-377dd9086631</uuid>
<forward mode='hostdev' managed='yes'>
<driver name='vfio'/>
<address type='pci' domain='0x0000' bus='0x02'
slot='0x10'
function='0x0'/>
</forward>
</network>
I am trying to add VLAN 100 to this network. If I use the following
command to
add a VLAN tag to this network:
virsh net-update GE0-0-SRIOV-1 modify bridge --xml "<vlan
trunk='no'><tag id='100'/></vlan>">
It fails as the section "bridge" doesn't support adding a VLAN tag.
Right. Because the <vlan> element in a network is not a part of the
<bridge> element. It is a separate element all its own. the net-update
command only supports updating a few very specific parts of the network
definition, and the vlan element isn't one of those that's supported.
I
have tried
other section values like domain and all of them fail.
I don't remember the chronology, but it's very likely that support for
net-update was added before vlan tagging was supported, and that
net-update support for it was either forgotten or deemed impractical to
implement when vlan tag support was later added.
I am able to add the VLAN to the portgroup section, but then the VLAN
configuration
is not propagated to the underlying physical PF interface.
Aha! This can be used to work around the absence of support for changing
the <vlan> element directly under <network>.
If the guest has "portgroup='blah'" in it's interface <source>
element
(or if the <portgroup> you change has "default='yes'", then any
guest
that is started after adding the portgroup should use the new vlan tag.
However, the pre-existing interfaces of pre-existing guests will not
have their vlan tag changed.
If I manually add the VLAN configuration using the "virsh net-edit"
command and
then connect a VM to this network, then the VLAN information is
correctly propagated
to the underlying physical NIC device.
Note that "virsh net-edit blah" is functionally the same as:
virsh net-dumpxml blah --inactive >/tmp/blah.xml
[modify /tmp/blah.xml]
virsh net-define /tmp/blah.xml
(and of course you'll have to net-destroy / net-start the network for
the changes to take effect).
I need a way to automate this
configuration.
Any pointers?
Thanks,
Yegappan
_______________________________________________
libvirt-users mailing list
libvirt-users(a)redhat.com
https://www.redhat.com/mailman/listinfo/libvirt-users