nasa / bplib

Apache License 2.0
27 stars 13 forks source link

Implement detection of and response to unreliable time reference #11

Closed jpswinski closed 4 years ago

jpswinski commented 5 years ago

If time goes backwards (or some other heuristic) then the library should raise a flag and automatically override all lifetimes to outgoing bundles to 0 (infinite) and suspend all expiration detection.

A bplib_config option is then needed to set the overridden behavior back to normal.

jpswinski commented 4 years ago

Unreliable time detection is handled by the OS abstraction module and provided as a return code back to the library. Currently, there is a very simple heuristic for the posix implementation.

When time is marked as unreliable by the OS module, then the library sets a processing flag and jams the creation time to zero and the lifetime to the maximum value it can encode.