[libvirt] virsh "net-create" explanation
Michal Privoznik
mprivozn at redhat.com
Fri Dec 28 16:02:03 UTC 2012
On 26.12.2012 16:36, Bilal Ahmad wrote:
> Hi all,
>
> I am new to libvirt and started looking at the source code. While
> tracing back the virsh command "net-create", I got stuck into a loop and
> I would really like someone to explain how this works.
>
> In the virsh-network.c, from:
>
> network = virNetworkCreateXML(ctl->conn, buffer);
>
> I traced back to:
>
> if (conn->networkDriver && conn->networkDriver->networkCreateXML) {
> virNetworkPtr ret;
> ret = conn->networkDriver->networkCreateXML(conn, xmlDesc);
Some hypervisors manage networks on their own (e.g. VBox) while others
rely on our bridge driver. Since we've switched to C99 struct initialization,
you can simply grep for networkCreateXML:
$ git grep networkCreateXML
and you'll see which functions implements the functionality:
[...]
src/network/bridge_driver.c: .networkCreateXML = networkCreate, /* 0.2.0 */
src/remote/remote_driver.c: .networkCreateXML = remoteNetworkCreateXML, /* 0.3.0 */
src/test/test_driver.c: .networkCreateXML = testNetworkCreate, /* 0.3.2 */
src/vbox/vbox_tmpl.c: .networkCreateXML = vboxNetworkCreateXML, /* 0.6.4 */
And now you can look deeper into networkCreate(), testNetworkCreate() or vboxNetworkCreateXML().
You can repeat the process with other driver methods and drivers as well.
Michal
More information about the libvir-list
mailing list