All of lore.kernel.org
 help / color / mirror / Atom feed
* [RFC][PATCH] Enhance XenAPI for pvSCSI
@ 2008-09-03  6:57 Masaki Kanno
  2008-09-05  8:52 ` Yosuke Iwamatsu
  0 siblings, 1 reply; 7+ messages in thread
From: Masaki Kanno @ 2008-09-03  6:57 UTC (permalink / raw)
  To: xen-devel; +Cc: kama, t.horikoshi

[-- Attachment #1: Mail message body --]
[-- Type: text/plain, Size: 2982 bytes --]

Hi,

I would like to enhance XenAPI for pvSCSI. 
At the beginning, I updated only the document of XenAPI.  I'm going 
to implement XenAPI of pvSCSI along the document.  Could you comment?

The following classes and RPCs are added by the enhancement. 
 Classes:
  - VSCSI class
     This is a class for virtual SCSI devices.
  - PSCSI class
     This is a class for physical SCSI devices.

 RPCs:
  - VSCSI class
   -- get_all
       A list of all VSCSIs known to the system is gotten.
   -- get_uuid
       An UUID of the VSCSI is gotten.
   -- get_VM
       A VM ref of the VSCSI is gotten.
   -- get_PSCSI
       A PSCSI ref of the VSCSI is gotten.
   -- get_virtual_host
       A virtual host number of the VSCSI is gotten.
   -- get_virtual_channel
       A virtual channel number of the VSCSI is gotten.
   -- get_virtual_target
       A virtual target number of the VSCSI is gotten.
   -- get_virtual_lun
       A virtual logical unit number of the VSCSI is gotten.
   -- get_virtual_HCTL
       A virtual HCTL (string of "<host>:<channel>:<target>:<lun>") 
       of the VSCSI is gotten.
   -- create
       A new VSCSI instance is created.
   -- destroy
       The VSCSI instance is destroyed.
   -- get_by_uuid
       A VSCSI ref of the UUID is gotten.
   -- get_record
       A VSCSI record of the VSCSI is gotten.

  - PSCSI class
   -- get_all
       A list of all PSCSIs known to the system is gotten.
   -- get_uuid
       An UUID of the PSCSI is gotten.
   -- get_host
       A host ref of the PSCSI is gotten.
   -- get_physical_host
       A physical host number of the PSCSI is gotten.
   -- get_physical_channel
       A physical channel number of the PSCSI is gotten.
   -- get_physical_target
       A physical target number of the PSCSI is gotten.
   -- get_physical_lun
       A physical logical unit number of the PSCSI is gotten.
   -- get_physical_HCTL
       A physical HCTL (string of "<host>:<channel>:<target>:<lun>") 
       of the PSCSI is gotten.
   -- get_vendor_name
       A vendor name of the PSCSI is gotten.
   -- get_model
       A model name of the PSCSI is gotten.
   -- get_type_id
       An ID of device types of the PSCSI is gotten. (If disk, the ID 
       is 0.  If tape, the ID is 1.)
   -- get_type
       A device type string of the PSCSI is gotten.
   -- get_sg_name
       A SCSI generic (sg) device name of the PSCSI is gotten.
   -- get_revision
       A revision string of the PSCSI is gotten.
   -- get_scsi_id
       A SCSI ID string of the PSCSI is gotten. The string is a result 
       of 'scsi_id -gu -s'.
   -- get_scsi_level
       A SCSI level of the PSCSI is gotten.
   -- get_by_uuid
       A PSCSI ref of the UUID is gotten.
   -- get_record
       A PSCSI record of the PSCSI is gotten.

  - VM class
   -- get_VSCSIs
       VSCSI refs of the VM are gotten.

  - host class
   -- get_PSCSIs
       PSCSI refs of the host are gotten.


Signed-off-by: Masaki Kanno <kanno.masaki@jp.fujitsu.com>

Best regards,
 Kan


[-- Attachment #2: xenapi_scsi_docs.patch --]
[-- Type: application/octet-stream, Size: 27647 bytes --]

diff -r 7eefe6399bcd docs/xen-api/coversheet.tex
--- a/docs/xen-api/coversheet.tex	Mon Sep 01 10:48:09 2008 +0100
+++ b/docs/xen-api/coversheet.tex	Tue Sep 02 10:44:32 2008 +0900
@@ -51,6 +51,7 @@ Mike Day, IBM & Daniel Veillard, Red Hat
 Mike Day, IBM & Daniel Veillard, Red Hat \\
 Jim Fehlig, Novell & Tom Wilkie, University of Cambridge \\
 Jon Harrop, XenSource & Yosuke Iwamatsu, NEC \\
+Masaki Kanno, FUJITSU \\
 \end{tabular}
 \end{large}
 
diff -r 7eefe6399bcd docs/xen-api/revision-history.tex
--- a/docs/xen-api/revision-history.tex	Mon Sep 01 10:48:09 2008 +0100
+++ b/docs/xen-api/revision-history.tex	Tue Sep 02 10:45:50 2008 +0900
@@ -56,5 +56,14 @@
     \end{flushleft}
    \end{minipage}\\
   \hline
+  1.0.7 & 2nd Sep. 08 & M. Kanno &
+   \begin{minipage}[t]{7cm}
+    \begin{flushleft}
+     Added definitions of new classes VSCSI and PSCSI. Updated the table
+     and the diagram representing relationships between classes.
+     Added host.PSCSIs and VM.VSCSIs fields.
+    \end{flushleft}
+   \end{minipage}\\
+  \hline
  \end{tabular}
 \end{center}
diff -r 7eefe6399bcd docs/xen-api/xenapi-coversheet.tex
--- a/docs/xen-api/xenapi-coversheet.tex	Mon Sep 01 10:48:09 2008 +0100
+++ b/docs/xen-api/xenapi-coversheet.tex	Tue Sep 02 10:46:39 2008 +0900
@@ -17,12 +17,12 @@
 \newcommand{\coversheetlogo}{xen.eps}
 
 %% Document date
-\newcommand{\datestring}{24th July 2008}
+\newcommand{\datestring}{2nd September 2008}
 
 \newcommand{\releasestatement}{Stable Release}
 
 %% Document revision
-\newcommand{\revstring}{API Revision 1.0.6}
+\newcommand{\revstring}{API Revision 1.0.7}
 
 %% Document authors
 \newcommand{\docauthors}{
diff -r 7eefe6399bcd docs/xen-api/xenapi-datamodel-graph.dot
--- a/docs/xen-api/xenapi-datamodel-graph.dot	Mon Sep 01 10:48:09 2008 +0100
+++ b/docs/xen-api/xenapi-datamodel-graph.dot	Tue Sep 02 10:47:39 2008 +0900
@@ -12,9 +12,11 @@ digraph "Xen-API Class Diagram" {
 digraph "Xen-API Class Diagram" {
 fontname="Verdana";
 
-node [ shape=box ]; session VM host network VIF PIF SR VDI VBD PBD user XSPolicy ACMPolicy;
-node [shape=ellipse]; PIF_metrics VIF_metrics VM_metrics VBD_metrics PBD_metrics VM_guest_metrics host_metrics;
-node [shape=box]; DPCI PPCI host_cpu console VTPM
+node [ shape=box ]; session VM host network VIF PIF SR VDI VBD PBD user;
+node [ shape=box ]; XSPolicy ACMPolicy DPCI PPCI host_cpu console VTPM;
+node [ shape=box ]; VSCSI PSCSI;
+node [ shape=ellipse ]; VM_metrics VM_guest_metrics host_metrics;
+node [ shape=ellipse ]; PIF_metrics VIF_metrics VBD_metrics PBD_metrics;
 session -> host [ arrowhead="none" ]
 session -> user [ arrowhead="none" ]
 VM -> VM_metrics [ arrowhead="none" ]
@@ -41,4 +43,7 @@ DPCI -> VM [ arrowhead="none", arrowtail
 DPCI -> VM [ arrowhead="none", arrowtail="crow" ]
 DPCI -> PPCI [ arrowhead="none" ]
 PPCI -> host [ arrowhead="none", arrowtail="crow" ]
+VSCSI -> VM [ arrowhead="none", arrowtail="crow" ]
+VSCSI -> PSCSI [ arrowhead="none" ]
+PSCSI -> host [ arrowhead="none", arrowtail="crow" ]
 }
diff -r 7eefe6399bcd docs/xen-api/xenapi-datamodel.tex
--- a/docs/xen-api/xenapi-datamodel.tex	Mon Sep 01 10:48:09 2008 +0100
+++ b/docs/xen-api/xenapi-datamodel.tex	Tue Sep 02 10:48:44 2008 +0900
@@ -46,6 +46,8 @@ Name & Description \\
 {\tt console} & A console \\
 {\tt DPCI} & A pass-through PCI device \\
 {\tt PPCI} & A physical PCI device \\
+{\tt VSCSI} & A virtual SCSI device \\
+{\tt PSCSI} & A physical SCSI device \\
 {\tt user} & A user of the system \\
 {\tt debug} & A basic class for testing \\
 {\tt XSPolicy} & A class for handling Xen Security Policies \\
@@ -74,6 +76,8 @@ console.VM & VM.consoles & one-to-many\\
 console.VM & VM.consoles & one-to-many\\
 DPCI.VM & VM.DPCIs & one-to-many\\
 PPCI.host & host.PPCIs & one-to-many\\
+VSCSI.VM & VM.VSCSIs & one-to-many\\
+PSCSI.host & host.PSCSIs & one-to-many\\
 host.resident\_VMs & VM.resident\_on & many-to-one\\
 host.host\_CPUs & host\_cpu.host & many-to-one\\
 \hline
@@ -1407,6 +1411,7 @@ Quals & Field & Type & Description \\
 $\mathit{RO}_\mathit{run}$ &  {\tt crash\_dumps} & (crashdump ref) Set & crash dumps associated with this VM \\
 $\mathit{RO}_\mathit{run}$ &  {\tt VTPMs} & (VTPM ref) Set & virtual TPMs \\
 $\mathit{RO}_\mathit{run}$ &  {\tt DPCIs} & (DPCI ref) Set & pass-through PCI devices \\
+$\mathit{RO}_\mathit{run}$ &  {\tt VSCSIs} & (VSCSI ref) Set & virtual SCSI devices \\
 $\mathit{RW}$ &  {\tt PV/bootloader} & string & name of or path to bootloader \\
 $\mathit{RW}$ &  {\tt PV/kernel} & string & path to the kernel \\
 $\mathit{RW}$ &  {\tt PV/ramdisk} & string & path to the initrd \\
@@ -3443,6 +3448,38 @@ Get the DPCIs field of the given VM.
  \noindent {\bf Return Type:} 
 {\tt 
 (DPCI ref) Set
+}
+
+
+value of the field
+\vspace{0.3cm}
+\vspace{0.3cm}
+\vspace{0.3cm}
+\subsubsection{RPC name:~get\_VSCSIs}
+
+{\bf Overview:} 
+Get the VSCSIs field of the given VM.
+
+ \noindent {\bf Signature:} 
+\begin{verbatim} ((VSCSI ref) Set) get_VSCSIs (session_id s, VM ref self)\end{verbatim}
+
+
+\noindent{\bf Arguments:}
+
+
+\vspace{0.3cm}
+\begin{tabular}{|c|c|p{7cm}|}
+ \hline
+{\bf type} & {\bf name} & {\bf description} \\ \hline
+{\tt VM ref } & self & reference to the object \\ \hline 
+
+\end{tabular}
+
+\vspace{0.3cm}
+
+ \noindent {\bf Return Type:} 
+{\tt 
+(VSCSI ref) Set
 }
 
 
@@ -5518,6 +5555,7 @@ Quals & Field & Type & Description \\
 $\mathit{RW}$ &  {\tt crash\_dump\_sr} & SR ref & The SR in which VDIs for crash dumps are created \\
 $\mathit{RO}_\mathit{run}$ &  {\tt PBDs} & (PBD ref) Set & physical blockdevices \\
 $\mathit{RO}_\mathit{run}$ &  {\tt PPCIs} & (PPCI ref) Set & physical PCI devices \\
+$\mathit{RO}_\mathit{run}$ &  {\tt PSCSIs} & (PSCSI ref) Set & physical SCSI devices \\
 $\mathit{RO}_\mathit{run}$ &  {\tt host\_CPUs} & (host\_cpu ref) Set & The physical CPUs on this host \\
 $\mathit{RO}_\mathit{run}$ &  {\tt metrics} & host\_metrics ref & metrics associated with this host \\
 \hline
@@ -6837,6 +6875,38 @@ Get the PPCIs field of the given host.
  \noindent {\bf Return Type:} 
 {\tt 
 (PPCI ref) Set
+}
+
+
+value of the field
+\vspace{0.3cm}
+\vspace{0.3cm}
+\vspace{0.3cm}
+\subsubsection{RPC name:~get\_PSCSIs}
+
+{\bf Overview:} 
+Get the PSCSIs field of the given host.
+
+ \noindent {\bf Signature:} 
+\begin{verbatim} ((PSCSI ref) Set) get_PSCSIs (session_id s, host ref self)\end{verbatim}
+
+
+\noindent{\bf Arguments:}
+
+
+\vspace{0.3cm}
+\begin{tabular}{|c|c|p{7cm}|}
+ \hline
+{\bf type} & {\bf name} & {\bf description} \\ \hline
+{\tt host ref } & self & reference to the object \\ \hline 
+
+\end{tabular}
+
+\vspace{0.3cm}
+
+ \noindent {\bf Return Type:} 
+{\tt 
+(PSCSI ref) Set
 }
 
 
@@ -15723,6 +15793,1030 @@ all fields from the object
 
 \vspace{1cm}
 \newpage
+\section{Class: VSCSI}
+\subsection{Fields for class: VSCSI}
+\begin{longtable}{|lllp{0.38\textwidth}|}
+\hline
+\multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf VSCSI} \\
+\multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em A
+virtual SCSI device.}} \\
+\hline
+Quals & Field & Type & Description \\
+\hline
+$\mathit{RO}_\mathit{run}$ &  {\tt uuid} & string & unique identifier/object reference \\
+$\mathit{RO}_\mathit{inst}$ &  {\tt VM} & VM ref & the virtual machine \\
+$\mathit{RO}_\mathit{inst}$ &  {\tt PSCSI} & PSCSI ref & the physical SCSI device \\
+$\mathit{RO}_\mathit{run}$ &  {\tt virtual\_host} & int & the virtual host number \\
+$\mathit{RO}_\mathit{run}$ &  {\tt virtual\_channel} & int & the virtual channel number \\
+$\mathit{RO}_\mathit{run}$ &  {\tt virtual\_target} & int & the virtual target number \\
+$\mathit{RO}_\mathit{run}$ &  {\tt virtual\_lun} & int & the virtual logical unit number \\
+$\mathit{RO}_\mathit{run}$ &  {\tt virtual\_HCTL} & string & the virtual HCTL \\
+\hline
+\end{longtable}
+\subsection{RPCs associated with class: VSCSI}
+\subsubsection{RPC name:~get\_all}
+
+{\bf Overview:} 
+Return a list of all the VSCSIs known to the system.
+
+ \noindent {\bf Signature:} 
+\begin{verbatim} ((VSCSI ref) Set) get_all (session_id s)\end{verbatim}
+
+
+\vspace{0.3cm}
+
+ \noindent {\bf Return Type:} 
+{\tt 
+(VSCSI ref) Set
+}
+
+
+references to all objects
+\vspace{0.3cm}
+\vspace{0.3cm}
+\vspace{0.3cm}
+\subsubsection{RPC name:~get\_uuid}
+
+{\bf Overview:} 
+Get the uuid field of the given VSCSI.
+
+ \noindent {\bf Signature:} 
+\begin{verbatim} string get_uuid (session_id s, VSCSI ref self)\end{verbatim}
+
+
+\noindent{\bf Arguments:}
+
+
+\vspace{0.3cm}
+\begin{tabular}{|c|c|p{7cm}|}
+ \hline
+{\bf type} & {\bf name} & {\bf description} \\ \hline
+{\tt VSCSI ref } & self & reference to the object \\ \hline 
+
+\end{tabular}
+
+\vspace{0.3cm}
+
+ \noindent {\bf Return Type:} 
+{\tt
+string
+}
+
+
+value of the field
+\vspace{0.3cm}
+\vspace{0.3cm}
+\vspace{0.3cm}
+\subsubsection{RPC name:~get\_VM}
+
+{\bf Overview:} 
+Get the VM field of the given VSCSI.
+
+ \noindent {\bf Signature:} 
+\begin{verbatim} (VM ref) get_VM (session_id s, VSCSI ref self)\end{verbatim}
+
+
+\noindent{\bf Arguments:}
+
+
+\vspace{0.3cm}
+\begin{tabular}{|c|c|p{7cm}|}
+ \hline
+{\bf type} & {\bf name} & {\bf description} \\ \hline
+{\tt VSCSI ref } & self & reference to the object \\ \hline 
+
+\end{tabular}
+
+\vspace{0.3cm}
+
+ \noindent {\bf Return Type:} 
+{\tt 
+VM ref
+}
+
+
+value of the field
+\vspace{0.3cm}
+\vspace{0.3cm}
+\vspace{0.3cm}
+\subsubsection{RPC name:~get\_PSCSI}
+
+{\bf Overview:} 
+Get the PSCSI field of the given VSCSI.
+
+ \noindent {\bf Signature:} 
+\begin{verbatim} (PSCSI ref) get_PSCSI (session_id s, VSCSI ref self)\end{verbatim}
+
+
+\noindent{\bf Arguments:}
+
+
+\vspace{0.3cm}
+\begin{tabular}{|c|c|p{7cm}|}
+ \hline
+{\bf type} & {\bf name} & {\bf description} \\ \hline
+{\tt VSCSI ref } & self & reference to the object \\ \hline 
+
+\end{tabular}
+
+\vspace{0.3cm}
+
+ \noindent {\bf Return Type:} 
+{\tt 
+PSCSI ref
+}
+
+
+value of the field
+\vspace{0.3cm}
+\vspace{0.3cm}
+\vspace{0.3cm}
+\subsubsection{RPC name:~get\_virtual\_host}
+
+{\bf Overview:} 
+Get the virtual\_host field of the given VSCSI.
+
+ \noindent {\bf Signature:} 
+\begin{verbatim} int get_virtual_host (session_id s, VSCSI ref self)\end{verbatim}
+
+
+\noindent{\bf Arguments:}
+
+
+\vspace{0.3cm}
+\begin{tabular}{|c|c|p{7cm}|}
+ \hline
+{\bf type} & {\bf name} & {\bf description} \\ \hline
+{\tt VSCSI ref } & self & reference to the object \\ \hline 
+
+\end{tabular}
+
+\vspace{0.3cm}
+
+ \noindent {\bf Return Type:} 
+{\tt 
+int
+}
+
+
+value of the field
+\vspace{0.3cm}
+\vspace{0.3cm}
+\vspace{0.3cm}
+\subsubsection{RPC name:~get\_virtual\_channel}
+
+{\bf Overview:} 
+Get the virtual\_channel field of the given VSCSI.
+
+ \noindent {\bf Signature:} 
+\begin{verbatim} int get_virtual_channel (session_id s, VSCSI ref self)\end{verbatim}
+
+
+\noindent{\bf Arguments:}
+
+
+\vspace{0.3cm}
+\begin{tabular}{|c|c|p{7cm}|}
+ \hline
+{\bf type} & {\bf name} & {\bf description} \\ \hline
+{\tt VSCSI ref } & self & reference to the object \\ \hline 
+
+\end{tabular}
+
+\vspace{0.3cm}
+
+ \noindent {\bf Return Type:} 
+{\tt 
+int
+}
+
+
+value of the field
+\vspace{0.3cm}
+\vspace{0.3cm}
+\vspace{0.3cm}
+\subsubsection{RPC name:~get\_virtual\_target}
+
+{\bf Overview:} 
+Get the virtual\_target field of the given VSCSI.
+
+ \noindent {\bf Signature:} 
+\begin{verbatim} int get_virtual_target (session_id s, VSCSI ref self)\end{verbatim}
+
+
+\noindent{\bf Arguments:}
+
+
+\vspace{0.3cm}
+\begin{tabular}{|c|c|p{7cm}|}
+ \hline
+{\bf type} & {\bf name} & {\bf description} \\ \hline
+{\tt VSCSI ref } & self & reference to the object \\ \hline 
+
+\end{tabular}
+
+\vspace{0.3cm}
+
+ \noindent {\bf Return Type:} 
+{\tt 
+int
+}
+
+
+value of the field
+\vspace{0.3cm}
+\vspace{0.3cm}
+\vspace{0.3cm}
+\subsubsection{RPC name:~get\_virtual\_lun}
+
+{\bf Overview:} 
+Get the virtual\_lun field of the given VSCSI.
+
+ \noindent {\bf Signature:} 
+\begin{verbatim} int get_virtual_lun (session_id s, VSCSI ref self)\end{verbatim}
+
+
+\noindent{\bf Arguments:}
+
+
+\vspace{0.3cm}
+\begin{tabular}{|c|c|p{7cm}|}
+ \hline
+{\bf type} & {\bf name} & {\bf description} \\ \hline
+{\tt VSCSI ref } & self & reference to the object \\ \hline 
+
+\end{tabular}
+
+\vspace{0.3cm}
+
+ \noindent {\bf Return Type:} 
+{\tt 
+int
+}
+
+
+value of the field
+\vspace{0.3cm}
+\vspace{0.3cm}
+\vspace{0.3cm}
+\subsubsection{RPC name:~get\_virtual\_HCTL}
+
+{\bf Overview:} 
+Get the virtual\_HCTL field of the given VSCSI.
+
+ \noindent {\bf Signature:} 
+\begin{verbatim} string get_virtual_HCTL (session_id s, VSCSI ref self)\end{verbatim}
+
+
+\noindent{\bf Arguments:}
+
+
+\vspace{0.3cm}
+\begin{tabular}{|c|c|p{7cm}|}
+ \hline
+{\bf type} & {\bf name} & {\bf description} \\ \hline
+{\tt VSCSI ref } & self & reference to the object \\ \hline 
+
+\end{tabular}
+
+\vspace{0.3cm}
+
+ \noindent {\bf Return Type:} 
+{\tt 
+string
+}
+
+
+value of the field
+\vspace{0.3cm}
+\vspace{0.3cm}
+\vspace{0.3cm}
+\subsubsection{RPC name:~create}
+
+{\bf Overview:} 
+Create a new VSCSI instance, and return its handle.
+
+ \noindent {\bf Signature:} 
+\begin{verbatim} (VSCSI ref) create (session_id s, VSCSI record args)\end{verbatim}
+
+
+\noindent{\bf Arguments:}
+
+
+\vspace{0.3cm}
+\begin{tabular}{|c|c|p{7cm}|}
+ \hline
+{\bf type} & {\bf name} & {\bf description} \\ \hline
+{\tt VSCSI record } & args & All constructor arguments \\ \hline 
+
+\end{tabular}
+
+\vspace{0.3cm}
+
+ \noindent {\bf Return Type:} 
+{\tt 
+VSCSI ref
+}
+
+
+reference to the newly created object
+\vspace{0.3cm}
+\vspace{0.3cm}
+\vspace{0.3cm}
+\subsubsection{RPC name:~destroy}
+
+{\bf Overview:} 
+Destroy the specified VSCSI instance.
+
+ \noindent {\bf Signature:} 
+\begin{verbatim} void destroy (session_id s, VSCSI ref self)\end{verbatim}
+
+
+\noindent{\bf Arguments:}
+
+
+\vspace{0.3cm}
+\begin{tabular}{|c|c|p{7cm}|}
+ \hline
+{\bf type} & {\bf name} & {\bf description} \\ \hline
+{\tt VSCSI ref } & self & reference to the object \\ \hline 
+
+\end{tabular}
+
+\vspace{0.3cm}
+
+ \noindent {\bf Return Type:} 
+{\tt 
+void
+}
+
+
+\vspace{0.3cm}
+\vspace{0.3cm}
+\vspace{0.3cm}
+\subsubsection{RPC name:~get\_by\_uuid}
+
+{\bf Overview:} 
+Get a reference to the VSCSI instance with the specified UUID.
+
+ \noindent {\bf Signature:} 
+\begin{verbatim} (VSCSI ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
+
+
+\noindent{\bf Arguments:}
+
+
+\vspace{0.3cm}
+\begin{tabular}{|c|c|p{7cm}|}
+ \hline
+{\bf type} & {\bf name} & {\bf description} \\ \hline
+{\tt string } & uuid & UUID of object to return \\ \hline 
+
+\end{tabular}
+
+\vspace{0.3cm}
+
+ \noindent {\bf Return Type:} 
+{\tt 
+VSCSI ref
+}
+
+
+reference to the object
+\vspace{0.3cm}
+\vspace{0.3cm}
+\vspace{0.3cm}
+\subsubsection{RPC name:~get\_record}
+
+{\bf Overview:} 
+Get a record containing the current state of the given VSCSI.
+
+ \noindent {\bf Signature:} 
+\begin{verbatim} (VSCSI record) get_record (session_id s, VSCSI ref self)\end{verbatim}
+
+
+\noindent{\bf Arguments:}
+
+
+\vspace{0.3cm}
+\begin{tabular}{|c|c|p{7cm}|}
+ \hline
+{\bf type} & {\bf name} & {\bf description} \\ \hline
+{\tt VSCSI ref } & self & reference to the object \\ \hline 
+
+\end{tabular}
+
+\vspace{0.3cm}
+
+ \noindent {\bf Return Type:} 
+{\tt 
+VSCSI record
+}
+
+
+all fields from the object
+\vspace{0.3cm}
+\vspace{0.3cm}
+\vspace{0.3cm}
+
+\vspace{1cm}
+\newpage
+\section{Class: PSCSI}
+\subsection{Fields for class: PSCSI}
+\begin{longtable}{|lllp{0.38\textwidth}|}
+\hline
+\multicolumn{1}{|l}{Name} & \multicolumn{3}{l|}{\bf PSCSI} \\
+\multicolumn{1}{|l}{Description} & \multicolumn{3}{l|}{\parbox{11cm}{\em A
+physical SCSI device.}} \\
+\hline
+Quals & Field & Type & Description \\
+\hline
+$\mathit{RO}_\mathit{run}$ &  {\tt uuid} & string & unique identifier/object reference \\
+$\mathit{RO}_\mathit{run}$ &  {\tt host} & host ref &  the physical machine to which this PSCSI is connected \\
+$\mathit{RO}_\mathit{run}$ &  {\tt physical\_host} & int & the physical host number \\
+$\mathit{RO}_\mathit{run}$ &  {\tt physical\_channel} & int & the physical channel number \\
+$\mathit{RO}_\mathit{run}$ &  {\tt physical\_target} & int & the physical target number \\
+$\mathit{RO}_\mathit{run}$ &  {\tt physical\_lun} & int & the physical logical unit number \\
+$\mathit{RO}_\mathit{run}$ &  {\tt physical\_HCTL} & string & the physical HCTL \\
+$\mathit{RO}_\mathit{run}$ &  {\tt vendor\_name} & string & the vendor name \\
+$\mathit{RO}_\mathit{run}$ &  {\tt model} & string & the model \\
+$\mathit{RO}_\mathit{run}$ &  {\tt type\_id} & int & the SCSI type ID \\
+$\mathit{RO}_\mathit{run}$ &  {\tt type} & string &  the SCSI type \\
+$\mathit{RO}_\mathit{run}$ &  {\tt sg\_name} & string & the SCSI generic device name \\
+$\mathit{RO}_\mathit{run}$ &  {\tt revision} & string & the revision \\
+$\mathit{RO}_\mathit{run}$ &  {\tt scsi\_id} & string & the SCSI ID \\
+$\mathit{RO}_\mathit{run}$ &  {\tt scsi\_level} & int & the SCSI level \\
+\hline
+\end{longtable}
+\subsection{RPCs associated with class: PSCSI}
+\subsubsection{RPC name:~get\_all}
+
+{\bf Overview:} 
+Return a list of all the PSCSIs known to the system.
+
+ \noindent {\bf Signature:} 
+\begin{verbatim} ((PSCSI ref) Set) get_all (session_id s)\end{verbatim}
+
+
+\vspace{0.3cm}
+
+ \noindent {\bf Return Type:} 
+{\tt 
+(PSCSI ref) Set
+}
+
+
+references to all objects
+\vspace{0.3cm}
+\vspace{0.3cm}
+\vspace{0.3cm}
+\subsubsection{RPC name:~get\_uuid}
+
+{\bf Overview:} 
+Get the uuid field of the given PSCSI.
+
+ \noindent {\bf Signature:} 
+\begin{verbatim} string get_uuid (session_id s, PSCSI ref self)\end{verbatim}
+
+
+\noindent{\bf Arguments:}
+
+
+\vspace{0.3cm}
+\begin{tabular}{|c|c|p{7cm}|}
+ \hline
+{\bf type} & {\bf name} & {\bf description} \\ \hline
+{\tt PSCSI ref } & self & reference to the object \\ \hline 
+
+\end{tabular}
+
+\vspace{0.3cm}
+
+ \noindent {\bf Return Type:} 
+{\tt 
+string
+}
+
+
+value of the field
+\vspace{0.3cm}
+\vspace{0.3cm}
+\vspace{0.3cm}
+\subsubsection{RPC name:~get\_host}
+
+{\bf Overview:} 
+Get the host field of the given PSCSI.
+
+ \noindent {\bf Signature:} 
+\begin{verbatim} (host ref) get_host (session_id s, PSCSI ref self)\end{verbatim}
+
+
+\noindent{\bf Arguments:}
+
+
+\vspace{0.3cm}
+\begin{tabular}{|c|c|p{7cm}|}
+ \hline
+{\bf type} & {\bf name} & {\bf description} \\ \hline
+{\tt PSCSI ref } & self & reference to the object \\ \hline 
+
+\end{tabular}
+
+\vspace{0.3cm}
+
+ \noindent {\bf Return Type:} 
+{\tt 
+host ref
+}
+
+
+value of the field
+\vspace{0.3cm}
+\vspace{0.3cm}
+\vspace{0.3cm}
+\subsubsection{RPC name:~get\_physical\_host}
+
+{\bf Overview:} 
+Get the physical\_host field of the given PSCSI.
+
+ \noindent {\bf Signature:} 
+\begin{verbatim} int get_physical_host (session_id s, PSCSI ref self)\end{verbatim}
+
+
+\noindent{\bf Arguments:}
+
+
+\vspace{0.3cm}
+\begin{tabular}{|c|c|p{7cm}|}
+ \hline
+{\bf type} & {\bf name} & {\bf description} \\ \hline
+{\tt PSCSI ref } & self & reference to the object \\ \hline 
+
+\end{tabular}
+
+\vspace{0.3cm}
+
+ \noindent {\bf Return Type:} 
+{\tt 
+int
+}
+
+
+value of the field
+\vspace{0.3cm}
+\vspace{0.3cm}
+\vspace{0.3cm}
+\subsubsection{RPC name:~get\_physical\_channel}
+
+{\bf Overview:} 
+Get the physical\_channel field of the given PSCSI.
+
+ \noindent {\bf Signature:} 
+\begin{verbatim} int get_physical_channel (session_id s, PSCSI ref self)\end{verbatim}
+
+
+\noindent{\bf Arguments:}
+
+
+\vspace{0.3cm}
+\begin{tabular}{|c|c|p{7cm}|}
+ \hline
+{\bf type} & {\bf name} & {\bf description} \\ \hline
+{\tt PSCSI ref } & self & reference to the object \\ \hline 
+
+\end{tabular}
+
+\vspace{0.3cm}
+
+ \noindent {\bf Return Type:} 
+{\tt 
+int
+}
+
+
+value of the field
+\vspace{0.3cm}
+\vspace{0.3cm}
+\vspace{0.3cm}
+\subsubsection{RPC name:~get\_physical\_target}
+
+{\bf Overview:} 
+Get the physical\_target field of the given PSCSI.
+
+ \noindent {\bf Signature:} 
+\begin{verbatim} int get_physical_target (session_id s, PSCSI ref self)\end{verbatim}
+
+
+\noindent{\bf Arguments:}
+
+
+\vspace{0.3cm}
+\begin{tabular}{|c|c|p{7cm}|}
+ \hline
+{\bf type} & {\bf name} & {\bf description} \\ \hline
+{\tt PSCSI ref } & self & reference to the object \\ \hline 
+
+\end{tabular}
+
+\vspace{0.3cm}
+
+ \noindent {\bf Return Type:} 
+{\tt 
+int
+}
+
+
+value of the field
+\vspace{0.3cm}
+\vspace{0.3cm}
+\vspace{0.3cm}
+\subsubsection{RPC name:~get\_physical\_lun}
+
+{\bf Overview:} 
+Get the physical\_lun field of the given PSCSI.
+
+ \noindent {\bf Signature:} 
+\begin{verbatim} int get_physical_lun (session_id s, PSCSI ref self)\end{verbatim}
+
+
+\noindent{\bf Arguments:}
+
+
+\vspace{0.3cm}
+\begin{tabular}{|c|c|p{7cm}|}
+ \hline
+{\bf type} & {\bf name} & {\bf description} \\ \hline
+{\tt PSCSI ref } & self & reference to the object \\ \hline 
+
+\end{tabular}
+
+\vspace{0.3cm}
+
+ \noindent {\bf Return Type:} 
+{\tt 
+int
+}
+
+
+value of the field
+\vspace{0.3cm}
+\vspace{0.3cm}
+\vspace{0.3cm}
+\subsubsection{RPC name:~get\_physical\_HCTL}
+
+{\bf Overview:} 
+Get the physical\_HCTL field of the given PSCSI.
+
+ \noindent {\bf Signature:} 
+\begin{verbatim} string get_physical_HCTL (session_id s, PSCSI ref self)\end{verbatim}
+
+
+\noindent{\bf Arguments:}
+
+
+\vspace{0.3cm}
+\begin{tabular}{|c|c|p{7cm}|}
+ \hline
+{\bf type} & {\bf name} & {\bf description} \\ \hline
+{\tt PSCSI ref } & self & reference to the object \\ \hline 
+
+\end{tabular}
+
+\vspace{0.3cm}
+
+ \noindent {\bf Return Type:} 
+{\tt 
+string
+}
+
+
+value of the field
+\vspace{0.3cm}
+\vspace{0.3cm}
+\vspace{0.3cm}
+\subsubsection{RPC name:~get\_vendor\_name}
+
+{\bf Overview:} 
+Get the vendor\_name field of the given PSCSI.
+
+ \noindent {\bf Signature:} 
+\begin{verbatim} string get_vendor_name (session_id s, PSCSI ref self)\end{verbatim}
+
+
+\noindent{\bf Arguments:}
+
+
+\vspace{0.3cm}
+\begin{tabular}{|c|c|p{7cm}|}
+ \hline
+{\bf type} & {\bf name} & {\bf description} \\ \hline
+{\tt PSCSI ref } & self & reference to the object \\ \hline 
+
+\end{tabular}
+
+\vspace{0.3cm}
+
+ \noindent {\bf Return Type:} 
+{\tt 
+string
+}
+
+
+value of the field
+\vspace{0.3cm}
+\vspace{0.3cm}
+\vspace{0.3cm}
+\subsubsection{RPC name:~get\_model}
+
+{\bf Overview:} 
+Get the model field of the given PSCSI.
+
+ \noindent {\bf Signature:} 
+\begin{verbatim} string get_model (session_id s, PSCSI ref self)\end{verbatim}
+
+
+\noindent{\bf Arguments:}
+
+
+\vspace{0.3cm}
+\begin{tabular}{|c|c|p{7cm}|}
+ \hline
+{\bf type} & {\bf name} & {\bf description} \\ \hline
+{\tt PSCSI ref } & self & reference to the object \\ \hline 
+
+\end{tabular}
+
+\vspace{0.3cm}
+
+ \noindent {\bf Return Type:} 
+{\tt 
+string
+}
+
+
+value of the field
+\vspace{0.3cm}
+\vspace{0.3cm}
+\vspace{0.3cm}
+\subsubsection{RPC name:~get\_type\_id}
+
+{\bf Overview:} 
+Get the type\_id field of the given PSCSI.
+
+ \noindent {\bf Signature:} 
+\begin{verbatim} int get_type_id (session_id s, PSCSI ref self)\end{verbatim}
+
+
+\noindent{\bf Arguments:}
+
+
+\vspace{0.3cm}
+\begin{tabular}{|c|c|p{7cm}|}
+ \hline
+{\bf type} & {\bf name} & {\bf description} \\ \hline
+{\tt PSCSI ref } & self & reference to the object \\ \hline 
+
+\end{tabular}
+
+\vspace{0.3cm}
+
+ \noindent {\bf Return Type:} 
+{\tt 
+int
+}
+
+
+value of the field
+\vspace{0.3cm}
+\vspace{0.3cm}
+\vspace{0.3cm}
+\subsubsection{RPC name:~get\_type}
+
+{\bf Overview:} 
+Get the type field of the given PSCSI.
+
+ \noindent {\bf Signature:} 
+\begin{verbatim} string get_type (session_id s, PSCSI ref self)\end{verbatim}
+
+
+\noindent{\bf Arguments:}
+
+
+\vspace{0.3cm}
+\begin{tabular}{|c|c|p{7cm}|}
+ \hline
+{\bf type} & {\bf name} & {\bf description} \\ \hline
+{\tt PSCSI ref } & self & reference to the object \\ \hline 
+
+\end{tabular}
+
+\vspace{0.3cm}
+
+ \noindent {\bf Return Type:} 
+{\tt 
+string
+}
+
+
+value of the field
+\vspace{0.3cm}
+\vspace{0.3cm}
+\vspace{0.3cm}
+\subsubsection{RPC name:~get\_sg\_name}
+
+{\bf Overview:} 
+Get the sg\_name field of the given PSCSI.
+
+ \noindent {\bf Signature:} 
+\begin{verbatim} string get_sg_name (session_id s, PSCSI ref self)\end{verbatim}
+
+
+\noindent{\bf Arguments:}
+
+
+\vspace{0.3cm}
+\begin{tabular}{|c|c|p{7cm}|}
+ \hline
+{\bf type} & {\bf name} & {\bf description} \\ \hline
+{\tt PSCSI ref } & self & reference to the object \\ \hline 
+
+\end{tabular}
+
+\vspace{0.3cm}
+
+ \noindent {\bf Return Type:} 
+{\tt 
+string
+}
+
+
+value of the field
+\vspace{0.3cm}
+\vspace{0.3cm}
+\vspace{0.3cm}
+\subsubsection{RPC name:~get\_revision}
+
+{\bf Overview:} 
+Get the revision field of the given PSCSI.
+
+ \noindent {\bf Signature:} 
+\begin{verbatim} string get_revision (session_id s, PSCSI ref self)\end{verbatim}
+
+
+\noindent{\bf Arguments:}
+
+
+\vspace{0.3cm}
+\begin{tabular}{|c|c|p{7cm}|}
+ \hline
+{\bf type} & {\bf name} & {\bf description} \\ \hline
+{\tt PSCSI ref } & self & reference to the object \\ \hline 
+
+\end{tabular}
+
+\vspace{0.3cm}
+
+ \noindent {\bf Return Type:} 
+{\tt 
+string
+}
+
+
+value of the field
+\vspace{0.3cm}
+\vspace{0.3cm}
+\vspace{0.3cm}
+\subsubsection{RPC name:~get\_scsi\_id}
+
+{\bf Overview:} 
+Get the scsi\_id field of the given PSCSI.
+
+ \noindent {\bf Signature:} 
+\begin{verbatim} string get_scsi_id (session_id s, PSCSI ref self)\end{verbatim}
+
+
+\noindent{\bf Arguments:}
+
+
+\vspace{0.3cm}
+\begin{tabular}{|c|c|p{7cm}|}
+ \hline
+{\bf type} & {\bf name} & {\bf description} \\ \hline
+{\tt PSCSI ref } & self & reference to the object \\ \hline 
+
+\end{tabular}
+
+\vspace{0.3cm}
+
+ \noindent {\bf Return Type:} 
+{\tt 
+string
+}
+
+
+value of the field
+\vspace{0.3cm}
+\vspace{0.3cm}
+\vspace{0.3cm}
+\subsubsection{RPC name:~get\_scsi\_level}
+
+{\bf Overview:} 
+Get the scsi\_level field of the given PSCSI.
+
+ \noindent {\bf Signature:} 
+\begin{verbatim} int get_scsi_level (session_id s, PSCSI ref self)\end{verbatim}
+
+
+\noindent{\bf Arguments:}
+
+
+\vspace{0.3cm}
+\begin{tabular}{|c|c|p{7cm}|}
+ \hline
+{\bf type} & {\bf name} & {\bf description} \\ \hline
+{\tt PSCSI ref } & self & reference to the object \\ \hline 
+
+\end{tabular}
+
+\vspace{0.3cm}
+
+ \noindent {\bf Return Type:} 
+{\tt 
+int
+}
+
+
+value of the field
+\vspace{0.3cm}
+\vspace{0.3cm}
+\vspace{0.3cm}
+\subsubsection{RPC name:~get\_by\_uuid}
+
+{\bf Overview:} 
+Get a reference to the PSCSI instance with the specified UUID.
+
+ \noindent {\bf Signature:} 
+\begin{verbatim} (PSCSI ref) get_by_uuid (session_id s, string uuid)\end{verbatim}
+
+
+\noindent{\bf Arguments:}
+
+
+\vspace{0.3cm}
+\begin{tabular}{|c|c|p{7cm}|}
+ \hline
+{\bf type} & {\bf name} & {\bf description} \\ \hline
+{\tt string } & uuid & UUID of object to return \\ \hline 
+
+\end{tabular}
+
+\vspace{0.3cm}
+
+ \noindent {\bf Return Type:} 
+{\tt 
+PSCSI ref
+}
+
+
+reference to the object
+\vspace{0.3cm}
+\vspace{0.3cm}
+\vspace{0.3cm}
+\subsubsection{RPC name:~get\_record}
+
+{\bf Overview:} 
+Get a record containing the current state of the given PSCSI.
+
+ \noindent {\bf Signature:} 
+\begin{verbatim} (PSCSI record) get_record (session_id s, PSCSI ref self)\end{verbatim}
+
+
+\noindent{\bf Arguments:}
+
+
+\vspace{0.3cm}
+\begin{tabular}{|c|c|p{7cm}|}
+ \hline
+{\bf type} & {\bf name} & {\bf description} \\ \hline
+{\tt PSCSI ref } & self & reference to the object \\ \hline 
+
+\end{tabular}
+
+\vspace{0.3cm}
+
+ \noindent {\bf Return Type:} 
+{\tt 
+PSCSI record
+}
+
+
+all fields from the object
+\vspace{0.3cm}
+\vspace{0.3cm}
+\vspace{0.3cm}
+
+\vspace{1cm}
+\newpage
 \section{Class: user}
 \subsection{Fields for class: user}
 \begin{longtable}{|lllp{0.38\textwidth}|}

[-- Attachment #3: Type: text/plain, Size: 138 bytes --]

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xensource.com
http://lists.xensource.com/xen-devel

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [RFC][PATCH] Enhance XenAPI for pvSCSI
  2008-09-03  6:57 [RFC][PATCH] Enhance XenAPI for pvSCSI Masaki Kanno
@ 2008-09-05  8:52 ` Yosuke Iwamatsu
  2008-09-08  2:31   ` Jun Kamada
  2008-09-08  5:03   ` Masaki Kanno
  0 siblings, 2 replies; 7+ messages in thread
From: Yosuke Iwamatsu @ 2008-09-05  8:52 UTC (permalink / raw)
  To: Masaki Kanno; +Cc: kama, t.horikoshi, xen-devel, xen-api

Hi,

Masaki Kanno wrote:
> Hi,
> 
> I would like to enhance XenAPI for pvSCSI. 
> At the beginning, I updated only the document of XenAPI.  I'm going 
> to implement XenAPI of pvSCSI along the document.  Could you comment?
> 
> The following classes and RPCs are added by the enhancement. 
>  Classes:
>   - VSCSI class
>      This is a class for virtual SCSI devices.

It's nice to keep xen-api updated with new features :-)
One thing I want to point out is about the class name.
I think 'DSCSI' (direct scsi) is appropriate rather than 'VSCSI',
because pvSCSI driver doesn't really provide virtual scsi luns but
passes through scsi commands to real scsi luns, as far as I understand.

Regards,
-- Yosuke Iwamatsu

>   - PSCSI class
>      This is a class for physical SCSI devices.
> 
>  RPCs:
>   - VSCSI class
>    -- get_all
>        A list of all VSCSIs known to the system is gotten.
>    -- get_uuid
>        An UUID of the VSCSI is gotten.
>    -- get_VM
>        A VM ref of the VSCSI is gotten.
>    -- get_PSCSI
>        A PSCSI ref of the VSCSI is gotten.
>    -- get_virtual_host
>        A virtual host number of the VSCSI is gotten.
>    -- get_virtual_channel
>        A virtual channel number of the VSCSI is gotten.
>    -- get_virtual_target
>        A virtual target number of the VSCSI is gotten.
>    -- get_virtual_lun
>        A virtual logical unit number of the VSCSI is gotten.
>    -- get_virtual_HCTL
>        A virtual HCTL (string of "<host>:<channel>:<target>:<lun>") 
>        of the VSCSI is gotten.
>    -- create
>        A new VSCSI instance is created.
>    -- destroy
>        The VSCSI instance is destroyed.
>    -- get_by_uuid
>        A VSCSI ref of the UUID is gotten.
>    -- get_record
>        A VSCSI record of the VSCSI is gotten.
> 
>   - PSCSI class
>    -- get_all
>        A list of all PSCSIs known to the system is gotten.
>    -- get_uuid
>        An UUID of the PSCSI is gotten.
>    -- get_host
>        A host ref of the PSCSI is gotten.
>    -- get_physical_host
>        A physical host number of the PSCSI is gotten.
>    -- get_physical_channel
>        A physical channel number of the PSCSI is gotten.
>    -- get_physical_target
>        A physical target number of the PSCSI is gotten.
>    -- get_physical_lun
>        A physical logical unit number of the PSCSI is gotten.
>    -- get_physical_HCTL
>        A physical HCTL (string of "<host>:<channel>:<target>:<lun>") 
>        of the PSCSI is gotten.
>    -- get_vendor_name
>        A vendor name of the PSCSI is gotten.
>    -- get_model
>        A model name of the PSCSI is gotten.
>    -- get_type_id
>        An ID of device types of the PSCSI is gotten. (If disk, the ID 
>        is 0.  If tape, the ID is 1.)
>    -- get_type
>        A device type string of the PSCSI is gotten.
>    -- get_sg_name
>        A SCSI generic (sg) device name of the PSCSI is gotten.
>    -- get_revision
>        A revision string of the PSCSI is gotten.
>    -- get_scsi_id
>        A SCSI ID string of the PSCSI is gotten. The string is a result 
>        of 'scsi_id -gu -s'.
>    -- get_scsi_level
>        A SCSI level of the PSCSI is gotten.
>    -- get_by_uuid
>        A PSCSI ref of the UUID is gotten.
>    -- get_record
>        A PSCSI record of the PSCSI is gotten.
> 
>   - VM class
>    -- get_VSCSIs
>        VSCSI refs of the VM are gotten.
> 
>   - host class
>    -- get_PSCSIs
>        PSCSI refs of the host are gotten.
> 
> 
> Signed-off-by: Masaki Kanno <kanno.masaki@jp.fujitsu.com>
> 
> Best regards,
>  Kan
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@lists.xensource.com
> http://lists.xensource.com/xen-devel

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [RFC][PATCH] Enhance XenAPI for pvSCSI
  2008-09-05  8:52 ` Yosuke Iwamatsu
@ 2008-09-08  2:31   ` Jun Kamada
       [not found]     ` <20080908112241.8179.EB2C8575-+CUm20s59erQFUHtdCDX3A@public.gmane.org>
  2008-09-08  5:03   ` Masaki Kanno
  1 sibling, 1 reply; 7+ messages in thread
From: Jun Kamada @ 2008-09-08  2:31 UTC (permalink / raw)
  To: Yosuke Iwamatsu; +Cc: kama, t.horikoshi, xen-devel, Masaki Kanno, xen-api

Hi Iwamatsu-san,

The pvSCSI driver provides virtualized SCSI tree to guest domains. 
(You can specify arbitrary IDs (Host:Channel:Target:Lun) mapping 
between Dom0 and the guests.)

In addition to that, some SCSI commands, for example REPORT_LUN, may 
be emulated on backend driver but simply passthroughed to physical
device.

So, class name 'VSCSI' is appropriate, in my personal opinion.

Best regards,


On Fri, 05 Sep 2008 17:52:42 +0900
Yosuke Iwamatsu <y-iwamatsu@ab.jp.nec.com> wrote:

> Hi,
> 
> Masaki Kanno wrote:
> > Hi,
> > 
> > I would like to enhance XenAPI for pvSCSI. 
> > At the beginning, I updated only the document of XenAPI.  I'm going 
> > to implement XenAPI of pvSCSI along the document.  Could you comment?
> > 
> > The following classes and RPCs are added by the enhancement. 
> >  Classes:
> >   - VSCSI class
> >      This is a class for virtual SCSI devices.
> 
> It's nice to keep xen-api updated with new features :-)
> One thing I want to point out is about the class name.
> I think 'DSCSI' (direct scsi) is appropriate rather than 'VSCSI',
> because pvSCSI driver doesn't really provide virtual scsi luns but
> passes through scsi commands to real scsi luns, as far as I understand.
> 
> Regards,
> -- Yosuke Iwamatsu
> 
> >   - PSCSI class
> >      This is a class for physical SCSI devices.
> > 
> >  RPCs:
> >   - VSCSI class
> >    -- get_all
> >        A list of all VSCSIs known to the system is gotten.
> >    -- get_uuid
> >        An UUID of the VSCSI is gotten.
> >    -- get_VM
> >        A VM ref of the VSCSI is gotten.
> >    -- get_PSCSI
> >        A PSCSI ref of the VSCSI is gotten.
> >    -- get_virtual_host
> >        A virtual host number of the VSCSI is gotten.
> >    -- get_virtual_channel
> >        A virtual channel number of the VSCSI is gotten.
> >    -- get_virtual_target
> >        A virtual target number of the VSCSI is gotten.
> >    -- get_virtual_lun
> >        A virtual logical unit number of the VSCSI is gotten.
> >    -- get_virtual_HCTL
> >        A virtual HCTL (string of "<host>:<channel>:<target>:<lun>") 
> >        of the VSCSI is gotten.
> >    -- create
> >        A new VSCSI instance is created.
> >    -- destroy
> >        The VSCSI instance is destroyed.
> >    -- get_by_uuid
> >        A VSCSI ref of the UUID is gotten.
> >    -- get_record
> >        A VSCSI record of the VSCSI is gotten.
> > 
> >   - PSCSI class
> >    -- get_all
> >        A list of all PSCSIs known to the system is gotten.
> >    -- get_uuid
> >        An UUID of the PSCSI is gotten.
> >    -- get_host
> >        A host ref of the PSCSI is gotten.
> >    -- get_physical_host
> >        A physical host number of the PSCSI is gotten.
> >    -- get_physical_channel
> >        A physical channel number of the PSCSI is gotten.
> >    -- get_physical_target
> >        A physical target number of the PSCSI is gotten.
> >    -- get_physical_lun
> >        A physical logical unit number of the PSCSI is gotten.
> >    -- get_physical_HCTL
> >        A physical HCTL (string of "<host>:<channel>:<target>:<lun>") 
> >        of the PSCSI is gotten.
> >    -- get_vendor_name
> >        A vendor name of the PSCSI is gotten.
> >    -- get_model
> >        A model name of the PSCSI is gotten.
> >    -- get_type_id
> >        An ID of device types of the PSCSI is gotten. (If disk, the ID 
> >        is 0.  If tape, the ID is 1.)
> >    -- get_type
> >        A device type string of the PSCSI is gotten.
> >    -- get_sg_name
> >        A SCSI generic (sg) device name of the PSCSI is gotten.
> >    -- get_revision
> >        A revision string of the PSCSI is gotten.
> >    -- get_scsi_id
> >        A SCSI ID string of the PSCSI is gotten. The string is a result 
> >        of 'scsi_id -gu -s'.
> >    -- get_scsi_level
> >        A SCSI level of the PSCSI is gotten.
> >    -- get_by_uuid
> >        A PSCSI ref of the UUID is gotten.
> >    -- get_record
> >        A PSCSI record of the PSCSI is gotten.
> > 
> >   - VM class
> >    -- get_VSCSIs
> >        VSCSI refs of the VM are gotten.
> > 
> >   - host class
> >    -- get_PSCSIs
> >        PSCSI refs of the host are gotten.
> > 
> > 
> > Signed-off-by: Masaki Kanno <kanno.masaki@jp.fujitsu.com>
> > 
> > Best regards,
> >  Kan
> > 
> > 
> > ------------------------------------------------------------------------
> > 
> > _______________________________________________
> > Xen-devel mailing list
> > Xen-devel@lists.xensource.com
> > http://lists.xensource.com/xen-devel
> 
> 
> 
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@lists.xensource.com
> http://lists.xensource.com/xen-devel


-----
Jun Kamada
Linux Software Development Div.
Server Systems Unit
Fujitsu Ltd.
kama@jp.fujitsu.com

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [Xen-devel] [RFC][PATCH] Enhance XenAPI for pvSCSI
       [not found]     ` <20080908112241.8179.EB2C8575-+CUm20s59erQFUHtdCDX3A@public.gmane.org>
@ 2008-09-08  5:00       ` Yosuke Iwamatsu
  2008-09-08 11:47         ` Masaki Kanno
  0 siblings, 1 reply; 7+ messages in thread
From: Yosuke Iwamatsu @ 2008-09-08  5:00 UTC (permalink / raw)
  To: Jun Kamada
  Cc: t.horikoshi-+CUm20s59erQFUHtdCDX3A,
	xen-devel-GuqFBffKawuULHF6PoxzQEEOCMrvLtNR,
	xen-api-GuqFBffKawuULHF6PoxzQEEOCMrvLtNR

Jun Kamada wrote:
> Hi Iwamatsu-san,
> 
> The pvSCSI driver provides virtualized SCSI tree to guest domains. 
> (You can specify arbitrary IDs (Host:Channel:Target:Lun) mapping 
> between Dom0 and the guests.)
> 
> In addition to that, some SCSI commands, for example REPORT_LUN, may 
> be emulated on backend driver but simply passthroughed to physical
> device.
> 
> So, class name 'VSCSI' is appropriate, in my personal opinion.

The guest sees a virtualized scsi host, a virtualized scsi tree but
endpoint devices (luns) themselves are not virtualized, right?
I'm under an impression that pvscsi is similer to pass-through pci
and 'V' prefix is not appropriate for these half-virtualized,
half-physical devices.

Below is my idea of naming xen-api classes:
a. If the device is trully virtualized, give 'V' prefix (VIF, VBD etc).
    For example, a VIF has virtual mac address, virtual vendor name
    and virtual device name and the guest see nothing about physical nic
    devices. Actually, it is possible to create VIF devices even if the
    host doesn't have physical network devices.
b. If the device is half-virtualized, give 'D' prefix.
    When using pass-through pci, host controllers, device trees, config
    spaces might be virtualized but the guest see physical device
    information like device id and vendor id, and directly access to
    registers. The host, of course, has to have physical devices and
    the device will be occupied while it is used by a guest.

I don't know details about pvscsi, but perphaps we had better
categorize it as b.

Thanks,
-- Yosuke

> 
> Best regards,
> 
> 
> On Fri, 05 Sep 2008 17:52:42 +0900
> Yosuke Iwamatsu <y-iwamatsu-zZGIbrA41Td8UrSeD/g0lQ@public.gmane.org> wrote:
> 
>> Hi,
>>
>> Masaki Kanno wrote:
>>> Hi,
>>>
>>> I would like to enhance XenAPI for pvSCSI. 
>>> At the beginning, I updated only the document of XenAPI.  I'm going 
>>> to implement XenAPI of pvSCSI along the document.  Could you comment?
>>>
>>> The following classes and RPCs are added by the enhancement. 
>>>  Classes:
>>>   - VSCSI class
>>>      This is a class for virtual SCSI devices.
>> It's nice to keep xen-api updated with new features :-)
>> One thing I want to point out is about the class name.
>> I think 'DSCSI' (direct scsi) is appropriate rather than 'VSCSI',
>> because pvSCSI driver doesn't really provide virtual scsi luns but
>> passes through scsi commands to real scsi luns, as far as I understand.
>>
>> Regards,
>> -- Yosuke Iwamatsu
>>
>>>   - PSCSI class
>>>      This is a class for physical SCSI devices.
>>>
>>>  RPCs:
>>>   - VSCSI class
>>>    -- get_all
>>>        A list of all VSCSIs known to the system is gotten.
>>>    -- get_uuid
>>>        An UUID of the VSCSI is gotten.
>>>    -- get_VM
>>>        A VM ref of the VSCSI is gotten.
>>>    -- get_PSCSI
>>>        A PSCSI ref of the VSCSI is gotten.
>>>    -- get_virtual_host
>>>        A virtual host number of the VSCSI is gotten.
>>>    -- get_virtual_channel
>>>        A virtual channel number of the VSCSI is gotten.
>>>    -- get_virtual_target
>>>        A virtual target number of the VSCSI is gotten.
>>>    -- get_virtual_lun
>>>        A virtual logical unit number of the VSCSI is gotten.
>>>    -- get_virtual_HCTL
>>>        A virtual HCTL (string of "<host>:<channel>:<target>:<lun>") 
>>>        of the VSCSI is gotten.
>>>    -- create
>>>        A new VSCSI instance is created.
>>>    -- destroy
>>>        The VSCSI instance is destroyed.
>>>    -- get_by_uuid
>>>        A VSCSI ref of the UUID is gotten.
>>>    -- get_record
>>>        A VSCSI record of the VSCSI is gotten.
>>>
>>>   - PSCSI class
>>>    -- get_all
>>>        A list of all PSCSIs known to the system is gotten.
>>>    -- get_uuid
>>>        An UUID of the PSCSI is gotten.
>>>    -- get_host
>>>        A host ref of the PSCSI is gotten.
>>>    -- get_physical_host
>>>        A physical host number of the PSCSI is gotten.
>>>    -- get_physical_channel
>>>        A physical channel number of the PSCSI is gotten.
>>>    -- get_physical_target
>>>        A physical target number of the PSCSI is gotten.
>>>    -- get_physical_lun
>>>        A physical logical unit number of the PSCSI is gotten.
>>>    -- get_physical_HCTL
>>>        A physical HCTL (string of "<host>:<channel>:<target>:<lun>") 
>>>        of the PSCSI is gotten.
>>>    -- get_vendor_name
>>>        A vendor name of the PSCSI is gotten.
>>>    -- get_model
>>>        A model name of the PSCSI is gotten.
>>>    -- get_type_id
>>>        An ID of device types of the PSCSI is gotten. (If disk, the ID 
>>>        is 0.  If tape, the ID is 1.)
>>>    -- get_type
>>>        A device type string of the PSCSI is gotten.
>>>    -- get_sg_name
>>>        A SCSI generic (sg) device name of the PSCSI is gotten.
>>>    -- get_revision
>>>        A revision string of the PSCSI is gotten.
>>>    -- get_scsi_id
>>>        A SCSI ID string of the PSCSI is gotten. The string is a result 
>>>        of 'scsi_id -gu -s'.
>>>    -- get_scsi_level
>>>        A SCSI level of the PSCSI is gotten.
>>>    -- get_by_uuid
>>>        A PSCSI ref of the UUID is gotten.
>>>    -- get_record
>>>        A PSCSI record of the PSCSI is gotten.
>>>
>>>   - VM class
>>>    -- get_VSCSIs
>>>        VSCSI refs of the VM are gotten.
>>>
>>>   - host class
>>>    -- get_PSCSIs
>>>        PSCSI refs of the host are gotten.
>>>
>>>
>>> Signed-off-by: Masaki Kanno <kanno.masaki-+CUm20s59erQFUHtdCDX3A@public.gmane.org>
>>>
>>> Best regards,
>>>  Kan
>>>
>>>
>>> ------------------------------------------------------------------------
>>>
>>> _______________________________________________
>>> Xen-devel mailing list
>>> Xen-devel-GuqFBffKawuULHF6PoxzQEEOCMrvLtNR@public.gmane.org
>>> http://lists.xensource.com/xen-devel
>>
>>
>> _______________________________________________
>> Xen-devel mailing list
>> Xen-devel-GuqFBffKawuULHF6PoxzQEEOCMrvLtNR@public.gmane.org
>> http://lists.xensource.com/xen-devel
> 
> 
> -----
> Jun Kamada
> Linux Software Development Div.
> Server Systems Unit
> Fujitsu Ltd.
> kama-+CUm20s59erQFUHtdCDX3A@public.gmane.org
> 
> 

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [RFC][PATCH] Enhance XenAPI for pvSCSI
  2008-09-05  8:52 ` Yosuke Iwamatsu
  2008-09-08  2:31   ` Jun Kamada
@ 2008-09-08  5:03   ` Masaki Kanno
  2008-09-08  7:47     ` Masaki Kanno
  1 sibling, 1 reply; 7+ messages in thread
From: Masaki Kanno @ 2008-09-08  5:03 UTC (permalink / raw)
  To: Yosuke Iwamatsu; +Cc: kama, t.horikoshi, xen-devel, xen-api

Hi Yosuke,

Thanks for your comment.

As Kamada said, the pvSCSI driver emulates some SCSI commands, 
the pvSCSI driver does not always pass through SCSI commands. 
So I hesitate to call pvSCSI "direct". 

Best regards,
 Kan

Fri, 05 Sep 2008 17:52:42 +0900, Yosuke Iwamatsu wrote:

>Hi,
>
>Masaki Kanno wrote:
>> Hi,
>> 
>> I would like to enhance XenAPI for pvSCSI. 
>> At the beginning, I updated only the document of XenAPI.  I'm going 
>> to implement XenAPI of pvSCSI along the document.  Could you comment?
>> 
>> The following classes and RPCs are added by the enhancement. 
>>  Classes:
>>   - VSCSI class
>>      This is a class for virtual SCSI devices.
>
>It's nice to keep xen-api updated with new features :-)
>One thing I want to point out is about the class name.
>I think 'DSCSI' (direct scsi) is appropriate rather than 'VSCSI',
>because pvSCSI driver doesn't really provide virtual scsi luns but
>passes through scsi commands to real scsi luns, as far as I understand.
>
>Regards,
>-- Yosuke Iwamatsu
>
>>   - PSCSI class
>>      This is a class for physical SCSI devices.
>> 
>>  RPCs:
>>   - VSCSI class
>>    -- get_all
>>        A list of all VSCSIs known to the system is gotten.
>>    -- get_uuid
>>        An UUID of the VSCSI is gotten.
>>    -- get_VM
>>        A VM ref of the VSCSI is gotten.
>>    -- get_PSCSI
>>        A PSCSI ref of the VSCSI is gotten.
>>    -- get_virtual_host
>>        A virtual host number of the VSCSI is gotten.
>>    -- get_virtual_channel
>>        A virtual channel number of the VSCSI is gotten.
>>    -- get_virtual_target
>>        A virtual target number of the VSCSI is gotten.
>>    -- get_virtual_lun
>>        A virtual logical unit number of the VSCSI is gotten.
>>    -- get_virtual_HCTL
>>        A virtual HCTL (string of "<host>:<channel>:<target>:<lun>") 
>>        of the VSCSI is gotten.
>>    -- create
>>        A new VSCSI instance is created.
>>    -- destroy
>>        The VSCSI instance is destroyed.
>>    -- get_by_uuid
>>        A VSCSI ref of the UUID is gotten.
>>    -- get_record
>>        A VSCSI record of the VSCSI is gotten.
>> 
>>   - PSCSI class
>>    -- get_all
>>        A list of all PSCSIs known to the system is gotten.
>>    -- get_uuid
>>        An UUID of the PSCSI is gotten.
>>    -- get_host
>>        A host ref of the PSCSI is gotten.
>>    -- get_physical_host
>>        A physical host number of the PSCSI is gotten.
>>    -- get_physical_channel
>>        A physical channel number of the PSCSI is gotten.
>>    -- get_physical_target
>>        A physical target number of the PSCSI is gotten.
>>    -- get_physical_lun
>>        A physical logical unit number of the PSCSI is gotten.
>>    -- get_physical_HCTL
>>        A physical HCTL (string of "<host>:<channel>:<target>:<lun>") 
>>        of the PSCSI is gotten.
>>    -- get_vendor_name
>>        A vendor name of the PSCSI is gotten.
>>    -- get_model
>>        A model name of the PSCSI is gotten.
>>    -- get_type_id
>>        An ID of device types of the PSCSI is gotten. (If disk, the ID 
>>        is 0.  If tape, the ID is 1.)
>>    -- get_type
>>        A device type string of the PSCSI is gotten.
>>    -- get_sg_name
>>        A SCSI generic (sg) device name of the PSCSI is gotten.
>>    -- get_revision
>>        A revision string of the PSCSI is gotten.
>>    -- get_scsi_id
>>        A SCSI ID string of the PSCSI is gotten. The string is a result 
>>        of 'scsi_id -gu -s'.
>>    -- get_scsi_level
>>        A SCSI level of the PSCSI is gotten.
>>    -- get_by_uuid
>>        A PSCSI ref of the UUID is gotten.
>>    -- get_record
>>        A PSCSI record of the PSCSI is gotten.
>> 
>>   - VM class
>>    -- get_VSCSIs
>>        VSCSI refs of the VM are gotten.
>> 
>>   - host class
>>    -- get_PSCSIs
>>        PSCSI refs of the host are gotten.
>> 
>> 
>> Signed-off-by: Masaki Kanno <kanno.masaki@jp.fujitsu.com>
>> 
>> Best regards,
>>  Kan
>> 
>> 
>> ------------------------------------------------------------------------
>> 
>> _______________________________________________
>> Xen-devel mailing list
>> Xen-devel@lists.xensource.com
>> http://lists.xensource.com/xen-devel
>
>
>
>_______________________________________________
>Xen-devel mailing list
>Xen-devel@lists.xensource.com
>http://lists.xensource.com/xen-devel

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [RFC][PATCH] Enhance XenAPI for pvSCSI
  2008-09-08  5:03   ` Masaki Kanno
@ 2008-09-08  7:47     ` Masaki Kanno
  0 siblings, 0 replies; 7+ messages in thread
From: Masaki Kanno @ 2008-09-08  7:47 UTC (permalink / raw)
  To: Yosuke Iwamatsu; +Cc: kama, t.horikoshi, xen-devel, xen-api

Hi Yosuke,

My mail seems to have crossed your mail.  Let me think a little.

Best regards,
 Kan

Mon, 08 Sep 2008 14:03:27 +0900, Masaki Kanno wrote:

>Hi Yosuke,
>
>Thanks for your comment.
>
>As Kamada said, the pvSCSI driver emulates some SCSI commands, 
>the pvSCSI driver does not always pass through SCSI commands. 
>So I hesitate to call pvSCSI "direct". 
>
>Best regards,
> Kan
>
>Fri, 05 Sep 2008 17:52:42 +0900, Yosuke Iwamatsu wrote:
>
>>Hi,
>>
>>Masaki Kanno wrote:
>>> Hi,
>>> 
>>> I would like to enhance XenAPI for pvSCSI. 
>>> At the beginning, I updated only the document of XenAPI.  I'm going 
>>> to implement XenAPI of pvSCSI along the document.  Could you comment?
>>> 
>>> The following classes and RPCs are added by the enhancement. 
>>>  Classes:
>>>   - VSCSI class
>>>      This is a class for virtual SCSI devices.
>>
>>It's nice to keep xen-api updated with new features :-)
>>One thing I want to point out is about the class name.
>>I think 'DSCSI' (direct scsi) is appropriate rather than 'VSCSI',
>>because pvSCSI driver doesn't really provide virtual scsi luns but
>>passes through scsi commands to real scsi luns, as far as I understand.
>>
>>Regards,
>>-- Yosuke Iwamatsu
>>
>>>   - PSCSI class
>>>      This is a class for physical SCSI devices.
>>> 
>>>  RPCs:
>>>   - VSCSI class
>>>    -- get_all
>>>        A list of all VSCSIs known to the system is gotten.
>>>    -- get_uuid
>>>        An UUID of the VSCSI is gotten.
>>>    -- get_VM
>>>        A VM ref of the VSCSI is gotten.
>>>    -- get_PSCSI
>>>        A PSCSI ref of the VSCSI is gotten.
>>>    -- get_virtual_host
>>>        A virtual host number of the VSCSI is gotten.
>>>    -- get_virtual_channel
>>>        A virtual channel number of the VSCSI is gotten.
>>>    -- get_virtual_target
>>>        A virtual target number of the VSCSI is gotten.
>>>    -- get_virtual_lun
>>>        A virtual logical unit number of the VSCSI is gotten.
>>>    -- get_virtual_HCTL
>>>        A virtual HCTL (string of "<host>:<channel>:<target>:<lun>") 
>>>        of the VSCSI is gotten.
>>>    -- create
>>>        A new VSCSI instance is created.
>>>    -- destroy
>>>        The VSCSI instance is destroyed.
>>>    -- get_by_uuid
>>>        A VSCSI ref of the UUID is gotten.
>>>    -- get_record
>>>        A VSCSI record of the VSCSI is gotten.
>>> 
>>>   - PSCSI class
>>>    -- get_all
>>>        A list of all PSCSIs known to the system is gotten.
>>>    -- get_uuid
>>>        An UUID of the PSCSI is gotten.
>>>    -- get_host
>>>        A host ref of the PSCSI is gotten.
>>>    -- get_physical_host
>>>        A physical host number of the PSCSI is gotten.
>>>    -- get_physical_channel
>>>        A physical channel number of the PSCSI is gotten.
>>>    -- get_physical_target
>>>        A physical target number of the PSCSI is gotten.
>>>    -- get_physical_lun
>>>        A physical logical unit number of the PSCSI is gotten.
>>>    -- get_physical_HCTL
>>>        A physical HCTL (string of "<host>:<channel>:<target>:<lun>") 
>>>        of the PSCSI is gotten.
>>>    -- get_vendor_name
>>>        A vendor name of the PSCSI is gotten.
>>>    -- get_model
>>>        A model name of the PSCSI is gotten.
>>>    -- get_type_id
>>>        An ID of device types of the PSCSI is gotten. (If disk, the ID 
>>>        is 0.  If tape, the ID is 1.)
>>>    -- get_type
>>>        A device type string of the PSCSI is gotten.
>>>    -- get_sg_name
>>>        A SCSI generic (sg) device name of the PSCSI is gotten.
>>>    -- get_revision
>>>        A revision string of the PSCSI is gotten.
>>>    -- get_scsi_id
>>>        A SCSI ID string of the PSCSI is gotten. The string is a result 
>>>        of 'scsi_id -gu -s'.
>>>    -- get_scsi_level
>>>        A SCSI level of the PSCSI is gotten.
>>>    -- get_by_uuid
>>>        A PSCSI ref of the UUID is gotten.
>>>    -- get_record
>>>        A PSCSI record of the PSCSI is gotten.
>>> 
>>>   - VM class
>>>    -- get_VSCSIs
>>>        VSCSI refs of the VM are gotten.
>>> 
>>>   - host class
>>>    -- get_PSCSIs
>>>        PSCSI refs of the host are gotten.
>>> 
>>> 
>>> Signed-off-by: Masaki Kanno <kanno.masaki@jp.fujitsu.com>
>>> 
>>> Best regards,
>>>  Kan
>>> 
>>> 
>>> ------------------------------------------------------------------------
>>> 
>>> _______________________________________________
>>> Xen-devel mailing list
>>> Xen-devel@lists.xensource.com
>>> http://lists.xensource.com/xen-devel
>>
>>
>>
>>_______________________________________________
>>Xen-devel mailing list
>>Xen-devel@lists.xensource.com
>>http://lists.xensource.com/xen-devel
>
>
>_______________________________________________
>Xen-devel mailing list
>Xen-devel@lists.xensource.com
>http://lists.xensource.com/xen-devel

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [RFC][PATCH] Enhance XenAPI for pvSCSI
  2008-09-08  5:00       ` [Xen-devel] " Yosuke Iwamatsu
@ 2008-09-08 11:47         ` Masaki Kanno
  0 siblings, 0 replies; 7+ messages in thread
From: Masaki Kanno @ 2008-09-08 11:47 UTC (permalink / raw)
  To: Yosuke Iwamatsu, xen-api; +Cc: Jun Kamada, t.horikoshi, xen-devel

Hi Yosuke and XenAPI developers,

Thanks for your opinion. 
I was able to understand your opinion enough, so I believe 
that "DSCSI" is better than "VSCSI".  But I'd like to hear 
opinions from XenAPI developers except you. 

   Is prefix of half-virtualized "D" or "V"?

Best regards,
 Kan

Mon, 08 Sep 2008 14:00:47 +0900, Yosuke Iwamatsu wrote:

>Jun Kamada wrote:
>> Hi Iwamatsu-san,
>> 
>> The pvSCSI driver provides virtualized SCSI tree to guest domains. 
>> (You can specify arbitrary IDs (Host:Channel:Target:Lun) mapping 
>> between Dom0 and the guests.)
>> 
>> In addition to that, some SCSI commands, for example REPORT_LUN, may 
>> be emulated on backend driver but simply passthroughed to physical
>> device.
>> 
>> So, class name 'VSCSI' is appropriate, in my personal opinion.
>
>The guest sees a virtualized scsi host, a virtualized scsi tree but
>endpoint devices (luns) themselves are not virtualized, right?
>I'm under an impression that pvscsi is similer to pass-through pci
>and 'V' prefix is not appropriate for these half-virtualized,
>half-physical devices.
>
>Below is my idea of naming xen-api classes:
>a. If the device is trully virtualized, give 'V' prefix (VIF, VBD etc).
>    For example, a VIF has virtual mac address, virtual vendor name
>    and virtual device name and the guest see nothing about physical nic
>    devices. Actually, it is possible to create VIF devices even if the
>    host doesn't have physical network devices.
>b. If the device is half-virtualized, give 'D' prefix.
>    When using pass-through pci, host controllers, device trees, config
>    spaces might be virtualized but the guest see physical device
>    information like device id and vendor id, and directly access to
>    registers. The host, of course, has to have physical devices and
>    the device will be occupied while it is used by a guest.
>
>I don't know details about pvscsi, but perphaps we had better
>categorize it as b.
>
>Thanks,
>-- Yosuke
>
>> 
>> Best regards,
>> 
>> 
>> On Fri, 05 Sep 2008 17:52:42 +0900
>> Yosuke Iwamatsu <y-iwamatsu@ab.jp.nec.com> wrote:
>> 
>>> Hi,
>>>
>>> Masaki Kanno wrote:
>>>> Hi,
>>>>
>>>> I would like to enhance XenAPI for pvSCSI. 
>>>> At the beginning, I updated only the document of XenAPI.  I'm going 
>>>> to implement XenAPI of pvSCSI along the document.  Could you comment?
>>>>
>>>> The following classes and RPCs are added by the enhancement. 
>>>>  Classes:
>>>>   - VSCSI class
>>>>      This is a class for virtual SCSI devices.
>>> It's nice to keep xen-api updated with new features :-)
>>> One thing I want to point out is about the class name.
>>> I think 'DSCSI' (direct scsi) is appropriate rather than 'VSCSI',
>>> because pvSCSI driver doesn't really provide virtual scsi luns but
>>> passes through scsi commands to real scsi luns, as far as I understand.
>>>
>>> Regards,
>>> -- Yosuke Iwamatsu
>>>
>>>>   - PSCSI class
>>>>      This is a class for physical SCSI devices.
>>>>
>>>>  RPCs:
>>>>   - VSCSI class
>>>>    -- get_all
>>>>        A list of all VSCSIs known to the system is gotten.
>>>>    -- get_uuid
>>>>        An UUID of the VSCSI is gotten.
>>>>    -- get_VM
>>>>        A VM ref of the VSCSI is gotten.
>>>>    -- get_PSCSI
>>>>        A PSCSI ref of the VSCSI is gotten.
>>>>    -- get_virtual_host
>>>>        A virtual host number of the VSCSI is gotten.
>>>>    -- get_virtual_channel
>>>>        A virtual channel number of the VSCSI is gotten.
>>>>    -- get_virtual_target
>>>>        A virtual target number of the VSCSI is gotten.
>>>>    -- get_virtual_lun
>>>>        A virtual logical unit number of the VSCSI is gotten.
>>>>    -- get_virtual_HCTL
>>>>        A virtual HCTL (string of "<host>:<channel>:<target>:<lun>") 
>>>>        of the VSCSI is gotten.
>>>>    -- create
>>>>        A new VSCSI instance is created.
>>>>    -- destroy
>>>>        The VSCSI instance is destroyed.
>>>>    -- get_by_uuid
>>>>        A VSCSI ref of the UUID is gotten.
>>>>    -- get_record
>>>>        A VSCSI record of the VSCSI is gotten.
>>>>
>>>>   - PSCSI class
>>>>    -- get_all
>>>>        A list of all PSCSIs known to the system is gotten.
>>>>    -- get_uuid
>>>>        An UUID of the PSCSI is gotten.
>>>>    -- get_host
>>>>        A host ref of the PSCSI is gotten.
>>>>    -- get_physical_host
>>>>        A physical host number of the PSCSI is gotten.
>>>>    -- get_physical_channel
>>>>        A physical channel number of the PSCSI is gotten.
>>>>    -- get_physical_target
>>>>        A physical target number of the PSCSI is gotten.
>>>>    -- get_physical_lun
>>>>        A physical logical unit number of the PSCSI is gotten.
>>>>    -- get_physical_HCTL
>>>>        A physical HCTL (string of "<host>:<channel>:<target>:<lun>") 
>>>>        of the PSCSI is gotten.
>>>>    -- get_vendor_name
>>>>        A vendor name of the PSCSI is gotten.
>>>>    -- get_model
>>>>        A model name of the PSCSI is gotten.
>>>>    -- get_type_id
>>>>        An ID of device types of the PSCSI is gotten. (If disk, the ID 
>>>>        is 0.  If tape, the ID is 1.)
>>>>    -- get_type
>>>>        A device type string of the PSCSI is gotten.
>>>>    -- get_sg_name
>>>>        A SCSI generic (sg) device name of the PSCSI is gotten.
>>>>    -- get_revision
>>>>        A revision string of the PSCSI is gotten.
>>>>    -- get_scsi_id
>>>>        A SCSI ID string of the PSCSI is gotten. The string is a result 
>>>>        of 'scsi_id -gu -s'.
>>>>    -- get_scsi_level
>>>>        A SCSI level of the PSCSI is gotten.
>>>>    -- get_by_uuid
>>>>        A PSCSI ref of the UUID is gotten.
>>>>    -- get_record
>>>>        A PSCSI record of the PSCSI is gotten.
>>>>
>>>>   - VM class
>>>>    -- get_VSCSIs
>>>>        VSCSI refs of the VM are gotten.
>>>>
>>>>   - host class
>>>>    -- get_PSCSIs
>>>>        PSCSI refs of the host are gotten.
>>>>
>>>>
>>>> Signed-off-by: Masaki Kanno <kanno.masaki@jp.fujitsu.com>
>>>>
>>>> Best regards,
>>>>  Kan
>>>>
>>>>
>>>> ------------------------------------------------------------------------
>>>>
>>>> _______________________________________________
>>>> Xen-devel mailing list
>>>> Xen-devel@lists.xensource.com
>>>> http://lists.xensource.com/xen-devel
>>>
>>>
>>> _______________________________________________
>>> Xen-devel mailing list
>>> Xen-devel@lists.xensource.com
>>> http://lists.xensource.com/xen-devel
>> 
>> 
>> -----
>> Jun Kamada
>> Linux Software Development Div.
>> Server Systems Unit
>> Fujitsu Ltd.
>> kama@jp.fujitsu.com
>> 
>> 
>
>
>_______________________________________________
>Xen-devel mailing list
>Xen-devel@lists.xensource.com
>http://lists.xensource.com/xen-devel

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2008-09-08 11:47 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-09-03  6:57 [RFC][PATCH] Enhance XenAPI for pvSCSI Masaki Kanno
2008-09-05  8:52 ` Yosuke Iwamatsu
2008-09-08  2:31   ` Jun Kamada
     [not found]     ` <20080908112241.8179.EB2C8575-+CUm20s59erQFUHtdCDX3A@public.gmane.org>
2008-09-08  5:00       ` [Xen-devel] " Yosuke Iwamatsu
2008-09-08 11:47         ` Masaki Kanno
2008-09-08  5:03   ` Masaki Kanno
2008-09-08  7:47     ` Masaki Kanno

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.