MCPcopy Create free account
hub / github.com/ceph/ceph / ceph_release_features

Function ceph_release_features

src/common/ceph_strings.cc:129–173  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

127}
128
129uint64_t ceph_release_features(int r)
130{
131 uint64_t req = 0;
132
133 req |= CEPH_FEATURE_CRUSH_TUNABLES;
134 if (r <= CEPH_RELEASE_CUTTLEFISH)
135 return req;
136
137 req |= CEPH_FEATURE_CRUSH_TUNABLES2 |
138 CEPH_FEATURE_OSDHASHPSPOOL;
139 if (r <= CEPH_RELEASE_EMPEROR)
140 return req;
141
142 req |= CEPH_FEATURE_CRUSH_TUNABLES3 |
143 CEPH_FEATURE_OSD_PRIMARY_AFFINITY |
144 CEPH_FEATURE_OSD_CACHEPOOL;
145 if (r <= CEPH_RELEASE_GIANT)
146 return req;
147
148 req |= CEPH_FEATURE_CRUSH_V4;
149 if (r <= CEPH_RELEASE_INFERNALIS)
150 return req;
151
152 req |= CEPH_FEATURE_CRUSH_TUNABLES5;
153 if (r <= CEPH_RELEASE_JEWEL)
154 return req;
155
156 req |= CEPH_FEATURE_MSG_ADDR2;
157 if (r <= CEPH_RELEASE_KRAKEN)
158 return req;
159
160 req |= CEPH_FEATUREMASK_CRUSH_CHOOSE_ARGS; // and overlaps
161 if (r <= CEPH_RELEASE_QUINCY)
162 return req;
163
164 req |= CEPH_FEATUREMASK_SERVER_REEF; // upmap-primary
165 if (r <= CEPH_RELEASE_REEF)
166 return req;
167
168 req |= CEPH_FEATUREMASK_CRUSH_MSR;
169 if (r <= CEPH_RELEASE_SQUID)
170 return req;
171
172 return req;
173}
174
175/* return oldest/first release that supports these features */
176int ceph_release_from_features(uint64_t features)

Callers 3

TESTFunction · 0.85
prepare_command_implMethod · 0.85

Calls

no outgoing calls

Tested by 1

TESTFunction · 0.68