Implement protocol-level checksums (xxhash3)

This commit is contained in:
Vitaliy Filippov
2026-04-27 15:24:44 +03:00
parent f9eb497105
commit ac5c753735
13 changed files with 196 additions and 61 deletions
+7 -1
View File
@@ -347,6 +347,12 @@ void osd_t::exec_show_config(osd_op_t *cur_op)
cl->check_sequencing = true;
cl->read_op_id = cur_op->req.hdr.id + 1;
}
auto features = json11::Json::object{ { "pg_locks", true } };
if (req_json["features"]["proto_checksums"].bool_value() && msgr.use_proto_checksums)
{
cl->proto_csum_status = MSGR_PEER_CSUM_IN;
features["proto_checksums"] = true;
}
// Expose sensitive configuration values so peers can check them
json11::Json::object wire_config = json11::Json::object {
{ "osd_num", osd_num },
@@ -359,7 +365,7 @@ void osd_t::exec_show_config(osd_op_t *cur_op)
{ "immediate_commit", (immediate_commit == IMMEDIATE_ALL ? "all" :
(immediate_commit == IMMEDIATE_SMALL ? "small" : "none")) },
{ "lease_timeout", etcd_report_interval+(st_cli.max_etcd_attempts*(2*st_cli.etcd_quick_timeout)+999)/1000 },
{ "features", json11::Json::object{ { "pg_locks", true } } },
{ "features", features },
};
#ifdef WITH_RDMA
if (msgr.is_rdma_enabled())