<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
  "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->

<refentry id="timesyncd.conf" conditional='ENABLE_TIMESYNCD'
    xmlns:xi="http://www.w3.org/2001/XInclude">
  <refentryinfo>
    <title>timesyncd.conf</title>
    <productname>systemd</productname>
  </refentryinfo>

  <refmeta>
    <refentrytitle>timesyncd.conf</refentrytitle>
    <manvolnum>5</manvolnum>
  </refmeta>

  <refnamediv>
    <refname>timesyncd.conf</refname>
    <refname>timesyncd.conf.d</refname>
    <refpurpose>Network Time Synchronization configuration files</refpurpose>
  </refnamediv>

  <refsynopsisdiv>
    <para><filename>/etc/systemd/timesyncd.conf</filename></para>
    <para><filename>/etc/systemd/timesyncd.conf.d/*.conf</filename></para>
    <para><filename>/run/systemd/timesyncd.conf.d/*.conf</filename></para>
    <para><filename>/usr/lib/systemd/timesyncd.conf.d/*.conf</filename></para>
  </refsynopsisdiv>

  <refsect1>
    <title>Description</title>

    <para>These configuration files control NTP network time synchronization. See
    <citerefentry><refentrytitle>systemd.syntax</refentrytitle><manvolnum>7</manvolnum></citerefentry>
    for a general description of the syntax.</para>
  </refsect1>

  <xi:include href="standard-conf.xml" xpointer="main-conf" />

  <refsect1>
    <title>Options</title>

    <para>The following settings are configured in the [Time] section:</para>

    <variablelist class='network-directives'>

      <varlistentry>
        <term><varname>NTP=</varname></term>
        <listitem><para>A space-separated list of NTP server host names or IP addresses. During runtime this
        list is combined with any per-interface NTP servers acquired from
        <citerefentry><refentrytitle>systemd-networkd.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>.
        <command>systemd-timesyncd</command> will contact all configured system or per-interface servers in
        turn, until one responds. When the empty string is assigned, the list of NTP servers is reset, and
        all prior assignments will have no effect. This setting defaults to an empty list.</para></listitem>
      </varlistentry>

      <varlistentry>
        <term><varname>FallbackNTP=</varname></term>
        <listitem><para>A space-separated list of NTP server host names or IP addresses to be used as the
        fallback NTP servers. Any per-interface NTP servers obtained from
        <citerefentry><refentrytitle>systemd-networkd.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>
        take precedence over this setting, as do any servers set via <varname>NTP=</varname> above. This
        setting is hence only relevant if no other NTP server information is known. When the empty string is
        assigned, the list of NTP servers is reset, and all prior assignments will have no effect. If this
        option is not given, a compiled-in list of NTP servers is used.</para></listitem>
      </varlistentry>

      <varlistentry>
        <term><varname>RootDistanceMaxSec=</varname></term>
        <listitem><para>Maximum acceptable root distance, i.e. the maximum estimated time required for a
        packet to travel to the server we are connected to from the server with the reference clock. If
        the current server does not satisfy this limit, <command>systemd-timesyncd</command> will switch
        to a different server.</para>

        <para>Takes a time span value. The default unit is seconds, but other units may be specified, see
        <citerefentry><refentrytitle>systemd.time</refentrytitle><manvolnum>5</manvolnum></citerefentry>.
        Defaults to 5 seconds.</para></listitem>
      </varlistentry>

      <varlistentry>
        <term><varname>PollIntervalMinSec=</varname></term>
        <term><varname>PollIntervalMaxSec=</varname></term>
        <listitem><para>The minimum and maximum poll intervals for NTP messages. Polling starts at the
        minimum poll interval, and is adjusted within the specified limits in response to received packets.
        </para>

        <para>Each setting takes a time span value. The default unit is seconds, but other units may be
        specified, see
        <citerefentry><refentrytitle>systemd.time</refentrytitle><manvolnum>5</manvolnum></citerefentry>.
        <varname>PollIntervalMinSec=</varname> defaults to 32 seconds and must not be smaller than
        16 seconds. <varname>PollIntervalMaxSec=</varname> defaults to 34 min 8 s (2048 seconds) and must be
        larger than <varname>PollIntervalMinSec=</varname>.</para></listitem>
      </varlistentry>

      <varlistentry>
        <term><varname>ConnectionRetrySec=</varname></term>
        <listitem><para>Specifies the minimum delay before subsequent attempts to contact a new NTP server
        are made.</para>

        <para>Takes a time span value. The default unit is seconds, but other units may be specified, see
        <citerefentry><refentrytitle>systemd.time</refentrytitle><manvolnum>5</manvolnum></citerefentry>.
        Defaults to 30 seconds and must not be smaller than 1 second.</para></listitem>
      </varlistentry>

      <varlistentry>
        <term><varname>SaveIntervalSec=</varname></term>
        <listitem><para>The interval at which the current time is periodically saved to disk, in the absence
        of any recent synchronisation from an NTP server. This is especially useful for offline systems
        with no local RTC, as it will guarantee that the system clock remains roughly monotonic across
        reboots.</para>

        <para>Takes a time interval value. The default unit is seconds, but other units may be specified, see
        <citerefentry><refentrytitle>systemd.time</refentrytitle><manvolnum>5</manvolnum></citerefentry>.
        Defaults to 60 seconds.</para></listitem>
      </varlistentry>

    </variablelist>
  </refsect1>

  <refsect1>
      <title>See Also</title>
      <para>
      <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
      <citerefentry><refentrytitle>systemd-timesyncd.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
      <citerefentry><refentrytitle>systemd-networkd.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>
      </para>
  </refsect1>

</refentry>
