blob: b9deba8a959bda8fa42fcc268b8dbd1f6b413c69 [file] [log] [blame]
// Copyright 2022 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
{
include: [
"//src/connectivity/network/lib/net_interfaces/client.shard.cml",
"//src/lib/fuchsia-hyper/hyper.shard.cml",
"inspect/client.shard.cml",
"syslog/client.shard.cml",
],
program: {
runner: "elf",
binary: "bin/httpsdate_time_source",
},
capabilities: [
{
protocol: [ "fuchsia.time.external.PushSource" ],
},
],
use: [
{
protocol: [ "fuchsia.metrics.MetricEventLoggerFactory" ],
from: "parent",
},
{
directory: "root-ssl-certificates",
rights: [ "r*" ],
path: "/config/ssl",
},
],
expose: [
{
protocol: [ "fuchsia.time.external.PushSource" ],
from: "self",
},
],
config: {
// HTTPS request is considered failed after the timeout.
https_timeout_sec: { type: "uint8" },
// The ratio between a standard deviation and a final bound size, expressed as a percentage.
standard_deviation_bound_percentage: { type: "uint8" },
// How many times longer than a subsequent poll the first poll will take. This encapsulates
// the additional time required during the first HTTPS request to setup a TLS connection and
// is used to make a best guess for how long the second call will take.
first_rtt_time_factor: { type: "uint16" },
// If enabled, `fuchsia.time.external.PullSource` is provided instead of
// `fuchsia.time.external.PushSource`.
use_pull_api: { type: "bool" },
// Max number fetch attempts for `fuchsia.time.external.Urgency.Low`.
max_attempts_urgency_low: { type: "uint32" },
// Number of polls per sample for `fuchsia.time.external.Urgency.Low`.
num_polls_urgency_low: { type: "uint32" },
// Max number fetch attempts for `fuchsia.time.external.Urgency.Medium`.
max_attempts_urgency_medium: { type: "uint32" },
// Number of polls per sample for `fuchsia.time.external.Urgency.Medium`.
num_polls_urgency_medium: { type: "uint32" },
// Max number fetch attempts for `fuchsia.time.external.Urgency.High`.
max_attempts_urgency_high: { type: "uint32" },
// Number of polls per sample for `fuchsia.time.external.Urgency.High`.
num_polls_urgency_high: { type: "uint32" },
},
}