On Tue, Sep 19, 2023 at 10:34:25AM -0400, Laine Stump wrote: > On 9/18/23 3:20 PM, Praveen Paladugu wrote: > >Folks, > > > >I am working on upstreaming network support for ch driver. Like qemu driver,ch > >driver invokes steps in qemuInterfaceEthernetConnect, > >qemuInterfaceBridgeConnect methods to connect tap devices to appropriate > >host backends. > > > >Current implementation clones aboves methods to ch_interface files and > >uses them. I'd like to drop driver specific args from above methods and > >move them to a common place so that qemu and ch drivers can share above > >methods. > > > > > >int > >virInterfaceEthernetConnect(virDomainDef *def, > > virDomainNetDef *net, > > ebtablesContext *ebtables, > > bool macFilter, > > bool privileged, > > int *tapfd, > > size_t tapfdSize) > > > >I started with `qemuInterfaceEthernetConnect` and modified the signature as > >shown above. I initially tried putting `virInterfaceEthernetConnect` in > >'src/util' but that caused a lot of cross inclusions. Above definition pulls in > >domain_conf.h, domain_nwfilter.h, domain_audit.h and more headers, into utils > >which causes cross inclusion. > > > > > >I later created interface/interface_connect.{c,h} files and moved the methods to > >these files. This would require driver code to include > >interface/interface_connect.h, which seemed better than above cross inclusion > >scenario. > > The interface directory implements the interface driver, which was > intended to manage the configuration of host network interfaces, > *not* the network interfaces used by virtual machines, so that isn't > the correct place for this function that will be common between qemu > and ch drivers. > > src/hypervisor was created specifically to contain code that is used > by multiple hypervisor drivers, but that also needs to use things > from src/conf (see the first commit log entry of most of the files > in that directory), so that would be a more likely location. > Thanks Liane, I will move the methods to src/hypervisor. > Please don't name the functions "virInterface*()" though, as that > would get confused with the public functions of libvirt's > virInterface API. Ok. will rename these methods. > > > > > > >Do you see any issues with moving above methods to interface/interface_connect.x > >files? Any other ideas on how to reorg above methods so that they can be shared > >by qemu and ch drivers? > > > > > >Praveen > >