History log of /freebsd-current/sys/dev/nvmf/nvmf_proto.h
Revision Date Author Comments
# 1d425ef3 06-May-2024 John Baldwin <jhb@FreeBSD.org>

nvmf: Add explicit alignment for struct nvmf_fabric_cmd

This avoids -Wcast-align warnings from clang when upcasting from
struct nvmf_fabric_cmd to struct nvmf_fabric_prop_set_cmd.

Reported by: bapt
Sponsored by: Chelsio Communications


# e75a79f4 06-May-2024 John Baldwin <jhb@FreeBSD.org>

nvmf: Remove packing pragmas from nvmf_proto.h

The protocol structures do not need explicit packing and static
assertions verify the size of all the structures as well as the
offsets of several key fields. The pragma triggers warnings when
building with GCC.

Sponsored by: Chelsio Communications


# 52d5738d 02-May-2024 John Baldwin <jhb@FreeBSD.org>

nvmf_proto.h: Add additional types and constants from the 1.1 spec

- Add opcode, command structure, and new error code for Disconnect
fabrics opcode.

- Add a generic struct nvmf_fabric_command.

- Add constants for special controller ID values.

- Add constants for the cattr field in the Connect command and the
default value for the kato field in the Connect command.

- Add constants for the offset of controller properties (Fabrics
version of controller registers).

Reviewed by: imp
Sponsored by: Chelsio Communications
Differential Revision: https://reviews.freebsd.org/D44705


# 878d102a 02-May-2024 John Baldwin <jhb@FreeBSD.org>

nvmf_proto.h: Update for use in FreeBSD

- Replace SPDK_STATIC_ASSERT with _Static_assert.

- Remove SPDK_ and spdk_ prefixes from types and constants.

- Switch to using FreeBSD headers, e.g. <dev/nvme/nvme.h> in place of
"spdk/nvme_spec.h".

- Add a definition of NVME_NQN_FIELD_SIZE (from SPDK's nvme_spec.h).

- Remove constant for the fabrics opcode as this is already present in
<dev/nvme/nvme.h>.

- Use types from <dev/nvme/nvme.h> for NVMe structures including
struct nvme_sgl_descriptor, struct nvme_command, and
struct nvme_completion.

- Use plain uint16_t in place of struct spdk_nvme_status.

Reviewed by: imp
Sponsored by: Chelsio Communications
Differential Revision: https://reviews.freebsd.org/D44704


# f2e737683 02-May-2024 John Baldwin <jhb@FreeBSD.org>

nvmf_proto.h: NVMe over Fabrics protocol definitions

This is a copy of spdk/include/spdk/nvmf_spec.h as of commit
470e851852bb948334a272c9f8de495020fa082f from Intel's SPDK.
Subsequent commits will modify it to be suitable header for the
kernel, but importing the stock file first makes it easier to see
how the resulting header is derived from the original.

Reviewed by: imp
Obtained from: SPDK (https://github.com/spdk/spdk.git)
Sponsored by: Chelsio Communications
Differential Revision: https://reviews.freebsd.org/D44703