All of lore.kernel.org
 help / color / mirror / Atom feed
From: David Scott <dave.scott@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: ian.jackson@eu.citrix.com, David Scott <dave.scott@citrix.com>,
	wei.liu2@citrix.com, ian.campbell@citrix.com,
	stefano.stabellini@eu.citrix.com
Subject: [PATCH v2 6/6] Add a general description of the channel mechanism to docs/misc/
Date: Mon, 16 Jun 2014 10:49:55 +0100	[thread overview]
Message-ID: <1402912195-24732-7-git-send-email-dave.scott@citrix.com> (raw)
In-Reply-To: <1402912195-24732-1-git-send-email-dave.scott@citrix.com>

Signed-off-by: David Scott <dave.scott@citrix.com>
---
 docs/misc/channel.txt |   49 +++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 49 insertions(+)
 create mode 100644 docs/misc/channel.txt

diff --git a/docs/misc/channel.txt b/docs/misc/channel.txt
new file mode 100644
index 0000000..b5ab385
--- /dev/null
+++ b/docs/misc/channel.txt
@@ -0,0 +1,49 @@
+Xen PV Channels
+------------------------------------------------------------------------
+                                                             David Scott
+                                                   dave.scott@citrix.com
+
+
+A channel is a low-bandwidth private byte stream similar to a serial
+link. Typical uses of channels are
+
+  1. to provide initial configuration information to a VM on boot
+     (example use: CloudStack's cloud-early-config service)
+  2. to signal/query an in-guest agent
+     (example use: oVirt's guest agent)
+
+Channels are similar to virtio-serial devices, and are intended to be
+used in the implementation of libvirt <channel>s when running on Xen.
+
+Note: if an application requires a high-bandwidth link then it should use
+vchan instead.
+
+From the frontend's point of view, a channel is a PV console with a
+name, a where the name can be used to locate the correct device. The
+name is stored in the frontend xenstore directory:
+
+  /local/domain/$DOMID/device/console/$DEVID/name
+
+The frontend can check for this key when the console is hotplugged,
+and handle the device appropriately. For example the frontend could
+spawn a guest agent when a channel with a well-known name is created,
+and still spawn regular getty processes when a normal console is created.
+
+The backend is configured by 2 xenstore keys:
+
+  type = (NONE | FILE | PTY | SOCKET | ... )
+  path = <some path>
+
+In the default implementation where the backend is run in the toolstack
+domain, the qemu "chardev" mechanism is used. This implementation
+interprets the configuration as follows:
+
+  type = NONE: the backend will be connected to /dev/null
+  type = FILE: the channel will be read the the output appended
+    to the file given by 'path'
+  type = PTY: the backend will connect to a PTY like a regular console
+  type = SOCKET: the backend will accept a connection on the Unix
+    domain socket given by 'path' and proxy data to and from the device.
+
+If the implementation is in another domain (for example via a Mirage
+console backend) then the behaviour will be defined by this other domain.
-- 
1.7.10.4

  parent reply	other threads:[~2014-06-16  9:50 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-06-16  9:49 [PATCH v2] implement libvirt-like 'channels' via PV consoles David Scott
2014-06-16  9:49 ` [PATCH v2 1/6] libxl: add a list of abstract 'channels' to the domain config David Scott
2014-06-18 13:27   ` Ian Campbell
2014-06-18 14:05     ` Dave Scott
2014-06-18 14:38       ` Ian Campbell
2014-06-16  9:49 ` [PATCH v2 2/6] xl: add support for channels David Scott
2014-06-16  9:49 ` [PATCH v2 3/6] libxl: implement channels via PV console rings David Scott
2014-06-18 13:31   ` Ian Campbell
2014-06-16  9:49 ` [PATCH v2 4/6] libxl: spawn a qemu to implement channels David Scott
2014-06-18 13:32   ` Ian Campbell
2014-06-16  9:49 ` [PATCH v2 5/6] Add a section in xl.cfg(5) describing 'channels' David Scott
2014-06-18 13:38   ` Ian Campbell
2014-06-16  9:49 ` David Scott [this message]
2014-06-18 13:41   ` [PATCH v2 6/6] Add a general description of the channel mechanism to docs/misc/ Ian Campbell
2014-06-18 14:37     ` Dave Scott
2014-06-18 14:43       ` Ian Campbell
2014-06-18 15:00         ` Dave Scott
2014-06-16 13:34 ` [PATCH v2] implement libvirt-like 'channels' via PV consoles Konrad Rzeszutek Wilk
2014-06-16 13:49   ` Dave Scott
2014-06-16 13:52     ` Konrad Rzeszutek Wilk
2014-06-18 13:43       ` Ian Campbell

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1402912195-24732-7-git-send-email-dave.scott@citrix.com \
    --to=dave.scott@citrix.com \
    --cc=ian.campbell@citrix.com \
    --cc=ian.jackson@eu.citrix.com \
    --cc=stefano.stabellini@eu.citrix.com \
    --cc=wei.liu2@citrix.com \
    --cc=xen-devel@lists.xenproject.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.