}
mask |= CEPH_FEATURE_OSD_PRIMARY_AFFINITY;
+ if (entity_type == CEPH_ENTITY_TYPE_OSD) {
+ const uint64_t jewel_features = CEPH_FEATURE_SERVER_JEWEL;
+ if (test_flag(CEPH_OSDMAP_REQUIRE_JEWEL)) {
+ features |= jewel_features;
+ }
+ mask |= jewel_features;
+
+ const uint64_t kraken_features = CEPH_FEATURE_SERVER_KRAKEN
+ | CEPH_FEATURE_MSG_ADDR2;
+ if (test_flag(CEPH_OSDMAP_REQUIRE_KRAKEN)) {
+ features |= kraken_features;
+ }
+ mask |= kraken_features;
+ }
+
if (pmask)
*pmask = mask;
return features;