<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://linux-kvm.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=RichardJones</id>
	<title>KVM - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://linux-kvm.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=RichardJones"/>
	<link rel="alternate" type="text/html" href="https://linux-kvm.org/page/Special:Contributions/RichardJones"/>
	<updated>2026-05-09T17:51:50Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.5</generator>
	<entry>
		<id>https://linux-kvm.org/index.php?title=VMchannel_Requirements&amp;diff=2351</id>
		<title>VMchannel Requirements</title>
		<link rel="alternate" type="text/html" href="https://linux-kvm.org/index.php?title=VMchannel_Requirements&amp;diff=2351"/>
		<updated>2009-06-26T08:55:17Z</updated>

		<summary type="html">&lt;p&gt;RichardJones: typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Requirements ==&lt;br /&gt;
&lt;br /&gt;
* We want an interface between the guest and the host&lt;br /&gt;
&lt;br /&gt;
* The channel is to be used for simple communication, like sharing of the clipboard between the user desktop and the guest desktop&lt;br /&gt;
** For relatively low rate of data transfer -- a few MB/s&lt;br /&gt;
** Events to be delivered to the guest, like &#039;shutdown&#039;, &#039;reboot&#039;, &#039;logoff&#039;&lt;br /&gt;
** Queries to the guest, like &#039;which users are logged in&#039;&lt;br /&gt;
&lt;br /&gt;
* Survive live migration&lt;br /&gt;
&lt;br /&gt;
* Support for multiple agents (consumers of the data) on the guest&lt;br /&gt;
&lt;br /&gt;
* Multiple channels could be opened at the same time&lt;br /&gt;
&lt;br /&gt;
* In multi-channels case, one blocked channel shouldn&#039;t block communication between others (or one channel shouldn&#039;t hog all the bandwidth)&lt;br /&gt;
&lt;br /&gt;
* Stable ABI (for future upgrades)&lt;br /&gt;
&lt;br /&gt;
* Channel addressing&lt;br /&gt;
** An agent in the guest should be able to find the channel it&#039;s interested in&lt;br /&gt;
&lt;br /&gt;
* Dynamic channel creation&lt;br /&gt;
&lt;br /&gt;
* Security&lt;br /&gt;
** No threats to the host&lt;br /&gt;
** Unprivileged user should be able to use the channel&lt;br /&gt;
&lt;br /&gt;
* Should work out of the box, without any configuration necessary on the part of the guest&lt;br /&gt;
&lt;br /&gt;
* Notifications of channels being added / removed (hotplugging)&lt;br /&gt;
&lt;br /&gt;
* An API inside qemu to communicate with agents in the guest&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
== History ==&lt;br /&gt;
A few reasons why the obvious solutions do not work:&lt;br /&gt;
&lt;br /&gt;
* via the fully emulated serial device.&lt;br /&gt;
** performance (exit per byte)&lt;br /&gt;
** scalability - only 4 serial ports per guest&lt;br /&gt;
** accessed by root only in the guest&lt;br /&gt;
&lt;br /&gt;
* via TCP/IP network sockets&lt;br /&gt;
** The guest may not have networking enabled&lt;br /&gt;
** The guest firewall may block access to the host IPs&lt;br /&gt;
** Windows can&#039;t bind sockets to specific ethernet interfaces&lt;br /&gt;
&lt;br /&gt;
* via user net &amp;lt;br&amp;gt;http://thread.gmane.org/gmane.comp.emulators.qemu/35780&lt;br /&gt;
&lt;br /&gt;
* via slirp &amp;lt;br&amp;gt;This implementation does exist upstream as &amp;quot;-net channel&amp;quot; http://www.nabble.com/-PATCH--specify-vmchannel-as-a-net-option-td21911523.html&lt;br /&gt;
** Again, based on networking so same drawbacks mentioned above apply&lt;br /&gt;
** Currently used by [http://libguestfs.org libguestfs]&lt;/div&gt;</summary>
		<author><name>RichardJones</name></author>
	</entry>
	<entry>
		<id>https://linux-kvm.org/index.php?title=VMchannel_Requirements&amp;diff=2350</id>
		<title>VMchannel Requirements</title>
		<link rel="alternate" type="text/html" href="https://linux-kvm.org/index.php?title=VMchannel_Requirements&amp;diff=2350"/>
		<updated>2009-06-26T08:54:55Z</updated>

		<summary type="html">&lt;p&gt;RichardJones: + note libguestfs is used&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Requirements ==&lt;br /&gt;
&lt;br /&gt;
* We want an interface between the guest and the host&lt;br /&gt;
&lt;br /&gt;
* The channel is to be used for simple communication, like sharing of the clipboard between the user desktop and the guest desktop&lt;br /&gt;
** For relatively low rate of data transfer -- a few MB/s&lt;br /&gt;
** Events to be delivered to the guest, like &#039;shutdown&#039;, &#039;reboot&#039;, &#039;logoff&#039;&lt;br /&gt;
** Queries to the guest, like &#039;which users are logged in&#039;&lt;br /&gt;
&lt;br /&gt;
* Survive live migration&lt;br /&gt;
&lt;br /&gt;
* Support for multiple agents (consumers of the data) on the guest&lt;br /&gt;
&lt;br /&gt;
* Multiple channels could be opened at the same time&lt;br /&gt;
&lt;br /&gt;
* In multi-channels case, one blocked channel shouldn&#039;t block communication between others (or one channel shouldn&#039;t hog all the bandwidth)&lt;br /&gt;
&lt;br /&gt;
* Stable ABI (for future upgrades)&lt;br /&gt;
&lt;br /&gt;
* Channel addressing&lt;br /&gt;
** An agent in the guest should be able to find the channel it&#039;s interested in&lt;br /&gt;
&lt;br /&gt;
* Dynamic channel creation&lt;br /&gt;
&lt;br /&gt;
* Security&lt;br /&gt;
** No threats to the host&lt;br /&gt;
** Unprivileged user should be able to use the channel&lt;br /&gt;
&lt;br /&gt;
* Should work out of the box, without any configuration necessary on the part of the guest&lt;br /&gt;
&lt;br /&gt;
* Notifications of channels being added / removed (hotplugging)&lt;br /&gt;
&lt;br /&gt;
* An API inside qemu to communicate with agents in the guest&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
== History ==&lt;br /&gt;
A few reasons why the obvious solutions do not work:&lt;br /&gt;
&lt;br /&gt;
* via the fully emulated serial device.&lt;br /&gt;
** performance (exit per byte)&lt;br /&gt;
** scalability - only 4 serial ports per guest&lt;br /&gt;
** accessed by root only in the guest&lt;br /&gt;
&lt;br /&gt;
* via TCP/IP network sockets&lt;br /&gt;
** The guest may not have networking enabled&lt;br /&gt;
** The guest firewall may block access to the host IPs&lt;br /&gt;
** Windows can&#039;t bind sockets to specific ethernet interfaces&lt;br /&gt;
&lt;br /&gt;
* via user net &amp;lt;br&amp;gt;http://thread.gmane.org/gmane.comp.emulators.qemu/35780&lt;br /&gt;
&lt;br /&gt;
* via slirp &amp;lt;br&amp;gt;This implementation does exist upstream as &amp;quot;-net channel&amp;quot; http://www.nabble.com/-PATCH--specify-vmchannel-as-a-net-option-td21911523.html&lt;br /&gt;
** Again, based on networking so same drawbacks mentioned above apply&lt;br /&gt;
** Currently used by [http://libguestfs.org libguestfs]]&lt;/div&gt;</summary>
		<author><name>RichardJones</name></author>
	</entry>
</feed>