ia64/xen-unstable

view docs/xen-api/todo.tex @ 13297:ee395551208d

Enable compatibility mode operation for HYPERVISOR_physdev_op and
HYPERVISOR_event_channel_op.

Signed-off-by: Jan Beulich <jbeulich@novell.com>
author Emmanuel Ackaouy <ack@xensource.com>
date Fri Jan 05 17:34:32 2007 +0000 (2007-01-05)
parents 884c25ba7d26
children f2f83691f714
line source
1 %
2 % Copyright (c) 2006 XenSource, Inc.
3 %
4 % Permission is granted to copy, distribute and/or modify this document under
5 % the terms of the GNU Free Documentation License, Version 1.2 or any later
6 % version published by the Free Software Foundation; with no Invariant
7 % Sections, no Front-Cover Texts and no Back-Cover Texts. A copy of the
8 % license is included in the section entitled
9 % "GNU Free Documentation License" or the file fdl.tex.
10 %
11 % Authors: Ewan Mellor, Richard Sharp, Dave Scott, Jon Harrop.
12 %
14 \section{To-Do}
16 Lots and lots! Including:
18 \subsection{Clarity}
20 \begin{itemize}
22 \item Roll constructors and get\_by\_uuid etc (section 1.2) into section 2 so
23 that it is clearer that each class has these.
25 \item Emphasise that enums are strings on the wire, and so are not restricted
26 to a certain number of bits.
28 \item Clarify return values, in particular that void means return a status
29 code, potential error description, but otherwise no value.
31 \item Talk about UUID generation.
33 \item Clarify session behaviour wrt timeouts and disconnects.
35 \item Clarify behaviour of progress field on asyncrhonous request polling when
36 that request fails.
38 \item Clarify which calls have asynchronous counterparts by marking them as such in the reference. (Individual getters and setters are too small and quick to justify having async versions)
40 \end{itemize}
42 \subsection{Content}
44 \subsubsection{Model}
46 \begin{itemize}
48 \item Improve the set of available power\_states and corresponding lifecycle
49 semantics. Rename power\_state, maybe.
51 \item Specify the CPU scheduler configuration properly, inc CPU affinity,
52 weights, etc.
54 \item Add Vm.architecture and Host.compatible\_architecture fields.
56 \item Add migration calls, including the ability to test whether a migration
57 will succeed, and authentication token exchange.
59 \item Improve asynchronous task handling, with a registration call, a
60 ``blocking poll'' call, and an explicit notification destination. Registration
61 for ``power\_state'' is useful.
63 \item Specify that session keys outlive the HTTP session, and add a timeout
64 for them (configurable in the tools).
66 \item Add places for people to store extra data (``otherConfig'' perhaps)
68 \item Specify how hardware UUIDs are used / accessed.
70 \item Marking VDIs as exclusive / shareable (locking?)
72 \item Consider how to represent CDROMs (as VDIs?)
74 \item Define lists of exceptions which may be thrown by each RPC, including
75 error codes and parameters.
77 \item Host characteristics: minimum amount of memory, TPM, network bandwidth,
78 amount of host memory, amount consumed by VMs, max amount available for new
79 VMs?
81 \item Cooked resource monitoring interface.
83 \item Network needs additional attributes that provide media characteristics
84 of the NIC:
86 \begin{itemize}
88 \item RO bandwidth integer Bandwidth in mbps
89 \item RO latency integer time in ms for an icmp roundtrip to a host on the
90 same subnet.
92 \end{itemize}
94 \item TPM
95 \begin{itemize}
97 \item Would it not be better to have a class TPM and a member TPMs ((TPM ref)
98 Set) containing an array of zero or one references to TPMs? I assume that
99 an empty array would make it clear that no TPM is associated with the VM
100 instead of encoding its existence into TPM/instance or TPM/backend
101 somehow. The current members instance and backend could then be moved into
102 the TPM class.
104 \item Also a Xen system can be running an access control policy where each
105 VM's run-time access to resources is restricted by the label it has been given
106 compared to those of the resources. Currently a VM's configuration file may
107 contain a line like access\_control[policy='$<$name of the system's
108 policy$>$',label='$<$label given to VM$>$']. I think the identifiers 'policy'
109 and 'label' should also be part of the VM class either directly in the form
110 'access\_control/policy' or indirectly in an access\_control class.
112 \end{itemize}
114 \item Mike Day's Vm.profile field?
116 \item Clone customisation?
118 \item NIC teaming? The NIC field of the Network class should be a list (Set)
119 so that we can signify NIC teaming. (Combining physical NICs in a single host
120 interface to achieve greater bandwidth).
122 \end{itemize}
124 \subsubsection{Transport}
126 \begin{itemize}
128 \item Allow non-HTTP transports. Explicitly allow stdio transport, for SSH.
130 \end{itemize}
132 \subsubsection{Authentication}
134 \begin{itemize}
136 \item Delegation to the transport layer.
138 \item Extend PAM exchange across the wire.
140 \item Fine-grained access control.
142 \end{itemize}