On Thu, Jan 25, 2007 at 03:49:41PM +0000, Mark McLoughlin wrote: > On Mon, 2007-01-15 at 20:06 +0000, Mark McLoughlin wrote: > > > * Since virConnect is supposed to be a connection to a specific > > hypervisor, does it make sense to create networks (which should > > be hypervisor agnostic) through virConnect? > > Okay, here's a suggestion - a virConnectPtr is a connection to a > specific hypervisor *and* the virtual network supervisor on that same > physical machine or user session. > > What I like about this is that if a domain's description mentions a > virtual network, that name is scoped within the network supervisor > associated with the hypervisor on which the guest is being created. > > Attached is a kind of a hacky patch to do something like that - if e.g. > you connect to xend, you also get a "network-only" connection to qemud > for managing networks. That's an interesting idea - your description.. "a virConnectPtr is a connection to a specific hypervisor *and* the virtual network supervisor" ..makes me thing of a slightly alternative impl. We currently have a single internal driver API 'virDriverPtr' which is just a list of function pointers for all the HV related calls. Rather than making that struct bigger to add in networking calls, how about we define two separate internal driver APIs virHypervisorDriver virNetworkDriver It strikes me that most of the different hypervisor backends will simply want to re-use the same network driver backend, so why not properly de-couple them. The virConnectOpen function would thus first lookup a hypervisor driver, and then lookup a networking driver. This avoids the somewhat nasty issue of having to figure out how to activate multiple non-conficting drivers to get the correct combo of HV & network stuff. The only small complication would be ensuring that the HV driver and network driver didn't need to open 2 separate TCP connections to the same place, but I'm sure we'd be able to figure that out. Regards, Dan. -- |=- Red Hat, Engineering, Emerging Technologies, Boston. +1 978 392 2496 -=| |=- Perl modules: http://search.cpan.org/~danberr/ -=| |=- Projects: http://freshmeat.net/~danielpb/ -=| |=- GnuPG: 7D3B9505 F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 -=|