Loading...
Searching...
No Matches
nvme_ocssd_spec.h File Reference

Open-Channel specification definitions. More...

Data Structures

struct  spdk_ocssd_dev_lba_fmt
 
struct  spdk_ocssd_geometry_data
 
struct  spdk_ocssd_chunk_information_entry
 
struct  spdk_ocssd_chunk_notification_entry
 
struct  spdk_ocssd_vector_cpl
 Vector completion queue entry. More...
 

Macros

#define SPDK_NVME_OCSSD_MAX_LBAL_ENTRIES   64
 A maximum number of LBAs that can be issued by vector I/O commands.
 
#define SPDK_OCSSD_IO_FLAGS_LIMITED_RETRY   (1U << 31)
 

Enumerations

enum  spdk_ocssd_admin_opcode { SPDK_OCSSD_OPC_GEOMETRY = 0xE2 }
 OCSSD admin command set opcodes.
 
enum  spdk_ocssd_io_opcode { SPDK_OCSSD_OPC_VECTOR_RESET = 0x90 , SPDK_OCSSD_OPC_VECTOR_WRITE = 0x91 , SPDK_OCSSD_OPC_VECTOR_READ = 0x92 , SPDK_OCSSD_OPC_VECTOR_COPY = 0x93 }
 OCSSD I/O command set opcodes.
 
enum  spdk_ocssd_log_page { SPDK_OCSSD_LOG_CHUNK_INFO = 0xCA , SPDK_OCSSD_LOG_CHUNK_NOTIFICATION = 0xD0 }
 Log page identifiers for SPDK_NVME_OPC_GET_LOG_PAGE. More...
 
enum  spdk_ocssd_feat { SPDK_OCSSD_FEAT_MEDIA_FEEDBACK = 0xCA }
 OCSSD feature identifiers Defines OCSSD specific features that may be configured with Set Features and retrieved with Get Features. More...
 
enum  spdk_ocssd_media_error_status_code {
  SPDK_OCSSD_SC_OFFLINE_CHUNK = 0xC0 , SPDK_OCSSD_SC_INVALID_RESET = 0xC1 , SPDK_OCSSD_SC_WRITE_FAIL_WRITE_NEXT_UNIT = 0xF0 , SPDK_OCSSD_SC_WRITE_FAIL_CHUNK_EARLY_CLOSE = 0xF1 ,
  SPDK_OCSSD_SC_OUT_OF_ORDER_WRITE = 0xF2 , SPDK_OCSSD_SC_READ_HIGH_ECC = 0xD0
}
 OCSSD media error status codes extension. More...
 

Functions

 SPDK_STATIC_ASSERT (sizeof(struct spdk_ocssd_dev_lba_fmt)==8, "Incorrect size")
 
 SPDK_STATIC_ASSERT (sizeof(struct spdk_ocssd_geometry_data)==4096, "Incorrect size")
 
 SPDK_STATIC_ASSERT (sizeof(struct spdk_ocssd_chunk_information_entry)==32, "Incorrect size")
 
 SPDK_STATIC_ASSERT (sizeof(struct spdk_ocssd_chunk_notification_entry)==64, "Incorrect size")
 
 SPDK_STATIC_ASSERT (sizeof(struct spdk_ocssd_vector_cpl)==16, "Incorrect size")
 

Detailed Description

Open-Channel specification definitions.

Enumeration Type Documentation

◆ spdk_ocssd_feat

OCSSD feature identifiers Defines OCSSD specific features that may be configured with Set Features and retrieved with Get Features.

Enumerator
SPDK_OCSSD_FEAT_MEDIA_FEEDBACK 

Media Feedback feature identifier.

◆ spdk_ocssd_log_page

Log page identifiers for SPDK_NVME_OPC_GET_LOG_PAGE.

Enumerator
SPDK_OCSSD_LOG_CHUNK_INFO 

Chunk Information.

SPDK_OCSSD_LOG_CHUNK_NOTIFICATION 

Chunk Notification Log.

◆ spdk_ocssd_media_error_status_code

OCSSD media error status codes extension.

Additional error codes for status code type “2h” (media errors)

Enumerator
SPDK_OCSSD_SC_OFFLINE_CHUNK 

The chunk was either marked offline by the reset or the state of the chunk is already offline.

SPDK_OCSSD_SC_INVALID_RESET 

Invalid reset if chunk state is either “Free” or “Open”

SPDK_OCSSD_SC_WRITE_FAIL_WRITE_NEXT_UNIT 

Write failed, chunk remains open.

Host should proceed to write to next write unit.

SPDK_OCSSD_SC_WRITE_FAIL_CHUNK_EARLY_CLOSE 

The writes ended prematurely.

The chunk state is set to closed. The host can read up to the value of the write pointer.

SPDK_OCSSD_SC_OUT_OF_ORDER_WRITE 

The write corresponds to a write out of order within an open chunk or the write is to a closed or offline chunk.

SPDK_OCSSD_SC_READ_HIGH_ECC 

The data retrieved is nearing its limit for reading.

The limit is vendor specific, and only provides a hint to the host that should refresh its data in the future.