[PATCH] virtio-scsi: define VIRTIO_SCSI_F_FC_HOST

From
Paolo Bonzini
Date
2016-11-30T21:22:00+00:00
ID
Thread
[PATCH] virtio-scsi: define VIRTIO_SCSI_F_FC_HOST
Add a new feature and the related configuration fields.  Signed-off-by: Paolo Bonzini <> ---  content.tex
28 ++++++++++++++++++++++++++++  1 file changed, 28 insertions(+)  diff --git a/content.tex b/content.tex index ab3d7b4..5949c50 100644 --- a/content.tex +++ b/content.tex @@ -5095,6 +5095,12 @@ This section relies on definitions from hyperref[intro:SAM]{SAM}.
item[VIRTIO_SCSI_F_T10_PI (3)] The extended fields for T10 protection
information (DIF/DIX) are included in the SCSI request header. + +item[VIRTIO_SCSI_F_FC_HOST (4)] The host reports the Fibre Channel +
WWNN and WWPN information for the adapter in configuration space. +
After negotiating this feature, the guest SHOULD handle configuration +
change interrupts to detect a switch from primary WWNN and WWPN +
to secondary, or vice versa.  end{description}
subsection{Device configuration layout}label{sec:Device Types / SCSI Host Device / Device configuration layout} @@ -5113,6 +5119,11 @@ struct virtio_scsi_config {
le16 max_channel;
le16 max_target;
le32 max_lun; +
u8
primary_wwpn[8]; +
u8
primary_wwnn[8]; +
u8
secondary_wwpn[8]; +
u8
secondary_wwnn[8]; +
u8
primary_active;  };  end{lstlisting}
@@ -5158,6 +5169,20 @@ struct virtio_scsi_config {
or equal to the value of the fields.  field{max_channel} SHOULD
be zero.  field{max_target} SHOULD be less than or equal to 255.
field{max_lun} SHOULD be less than or equal to 16383. + +item[field{primary_wwpn}, field{primary_wwnn}, field{secondary_wwpn} +
and field{secondary_wwnn}] are only valid if VIRTIO_SCSI_F_FC_HOST +
have been negotiated.  They provide two pairs of Fibre Channel +
addresses, each consisting of a World Wide Port Name and a World +
Wide Node Name.  One of the pairs is the active one. + +item[field{primary_active}] is also only valid if VIRTIO_SCSI_F_FC_HOST +
is negatiated.  If 1, the active Fibre Channel address is the primary; +
if 0, the active Fibre Channel address is the secondary.  This field +
MAY change whenever the device triggers a configuration change +
interruptfootnote{Usually, the value of field{primary_active} will +
flip from 0 to 1 and back on virtual machine migration.  This avoids +
that two hosts use the same WWNN and WWPN at the same time.}.  end{description}
drivernormative{subsubsection}{Device configuration layout}{Device Types / SCSI Host Device / Device configuration layout} @@ -5174,6 +5199,9 @@ linked commands to one LUN.  On reset, the device MUST set field{sense_size} to 96 and  field{cdb_size} to 32.
+Fields other than field{primary_active} MUST NOT change whenever a +device triggers a configuration change interrupt. +  subsubsection{Legacy Interface: Device configuration layout}label{sec:Device Types / SCSI Host Device / Device configuration layout / Legacy Interface: Device configuration layout}  When using the legacy interface, transitional devices and drivers  MUST format the fields in struct virtio_scsi_config --  2.9.3