include/buffer.h\
include/byteorder.h\
include/cephfs/libcephfs.h\
+ include/ceph_features.h\
include/ceph_frag.h\
include/ceph_fs.h\
include/ceph_hash.h\
--- /dev/null
+#ifndef __CEPH_FEATURES
+#define __CEPH_FEATURES
+
+/*
+ * feature bits
+ */
+#define CEPH_FEATURE_UID (1<<0)
+#define CEPH_FEATURE_NOSRCADDR (1<<1)
+#define CEPH_FEATURE_MONCLOCKCHECK (1<<2)
+#define CEPH_FEATURE_FLOCK (1<<3)
+#define CEPH_FEATURE_SUBSCRIBE2 (1<<4)
+#define CEPH_FEATURE_MONNAMES (1<<5)
+#define CEPH_FEATURE_RECONNECT_SEQ (1<<6)
+#define CEPH_FEATURE_DIRLAYOUTHASH (1<<7)
+#define CEPH_FEATURE_OBJECTLOCATOR (1<<8)
+#define CEPH_FEATURE_PGID64 (1<<9)
+#define CEPH_FEATURE_INCSUBOSDMAP (1<<10)
+#define CEPH_FEATURE_PGPOOL3 (1<<11)
+#define CEPH_FEATURE_OSDREPLYMUX (1<<12)
+
+/*
+ * Features supported. Should be everything above.
+ */
+#define CEPH_FEATURES_SUPPORTED_DEFAULT \
+ (CEPH_FEATURE_NOSRCADDR | \
+ CEPH_FEATURE_SUBSCRIBE2 | \
+ CEPH_FEATURE_MONNAMES | \
+ CEPH_FEATURE_FLOCK | \
+ CEPH_FEATURE_RECONNECT_SEQ | \
+ CEPH_FEATURE_DIRLAYOUTHASH | \
+ CEPH_FEATURE_OBJECTLOCATOR | \
+ CEPH_FEATURE_PGID64 | \
+ CEPH_FEATURE_INCSUBOSDMAP | \
+ CEPH_FEATURE_PGPOOL3 | \
+ CEPH_FEATURE_OSDREPLYMUX)
+
+#endif
#include "msgr.h"
#include "rados.h"
+#include "ceph_features.h"
/*
* subprotocol versions. when specific messages types or high-level
/* arbitrary limit on max # of monitors (cluster of 3 is typical) */
#define CEPH_MAX_MON 31
-
-/*
- * feature bits
- */
-#define CEPH_FEATURE_UID (1<<0)
-#define CEPH_FEATURE_NOSRCADDR (1<<1)
-#define CEPH_FEATURE_MONCLOCKCHECK (1<<2)
-#define CEPH_FEATURE_FLOCK (1<<3)
-#define CEPH_FEATURE_SUBSCRIBE2 (1<<4)
-#define CEPH_FEATURE_MONNAMES (1<<5)
-#define CEPH_FEATURE_RECONNECT_SEQ (1<<6)
-#define CEPH_FEATURE_DIRLAYOUTHASH (1<<7)
-#define CEPH_FEATURE_OBJECTLOCATOR (1<<8)
-#define CEPH_FEATURE_PGID64 (1<<9)
-#define CEPH_FEATURE_INCSUBOSDMAP (1<<10)
-#define CEPH_FEATURE_PGPOOL3 (1<<11)
-#define CEPH_FEATURE_OSDREPLYMUX (1<<12)
-
-
/*
* ceph_file_layout - describe data layout for a file/inode
*/
* the destructor will lead to badness.
*/
-// default feature(s) everyone gets
-#define MSGR_FEATURES_SUPPORTED \
- CEPH_FEATURE_NOSRCADDR | \
- CEPH_FEATURE_SUBSCRIBE2 | \
- CEPH_FEATURE_MONNAMES | \
- CEPH_FEATURE_FLOCK | \
- CEPH_FEATURE_RECONNECT_SEQ | \
- CEPH_FEATURE_DIRLAYOUTHASH | \
- CEPH_FEATURE_OBJECTLOCATOR | \
- CEPH_FEATURE_PGID64 | \
- CEPH_FEATURE_INCSUBOSDMAP | \
- CEPH_FEATURE_PGPOOL3 | \
- CEPH_FEATURE_OSDREPLYMUX
-
class SimpleMessenger : public Messenger {
public:
struct Policy {
Policy() :
lossy(false), server(false), throttler(NULL),
- features_supported(MSGR_FEATURES_SUPPORTED),
+ features_supported(CEPH_FEATURES_SUPPORTED_DEFAULT),
features_required(0) {}
Policy(bool l, bool s, uint64_t sup, uint64_t req) :
lossy(l), server(s), throttler(NULL),
- features_supported(sup | MSGR_FEATURES_SUPPORTED),
+ features_supported(sup | CEPH_FEATURES_SUPPORTED_DEFAULT),
features_required(req) {}
static Policy stateful_server(uint64_t sup, uint64_t req) { return Policy(false, true, sup, req); }