| 3239 | } |
| 3240 | |
| 3241 | uint64_t OSDMap::get_encoding_features() const |
| 3242 | { |
| 3243 | uint64_t f = SIGNIFICANT_FEATURES; |
| 3244 | if (require_osd_release < ceph_release_t::umbrella) { |
| 3245 | f &= ~CEPH_FEATURE_SERVER_UMBRELLA; |
| 3246 | } |
| 3247 | if (require_osd_release < ceph_release_t::tentacle) { |
| 3248 | f &= ~CEPH_FEATURE_SERVER_TENTACLE; |
| 3249 | } |
| 3250 | if (require_osd_release < ceph_release_t::reef) { |
| 3251 | f &= ~CEPH_FEATURE_SERVER_REEF; |
| 3252 | } |
| 3253 | if (require_osd_release < ceph_release_t::octopus) { |
| 3254 | f &= ~CEPH_FEATURE_SERVER_OCTOPUS; |
| 3255 | } |
| 3256 | if (require_osd_release < ceph_release_t::nautilus) { |
| 3257 | f &= ~CEPH_FEATURE_SERVER_NAUTILUS; |
| 3258 | } |
| 3259 | if (require_osd_release < ceph_release_t::mimic) { |
| 3260 | f &= ~CEPH_FEATURE_SERVER_MIMIC; |
| 3261 | } |
| 3262 | if (require_osd_release < ceph_release_t::luminous) { |
| 3263 | f &= ~(CEPH_FEATURE_SERVER_LUMINOUS | |
| 3264 | CEPH_FEATURE_CRUSH_CHOOSE_ARGS); |
| 3265 | } |
| 3266 | if (require_osd_release < ceph_release_t::kraken) { |
| 3267 | f &= ~(CEPH_FEATURE_SERVER_KRAKEN | |
| 3268 | CEPH_FEATURE_MSG_ADDR2); |
| 3269 | } |
| 3270 | if (require_osd_release < ceph_release_t::jewel) { |
| 3271 | f &= ~(CEPH_FEATURE_SERVER_JEWEL | |
| 3272 | CEPH_FEATURE_NEW_OSDOP_ENCODING | |
| 3273 | CEPH_FEATURE_CRUSH_TUNABLES5); |
| 3274 | } |
| 3275 | return f; |
| 3276 | } |
| 3277 | |
| 3278 | // serialize, unserialize |
| 3279 | void OSDMap::encode_client_old(ceph::buffer::list& bl) const |
no outgoing calls