From 1f5e446d8a9870f779f27ae833c9bcfc189051c8 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Sat, 18 Feb 2012 21:48:50 -0800 Subject: [PATCH] msgr: promote SimpleMessenger::Policy to Messenger::Policy This is part of the generic interface, not specific to the implementation. Signed-off-by: Sage Weil --- src/ceph_mds.cc | 14 +++++++------- src/ceph_mon.cc | 14 +++++++------- src/ceph_osd.cc | 30 +++++++++++++++--------------- src/librados.cc | 2 +- src/msg/Messenger.h | 34 ++++++++++++++++++++++++++++++++++ src/msg/SimpleMessenger.h | 26 -------------------------- 6 files changed, 64 insertions(+), 56 deletions(-) diff --git a/src/ceph_mds.cc b/src/ceph_mds.cc index de887716adfee..657ace69b1c80 100644 --- a/src/ceph_mds.cc +++ b/src/ceph_mds.cc @@ -245,16 +245,16 @@ int main(int argc, const char **argv) CEPH_FEATURE_PGID64; uint64_t required = CEPH_FEATURE_OSDREPLYMUX; - messenger->set_default_policy(SimpleMessenger::Policy::client(supported, required)); + messenger->set_default_policy(Messenger::Policy::client(supported, required)); messenger->set_policy(entity_name_t::TYPE_MON, - SimpleMessenger::Policy::client(supported, - CEPH_FEATURE_UID | - CEPH_FEATURE_PGID64)); + Messenger::Policy::client(supported, + CEPH_FEATURE_UID | + CEPH_FEATURE_PGID64)); messenger->set_policy(entity_name_t::TYPE_MDS, - SimpleMessenger::Policy::lossless_peer(supported, - CEPH_FEATURE_UID)); + Messenger::Policy::lossless_peer(supported, + CEPH_FEATURE_UID)); messenger->set_policy(entity_name_t::TYPE_CLIENT, - SimpleMessenger::Policy::stateful_server(supported, 0)); + Messenger::Policy::stateful_server(supported, 0)); if (shadow != MDSMap::STATE_ONESHOT_REPLAY) global_init_daemonize(g_ceph_context, 0); diff --git a/src/ceph_mon.cc b/src/ceph_mon.cc index 5b937741f741e..8e97ee5b89d65 100644 --- a/src/ceph_mon.cc +++ b/src/ceph_mon.cc @@ -404,15 +404,15 @@ int main(int argc, const char **argv) CEPH_FEATURE_NOSRCADDR | CEPH_FEATURE_MONCLOCKCHECK | CEPH_FEATURE_PGID64; - messenger->set_default_policy(SimpleMessenger::Policy::stateless_server(supported, 0)); + messenger->set_default_policy(Messenger::Policy::stateless_server(supported, 0)); messenger->set_policy(entity_name_t::TYPE_MON, - SimpleMessenger::Policy::lossless_peer(supported, - CEPH_FEATURE_UID | - CEPH_FEATURE_PGID64)); + Messenger::Policy::lossless_peer(supported, + CEPH_FEATURE_UID | + CEPH_FEATURE_PGID64)); messenger->set_policy(entity_name_t::TYPE_OSD, - SimpleMessenger::Policy::stateless_server(supported, - CEPH_FEATURE_PGID64 | - CEPH_FEATURE_OSDENC)); + Messenger::Policy::stateless_server(supported, + CEPH_FEATURE_PGID64 | + CEPH_FEATURE_OSDENC)); mon->init(); messenger->wait(); diff --git a/src/ceph_osd.cc b/src/ceph_osd.cc index 25bf0b68aa15c..a99cc7b99b321 100644 --- a/src/ceph_osd.cc +++ b/src/ceph_osd.cc @@ -344,28 +344,28 @@ int main(int argc, const char **argv) CEPH_FEATURE_NOSRCADDR | CEPH_FEATURE_PGID64; - client_messenger->set_default_policy(SimpleMessenger::Policy::stateless_server(supported, 0)); + client_messenger->set_default_policy(Messenger::Policy::stateless_server(supported, 0)); client_messenger->set_policy(entity_name_t::TYPE_CLIENT, - SimpleMessenger::Policy::stateless_server(supported, 0)); + Messenger::Policy::stateless_server(supported, 0)); client_messenger->set_policy_throttler(entity_name_t::TYPE_CLIENT, &client_throttler); client_messenger->set_policy(entity_name_t::TYPE_MON, - SimpleMessenger::Policy::client(supported, - CEPH_FEATURE_UID | - CEPH_FEATURE_PGID64 | - CEPH_FEATURE_OSDENC)); + Messenger::Policy::client(supported, + CEPH_FEATURE_UID | + CEPH_FEATURE_PGID64 | + CEPH_FEATURE_OSDENC)); //try to poison pill any OSD connections on the wrong address client_messenger->set_policy(entity_name_t::TYPE_OSD, - SimpleMessenger::Policy::stateless_server(0,0)); - - cluster_messenger->set_default_policy(SimpleMessenger::Policy::stateless_server(0, 0)); - cluster_messenger->set_policy(entity_name_t::TYPE_MON, SimpleMessenger::Policy::client(0,0)); + Messenger::Policy::stateless_server(0,0)); + + cluster_messenger->set_default_policy(Messenger::Policy::stateless_server(0, 0)); + cluster_messenger->set_policy(entity_name_t::TYPE_MON, Messenger::Policy::client(0,0)); cluster_messenger->set_policy(entity_name_t::TYPE_OSD, - SimpleMessenger::Policy::lossless_peer(supported, - CEPH_FEATURE_UID | - CEPH_FEATURE_PGID64 | - CEPH_FEATURE_OSDENC)); + Messenger::Policy::lossless_peer(supported, + CEPH_FEATURE_UID | + CEPH_FEATURE_PGID64 | + CEPH_FEATURE_OSDENC)); cluster_messenger->set_policy(entity_name_t::TYPE_CLIENT, - SimpleMessenger::Policy::stateless_server(0, 0)); + Messenger::Policy::stateless_server(0, 0)); // Set up crypto, daemonize, etc. // Leave stderr open in case we need to report errors. diff --git a/src/librados.cc b/src/librados.cc index e8e8bbadb0d73..f771d659cebd0 100644 --- a/src/librados.cc +++ b/src/librados.cc @@ -944,7 +944,7 @@ int librados::RadosClient::connect() // require OSDREPLYMUX feature. this means we will fail to talk to // old servers. this is necessary because otherwise we won't know // how to decompose the reply data into its consituent pieces. - messenger->set_default_policy(SimpleMessenger::Policy::client(0, CEPH_FEATURE_OSDREPLYMUX)); + messenger->set_default_policy(Messenger::Policy::client(0, CEPH_FEATURE_OSDREPLYMUX)); ldout(cct, 1) << "starting msgr at " << messenger->get_ms_addr() << dendl; diff --git a/src/msg/Messenger.h b/src/msg/Messenger.h index 5994dce72419a..2c500c58535b4 100644 --- a/src/msg/Messenger.h +++ b/src/msg/Messenger.h @@ -26,6 +26,7 @@ using namespace std; #include "common/Cond.h" #include "include/Context.h" #include "include/types.h" +#include "include/ceph_features.h" #include #include @@ -35,6 +36,39 @@ class Timer; class Messenger { +public: + struct Policy { + bool lossy; + bool server; + Throttle *throttler; + + uint64_t features_supported; + uint64_t features_required; + + Policy() + : lossy(false), server(false), throttler(NULL), + 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 | CEPH_FEATURES_SUPPORTED_DEFAULT), + features_required(req) {} + + static Policy stateful_server(uint64_t sup, uint64_t req) { + return Policy(false, true, sup, req); + } + static Policy stateless_server(uint64_t sup, uint64_t req) { + return Policy(true, true, sup, req); + } + static Policy lossless_peer(uint64_t sup, uint64_t req) { + return Policy(false, false, sup, req); + } + static Policy client(uint64_t sup, uint64_t req) { + return Policy(false, false, sup, req); + } + }; + + private: list dispatchers; diff --git a/src/msg/SimpleMessenger.h b/src/msg/SimpleMessenger.h index 29b2cef7d4fcc..f1d55bc614379 100644 --- a/src/msg/SimpleMessenger.h +++ b/src/msg/SimpleMessenger.h @@ -17,7 +17,6 @@ #include "include/types.h" #include "include/xlist.h" -#include "include/ceph_features.h" #include #include @@ -53,31 +52,6 @@ using namespace __gnu_cxx; */ class SimpleMessenger : public Messenger { -public: - struct Policy { - bool lossy; - bool server; - Throttle *throttler; - - uint64_t features_supported; - uint64_t features_required; - - Policy() : - lossy(false), server(false), throttler(NULL), - 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 | CEPH_FEATURES_SUPPORTED_DEFAULT), - features_required(req) {} - - static Policy stateful_server(uint64_t sup, uint64_t req) { return Policy(false, true, sup, req); } - static Policy stateless_server(uint64_t sup, uint64_t req) { return Policy(true, true, sup, req); } - static Policy lossless_peer(uint64_t sup, uint64_t req) { return Policy(false, false, sup, req); } - static Policy client(uint64_t sup, uint64_t req) { return Policy(false, false, sup, req); } - }; - - public: void sigint(); -- 2.39.5