[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH v3 1/3] docs: add documentation for Argo as a feature



Adds approachable documentation describing system components and
introduces the support statement for feature status.

Signed-off-by: Christopher Clark <christopher.w.clark@xxxxxxxxx>
---
 docs/features/argo-feature.pandoc | 99 +++++++++++++++++++++++++++++++
 1 file changed, 99 insertions(+)
 create mode 100644 docs/features/argo-feature.pandoc

diff --git a/docs/features/argo-feature.pandoc 
b/docs/features/argo-feature.pandoc
new file mode 100644
index 0000000000..b6a10be78a
--- /dev/null
+++ b/docs/features/argo-feature.pandoc
@@ -0,0 +1,99 @@
+% Argo interdomain communication
+% Revision 1
+
+\clearpage
+
+# Basics
+
+---------------- ----------------------------------------------------
+         Status: **Tech Preview**
+
+  Architectures: x86, ARM
+
+   Component(s): Hypervisor, guest
+---------------- ----------------------------------------------------
+
+# Overview
+
+Argo is a lightweight data transport for communication between virtual
+machines, with a simple hypervisor interface that is accessible for
+building embedded systems and designed to work with familiar primitives
+within guest OS kernels. It supports policy control over communication
+and isolation between VMs.
+
+# User details
+
+Argo is present in Xen, included since Xen 4.12. A Linux device driver
+and userspace library are available and Argo is regularly tested in the
+Xen Continuous Integration system.
+
+To configure a Xen system to enable Argo:
+
+* ensure that Argo is enabled in the hypervisor with KConfig option
+
+* enable Argo on the Xen hypervisor command line
+
+* load the Argo guest kernel device driver
+
+* ensure that the Argo guest libraries are installed
+
+The guest userspace libraries support software designed for Argo
+interfaces and also enables software designed for networks to
+communicate between VMs by Argo.  This allows platform software to be
+plumbed easily between virtual machines, without requiring networking
+and with system policy controls over this communication.
+
+# Technical details
+
+## Argo components
+
+* Xen: Argo in the hypervisor provides communication between virtual
+  machines.
+
+* Guest kernel: driver provides interfaces for data transport for use
+  within the kernel, and implements familiar abstractions for
+  networking software.
+
+* Guest libraries: provide application-level support for interdomain
+  communication.
+
+## Argo implementation within Xen
+
+See the public Xen headers for the primary interface documentation.
+
+# Limitations
+
+Argo has been developed and tested on x86 and ARM architectures.
+
+# Testing
+
+The Argo test developed for the Xen Test Framework provides coverage of
+the hypercall operations.
+
+The Xen Project CI provides system test coverage of an Argo-enabled Xen
+system with Linux.
+
+# Areas for improvement
+
+## Argo and VirtIO
+
+References to design documentation for the development of an Argo
+transport for VirtIO are available via:
+https://wiki.xenproject.org/wiki/Virtio_On_Xen
+
+# Known issues
+
+* For development: sysctl/domctls for toolstack to control per-VM access
+  to Argo
+
+# References
+
+See the ARGO section of the Xen MAINTAINERS document for web reference.
+
+# History
+
+------------------------------------------------------------------------
+Date       Revision Version   Notes
+---------- -------- --------- ------------------------------------------
+2025-05-28 1        Xen 4.12+ Feature included in Xen 4.12.
+---------- -------- --------- ------------------------------------------
-- 
2.34.1




 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.