]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
msg/async/frames_v2: make rx_segments_t global
authorIlya Dryomov <idryomov@gmail.com>
Thu, 30 Apr 2020 15:22:14 +0000 (17:22 +0200)
committerIlya Dryomov <idryomov@gmail.com>
Mon, 13 Jul 2020 12:45:03 +0000 (14:45 +0200)
Use it in ProtocolV2.h and later in unit tests.

While at it, drop the unused len struct.

Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
(cherry picked from commit c081f3ca94adb4814c55aeeca0c0abdbc701ece2)

Conflicts:
src/crimson/net/ProtocolV2.cc [ crimson doesn't support
  msgr2 in nautilus ]
src/crimson/net/ProtocolV2.h [ ditto ]

src/msg/async/ProtocolV2.cc
src/msg/async/ProtocolV2.h
src/msg/async/frames_v2.h

index f221c9d7353f6c5e244717ca03ac0500d9814499..378147b23ff852a29abc6f2662fd19834cb34453 100644 (file)
@@ -1410,7 +1410,7 @@ CtPtr ProtocolV2::handle_message() {
 
   // we need to get the size before std::moving segments data
   const size_t cur_msg_size = get_current_msg_size();
-  auto msg_frame = MessageFrame::Decode(std::move(rx_segments_data));
+  auto msg_frame = MessageFrame::Decode(rx_segments_data);
 
   // XXX: paranoid copy just to avoid oops
   ceph_msg_header2 current_header = msg_frame.header();
index 9ed0ae0d18a3689bc828dfeed2c2c3316748445b..a4c2b1f5b8fe368bcd66fff17602bcf6ffe7f8e9 100644 (file)
@@ -98,8 +98,7 @@ private:
 
   boost::container::static_vector<ceph::msgr::v2::segment_t,
                                  ceph::msgr::v2::MAX_NUM_SEGMENTS> rx_segments_desc;
-  boost::container::static_vector<ceph::bufferlist,
-                                 ceph::msgr::v2::MAX_NUM_SEGMENTS> rx_segments_data;
+  ceph::msgr::v2::segment_bls_t rx_segments_data;
   ceph::msgr::v2::Tag next_tag;
   utime_t backoff;  // backoff time
   utime_t recv_stamp;
index 6827622d67ec14af0fba4069cc1e03250acaaea4..dd544a2a0a14ea21b2e58ac296e9274abe69f334 100644 (file)
@@ -7,6 +7,8 @@
 #include <array>
 #include <utility>
 
+#include <boost/container/static_vector.hpp>
+
 /**
  * Protocol V2 Frame Structures
  * 
@@ -674,6 +676,9 @@ protected:
   using ControlFrame::ControlFrame;
 };
 
+using segment_bls_t =
+    boost::container::static_vector<bufferlist, MAX_NUM_SEGMENTS>;
+
 // This class is used for encoding/decoding header of the message frame.
 // Body is processed almost independently with the sole junction point
 // being the `extra_payload_len` passed to get_buffer().
@@ -683,12 +688,6 @@ struct MessageFrame : public Frame<MessageFrame,
                                    segment_t::DEFAULT_ALIGNMENT,
                                    segment_t::DEFAULT_ALIGNMENT,
                                    segment_t::PAGE_SIZE_ALIGNMENT> {
-  struct {
-    uint32_t front;
-    uint32_t middle;
-    uint32_t data;
-  } len;
-
   static const Tag tag = Tag::MESSAGE;
 
   static MessageFrame Encode(const ceph_msg_header2 &msg_header,
@@ -706,10 +705,7 @@ struct MessageFrame : public Frame<MessageFrame,
     return f;
   }
 
-  using rx_segments_t =
-    boost::container::static_vector<ceph::bufferlist,
-                                    ceph::msgr::v2::MAX_NUM_SEGMENTS>;
-  static MessageFrame Decode(rx_segments_t &&recv_segments) {
+  static MessageFrame Decode(segment_bls_t& recv_segments) {
     MessageFrame f;
     // transfer segments' bufferlists. If a MessageFrame contains less
     // SegmentsNumV segments, the missing ones will be seen as zeroed.