Sync, reverse reading, timestamps for eNB < 2022-12-01
Rework XLog protocol to come with periodic sync events that come from time to time so that xlog stream becomes self-synchronizing. Sync events should be useful for Wendelin to start reading xlog stream from any point, and to verify that the stream is ok by matching its content vs messages schedule coming in the syncs.
Teach xlog.Reader to read streams in reverse order from end to start. This should be useful to look at tail of a log without reading it in full from the start.
Teach xlog.Reader to reconstruct messages timestamps for xlog streams produced with Amarisoft releases < 2022-12-01. There messages do not have .utc field added in https://support.amarisoft.com/issues/21934 and come with only .time field that represent internal eNB time using clock originating at eNB startup. We combine message.time and δ(utc, enb.time) from sync to build message.timestamp .
See individual patches for details and !3 for preliminary discussion.
/cc @xavier_thompson