Move size constant out into message_bridge_protocol.h

Sarah points out I really should make hard-coded numbers into constants.
She's not wrong.  Done.

This was done in a follow-on review to merge the fix faster.

Signed-off-by: Austin Schuh <austin.schuh@bluerivertech.com>
Change-Id: I92a27b946d5d60c2e15cdedb7faf349571f13c81
diff --git a/aos/network/message_bridge_client_lib.cc b/aos/network/message_bridge_client_lib.cc
index c43fc9a..0aefb5c 100644
--- a/aos/network/message_bridge_client_lib.cc
+++ b/aos/network/message_bridge_client_lib.cc
@@ -129,7 +129,7 @@
       [this]() { connect_timer_->Setup(event_loop_->monotonic_now()); });
 
   size_t max_write_size =
-      std::max(static_cast<size_t>(208u), connect_message_.span().size());
+      std::max(kHeaderSizeOverhead(), connect_message_.span().size());
   size_t max_read_size = 0u;
 
   for (const Channel *channel : *event_loop_->configuration()->channels()) {
@@ -139,8 +139,9 @@
         configuration::ChannelIsReadableOnNode(channel, event_loop_->node())) {
       VLOG(1) << "Receiving channel "
               << configuration::CleanedChannelToString(channel);
-      max_read_size = std::max(static_cast<size_t>(channel->max_size() + 208u),
-                               max_read_size);
+      max_read_size = std::max(
+          static_cast<size_t>(channel->max_size() + kHeaderSizeOverhead()),
+          max_read_size);
     }
   }
 
diff --git a/aos/network/message_bridge_protocol.h b/aos/network/message_bridge_protocol.h
index 485defe..23a6e0f 100644
--- a/aos/network/message_bridge_protocol.h
+++ b/aos/network/message_bridge_protocol.h
@@ -31,6 +31,10 @@
 // The stream on which timestamp replies are sent.
 constexpr size_t kTimestampStream() { return 1; }
 
+// Overhead constant for headers.  Both remote timestamps and the extra context
+// inside RemoteData need to fit inside this.
+constexpr size_t kHeaderSizeOverhead() { return 208u; }
+
 // Builds up a subscription request for my_node to remote_name.
 aos::FlatbufferDetachedBuffer<aos::message_bridge::Connect> MakeConnectMessage(
     const Configuration *config, const Node *my_node,
diff --git a/aos/network/message_bridge_server_lib.cc b/aos/network/message_bridge_server_lib.cc
index ce68402..df6d4b1 100644
--- a/aos/network/message_bridge_server_lib.cc
+++ b/aos/network/message_bridge_server_lib.cc
@@ -29,8 +29,7 @@
 flatbuffers::FlatBufferBuilder ChannelState::PackContext(
     FixedAllocator *allocator, const Context &context) {
   flatbuffers::FlatBufferBuilder fbb(
-      channel_->max_size() + MessageBridgeServer::kRemoteDataHeaderMaxSize,
-      allocator);
+      channel_->max_size() + kHeaderSizeOverhead(), allocator);
   fbb.ForceDefaults(true);
   VLOG(2) << "Found " << peers_.size() << " peers on channel "
           << channel_->name()->string_view() << " "
@@ -402,9 +401,11 @@
   CHECK(timestamp_state_ != nullptr);
 
   // Buffer up the max size a bit so everything fits nicely.
-  LOG(INFO) << "Max message size for all clients is " << max_size;
+  LOG(INFO) << "Max message read size for all clients is " << max_size;
+  LOG(INFO) << "Max message write size for all clients is "
+            << max_channel_size + kHeaderSizeOverhead();
   server_.SetMaxReadSize(max_size);
-  server_.SetMaxWriteSize(max_channel_size + kRemoteDataHeaderMaxSize);
+  server_.SetMaxWriteSize(max_channel_size + kHeaderSizeOverhead());
 
   // Since we are doing interleaving mode 1, we will see at most 1 message being
   // delivered at a time for an association.  That means, if a message is
@@ -415,7 +416,7 @@
   // and 1 new one with more of the data).
   server_.SetPoolSize((destination_nodes + 1) * 2);
 
-  allocator_ = FixedAllocator(max_channel_size + kRemoteDataHeaderMaxSize);
+  allocator_ = FixedAllocator(max_channel_size + kHeaderSizeOverhead());
 
   reconnected_.reserve(max_channels());
 }
diff --git a/aos/network/message_bridge_server_lib.h b/aos/network/message_bridge_server_lib.h
index fdc0441..98e1dd0 100644
--- a/aos/network/message_bridge_server_lib.h
+++ b/aos/network/message_bridge_server_lib.h
@@ -111,10 +111,6 @@
 // node.  It handles the session and dispatches data to the ChannelState.
 class MessageBridgeServer {
  public:
-  // Size to reserve when building the RemoteData message for the header over
-  // the data size.
-  static constexpr size_t kRemoteDataHeaderMaxSize = 208u;
-
   MessageBridgeServer(aos::ShmEventLoop *event_loop, std::string config_sha256);
 
   ~MessageBridgeServer() { event_loop_->epoll()->DeleteFd(server_.fd()); }