summaryrefslogtreecommitdiff
path: root/fs/ceph/msgr.h
diff options
context:
space:
mode:
authorSage Weil <sage@newdream.net>2009-12-23 09:30:21 -0800
committerSage Weil <sage@newdream.net>2009-12-23 09:30:21 -0800
commit04a419f908b5291ff7e8ffd7aa351fa0ac0c08af (patch)
tree2e634bdca766c27b88280ab5c1ce067f47ffe536 /fs/ceph/msgr.h
parent6df058c025ce343052c5516b1d8a9a7e73cddd64 (diff)
ceph: add feature bits to connection handshake (protocol change)
Define supported and required feature set. Fail connection if the server requires features we do not support (TAG_FEATURES), or if the server does not support features we require. Signed-off-by: Sage Weil <sage@newdream.net>
Diffstat (limited to 'fs/ceph/msgr.h')
-rw-r--r--fs/ceph/msgr.h5
1 files changed, 4 insertions, 1 deletions
diff --git a/fs/ceph/msgr.h b/fs/ceph/msgr.h
index e46d8b806dea..be83f93182ee 100644
--- a/fs/ceph/msgr.h
+++ b/fs/ceph/msgr.h
@@ -21,7 +21,7 @@
* whenever the wire protocol changes. try to keep this string length
* constant.
*/
-#define CEPH_BANNER "ceph v025"
+#define CEPH_BANNER "ceph v026"
#define CEPH_BANNER_MAX_LEN 30
@@ -100,12 +100,14 @@ struct ceph_entity_inst {
#define CEPH_MSGR_TAG_KEEPALIVE 9 /* just a keepalive byte! */
#define CEPH_MSGR_TAG_BADPROTOVER 10 /* bad protocol version */
#define CEPH_MSGR_TAG_BADAUTHORIZER 11 /* bad authorizer */
+#define CEPH_MSGR_TAG_FEATURES 12 /* insufficient features */
/*
* connection negotiation
*/
struct ceph_msg_connect {
+ __le64 features; /* supported feature bits */
__le32 host_type; /* CEPH_ENTITY_TYPE_* */
__le32 global_seq; /* count connections initiated by this host */
__le32 connect_seq; /* count connections initiated in this session */
@@ -117,6 +119,7 @@ struct ceph_msg_connect {
struct ceph_msg_connect_reply {
__u8 tag;
+ __le64 features; /* feature bits for this session */
__le32 global_seq;
__le32 connect_seq;
__le32 protocol_version;