
What we need to send not to configure a qemu -net bock is something called ( type none) not ( model none ) or (model xen) xend. So what you are suggesting is that if we see a < model type='xen' > treat it a different way so that it will send (type none) to XEND. ?
Not quite - we'd not set model for the PV only case. What XenD's logic is keyed off is the value of the (type ) element. If it is 'ioemu' then only QEMU is configured. If it is left out completely, both both QEMU and PV are enabled. If it is any other value, then PV only is configure. (model) only matters when QEMU is enabled. So I was thinking we'd have the following as the mapping
...no model element... -> No (type) or (model) element at all QEMU + PV <model type='e1000'/> -> (type ioemu) (model e1000) QEMU only <model type='rtl8139'/> -> (type ioemu) (model rtl8139) QEMU only <model type='ne2k_pci'/> -> (type ioemu) (model ne2k_pci) QEMU only <model type='netback'/> -> (type netback) no (model) PV only
Daniel
Are we going to put a check on available or supported model types, by adding a new ENUM virDomainNetModel in domain_config.c/.h level. Like the way we have done to other types if so the xend_internal.c level we can put the check like if(def->model==NULL){ // do nothing }else if(NULL && def->model == VIR_DOMAIN_NET_MODEL_NETBACK){ (type netback) }else{ (type ioemu) (model %s) call the emum to sting function } Other way is to make sure each driver holds a list of supported nic models with in the driver code, enum virXENDomainNetModelType. (I would personally prefer this way of checking). So each driver would only have to hold a set of nic models that it will support. or else are we just going to do a string check on xend_internal.c level for "netback" string.
From what I have seen is that if we send a model that is not supported by qemu to xend. qemu-dm configuration will fail.. but the vm will be still running. xend will see it as a running vm.
So checking for a supported "model type", is it up to the libvirt or are we going to think that user will always configure with the correct model type.