]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
msg/async/frames_v2: rename and clarify FRAME_FLAGS_LATEABRT
authorIlya Dryomov <idryomov@gmail.com>
Mon, 4 May 2020 15:52:13 +0000 (17:52 +0200)
committerIlya Dryomov <idryomov@gmail.com>
Mon, 13 Jul 2020 12:45:20 +0000 (14:45 +0200)
Clarify that the frame can be aborted at any point after the
preamble and the first segment are put on the wire.  When that
happens, the remaining segments (including the data segment)
may be filled with zeros.

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

Conflicts:
src/crimson/net/ProtocolV2.cc [ crimson doesn't support
  msgr2 in nautilus ]
src/msg/async/frames_v2.h [ context: commit c70f779d12a2
  ("headers: Make ceph_le member private") not in nautilus ]

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

index 89fecac4eb96a078b471fd5e52d041c9e020b84b..3c402ce4c619ff084a4efecd156567048323b4ea 100644 (file)
@@ -217,7 +217,7 @@ bool FrameAssembler::disasm_all_crc_rev0(bufferlist segment_bls[],
     ceph_assert(segment_bls[i].length() == m_descs[i].logical_len);
     check_segment_crc(segment_bls[i], epilogue->crc_values[i]);
   }
-  return !(epilogue->late_flags & FRAME_FLAGS_LATEABRT);
+  return !(epilogue->late_flags & FRAME_LATE_FLAG_ABORTED);
 }
 
 bool FrameAssembler::disasm_all_secure_rev0(bufferlist segment_bls[],
@@ -235,7 +235,7 @@ bool FrameAssembler::disasm_all_secure_rev0(bufferlist segment_bls[],
   m_crypto->rx->authenticated_decrypt_update_final(epilogue_bl);
   auto epilogue = reinterpret_cast<const epilogue_secure_rev0_block_t*>(
       epilogue_bl.c_str());
-  return !(epilogue->late_flags & FRAME_FLAGS_LATEABRT);
+  return !(epilogue->late_flags & FRAME_LATE_FLAG_ABORTED);
 }
 
 bool FrameAssembler::disassemble_segments(bufferlist segment_bls[],
index 2c137cfbafa6cd40fe126065bcfeac7ae2d45319..8e857a3372fae9f66058aca3d06b3874e96408ed 100644 (file)
@@ -130,13 +130,13 @@ static_assert(std::is_standard_layout<preamble_block_t>::value);
 // conveys late_flags. The initial user of this field will be the late
 // frame abortion facility.
 struct epilogue_crc_rev0_block_t {
-  __u8 late_flags;
+  __u8 late_flags;  // FRAME_LATE_FLAG_ABORTED
   std::array<ceph_le32, MAX_NUM_SEGMENTS> crc_values;
 } __attribute__((packed));
 static_assert(std::is_standard_layout_v<epilogue_crc_rev0_block_t>);
 
 struct epilogue_secure_rev0_block_t {
-  __u8 late_flags;
+  __u8 late_flags;  // FRAME_LATE_FLAG_ABORTED
   __u8 padding[CRYPTO_BLOCK_SIZE - sizeof(late_flags)];
 
   __u8 ciphers_private_data[];
@@ -144,7 +144,10 @@ struct epilogue_secure_rev0_block_t {
 static_assert(sizeof(epilogue_secure_rev0_block_t) % CRYPTO_BLOCK_SIZE == 0);
 static_assert(std::is_standard_layout_v<epilogue_secure_rev0_block_t>);
 
-#define FRAME_FLAGS_LATEABRT      (1<<0)   /* frame was aborted after txing data */
+// A frame can be aborted by the sender after transmitting the
+// preamble and the first segment.  The remainder of the frame
+// is filled with zeros, up until the epilogue.
+#define FRAME_LATE_FLAG_ABORTED           (1<<0)
 
 struct FrameError : std::runtime_error {
   using runtime_error::runtime_error;