xref: /spdk/deprecation.md (revision f19c5a5862554f152f30f34316338858bd53e8eb)
1# Deprecation
2
3## ABI and API Deprecation
4
5This document details the policy for maintaining stability of SPDK ABI and API.
6
7Major ABI version can change at most once for each SPDK release.
8ABI versions are managed separately for each library and follow [Semantic Versioning](https://semver.org/).
9
10API and ABI deprecation notices shall be posted in the next section.
11Each entry must describe what will be removed and can suggest the future use or alternative.
12Specific future SPDK release for the removal must be provided.
13ABI cannot be removed without providing deprecation notice for at least single SPDK release.
14
15Deprecated code paths must be registered with `SPDK_DEPRECATION_REGISTER()` and logged with
16`SPDK_LOG_DEPRECATED()`. The tag used with these macros will appear in the SPDK
17log at the warn level when `SPDK_LOG_DEPRECATED()` is called, subject to rate limits.
18The tags can be matched with the level 4 headers below.
19
20## Deprecation Notices
21
22### accel
23
24#### `accel_flags`
25
26The `int flags` parameter in various *submit* and *append* accel FW API is not used and deprecated. It will be removed
27in 24.05 release.
28
29### nvme
30
31#### `spdk_nvme_ctrlr_opts.psk`
32
33Passing NVMe/TLS pre-shared keys via `spdk_nvme_ctrlr_opts.psk` is deprecated and this field will be
34removed in the v24.09 release.  Instead, a key obtained from the keyring library should be passed
35in `spdk_nvme_ctrlr_opts.tls_psk`.
36
37### util
38
39#### `spdk_iov_one`
40
41The function is deprecated and will be removed in 24.05 release. Please use `SPDK_IOV_ONE`
42macro instead.
43
44### init
45
46#### `spdk_subsystem_init_from_json_config`
47
48The function is deprecated and will be removed in 24.09 release. Please use
49`spdk_subsystem_load_config` instead.
50
51### nvmf
52
53#### `spdk_nvmf_qpair_disconnect`
54
55Parameters `cb_fn` and `ctx` of `spdk_nvmf_qpair_disconnect` API are deprecated. These parameters
56will be removed in 24.05 release.
57
58#### `spdk_nvmf_request_exec_fabrics`
59
60This function is deprecated and will be removed in the 24.09 release.  Instead, users should use
61`spdk_nvmf_request_exec()`, which now allows all transports (both fabrics and non-fabrics) to
62execute fabrics commands.
63
64#### `nvmf_get_subsystems`
65
66`transport` field in `listen_addresses` of `nvmf_get_subsystems` RPC is deprecated.
67`trtype` field should be used instead. `transport` field will be removed in 24.05 release.
68
69#### `spdk_nvmf_subsytem_any_listener_allowed`
70
71The function is deprecated and will be removed in 24.05 release. Please use
72`spdk_nvmf_subsystem_any_listener_allowed` instead.
73
74#### `nvmf_subsystem_add_host`
75
76The ability to specifying path to a PSK file via the `psk` parameter in `nvmf_subsystem_add_host` is
77deprecated and will be removed in the v24.09 release.  Instead, the name of a key attached to the
78keyring should be used.
79
80### gpt
81
82#### `old_gpt_guid`
83
84Deprecated the SPDK partition type GUID `7c5222bd-8f5d-4087-9c00-bf9843c7b58c`. Partitions of this
85type have bdevs created that are one block less than the actual size of the partition. Existing
86partitions using the deprecated GUID can continue to use that GUID; support for the deprecated GUID
87will remain in SPDK indefinitely, and will continue to exhibit the off-by-one bug so that on-disk
88metadata layouts based on the incorrect size are not affected.
89
90See GitHub issue [2801](https://github.com/spdk/spdk/issues/2801) for additional details on the bug.
91
92New SPDK partition types should use GUID `6527994e-2c5a-4eec-9613-8f5944074e8b` which will create
93a bdev of the correct size.
94
95### lvol
96
97#### `vbdev_lvol_rpc_req_size`
98
99Param `size` in rpc commands `rpc_bdev_lvol_create` and `rpc_bdev_lvol_resize` is deprecated and
100replace by `size_in_mib`.
101
102See GitHub issue [2346](https://github.com/spdk/spdk/issues/2346) for additional details.
103
104### rpc
105
106#### `spdk_rpc_listen` `spdk_rpc_accept` `spdk_rpc_close`
107
108These functions are deprecated and will be removed in 24.09 release. Please use
109`spdk_rpc_server_listen`, `spdk_rpc_server_accept` and `spdk_rpc_server_close` instead.
110