Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release 0.2.0 #424

Merged
merged 1 commit into from
Mar 7, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 18 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,21 @@
# Changelog

## [unreleased]
## [0.2.0] - 2024-03-07

[unreleased]: https://github.com/pendulum-project/statime/compare/v0.1.0...main
### Added
- Take into account delay asymmetry
- Metrics exporter
- Implement forwaring of TLVs
- Support for peer delay
- udev rules for better permissions

### Changed
- Updated dependencies
- Implement kalman filter for incoming timestamps
- Simplified state management of ports

### Fixed
- Fixed race condition during startup

[0.2.0]: https://github.com/pendulum-project/statime/compare/v0.1.0...v0.2.0
[0.1.0]: https://github.com/pendulum-project/statime/releases/tag/v0.1.0
4 changes: 2 additions & 2 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
[workspace]

Check notice on line 1 in Cargo.toml

View workflow job for this annotation

GitHub Actions / package / pkg (statime, ubuntu:xenial, x86_64)

Cargo deb variant 'ubuntu-xenial' not found, using defaults instead.
members = [
"statime",
"statime-linux",
Expand All @@ -9,7 +9,7 @@
resolver = "2"

[workspace.package]
version = "0.1.0"
version = "0.2.0"
edition = "2021"
license = "Apache-2.0 OR MIT"
repository = "https://github.com/pendulum-project/statime"
Expand Down Expand Up @@ -52,7 +52,7 @@

# our own crates used as dependencies, same version as the workspace version
# NOTE: keep this part at the bottom of the file, do not change this line
statime = { version = "0.1.0", path = "./statime" }
statime = { version = "0.2.0", path = "./statime" }

[profile.release]
debug = 2
2 changes: 1 addition & 1 deletion docs/man/statime.8.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<!-- ---
title: STATIME(8) statime 0.1.0 | statime
title: STATIME(8) statime 0.2.0 | statime
--- -->

# NAME
Expand Down
2 changes: 1 addition & 1 deletion docs/man/statime.toml.5.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<!-- ---
title: STATIME.TOML(5) statime 0.1.0 | statime
title: STATIME.TOML(5) statime 0.2.0 | statime
--- -->

# NAME
Expand Down
2 changes: 1 addition & 1 deletion docs/precompiled/man/statime.8
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
. ftr VB CB
. ftr VBI CBI
.\}
.TH "STATIME" "8" "" "statime 0.1.0" "statime"
.TH "STATIME" "8" "" "statime 0.2.0" "statime"
.hy
.SH NAME
.PP
Expand Down
29 changes: 17 additions & 12 deletions docs/precompiled/man/statime.toml.5
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
. ftr VB CB
. ftr VBI CBI
.\}
.TH "STATIME.TOML" "5" "" "statime 0.1.0" "statime"
.TH "STATIME.TOML" "5" "" "statime 0.2.0" "statime"
.hy
.SH NAME
.PP
Expand All @@ -28,7 +28,7 @@ extensions allowing a json-like syntax.
.PP
The statime configuration file consists of several sections, each of
which configures a separate part of the ptp-daemon process.
Each of the secions is described in the rest of this document.
Each of the sections is described in the rest of this document.
Many settings will have defaults, which will be indicated by each
configuration setting shown.
.SH CONFIGURATION
Expand All @@ -45,7 +45,7 @@ All instances in domain are synchronized to the Grandmaster Clock of the
domain, but are not necessarily synchronized to PTP clocks in another
domain.
.TP
\f[V]sdo_id\f[R] = \f[I]u12\f[R] (\f[B]0\f[R])
\f[V]sdo-id\f[R] = \f[I]u12\f[R] (\f[B]0\f[R])
The \[lq]source domain identity\[rq] of this PTP instance.
Together with the \f[V]domain\f[R] it identifies a domain.
.TP
Expand All @@ -62,42 +62,47 @@ A tie breaker for the best master clock algorithm in the range
The network interface of this PTP port.
For instance \f[V]\[dq]lo\[dq]\f[R] or \f[V]\[dq]enp0s31f6\[dq]\f[R]
.TP
\f[V]announce_interval\f[R] = \f[I]interval\f[R] (\f[B]1\f[R])
\f[V]announce-interval\f[R] = \f[I]interval\f[R] (\f[B]1\f[R])
How often an announce message is sent by a master.
Defined as an exponent of 2, so a value of 1 means every 2\[ha]1 = 2
seconds.
.TP
\f[V]sync_interval\f[R] = \f[I]interval\f[R] (\f[B]0\f[R])
\f[V]sync-interval\f[R] = \f[I]interval\f[R] (\f[B]0\f[R])
How often sync message is sent by a master.
Defined as an exponent of 2, so a value of 0 means every 2\[ha]0 = 1
seconds.
.TP
\f[V]announce_receipt_timeout\f[R] = \f[I]number of announce intervals\f[R] (\f[B]3\f[R])
\f[V]announce-receipt-timeout\f[R] = \f[I]number of announce intervals\f[R] (\f[B]3\f[R])
Number of announce intervals to wait for announce messages from other
masters before the port becomes master itself.
.TP
\f[V]delay_asymmetry\f[R] = \f[I]nanoseconds\f[R] (\f[B]0\f[R])
\f[V]delay-asymmetry\f[R] = \f[I]nanoseconds\f[R] (\f[B]0\f[R])
Correct for a difference between slave-to-master and master-to-slave
propagation time.
The value is positive when the slave-to-master propagation time is
longer than the master-to-slave propagation time.
.TP
\f[V]delay_mechanism\f[R] = \f[I]interval\f[R] (\f[B]0\f[R])
\f[V]delay-mechanism\f[R] = \f[I]mechanism\f[R] (\f[B]E2E\f[R])
Which delay mechanism to use on the port.
Either \f[V]\[dq]E2E\[dq]\f[R] for end-to-end delay determination, or
\f[V]\[dq]P2P\[dq]\f[R] for the peer to peer delay mechanism.
.TP
\f[V]delay-interval\f[R] = \f[I]interval\f[R] (\f[B]0\f[R])
How often delay request messages are sent by a slave in end-to-end mode.
Currently the only supported delay mechanism is end-to-end (E2E).
Defined as an exponent of 2, so a value of 0 means every 2\[ha]0 = 1
seconds
.TP
\f[V]master_only\f[R] = \f[I]bool\f[R] (\f[B]false\f[R])
\f[V]master-only\f[R] = \f[I]bool\f[R] (\f[B]false\f[R])
The port is always a master instance, and will never become a slave
instance.
.TP
\f[V]hardware_clock\f[R] = \f[I]path\f[R] (\f[B]unset\f[R])
\f[V]hardware-clock\f[R] = \f[I]path\f[R] (\f[B]unset\f[R])
Path to a hardware clock device, for instance
\f[V]\[dq]/dev/ptp0\[dq]\f[R].
.TP
\f[V]acceptable_master_list\f[R] = [ \f[I]clock identity\f[R], .. ] (\f[B]unset\f[R])
\f[V]acceptable-master-list\f[R] = [ \f[I]clock identity\f[R], .. ] (\f[B]unset\f[R])
List of clock identities that this port will accept as its master.
A clock identity is encoded as a 16-character hexadecimal string, for
example \f[V]acceptable_master_list = [\[dq]00FFFFFFFFFFFFFB\[dq]]\f[R].
example \f[V]acceptable-master-list = [\[dq]00FFFFFFFFFFFFFB\[dq]]\f[R].
The default is to accept all clock identities.
3 changes: 2 additions & 1 deletion statime-linux/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,7 @@ assets = [
]
conf-files = [
"/etc/statime/statime.toml",
"/etc/udev/41-statime.rules",
]

[package.metadata.generate-rpm]
Expand All @@ -80,7 +81,7 @@ assets = [
{ source = "docs/examples/conf/statime.toml.default", dest = "/etc/statime/statime.toml", mode = "644", config = true },
{ source = "docs/examples/conf/statime.preset", dest = "/lib/systemd/system-preset/50-statime.preset", mode = "644" },
{ source = "docs/examples/conf/statime.service", dest = "/lib/systemd/system/statime.service", mode = "644" },
{ source = "docs/examples/conf/41-statime.rules", dest = "/etc/udev/41-statime.rules", mode = "644" },
{ source = "docs/examples/conf/41-statime.rules", dest = "/etc/udev/41-statime.rules", mode = "644", config = true },
{ source = "../COPYRIGHT", dest = "/usr/share/doc/statime/COPYRIGHT", mode = "644", doc = true },
{ source = "../LICENSE-APACHE", dest = "/usr/share/doc/statime/LICENSE-APACHE", mode = "644", doc = true },
{ source = "../LICENSE-MIT", dest = "/usr/share/doc/statime/LICENSE-MIT", mode = "644", doc = true },
Expand Down
Loading