[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [XEN][RFC PATCH V2 12/17] xl: Add interface to handle qemu disaggregation
This patch modifies libxl interface for qemu disaggregation. For the moment, due to some dependencies between devices, we can't let the user choose which QEMU emulate a device. Moreoever this patch adds an "id" field to nic interface. It will be used in config file to specify which QEMU handle the network card. A possible disaggregation is: - UI: Emulate graphic card, USB, keyboard, mouse, default devices (PIIX4, root bridge, ...) - IDE: Emulate disk - Serial: Emulate serial port - Audio: Emulate audio card - Net: Emulate one or more network cards, multiple QEMU can emulate different card. The emulated card is specified with its nic ID. Signed-off-by: Julien Grall <julien.grall@xxxxxxxxxx> --- tools/libxl/libxl.h | 3 +++ tools/libxl/libxl_types.idl | 15 +++++++++++++++ 2 files changed, 18 insertions(+), 0 deletions(-) diff --git a/tools/libxl/libxl.h b/tools/libxl/libxl.h index c614d6f..71d4808 100644 --- a/tools/libxl/libxl.h +++ b/tools/libxl/libxl.h @@ -307,6 +307,7 @@ void libxl_cpuid_dispose(libxl_cpuid_policy_list *cpuid_list); #define LIBXL_PCI_FUNC_ALL (~0U) typedef uint32_t libxl_domid; +typedef uint32_t libxl_dmid; /* * Formatting Enumerations. @@ -478,12 +479,14 @@ typedef struct { libxl_domain_build_info b_info; int num_disks, num_nics, num_pcidevs, num_vfbs, num_vkbs; + int num_dms; libxl_device_disk *disks; libxl_device_nic *nics; libxl_device_pci *pcidevs; libxl_device_vfb *vfbs; libxl_device_vkb *vkbs; + libxl_dm *dms; libxl_action_on_shutdown on_poweroff; libxl_action_on_shutdown on_reboot; diff --git a/tools/libxl/libxl_types.idl b/tools/libxl/libxl_types.idl index daa8c79..36c802a 100644 --- a/tools/libxl/libxl_types.idl +++ b/tools/libxl/libxl_types.idl @@ -246,6 +246,20 @@ libxl_domain_sched_params = Struct("domain_sched_params",[ ("extratime", integer, {'init_val': 'LIBXL_DOMAIN_SCHED_PARAM_EXTRATIME_DEFAULT'}), ]) +libxl_dm_cap = Enumeration("dm_cap", [ + (1, "UI"), # Emulate all UI + default device + (2, "IDE"), # Emulate IDE + (4, "SERIAL"), # Emulate Serial + (8, "AUDIO"), # Emulate audio + ]) + +libxl_dm = Struct("dm", [ + ("name", string), + ("path", string), + ("capabilities", uint64), + ("vifs", libxl_string_list), + ]) + libxl_domain_build_info = Struct("domain_build_info",[ ("max_vcpus", integer), ("avail_vcpus", libxl_bitmap), @@ -367,6 +381,7 @@ libxl_device_nic = Struct("device_nic", [ ("nictype", libxl_nic_type), ("rate_bytes_per_interval", uint64), ("rate_interval_usecs", uint32), + ("id", string), ]) libxl_device_pci = Struct("device_pci", [ -- Julien Grall _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |