docs(server): describe single allowance as one instant
This commit is contained in:
6 files changed
+36
-21
No files matched your search
@@ -69,9 +69,14 @@ pub enum TimestampAllowance {
|
||||
/// No timestamps at all: every request is negotiated to
|
||||
/// [`StampAt::None`](irtt_proto::StampAt::None).
|
||||
None,
|
||||
/// At most one timestamp field. A request for both receive and send becomes
|
||||
/// [`StampAt::Midpoint`](irtt_proto::StampAt::Midpoint); every mode that is
|
||||
/// already single is left alone.
|
||||
/// At most one timestamp *instant*. A request for both receive and send
|
||||
/// becomes [`StampAt::Midpoint`](irtt_proto::StampAt::Midpoint); every
|
||||
/// placement that already names a single instant is left alone.
|
||||
///
|
||||
/// This restricts placement, not field count: the reply still carries one
|
||||
/// field per negotiated clock domain, so a session on
|
||||
/// [`Clock::Both`](irtt_proto::Clock::Both) receives both a wall and a
|
||||
/// monotonic midpoint field.
|
||||
Single,
|
||||
/// Every requested placement is honored. This is the default, and the
|
||||
/// behavior of a server that configures nothing.
|
||||
@@ -266,9 +271,12 @@ impl ServerConfig {
|
||||
/// not with whichever of the two the server felt like keeping.
|
||||
///
|
||||
/// The requested [`Clock`](irtt_proto::Clock) is left exactly as it was in
|
||||
/// every case. The allowance restricts placement, and the echo layout simply
|
||||
/// carries no timestamp field once the placement is
|
||||
/// [`StampAt::None`](irtt_proto::StampAt::None).
|
||||
/// every case. The allowance restricts which *instants* are reported, and
|
||||
/// each reported instant still carries one field per negotiated clock domain
|
||||
/// — [`Single`] on [`Clock::Both`](irtt_proto::Clock::Both) reports a wall
|
||||
/// and a monotonic midpoint. Only [`None`] removes timestamp fields
|
||||
/// outright, and it does so because the echo layout carries none once the
|
||||
/// placement is [`StampAt::None`](irtt_proto::StampAt::None).
|
||||
///
|
||||
/// Restriction runs *before* the effective-session check, which is what
|
||||
/// makes a [`None`] allowance accept a request that selected timestamps
|
||||
|
||||
@@ -70,9 +70,10 @@
|
||||
//! negotiates exactly what it always did.
|
||||
//!
|
||||
//! [`TimestampAllowance`] reduces the requested timestamp placement: `Single`
|
||||
//! provides at most one timestamp, answering a request for both instants with
|
||||
//! the midpoint, and `None` provides no timestamps at all. The requested clock
|
||||
//! is never rewritten. [`ServerConfig::with_dscp_allowed`] refuses to provide
|
||||
//! provides at most one timestamp instant, answering a request for both instants
|
||||
//! with the midpoint, and `None` provides no timestamps at all. The requested
|
||||
//! clock is never rewritten, so a single placement still reports one field per
|
||||
//! negotiated clock domain. [`ServerConfig::with_dscp_allowed`] refuses to provide
|
||||
//! traffic-class marking, negotiating any requested DSCP value to zero, after
|
||||
//! which the session's replies leave unmarked like any other zero-DSCP session.
|
||||
//!
|
||||
|
||||
@@ -129,10 +129,13 @@ pub(crate) fn negotiate_params(mut requested: Params, config: &ServerConfig) ->
|
||||
///
|
||||
/// The mapping is the observed one, from the clean specification's Section 11.4.
|
||||
/// Only one row substitutes rather than removes: under [`Single`], a request for
|
||||
/// both instants is answered with [`StampAt::Midpoint`] — one timestamp that
|
||||
/// still describes both — and not with whichever of Send or Receive an
|
||||
/// implementation happened to prefer. Every already-single placement passes
|
||||
/// through, and [`None`] removes all of them.
|
||||
/// both instants is answered with [`StampAt::Midpoint`] — one instant that still
|
||||
/// describes both — and not with whichever of Send or Receive an implementation
|
||||
/// happened to prefer. Every already-single placement passes through, and
|
||||
/// [`None`] removes all of them.
|
||||
///
|
||||
/// The allowance bounds reported *instants*, not fields: the clock is untouched,
|
||||
/// so a negotiated midpoint on `Clock::Both` still reports one field per domain.
|
||||
///
|
||||
/// [`Single`]: TimestampAllowance::Single
|
||||
/// [`None`]: TimestampAllowance::None
|
||||
|
||||
Reference in new issue
Block a user