[PATCH 2/7] nvme-fabrics: sync FC-NVME header with standard updates

James Smart james.smart at broadcom.com
Mon Oct 3 23:26:58 PDT 2016


Sync FC-NVME header with standard updates

This patch contains the following 2 mods:
- Since the prior patch posting, transports were assigned a status
  code range to use (0xB0-0xBF). Updated codes to be in the range
- cmd_iu changed in T11. The 2 reserved words, previous at words
  2 and 3, were moved to after the sqe.

Signed-off-by: James Smart <james.smart at broadcom.com>
---
 include/linux/nvme-fc.h | 21 +++++++--------------
 1 file changed, 7 insertions(+), 14 deletions(-)

diff --git a/include/linux/nvme-fc.h b/include/linux/nvme-fc.h
index 99e9200..da877c2 100644
--- a/include/linux/nvme-fc.h
+++ b/include/linux/nvme-fc.h
@@ -38,11 +38,11 @@ struct nvme_fc_cmd_iu {
 	__be16			iu_len;
 	__u8			rsvd4[3];
 	__u8			flags;
-	__be32			rsvd8[2];
 	__be64			connection_id;
 	__be32			csn;
 	__be32			data_len;
 	struct nvme_command	sqe;
+	__be32			rsvd88[2];
 };
 
 #define NVME_FC_SIZEOF_ZEROS_RSP	12
@@ -265,30 +265,23 @@ struct fcnvme_ls_disconnect_acc {
 /*
  * FC Transport-specific error status values for NVME commands
  *
- * Need to incorporate into NVME Over Fabrics standard
- *
- * A request has been made to include transport-specific status values
- * into the standard but it is not yet complete/defined.
- *
- * For now, we will use a range within the Fabric values.  The range
- * will be 0xA0-0xBF, which is a reserved area in the fabric spec.
- * Currently, Only the values below have been defined within that range.
+ * Transport-specific status code values must be in the range 0xB0..0xBF
  */
 enum {
 	/* Generic FC failure - catchall */
-	NVME_SC_FC_TRANSPORT_ERROR	= 0x00A0,
+	NVME_SC_FC_TRANSPORT_ERROR	= 0x00B0,
 
 	/* I/O failure due to FC ABTS'd */
-	NVME_SC_FC_TRANSPORT_ABORTED	= 0x00A1,
+	NVME_SC_FC_TRANSPORT_ABORTED	= 0x00B1,
 
 	/* FC Transport Connection in error */
-	NVME_SC_FC_NO_CONNECTION	= 0x40A2,	/* not retryable */
+	NVME_SC_FC_NO_CONNECTION	= 0x40B2,	/* not retryable */
 
 	/* NVME Completion did not contain original CMDID */
-	NVME_SC_FC_CMDID_MISMATCH	= 0x00A3,
+	NVME_SC_FC_CMDID_MISMATCH	= 0x00B3,
 
 	/* IU format error */
-	NVME_SC_FC_FORMAT		= 0x00A4,
+	NVME_SC_FC_FORMAT		= 0x00B4,
 };
 
 
-- 
2.5.0





More information about the Linux-nvme mailing list