[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v2 1/6] libxl: add a list of abstract 'channels' to the domain config
On Mon, 2014-06-16 at 10:49 +0100, David Scott wrote: > A 'channel' is a low-bandwidth private communication channel that > resembles a physical serial port. Example uses include: > > * providing initial VM configuration without having to use the > network > * signalling a guest agent > > Every channel has a string 'name' which the VM can use to find > the appropriate handler. Each channel has an implementation 'type' > which currently includes: > > * NONE: reads will block, writes will be thrown away What's this useful for? > * PTY: the I/O surfaces as a pty in the backend domain > * PATH: writes are appended to a log file in the backend domain PATH is quite a generic name for that. Do reads block? > * SOCKET: a listening Unix domain socket accepts a connection in > the backend domain and proxies > > Signed-off-by: David Scott <dave.scott@xxxxxxxxxx> > --- > tools/libxl/libxl_types.idl | 21 +++++++++++++++++++++ > 1 file changed, 21 insertions(+) > > diff --git a/tools/libxl/libxl_types.idl b/tools/libxl/libxl_types.idl > index 52f1aa9..5671d86 100644 > --- a/tools/libxl/libxl_types.idl > +++ b/tools/libxl/libxl_types.idl > @@ -51,6 +51,17 @@ libxl_domain_type = Enumeration("domain_type", [ > (2, "PV"), > ], init_val = -1) > > +libxl_channel_type = Enumeration("channel_type", [ > + # Connected to nothing: > + (0, "NONE"), > + # Connect to a pty in the backend domain: > + (1, "PTY"), > + # Spool output to a file in the backend domain: > + (2, "PATH"), > + # Listen on a Unix domain socket in the backend domain: > + (3, "SOCKET"), > + ]) > + > libxl_device_model_version = Enumeration("device_model_version", [ > (0, "UNKNOWN"), > (1, "QEMU_XEN_TRADITIONAL"), # Historical qemu-xen device model (qemu-dm) > @@ -457,6 +468,15 @@ libxl_device_vtpm = Struct("device_vtpm", [ > ("uuid", libxl_uuid), > ]) > > +libxl_device_channel = Struct("device_channel", [ > + ("backend_domid", libxl_domid), > + ("backend_domname", string), > + ("devid", libxl_devid), > + ("name", string), > + ("type", libxl_channel_type), > + ("path", string), Is path valid for all types? If not then a KeyedUnion would be the way to go. > +]) > + > libxl_domain_config = Struct("domain_config", [ > ("c_info", libxl_domain_create_info), > ("b_info", libxl_domain_build_info), > @@ -467,6 +487,7 @@ libxl_domain_config = Struct("domain_config", [ > ("vfbs", Array(libxl_device_vfb, "num_vfbs")), > ("vkbs", Array(libxl_device_vkb, "num_vkbs")), > ("vtpms", Array(libxl_device_vtpm, "num_vtpms")), > + ("channels", Array(libxl_device_channel, "num_channels")), > > ("on_poweroff", libxl_action_on_shutdown), > ("on_reboot", libxl_action_on_shutdown), _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |