From 2ccb8385b7756e2675f687a04c17b5f10cd54737 Mon Sep 17 00:00:00 2001 From: Alexander Indenbaum Date: Wed, 26 Nov 2025 14:28:51 +0200 Subject: [PATCH] mgr/cephadm: add rbd_with_crc32c parameter to nvmeof service spec Signed-off-by: Alexander Indenbaum --- .../cephadm/templates/services/nvmeof/ceph-nvmeof.conf.j2 | 1 + src/pybind/mgr/cephadm/tests/test_services.py | 1 + src/python-common/ceph/deployment/service_spec.py | 5 +++++ 3 files changed, 7 insertions(+) diff --git a/src/pybind/mgr/cephadm/templates/services/nvmeof/ceph-nvmeof.conf.j2 b/src/pybind/mgr/cephadm/templates/services/nvmeof/ceph-nvmeof.conf.j2 index 8264894ceb662..2a0293998f9a8 100644 --- a/src/pybind/mgr/cephadm/templates/services/nvmeof/ceph-nvmeof.conf.j2 +++ b/src/pybind/mgr/cephadm/templates/services/nvmeof/ceph-nvmeof.conf.j2 @@ -113,6 +113,7 @@ transports = {{ spec.transports }} transport_tcp_options = {{ transport_tcp_options }} {% endif %} enable_dsa_acceleration = {{ spec.enable_dsa_acceleration }} +rbd_with_crc32c = {{ spec.rbd_with_crc32c }} {% if spec.tgt_cmd_extra_args %} tgt_cmd_extra_args = {{ spec.tgt_cmd_extra_args }} {% endif %} diff --git a/src/pybind/mgr/cephadm/tests/test_services.py b/src/pybind/mgr/cephadm/tests/test_services.py index 844b2e49064cc..efa9b99c28f75 100644 --- a/src/pybind/mgr/cephadm/tests/test_services.py +++ b/src/pybind/mgr/cephadm/tests/test_services.py @@ -538,6 +538,7 @@ conn_retries = 10 transports = tcp transport_tcp_options = {{"in_capsule_data_size": 8192, "max_io_qpairs_per_ctrlr": 7}} enable_dsa_acceleration = False +rbd_with_crc32c = False tgt_cmd_extra_args = {tgt_cmd_extra_args} qos_timeslice_in_usecs = 0 notifications_interval = 60 diff --git a/src/python-common/ceph/deployment/service_spec.py b/src/python-common/ceph/deployment/service_spec.py index b773a17d12cf7..b1f46d83ee462 100644 --- a/src/python-common/ceph/deployment/service_spec.py +++ b/src/python-common/ceph/deployment/service_spec.py @@ -1713,6 +1713,7 @@ class NvmeofServiceSpec(ServiceSpec): transport_tcp_options: Optional[Dict[str, int]] = {"in_capsule_data_size": 8192, "max_io_qpairs_per_ctrlr": 7}, enable_dsa_acceleration: bool = False, + rbd_with_crc32c: bool = False, tgt_cmd_extra_args: Optional[str] = None, iobuf_options: Optional[Dict[str, int]] = None, qos_timeslice_in_usecs: Optional[int] = 0, @@ -1905,6 +1906,8 @@ class NvmeofServiceSpec(ServiceSpec): self.transport_tcp_options: Optional[Dict[str, int]] = transport_tcp_options #: ``enable_dsa_acceleration`` enable dsa acceleration self.enable_dsa_acceleration = enable_dsa_acceleration + #: ``rbd_with_crc32c`` enable RBD CRC32C checksum reuse optimization + self.rbd_with_crc32c = rbd_with_crc32c #: ``tgt_cmd_extra_args`` extra arguments for the nvmf_tgt process self.tgt_cmd_extra_args = tgt_cmd_extra_args #: List of extra arguments for SPDK iobuf in the form opt=value @@ -2099,6 +2102,8 @@ class NvmeofServiceSpec(ServiceSpec): verify_boolean(self.log_files_rotation_enabled, "Log files rotation enabled") verify_boolean(self.verbose_log_messages, "Verbose log messages") verify_boolean(self.enable_monitor_client, "Enable monitor client") + verify_boolean(self.enable_dsa_acceleration, "Enable DSA acceleration") + verify_boolean(self.rbd_with_crc32c, "Enable RBD CRC32C checksum reuse") verify_positive_int(self.spdk_mem_size, "SPDK memory size") verify_positive_int(self.spdk_huge_pages, "SPDK huge pages count") if self.spdk_mem_size and self.spdk_huge_pages: -- 2.39.5