11fe60e51SSage Weil #ifndef __CEPH_FEATURES
21fe60e51SSage Weil #define __CEPH_FEATURES
31fe60e51SSage Weil 
41fe60e51SSage Weil /*
51fe60e51SSage Weil  * feature bits
61fe60e51SSage Weil  */
71fe60e51SSage Weil #define CEPH_FEATURE_UID            (1<<0)
81fe60e51SSage Weil #define CEPH_FEATURE_NOSRCADDR      (1<<1)
91fe60e51SSage Weil #define CEPH_FEATURE_MONCLOCKCHECK  (1<<2)
101fe60e51SSage Weil #define CEPH_FEATURE_FLOCK          (1<<3)
111fe60e51SSage Weil #define CEPH_FEATURE_SUBSCRIBE2     (1<<4)
121fe60e51SSage Weil #define CEPH_FEATURE_MONNAMES       (1<<5)
131fe60e51SSage Weil #define CEPH_FEATURE_RECONNECT_SEQ  (1<<6)
141fe60e51SSage Weil #define CEPH_FEATURE_DIRLAYOUTHASH  (1<<7)
15ec73a754SAlex Elder #define CEPH_FEATURE_OBJECTLOCATOR  (1<<8)
16ec73a754SAlex Elder #define CEPH_FEATURE_PGID64         (1<<9)
17ec73a754SAlex Elder #define CEPH_FEATURE_INCSUBOSDMAP   (1<<10)
18ec73a754SAlex Elder #define CEPH_FEATURE_PGPOOL3        (1<<11)
19ec73a754SAlex Elder #define CEPH_FEATURE_OSDREPLYMUX    (1<<12)
20ec73a754SAlex Elder #define CEPH_FEATURE_OSDENC         (1<<13)
21ec73a754SAlex Elder #define CEPH_FEATURE_OMAP           (1<<14)
22ec73a754SAlex Elder #define CEPH_FEATURE_MONENC         (1<<15)
23ec73a754SAlex Elder #define CEPH_FEATURE_QUERY_T        (1<<16)
24ec73a754SAlex Elder #define CEPH_FEATURE_INDEP_PG_MAP   (1<<17)
25546f04efSSage Weil #define CEPH_FEATURE_CRUSH_TUNABLES (1<<18)
26ec73a754SAlex Elder #define CEPH_FEATURE_CHUNKY_SCRUB   (1<<19)
27ec73a754SAlex Elder #define CEPH_FEATURE_MON_NULLROUTE  (1<<20)
28ec73a754SAlex Elder #define CEPH_FEATURE_MON_GV         (1<<21)
29ec73a754SAlex Elder #define CEPH_FEATURE_BACKFILL_RESERVATION (1<<22)
30ec73a754SAlex Elder #define CEPH_FEATURE_MSG_AUTH	    (1<<23)
31ec73a754SAlex Elder #define CEPH_FEATURE_RECOVERY_RESERVATION (1<<24)
321604f488SJim Schutt #define CEPH_FEATURE_CRUSH_TUNABLES2 (1<<25)
33ec73a754SAlex Elder #define CEPH_FEATURE_CREATEPOOLID   (1<<26)
346e8575faSSam Lang #define CEPH_FEATURE_REPLY_CREATE_INODE   (1<<27)
35ec73a754SAlex Elder #define CEPH_FEATURE_OSD_HBMSGS     (1<<28)
36ec73a754SAlex Elder #define CEPH_FEATURE_MDSENC         (1<<29)
3783ca14fdSSage Weil #define CEPH_FEATURE_OSDHASHPSPOOL  (1<<30)
381fe60e51SSage Weil 
391fe60e51SSage Weil /*
401fe60e51SSage Weil  * Features supported.
411fe60e51SSage Weil  */
421fe60e51SSage Weil #define CEPH_FEATURES_SUPPORTED_DEFAULT  \
43546f04efSSage Weil 	(CEPH_FEATURE_NOSRCADDR |		\
444f6a7e5eSSage Weil 	 CEPH_FEATURE_PGID64 |			\
454f6a7e5eSSage Weil 	 CEPH_FEATURE_PGPOOL3 |			\
464f6a7e5eSSage Weil 	 CEPH_FEATURE_OSDENC |			\
476e8575faSSam Lang 	 CEPH_FEATURE_CRUSH_TUNABLES |		\
481604f488SJim Schutt 	 CEPH_FEATURE_CRUSH_TUNABLES2 |		\
4983ca14fdSSage Weil 	 CEPH_FEATURE_REPLY_CREATE_INODE |	\
5083ca14fdSSage Weil 	 CEPH_FEATURE_OSDHASHPSPOOL)
511fe60e51SSage Weil 
521fe60e51SSage Weil #define CEPH_FEATURES_REQUIRED_DEFAULT   \
534f6a7e5eSSage Weil 	(CEPH_FEATURE_NOSRCADDR |	 \
544f6a7e5eSSage Weil 	 CEPH_FEATURE_PGID64 |		 \
554f6a7e5eSSage Weil 	 CEPH_FEATURE_PGPOOL3 |		 \
564f6a7e5eSSage Weil 	 CEPH_FEATURE_OSDENC)
571fe60e51SSage Weil #endif
58