view docs/xen-api/todo.tex @ 12470:fb107b9eee86

merge with xen-ia64-unstable.hg
author kaf24@localhost.localdomain
date Wed Nov 15 00:14:41 2006 +0000 (2006-11-15)
parents a2d6e4a53e7a
children 884c25ba7d26
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 \end{itemize}
40 \subsection{Content}
42 \subsubsection{Model}
44 \begin{itemize}
46 \item Improve the set of available power\_states and corresponding lifecycle
47 semantics. Rename power\_state, maybe.
49 \item Specify the CPU scheduler configuration properly, inc CPU affinity,
50 weights, etc.
52 \item Add Vm.architecture and Host.compatible\_architecture fields.
54 \item Add migration calls, including the ability to test whether a migration
55 will succeed, and authentication token exchange.
57 \item Improve asynchronous task handling, with a registration call, a
58 ``blocking poll'' call, and an explicit notification destination. Registration
59 for ``power\_state'' is useful.
61 \item Specify that session keys outlive the HTTP session, and add a timeout
62 for them (configurable in the tools).
64 \item Add places for people to store extra data (``otherConfig'' perhaps)
66 \item Specify how hardware UUIDs are used / accessed.
68 \item Marking VDIs as exclusive / shareable (locking?)
70 \item Consider how to represent CDROMs (as VDIs?)
72 \item Define lists of exceptions which may be thrown by each RPC, including
73 error codes and parameters.
75 \item Host characteristics: minimum amount of memory, TPM, network bandwidth,
76 amount of host memory, amount consumed by VMs, max amount available for new
77 VMs?
79 \item Cooked resource monitoring interface.
81 \item Network needs additional attributes that provide media characteristics
82 of the NIC:
84 \begin{itemize}
86 \item RO bandwidth integer Bandwidth in mbps
87 \item RO latency integer time in ms for an icmp roundtrip to a host on the
88 same subnet.
90 \end{itemize}
92 \item TPM
93 \begin{itemize}
95 \item Would it not be better to have a class TPM and a member TPMs ((TPM ref)
96 Set) containing an array of zero or one references to TPMs? I assume that
97 an empty array would make it clear that no TPM is associated with the VM
98 instead of encoding its existence into TPM/instance or TPM/backend
99 somehow. The current members instance and backend could then be moved into
100 the TPM class.
102 \item Also a Xen system can be running an access control policy where each
103 VM's run-time access to resources is restricted by the label it has been given
104 compared to those of the resources. Currently a VM's configuration file may
105 contain a line like access\_control[policy='$<$name of the system's
106 policy$>$',label='$<$label given to VM$>$']. I think the identifiers 'policy'
107 and 'label' should also be part of the VM class either directly in the form
108 'access\_control/policy' or indirectly in an access\_control class.
110 \end{itemize}
112 \item Mike Day's Vm.profile field?
114 \item Clone customisation?
116 \item NIC teaming? The NIC field of the Network class should be a list (Set)
117 so that we can signify NIC teaming. (Combining physical NICs in a single host
118 interface to achieve greater bandwidth).
120 \end{itemize}
122 \subsubsection{Transport}
124 \begin{itemize}
126 \item Allow non-HTTP transports. Explicitly allow stdio transport, for SSH.
128 \end{itemize}
130 \subsubsection{Authentication}
132 \begin{itemize}
134 \item Delegation to the transport layer.
136 \item Extend PAM exchange across the wire.
138 \item Fine-grained access control.
140 \end{itemize}