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)
15*ec73a754SAlex Elder #define CEPH_FEATURE_OBJECTLOCATOR  (1<<8)
16*ec73a754SAlex Elder #define CEPH_FEATURE_PGID64         (1<<9)
17*ec73a754SAlex Elder #define CEPH_FEATURE_INCSUBOSDMAP   (1<<10)
18*ec73a754SAlex Elder #define CEPH_FEATURE_PGPOOL3        (1<<11)
19*ec73a754SAlex Elder #define CEPH_FEATURE_OSDREPLYMUX    (1<<12)
20*ec73a754SAlex Elder #define CEPH_FEATURE_OSDENC         (1<<13)
21*ec73a754SAlex Elder #define CEPH_FEATURE_OMAP           (1<<14)
22*ec73a754SAlex Elder #define CEPH_FEATURE_MONENC         (1<<15)
23*ec73a754SAlex Elder #define CEPH_FEATURE_QUERY_T        (1<<16)
24*ec73a754SAlex Elder #define CEPH_FEATURE_INDEP_PG_MAP   (1<<17)
25546f04efSSage Weil #define CEPH_FEATURE_CRUSH_TUNABLES (1<<18)
26*ec73a754SAlex Elder #define CEPH_FEATURE_CHUNKY_SCRUB   (1<<19)
27*ec73a754SAlex Elder #define CEPH_FEATURE_MON_NULLROUTE  (1<<20)
28*ec73a754SAlex Elder #define CEPH_FEATURE_MON_GV         (1<<21)
29*ec73a754SAlex Elder #define CEPH_FEATURE_BACKFILL_RESERVATION (1<<22)
30*ec73a754SAlex Elder #define CEPH_FEATURE_MSG_AUTH	    (1<<23)
31*ec73a754SAlex Elder #define CEPH_FEATURE_RECOVERY_RESERVATION (1<<24)
321604f488SJim Schutt #define CEPH_FEATURE_CRUSH_TUNABLES2 (1<<25)
33*ec73a754SAlex Elder #define CEPH_FEATURE_CREATEPOOLID   (1<<26)
346e8575faSSam Lang #define CEPH_FEATURE_REPLY_CREATE_INODE   (1<<27)
35*ec73a754SAlex Elder #define CEPH_FEATURE_OSD_HBMSGS     (1<<28)
36*ec73a754SAlex Elder #define CEPH_FEATURE_MDSENC         (1<<29)
371fe60e51SSage Weil 
381fe60e51SSage Weil /*
391fe60e51SSage Weil  * Features supported.
401fe60e51SSage Weil  */
411fe60e51SSage Weil #define CEPH_FEATURES_SUPPORTED_DEFAULT  \
42546f04efSSage Weil 	(CEPH_FEATURE_NOSRCADDR |	 \
436e8575faSSam Lang 	 CEPH_FEATURE_CRUSH_TUNABLES |	  \
441604f488SJim Schutt 	 CEPH_FEATURE_CRUSH_TUNABLES2 |   \
456e8575faSSam Lang 	 CEPH_FEATURE_REPLY_CREATE_INODE)
461fe60e51SSage Weil 
471fe60e51SSage Weil #define CEPH_FEATURES_REQUIRED_DEFAULT   \
481fe60e51SSage Weil 	(CEPH_FEATURE_NOSRCADDR)
491fe60e51SSage Weil #endif
50