Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

types: Add NVMe 2.1 feature ID definitions #938

Merged
merged 3 commits into from
Jan 7, 2025
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
47 changes: 43 additions & 4 deletions src/nvme/types.h
Original file line number Diff line number Diff line change
Expand Up @@ -7990,19 +7990,28 @@ static inline __u32 nvme_status_equals(int status, enum nvme_status_type type,
* @nvme_admin_fabric_zoning_recv: Fabric Zoning Receive
* @nvme_admin_lockdown: Lockdown
* @nvme_admin_fabric_zoning_lookup: Fabric Zoning Lookup
* @nvme_admin_clear_export_nvm_res: Clear Exported NVM Resource Configuration
* @nvme_admin_fabric_zoning_send: Fabric Zoning Send
* @nvme_admin_dbbuf: Doorbell Buffer Config
* @nvme_admin_create_export_nvms: Create Exported NVM Subsystem
* @nvme_admin_manage_export_nvms: Manage Exported NVM Subsystem
* @nvme_admin_manage_export_ns: Manage Exported Namespace
* @nvme_admin_manage_export_port: Manage Exported Port
* @nvme_admin_send_disc_log_page: Send Discovery Log Page
* @nvme_admin_track_send: Track Send
* @nvme_admin_track_receive: Track Receive
* @nvme_admin_migration_send: Migration Send
* @nvme_admin_migration_receive: Migration Receive
* @nvme_admin_ctrl_data_queue: Controller Data Queue
* @nvme_admin_dbbuf: Doorbell Buffer Config
* @nvme_admin_fabrics: Fabrics Commands
* @nvme_admin_format_nvm: Format NVM
* @nvme_admin_security_send: Security Send
* @nvme_admin_security_recv: Security Receive
* @nvme_admin_sanitize_nvm: Sanitize
* @nvme_admin_load_program: Load Program
* @nvme_admin_get_lba_status: Get LBA Status
* @nvme_admin_program_act_mgmt: Program Activation Management
* @nvme_admin_mem_range_set_mgmt: Memory Range Set Management
*/
enum nvme_admin_opcode {
nvme_admin_delete_sq = 0x00,
Expand Down Expand Up @@ -8032,7 +8041,13 @@ enum nvme_admin_opcode {
nvme_admin_fabric_zoning_recv = 0x22,
nvme_admin_lockdown = 0x24,
nvme_admin_fabric_zoning_lookup = 0x25,
nvme_admin_clear_export_nvm_res = 0x28,
nvme_admin_fabric_zoning_send = 0x29,
nvme_admin_create_export_nvms = 0x2a,
nvme_admin_manage_export_nvms = 0x2d,
nvme_admin_manage_export_ns = 0x31,
nvme_admin_manage_export_port = 0x35,
nvme_admin_send_disc_log_page = 0x39,
nvme_admin_track_send = 0x3d,
nvme_admin_track_receive = 0x3e,
nvme_admin_migration_send = 0x41,
Expand All @@ -8044,7 +8059,10 @@ enum nvme_admin_opcode {
nvme_admin_security_send = 0x81,
nvme_admin_security_recv = 0x82,
nvme_admin_sanitize_nvm = 0x84,
nvme_admin_load_program = 0x85,
nvme_admin_get_lba_status = 0x86,
nvme_admin_program_act_mgmt = 0x88,
nvme_admin_mem_range_set_mgmt = 0x89,
};

/**
Expand Down Expand Up @@ -8085,7 +8103,11 @@ enum nvme_admin_opcode {
* ID list
* @NVME_IDENTIFY_CNS_CSI_ID_NS_DATA_STRUCTURE: I/O Command Set specific ID Namespace
* Data Structure for Allocated Namespace ID
* @NVME_IDENTIFY_CNS_COMMAND_SET_STRUCTURE: Base Specification 2.0a section 5.17.2.21
* @NVME_IDENTIFY_CNS_COMMAND_SET_STRUCTURE: I/O Command Set data structure
* @NVME_IDENTIFY_CNS_UNDERLYING_NS_LIST: Get Underlying Namespace List
* @NVME_IDENTIFY_CNS_PORTS_LIST: Get Ports List
* @NVME_IDENTIFY_CNS_IOCS_IND_ID_ALLOC_NS: I/O Command Set Independent Identify Namespace data
* structure for the specified allocated NSID
* @NVME_IDENTIFY_CNS_SUPPORTED_CTRL_STATE_FORMATS: Supported Controller State Formats
* identifying the supported NVMe Controller
* State data structures
Expand Down Expand Up @@ -8115,6 +8137,9 @@ enum nvme_identify_cns {
NVME_IDENTIFY_CNS_CSI_ALLOCATED_NS_LIST = 0x1A,
NVME_IDENTIFY_CNS_CSI_ID_NS_DATA_STRUCTURE = 0x1B,
NVME_IDENTIFY_CNS_COMMAND_SET_STRUCTURE = 0x1C,
NVME_IDENTIFY_CNS_UNDERLYING_NS_LIST = 0x1D,
NVME_IDENTIFY_CNS_PORTS_LIST = 0x1E,
NVME_IDENTIFY_CNS_IOCS_IND_ID_ALLOC_NS = 0x1F,
NVME_IDENTIFY_CNS_SUPPORTED_CTRL_STATE_FORMATS = 0x20,
};

Expand Down Expand Up @@ -8228,13 +8253,19 @@ enum nvme_cmd_get_log_lid {
* @NVME_FEAT_FID_PLM_WINDOW: Predictable Latency Mode Window
* @NVME_FEAT_FID_LBA_STS_INTERVAL: LBA Status Information Report Interval
* @NVME_FEAT_FID_HOST_BEHAVIOR: Host Behavior Support
* @NVME_FEAT_FID_SANITIZE: Endurance Group Event Configuration
* @NVME_FEAT_FID_SANITIZE: Sanitize Config
* @NVME_FEAT_FID_ENDURANCE_EVT_CFG: Endurance Group Event Configuration
* @NVME_FEAT_FID_IOCS_PROFILE: I/O Command Set Profile
* @NVME_FEAT_FID_SPINUP_CONTROL: Spinup Control
* @NVME_FEAT_FID_POWER_LOSS_SIGNAL: Power Loss Signaling Config
* @NVME_FEAT_FID_PERF_CHARACTERISTICS: Performance Characteristics
* @NVME_FEAT_FID_FDP: Flexible Data Placement
* @NVME_FEAT_FID_FDP_EVENTS: FDP Events
* @NVME_FEAT_FID_NS_ADMIN_LABEL: Namespace Admin Label
* @NVME_FEAT_FID_KEY_VALUE: Key Value Configuration
* @NVME_FEAT_FID_CTRL_DATA_QUEUE: Controller Data Queue
* @NVME_FEAT_FID_EMB_MGMT_CTRL_ADDR: Embedded Management Controller Address
* @NVME_FEAT_FID_HOST_MGMT_AGENT_ADDR: Host Management Agent Address
* @NVME_FEAT_FID_ENH_CTRL_METADATA: Enhanced Controller Metadata
* @NVME_FEAT_FID_CTRL_METADATA: Controller Metadata
* @NVME_FEAT_FID_NS_METADATA: Namespace Metadata
Expand All @@ -8243,6 +8274,7 @@ enum nvme_cmd_get_log_lid {
* @NVME_FEAT_FID_RESV_MASK: Reservation Notification Mask
* @NVME_FEAT_FID_RESV_PERSIST: Reservation Persistence
* @NVME_FEAT_FID_WRITE_PROTECT: Namespace Write Protection Config
* @NVME_FEAT_FID_BP_WRITE_PROTECT: Boot Partition Write Protection Config
*/
enum nvme_features_id {
NVME_FEAT_FID_ARBITRATION = 0x01,
Expand All @@ -8269,11 +8301,17 @@ enum nvme_features_id {
NVME_FEAT_FID_HOST_BEHAVIOR = 0x16,
NVME_FEAT_FID_SANITIZE = 0x17,
NVME_FEAT_FID_ENDURANCE_EVT_CFG = 0x18,
NVME_FEAT_FID_IOCS_PROFILE = 0x19, /* XXX: Placeholder until assigned */
NVME_FEAT_FID_IOCS_PROFILE = 0x19,
NVME_FEAT_FID_SPINUP_CONTROL = 0x1a,
NVME_FEAT_FID_POWER_LOSS_SIGNAL = 0x1b,
NVME_FEAT_FID_PERF_CHARACTERISTICS = 0x1c,
NVME_FEAT_FID_FDP = 0x1d,
NVME_FEAT_FID_FDP_EVENTS = 0x1e,
NVME_FEAT_FID_NS_ADMIN_LABEL = 0x1f,
NVME_FEAT_FID_KEY_VALUE = 0x20,
NVME_FEAT_FID_CTRL_DATA_QUEUE = 0x21,
NVME_FEAT_FID_EMB_MGMT_CTRL_ADDR = 0x78,
NVME_FEAT_FID_HOST_MGMT_AGENT_ADDR = 0x79,
NVME_FEAT_FID_ENH_CTRL_METADATA = 0x7d,
NVME_FEAT_FID_CTRL_METADATA = 0x7e,
NVME_FEAT_FID_NS_METADATA = 0x7f,
Expand All @@ -8282,6 +8320,7 @@ enum nvme_features_id {
NVME_FEAT_FID_RESV_MASK = 0x82,
NVME_FEAT_FID_RESV_PERSIST = 0x83,
NVME_FEAT_FID_WRITE_PROTECT = 0x84,
NVME_FEAT_FID_BP_WRITE_PROTECT = 0x85,
};

/**
Expand Down
Loading