<!--
 - Copyright (C) 2015-2018 Internet Systems Consortium, Inc. ("ISC")
 -
 - This Source Code Form is subject to the terms of the Mozilla Public
 - License, v. 2.0. If a copy of the MPL was not distributed with this
 - file, You can obtain one at http://mozilla.org/MPL/2.0/.
-->

<!-- Converted by db4-upgrade version 1.1 -->
<refentry>

  <info>
    <productname>ISC Kea</productname>
    <date>Dec 14, 2018</date>
    <edition>1.5.0</edition>
    <author><personname/><contrib>The Kea software has been written by a number of
        engineers working for ISC: Tomek Mrugalski, Stephen Morris, Marcin
        Siodelski, Thomas Markwalder, Francis Dupont, Jeremy C. Reed,
        Wlodek Wencel and Shawn Routhier.  That list is roughly in the
        chronological order in which the authors made their first
        contribution. For a complete list of authors and
        contributors, see AUTHORS file.</contrib><orgname>Internet Systems Consortium, Inc.</orgname></author>
  </info>

  <refmeta>
    <refentrytitle>kea-lfc</refentrytitle>
    <manvolnum>8</manvolnum>
    <refmiscinfo class="manual">Kea</refmiscinfo>
  </refmeta>

  <refnamediv>
    <refname>kea-lfc</refname>
    <refpurpose>Lease File Cleanup  process in Kea</refpurpose>
  </refnamediv>

  <docinfo>
    <copyright>
      <year>2015-2018</year>
      <holder>Internet Systems Consortium, Inc. ("ISC")</holder>
    </copyright>
  </docinfo>

  <refsynopsisdiv>
    <cmdsynopsis sepchar=" ">
      <command>kea-lfc</command>
      <arg choice="opt" rep="norepeat"><option>-4|-6</option></arg>
      <arg choice="opt" rep="norepeat"><option>-c <replaceable class="parameter">config-file</replaceable></option></arg>
      <arg choice="opt" rep="norepeat"><option>-p <replaceable class="parameter">pid-file</replaceable></option></arg>
      <arg choice="opt" rep="norepeat"><option>-x <replaceable class="parameter">previous-file</replaceable></option></arg>
      <arg choice="opt" rep="norepeat"><option>-i <replaceable class="parameter">copy-file</replaceable></option></arg>
      <arg choice="opt" rep="norepeat"><option>-o <replaceable class="parameter">output-file</replaceable></option></arg>
      <arg choice="opt" rep="norepeat"><option>-f <replaceable class="parameter">finish-file</replaceable></option></arg>
      <arg choice="opt" rep="norepeat"><option>-v</option></arg>
      <arg choice="opt" rep="norepeat"><option>-V</option></arg>
      <arg choice="opt" rep="norepeat"><option>-W</option></arg>
      <arg choice="opt" rep="norepeat"><option>-d</option></arg>
      <arg choice="opt" rep="norepeat"><option>-h</option></arg>
    </cmdsynopsis>
  </refsynopsisdiv>

  <refsect1>
    <title>DESCRIPTION</title>
    <para>
      The <command>kea-lfc</command> service process removes redundant
      information from the files used to provide persistent storage for
      the memfile data base backend.  The service is written to run as
      a stand alone process.  While it can be started externally, there
      is usually no need to do this.  It will be run on a periodic basis
      by the Kea DHCP servers.
    </para>
  </refsect1>

  <refsect1>
    <title>ARGUMENTS</title>

    <para>The arguments are as follows:</para>

    <variablelist>

      <varlistentry>
        <term><option>-d</option></term>
        <listitem><para>
          Verbose mode sets the logging level to debug. This is primarily
          for development purposes in stand-alone mode.
        </para></listitem>
      </varlistentry>

      <varlistentry>
        <term><option>-v</option></term>
        <listitem><para>
          version causes the version stamp to be printed.
        </para></listitem>
      </varlistentry>

      <varlistentry>
        <term><option>-V</option></term>
        <listitem><para>
          Version causes a longer form of the version stamp to be printed.
        </para></listitem>
      </varlistentry>

      <varlistentry>
        <term><option>-W</option></term>
        <listitem><para>
          Display the configuration report.
        </para></listitem>
      </varlistentry>

      <varlistentry>
        <term><option>-h</option></term>
        <listitem><para>
          Help causes the usage string to be printed.
        </para></listitem>
      </varlistentry>

      <varlistentry>
        <term><option>-4 | -6</option></term>
        <listitem><para>
          The protocol version of the lease files, must be one of 4 or 6.
        </para></listitem>
      </varlistentry>

      <varlistentry>
        <term><option>-c</option></term>
        <listitem><para>
          Configuration file including the configuration for
          <command>kea-lfc</command> process.  It may also
          contain configuration entries for other Kea services.
          Currently <command>kea-lfc</command> gets all of its arguments from
          the command line, in the future it will be extended to get some arguments
          from the config file.
        </para></listitem>
      </varlistentry>

      <varlistentry>
        <term><option>-p</option></term>
        <listitem><para>
          PID file - When the <command>kea-lfc</command> process starts
          it attempts to determine if another instance of the process is
          already running by examining the pid file.  If one is already
          running the new process is terminated.  If one isn't running it
          writes its pid into the pid file.
        </para></listitem>
      </varlistentry>

      <varlistentry>
        <term><option>-x</option></term>
        <listitem><para>
          Previous or ex lease file - When <command>kea-lfc</command> starts this
          is the result of any previous run of <command>kea-lfc</command>.
          When <command>kea-lfc</command> finishes it is the result of this run.
          If <command>kea-lfc</command> is interrupted before completing,
          this file may not exist.
        </para></listitem>
      </varlistentry>

      <varlistentry>
        <term><option>-i</option></term>
        <listitem><para>
          Input or copy of lease file - Before the DHCP server invokes
          <command>kea-lfc</command> it will move the current lease file
          here and then call <command>kea-lfc</command> with this file.
        </para></listitem>
      </varlistentry>

      <varlistentry>
        <term><option>-o</option></term>
        <listitem><para>
          Output lease file - The temporary file <command>kea-lfc</command>
          should use to write the leases.  Upon completion of writing this
          this file it will be moved to the finish file (see below).
        </para></listitem>
      </varlistentry>

      <varlistentry>
        <term><option>-f</option></term>
        <listitem><para>
          Finish or completion file - Another temporary file
          <command>kea-lfc</command> uses for bookkeeping.  When
          <command>kea-lfc</command> completes writing the output
          file it moves it to this file name.  After
          <command>kea-lfc</command> finishes deleting the other
          files (previous and input) it moves this file to previous
          lease file.  By moving the files in this fashion the
          <command>kea-lfc</command> and the DHCP server processes
          can determine the correct file to use even if one of the
          processes was interrupted before completing its task.
        </para></listitem>
      </varlistentry>
    </variablelist>
  </refsect1>

  <refsect1>
    <title>DOCUMENTATION</title>
    <para>Kea comes with an extensive Kea User's Guide documentation
      that covers all aspects of running the Kea software -
      compilation, installation, configuration, configuration examples
      and many more. Kea also features a Kea Messages Manual, which
      lists all possible messages Kea can print with a brief
      description for each of them. Both documents are typically
      available in various formats (txt, html, pdf) with your Kea
      distribution. The Kea documentation is available at
      https://kb.isc.org/docs/kea-administrator-reference-manual .</para>
    <para>
      Kea source code is documented in the Kea Developer's Guide. Its
      on-line version is available at https://jenkins.isc.org/job/Kea_doc/doxygen/.
    </para>
    <para>
      Kea project website is available at: https://kea.isc.org.
    </para>
  </refsect1>

  <refsect1>
    <title>MAILING LISTS AND SUPPORT</title>
    <para>
      There are two mailing lists available for Kea project. kea-users
      (kea-users at lists.isc.org) is intended for Kea users, while kea-dev
      (kea-dev at lists.isc.org) is intended for Kea developers, prospective
      contributors and other advanced users.  Both lists are available at
      http://lists.isc.org. The community provides best effort type of support
      on both of those lists.
    </para>
    <para>
      ISC provides professional support for Kea services. See
      https://www.isc.org/kea/ for details.
    </para>
  </refsect1>

  <refsect1>
    <title>HISTORY</title>
    <para>
      The <command>kea-lfc</command> process was first coded in January
      2015 by the ISC Kea/DHCP team.
    </para>
  </refsect1>

  <refsect1>
    <title>SEE ALSO</title>
    <para>
      <citerefentry>
        <refentrytitle>kea-dhcp4</refentrytitle>
        <manvolnum>8</manvolnum>
      </citerefentry>,

      <citerefentry>
        <refentrytitle>kea-dhcp6</refentrytitle>
        <manvolnum>8</manvolnum>
      </citerefentry>,

      <citerefentry>
        <refentrytitle>kea-dhcp-ddns</refentrytitle>
        <manvolnum>8</manvolnum>
      </citerefentry>,

      <citerefentry>
        <refentrytitle>kea-ctrl-agent</refentrytitle>
        <manvolnum>8</manvolnum>
      </citerefentry>,

      <citerefentry>
        <refentrytitle>kea-admin</refentrytitle>
        <manvolnum>8</manvolnum>
      </citerefentry>,

      <citerefentry>
        <refentrytitle>kea-netconf</refentrytitle>
        <manvolnum>8</manvolnum>
      </citerefentry>,

      <citerefentry>
        <refentrytitle>keactrl</refentrytitle>
        <manvolnum>8</manvolnum>
      </citerefentry>,

      <citerefentry>
        <refentrytitle>perfdhcp</refentrytitle>
        <manvolnum>8</manvolnum>
      </citerefentry>,

      <citetitle>Kea Administrator's Guide</citetitle>.

    </para>
  </refsect1>

</refentry>
