clock-bound-shm

Crates.ioclock-bound-shm
lib.rsclock-bound-shm
version1.0.0
sourcesrc
created_at2024-04-09 20:12:25.074212
updated_at2024-04-09 20:12:25.074212
descriptionA library used to interact with shared memory in ClockBound.
homepage
repositoryhttps://github.com/aws/clock-bound
max_upload_size
id1202814
size79,186
Jacob Wisniewski (jacoblwisniewski)

documentation

README

ClockBound Shared Memory

Overview

This crate implements the low-level IPC functionality to share ClockErrorBound data and clock status over a shared memory segment. It provides a reader and writer implementation to facilitate operating on the shared memory segment.

Clock status

Clock status are retrieved directly from chronyd tracking data.

  • Unknown: the status of the clock is unknown.
  • Synchronized: the clock is kept accurate by the synchronization daemon.
  • FreeRunning: the clock is free running and not updated by the synchronization daemon.

Finite State Machine (FSM)

FSM drives a change in the clock status word stored in the ClockBound shared memory segment. Each transition in the FSM is triggered by chrony. See following state diagram for clock status in shared memory:

State Diagram for ClockStatus in SHM

Errors returned by all low-level ClockBound APIs

  • SyscallError(Errno, &'static CStr): a system call failed.
    • variant includes the Errno struct with error details
    • an indication on the origin of the system call that error'ed.
  • SegmentNotInitialized: the shared memory segment is not initialized.
  • SegmentMalformed: the shared memory segment is initialized but malformed.
  • CausalityBreach: failed causality check when comparing timestamps.
Commit count: 36

cargo fmt