On 02/21/2012 03:59 PM, Laine Stump wrote: > On 02/21/2012 07:33 AM, Shradha Shah wrote: >> On 02/20/2012 06:43 PM, Laine Stump wrote: >>> On 02/20/2012 12:37 PM, Shradha Shah wrote: >>>> Hello All, >>>> >>>> I am currently working on patches for PCI-passthrough of SRIOV VF's and I am facing an issue with the network definition not being persistent. >>>> >>>> I am using a new forward mode = hostdev and the network xml is as follows: >>>> <network> >>>> <name>pci-passthrough-network</name> >>>> <uuid>81ff0d90-c91e-6742-64da-4a736edb9a8f</uuid> >>>> <forward mode="hostdev"> >>>> <pf dev="eth2"/> >>>> </forward> >>>> </network> >>>> >>>> Command line used is: >>>> # virsh net-define pci_passthrough_network.xml >>>> >>>> The network is defined successfully and I can use it at this point. >>>> >>>> But if I restart libvirt after defining the above network, I lose the network definition. >>>> >>>> After restart libvirt does not possess any knowledge of the above network. >>>> >>>> This does not happen when I use forward mode="bridge". >>>> >>>> I have cross referenced the function call path of networkDefine for both the forwarding modes and I can't seem to find the problem. >>>> >>>> Is there some function I am missing? >>> You need to add some logic to networkFindActiveConfigs() to determine if >>> the network is active. >> I am not sure if I am missing something but, networkFindActiveConfigs() is called by networkStartup() only. > > Right. And that is called every time libvirtd is restarted. I had read > your post too quickly and assumed the problem was that the new network > was no longer marked active after restarting libvirtd, in which case > this is where you would want to look. But I see from you virsh net-list > output that the real problem is that the network is no longer *defined* > after a restart. > >> Currently I am not starting any networks but just defining them and then restarting libvirtd, at which point the pci-passthrough-network dissapears. >> The commands I am using are as follows: >> >> # virsh net-define pci_passthrough_network.xml >> Network pci-passthrough-network defined from pci_passthrough_network.xml >> >> # virsh net-define macvtap_bridge_network.xml >> Network macvtap-bridge-network defined from macvtap_bridge_network.xml >> >> # virsh net-list -all >> Name State Autostart >> -------------------------------------------------- >> macvtap-bridge-network inactive no >> pci-passthrough-network inactive no >> >> # service libvirtd restart >> Stopping libvirtd daemon: [ OK ] >> Starting libvirtd daemon: [ OK ] >> >> # virsh net-list -all >> Name State Autostart >> -------------------------------------------------- >> macvtap-bridge-network inactive no > > Before you restart libvirtd, is the xml file in place in > /etc/libvirt/qemu/networks/pci-passthrough-network.xml? And is that file > still there after libvirtd restarts? If the file is still there but the > definition doesn't show up in net-list --all, perhaps there is something > in the xml file that is failing the parse - any log messages in libvirtd? This was indeed the case. Libvirt was failing to parse the forwarddev on restart. Bit of a mistake in my code. Now resolved. Many Thanks, Regards, Shradha > > Also, does it behave differently if you start the network before > restarting libvirtd? > > Beyond this, it's really not possible to help much more without seeing > the code you're working with. > > >> >> I think its got to do something with the persistent flag of the network object, but I am not sure. > > Well, the persistent flag is set unconditionally by networkDefine for > all types of networks. > > -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list