Proposal: Return BP Creation Timestamp via AAP Bundle Identifier
AAP allows us to return 64 arbitrary bits as "Bundle ID" in a SENDCONFIRM
message. By returning the creation timestamp, i.e., the bundle creation time plus its sequence number, applications could infer the actual DTN identifier of the created bundle transmission request which consists of the source node id plus the creation timestamp.
Encoding the creation timestamp could be realized as follows:
-
A reserved bit
R
is introduced, which always needs to be set to1
. In most cases this allows us to differentiate from the previous formats where either a monotonically-increasing integer or a pointer value was returned. Note that it is not guaranteed that the bit was always zero beforehand, but it MUST be one for the returned value to be treated as one of the below-mentioned formats. -
If the 64-bit-field has its second-most significant bit (
X
) set to zero, the remainder consists of a 46-bit creation time (DTN time in milliseconds), plus a 16-bit sequence number. Both represent the least significant bits of the internal 64-bit values. A client has to take care of inferring the most significant bits if it needs them. (This is possible: The most significant bits of the time can probably be hard-coded if needed at all. The most significant bits of the sequence number that are relevant if more than 255 bundles are created per millisecond simply wrap around and should always start at zero with a given transmission request from a given application.)
+--+------+--------+--------+--------+--------+--------+--------+--------+
|RX| Time (46) | SN (16) |
+--+------+--------+--------+--------+--------+--------+--------+--------+
- If the 64-bit-field has its second-most significant bit (
X
) set to one, the remainder consists of a 62-bit sequence number.
+--+------+--------+--------+--------+--------+--------+--------+--------+
|RX| SN (62) |
+--+------+--------+--------+--------+--------+--------+--------+--------+
If the application does not care about the timestamp, it can simply be treated as an arbitrary 64-bit integer value.