]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
crimson/osd: populate crc settings
authorKefu Chai <kchai@redhat.com>
Fri, 15 Feb 2019 17:00:02 +0000 (01:00 +0800)
committerKefu Chai <kchai@redhat.com>
Tue, 19 Feb 2019 08:55:02 +0000 (16:55 +0800)
we should populate messenger related settings before starting
messengers.

Signed-off-by: Kefu Chai <kchai@redhat.com>
src/crimson/osd/heartbeat.cc
src/crimson/osd/heartbeat.h

index 0d818b24f54d9bc589f9d015dc317985a31f7060..6dfefb3ba6913463b0e7477bd42576be3bc91f38 100644 (file)
@@ -53,26 +53,39 @@ seastar::future<> Heartbeat::start(entity_addrvec_t front_addrs,
                                    seastar::engine().cpu_id())
         .then([this, front_addrs] (auto msgr) {
           front_msgr = msgr;
-          return front_msgr->try_bind(front_addrs,
-                                      local_conf()->ms_bind_port_min,
-                                      local_conf()->ms_bind_port_max);
-        }).then([this] { return front_msgr->start(this); }),
+          return start_messenger(front_msgr, front_addrs);
+        }),
       ceph::net::Messenger::create(entity_name_t::OSD(whoami),
                                    "hb_back",
                                    nonce,
                                    seastar::engine().cpu_id())
         .then([this, back_addrs] (auto msgr) {
           back_msgr = msgr;
-          return back_msgr->try_bind(back_addrs,
-                                     local_conf()->ms_bind_port_min,
-                                     local_conf()->ms_bind_port_max);
-        }).then([this] { return back_msgr->start(this); }))
+          return start_messenger(back_msgr, back_addrs);
+        }))
     .then([this] {
       timer.arm_periodic(
         std::chrono::seconds(local_conf()->osd_heartbeat_interval));
     });
 }
 
+seastar::future<>
+Heartbeat::start_messenger(ceph::net::Messenger* msgr,
+                           const entity_addrvec_t& addrs)
+{
+  if (local_conf()->ms_crc_data) {
+    msgr->set_crc_data();
+  }
+  if (local_conf()->ms_crc_header) {
+    msgr->set_crc_header();
+  }
+  return msgr->try_bind(addrs,
+                        local_conf()->ms_bind_port_min,
+                        local_conf()->ms_bind_port_max).then([msgr, this] {
+    return msgr->start(this);
+  });
+}
+
 seastar::future<> Heartbeat::stop()
 {
   return seastar::when_all_succeed(front_msgr->shutdown(),
index 209914e78d6433aaa91f2554a0e9bd9a735e3afb..b5eb0f7c2d49ac64d617ef3e02680a68ac85d9f2 100644 (file)
@@ -63,6 +63,8 @@ private:
   /// add enough reporters for fast failure detection
   void add_reporter_peers(int whoami);
 
+  seastar::future<> start_messenger(ceph::net::Messenger* msgr,
+                                   const entity_addrvec_t& addrs);
 private:
   const int whoami;
   const uint32_t nonce;