Don't put reliable timestamps in the unreliable log file header field

James and I debugged a log file sorting bug which turned out to be a
logging bug.  The SystemParameters timestamp file (which we can all
agree is a reliable message) had the delivery time in
oldest_unreliable_remote_monotonic_timestamps, which is only for
unreliable timestamps.

This was because reliability was being tracked for the contents channel,
not the source message.  Instead, we need to do the book-keeping to
track if the source is realiable or not, and update the header
accordingly.  While we don't want to see new combined timestamp logs, we
still need to support them.  We don't mind if they are a bit less
efficient to log.

Change-Id: I292f5c0a64926904e13fb5d712acd523f3849cd4
Signed-off-by: Austin Schuh <austin.schuh@bluerivertech.com>
diff --git a/aos/network/timestamp_channel.h b/aos/network/timestamp_channel.h
index b78c83a..e35a170 100644
--- a/aos/network/timestamp_channel.h
+++ b/aos/network/timestamp_channel.h
@@ -15,6 +15,9 @@
 
 // Class to find the corresponding channel where timestamps for a specified data
 // channel and connection will be logged.
+//
+// This abstracts (and detects) when we have combined or split remote timestamp
+// logging channels.
 class ChannelTimestampFinder {
  public:
   ChannelTimestampFinder(aos::EventLoop *event_loop)
@@ -23,6 +26,11 @@
   ChannelTimestampFinder(const Configuration *configuration,
                          const std::string_view name, const Node *node);
 
+  // Returns the split timestamp logging channel for the provide channel and
+  // connection if one exists, or nullptr otherwise.
+  const Channel *SplitChannelForChannel(const Channel *channel,
+                                        const Connection *connection);
+
   // Finds the timestamp logging channel for the provided data channel and
   // connection.
   const Channel *ForChannel(const Channel *channel,